Install generated headers and host LLVM Config headers am: 97aa4a3b37
am: e5aa4dc441

Change-Id: If238cc974ca139e5ad59f852b3b25abe9851515b
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrDump.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrDump.inc
new file mode 100644
index 0000000..8105f49
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrDump.inc
@@ -0,0 +1,1170 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Attribute dumper                                                           *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+  switch (A->getKind()) {
+  case attr::AMDGPUFlatWorkGroupSize: {
+    const auto *SA = cast<AMDGPUFlatWorkGroupSizeAttr>(A);
+    OS << " " << SA->getMin();
+    OS << " " << SA->getMax();
+    break;
+  }
+  case attr::AMDGPUNumSGPR: {
+    const auto *SA = cast<AMDGPUNumSGPRAttr>(A);
+    OS << " " << SA->getNumSGPR();
+    break;
+  }
+  case attr::AMDGPUNumVGPR: {
+    const auto *SA = cast<AMDGPUNumVGPRAttr>(A);
+    OS << " " << SA->getNumVGPR();
+    break;
+  }
+  case attr::AMDGPUWavesPerEU: {
+    const auto *SA = cast<AMDGPUWavesPerEUAttr>(A);
+    OS << " " << SA->getMin();
+    OS << " " << SA->getMax();
+    break;
+  }
+  case attr::ARMInterrupt: {
+    const auto *SA = cast<ARMInterruptAttr>(A);
+    switch(SA->getInterrupt()) {
+    case ARMInterruptAttr::IRQ:
+      OS << " IRQ";
+      break;
+    case ARMInterruptAttr::FIQ:
+      OS << " FIQ";
+      break;
+    case ARMInterruptAttr::SWI:
+      OS << " SWI";
+      break;
+    case ARMInterruptAttr::ABORT:
+      OS << " ABORT";
+      break;
+    case ARMInterruptAttr::UNDEF:
+      OS << " UNDEF";
+      break;
+    case ARMInterruptAttr::Generic:
+      OS << " Generic";
+      break;
+    }
+    break;
+  }
+  case attr::AVRInterrupt: {
+    break;
+  }
+  case attr::AVRSignal: {
+    break;
+  }
+  case attr::AbiTag: {
+    const auto *SA = cast<AbiTagAttr>(A);
+    for (const auto &Val : SA->tags())
+      OS << " " << Val;
+    break;
+  }
+  case attr::AcquireCapability: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<AcquireCapabilityAttr>(A);
+    for (AcquireCapabilityAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::AcquiredAfter: {
+    const auto *SA = cast<AcquiredAfterAttr>(A);
+    for (AcquiredAfterAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::AcquiredBefore: {
+    const auto *SA = cast<AcquiredBeforeAttr>(A);
+    for (AcquiredBeforeAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::Alias: {
+    const auto *SA = cast<AliasAttr>(A);
+    OS << " \"" << SA->getAliasee() << "\"";
+    break;
+  }
+  case attr::AlignMac68k: {
+    break;
+  }
+  case attr::AlignValue: {
+    const auto *SA = cast<AlignValueAttr>(A);
+    dumpStmt(SA->getAlignment());
+    break;
+  }
+  case attr::Aligned: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<AlignedAttr>(A);
+    if (SA->isAlignmentExpr())
+      dumpStmt(SA->getAlignmentExpr());
+    else
+      dumpType(SA->getAlignmentType()->getType());
+    break;
+  }
+  case attr::AllocAlign: {
+    const auto *SA = cast<AllocAlignAttr>(A);
+    OS << " " << SA->getParamIndex();
+    break;
+  }
+  case attr::AllocSize: {
+    const auto *SA = cast<AllocSizeAttr>(A);
+    OS << " " << SA->getElemSizeParam();
+    OS << " " << SA->getNumElemsParam();
+    break;
+  }
+  case attr::AlwaysInline: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::AnalyzerNoReturn: {
+    break;
+  }
+  case attr::Annotate: {
+    const auto *SA = cast<AnnotateAttr>(A);
+    OS << " \"" << SA->getAnnotation() << "\"";
+    break;
+  }
+  case attr::AnyX86Interrupt: {
+    break;
+  }
+  case attr::ArcWeakrefUnavailable: {
+    break;
+  }
+  case attr::ArgumentWithTypeTag: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<ArgumentWithTypeTagAttr>(A);
+    OS << " " << SA->getArgumentKind()->getName();
+    OS << " " << SA->getArgumentIdx();
+    OS << " " << SA->getTypeTagIdx();
+    if (SA->getIsPointer()) OS << " IsPointer";
+    break;
+  }
+  case attr::AsmLabel: {
+    const auto *SA = cast<AsmLabelAttr>(A);
+    OS << " \"" << SA->getLabel() << "\"";
+    break;
+  }
+  case attr::AssertCapability: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<AssertCapabilityAttr>(A);
+    dumpStmt(SA->getExpr());
+    break;
+  }
+  case attr::AssertExclusiveLock: {
+    const auto *SA = cast<AssertExclusiveLockAttr>(A);
+    for (AssertExclusiveLockAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::AssertSharedLock: {
+    const auto *SA = cast<AssertSharedLockAttr>(A);
+    for (AssertSharedLockAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::AssumeAligned: {
+    const auto *SA = cast<AssumeAlignedAttr>(A);
+    dumpStmt(SA->getAlignment());
+    dumpStmt(SA->getOffset());
+    break;
+  }
+  case attr::Availability: {
+    const auto *SA = cast<AvailabilityAttr>(A);
+    OS << " " << SA->getPlatform()->getName();
+    OS << " " << SA->getIntroduced();
+    OS << " " << SA->getDeprecated();
+    OS << " " << SA->getObsoleted();
+    if (SA->getUnavailable()) OS << " Unavailable";
+    OS << " \"" << SA->getMessage() << "\"";
+    if (SA->getStrict()) OS << " Strict";
+    OS << " \"" << SA->getReplacement() << "\"";
+    break;
+  }
+  case attr::Blocks: {
+    const auto *SA = cast<BlocksAttr>(A);
+    switch(SA->getType()) {
+    case BlocksAttr::ByRef:
+      OS << " ByRef";
+      break;
+    }
+    break;
+  }
+  case attr::C11NoReturn: {
+    break;
+  }
+  case attr::CDecl: {
+    break;
+  }
+  case attr::CFAuditedTransfer: {
+    break;
+  }
+  case attr::CFConsumed: {
+    break;
+  }
+  case attr::CFReturnsNotRetained: {
+    break;
+  }
+  case attr::CFReturnsRetained: {
+    break;
+  }
+  case attr::CFUnknownTransfer: {
+    break;
+  }
+  case attr::CUDAConstant: {
+    break;
+  }
+  case attr::CUDADevice: {
+    break;
+  }
+  case attr::CUDAGlobal: {
+    break;
+  }
+  case attr::CUDAHost: {
+    break;
+  }
+  case attr::CUDAInvalidTarget: {
+    break;
+  }
+  case attr::CUDALaunchBounds: {
+    const auto *SA = cast<CUDALaunchBoundsAttr>(A);
+    dumpStmt(SA->getMaxThreads());
+    dumpStmt(SA->getMinBlocks());
+    break;
+  }
+  case attr::CUDAShared: {
+    break;
+  }
+  case attr::CXX11NoReturn: {
+    break;
+  }
+  case attr::CallableWhen: {
+    const auto *SA = cast<CallableWhenAttr>(A);
+    for (CallableWhenAttr::callableStates_iterator I = SA->callableStates_begin(), E = SA->callableStates_end(); I != E; ++I) {
+      switch(*I) {
+    case CallableWhenAttr::Unknown:
+      OS << " Unknown";
+      break;
+    case CallableWhenAttr::Consumed:
+      OS << " Consumed";
+      break;
+    case CallableWhenAttr::Unconsumed:
+      OS << " Unconsumed";
+      break;
+      }
+    }
+    break;
+  }
+  case attr::Capability: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<CapabilityAttr>(A);
+    OS << " \"" << SA->getName() << "\"";
+    break;
+  }
+  case attr::CapturedRecord: {
+    break;
+  }
+  case attr::CarriesDependency: {
+    break;
+  }
+  case attr::Cleanup: {
+    const auto *SA = cast<CleanupAttr>(A);
+    OS << " ";
+    dumpBareDeclRef(SA->getFunctionDecl());
+    break;
+  }
+  case attr::Cold: {
+    break;
+  }
+  case attr::Common: {
+    break;
+  }
+  case attr::Const: {
+    break;
+  }
+  case attr::Constructor: {
+    const auto *SA = cast<ConstructorAttr>(A);
+    OS << " " << SA->getPriority();
+    break;
+  }
+  case attr::Consumable: {
+    const auto *SA = cast<ConsumableAttr>(A);
+    switch(SA->getDefaultState()) {
+    case ConsumableAttr::Unknown:
+      OS << " Unknown";
+      break;
+    case ConsumableAttr::Consumed:
+      OS << " Consumed";
+      break;
+    case ConsumableAttr::Unconsumed:
+      OS << " Unconsumed";
+      break;
+    }
+    break;
+  }
+  case attr::ConsumableAutoCast: {
+    break;
+  }
+  case attr::ConsumableSetOnRead: {
+    break;
+  }
+  case attr::Convergent: {
+    break;
+  }
+  case attr::DLLExport: {
+    break;
+  }
+  case attr::DLLImport: {
+    break;
+  }
+  case attr::Deprecated: {
+    const auto *SA = cast<DeprecatedAttr>(A);
+    OS << " \"" << SA->getMessage() << "\"";
+    OS << " \"" << SA->getReplacement() << "\"";
+    break;
+  }
+  case attr::Destructor: {
+    const auto *SA = cast<DestructorAttr>(A);
+    OS << " " << SA->getPriority();
+    break;
+  }
+  case attr::DiagnoseIf: {
+    const auto *SA = cast<DiagnoseIfAttr>(A);
+    OS << " \"" << SA->getMessage() << "\"";
+    switch(SA->getDiagnosticType()) {
+    case DiagnoseIfAttr::DT_Error:
+      OS << " DT_Error";
+      break;
+    case DiagnoseIfAttr::DT_Warning:
+      OS << " DT_Warning";
+      break;
+    }
+    if (SA->getArgDependent()) OS << " ArgDependent";
+    OS << " ";
+    dumpBareDeclRef(SA->getParent());
+    dumpStmt(SA->getCond());
+    break;
+  }
+  case attr::DisableTailCalls: {
+    break;
+  }
+  case attr::EmptyBases: {
+    break;
+  }
+  case attr::EnableIf: {
+    const auto *SA = cast<EnableIfAttr>(A);
+    OS << " \"" << SA->getMessage() << "\"";
+    dumpStmt(SA->getCond());
+    break;
+  }
+  case attr::EnumExtensibility: {
+    const auto *SA = cast<EnumExtensibilityAttr>(A);
+    switch(SA->getExtensibility()) {
+    case EnumExtensibilityAttr::Closed:
+      OS << " Closed";
+      break;
+    case EnumExtensibilityAttr::Open:
+      OS << " Open";
+      break;
+    }
+    break;
+  }
+  case attr::ExclusiveTrylockFunction: {
+    const auto *SA = cast<ExclusiveTrylockFunctionAttr>(A);
+    dumpStmt(SA->getSuccessValue());
+    for (ExclusiveTrylockFunctionAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::ExternalSourceSymbol: {
+    const auto *SA = cast<ExternalSourceSymbolAttr>(A);
+    OS << " \"" << SA->getLanguage() << "\"";
+    OS << " \"" << SA->getDefinedIn() << "\"";
+    if (SA->getGeneratedDeclaration()) OS << " GeneratedDeclaration";
+    break;
+  }
+  case attr::FallThrough: {
+    break;
+  }
+  case attr::FastCall: {
+    break;
+  }
+  case attr::Final: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::FlagEnum: {
+    break;
+  }
+  case attr::Flatten: {
+    break;
+  }
+  case attr::Format: {
+    const auto *SA = cast<FormatAttr>(A);
+    OS << " " << SA->getType()->getName();
+    OS << " " << SA->getFormatIdx();
+    OS << " " << SA->getFirstArg();
+    break;
+  }
+  case attr::FormatArg: {
+    const auto *SA = cast<FormatArgAttr>(A);
+    OS << " " << SA->getFormatIdx();
+    break;
+  }
+  case attr::GNUInline: {
+    break;
+  }
+  case attr::GuardedBy: {
+    const auto *SA = cast<GuardedByAttr>(A);
+    dumpStmt(SA->getArg());
+    break;
+  }
+  case attr::GuardedVar: {
+    break;
+  }
+  case attr::Hot: {
+    break;
+  }
+  case attr::IBAction: {
+    break;
+  }
+  case attr::IBOutlet: {
+    break;
+  }
+  case attr::IBOutletCollection: {
+    const auto *SA = cast<IBOutletCollectionAttr>(A);
+    OS << " " << SA->getInterface().getAsString();
+    break;
+  }
+  case attr::IFunc: {
+    const auto *SA = cast<IFuncAttr>(A);
+    OS << " \"" << SA->getResolver() << "\"";
+    break;
+  }
+  case attr::InitPriority: {
+    const auto *SA = cast<InitPriorityAttr>(A);
+    OS << " " << SA->getPriority();
+    break;
+  }
+  case attr::InitSeg: {
+    const auto *SA = cast<InitSegAttr>(A);
+    OS << " \"" << SA->getSection() << "\"";
+    break;
+  }
+  case attr::IntelOclBicc: {
+    break;
+  }
+  case attr::InternalLinkage: {
+    break;
+  }
+  case attr::LTOVisibilityPublic: {
+    break;
+  }
+  case attr::LayoutVersion: {
+    const auto *SA = cast<LayoutVersionAttr>(A);
+    OS << " " << SA->getVersion();
+    break;
+  }
+  case attr::LockReturned: {
+    const auto *SA = cast<LockReturnedAttr>(A);
+    dumpStmt(SA->getArg());
+    break;
+  }
+  case attr::LocksExcluded: {
+    const auto *SA = cast<LocksExcludedAttr>(A);
+    for (LocksExcludedAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::LoopHint: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<LoopHintAttr>(A);
+    switch(SA->getOption()) {
+    case LoopHintAttr::Vectorize:
+      OS << " Vectorize";
+      break;
+    case LoopHintAttr::VectorizeWidth:
+      OS << " VectorizeWidth";
+      break;
+    case LoopHintAttr::Interleave:
+      OS << " Interleave";
+      break;
+    case LoopHintAttr::InterleaveCount:
+      OS << " InterleaveCount";
+      break;
+    case LoopHintAttr::Unroll:
+      OS << " Unroll";
+      break;
+    case LoopHintAttr::UnrollCount:
+      OS << " UnrollCount";
+      break;
+    case LoopHintAttr::Distribute:
+      OS << " Distribute";
+      break;
+    }
+    switch(SA->getState()) {
+    case LoopHintAttr::Enable:
+      OS << " Enable";
+      break;
+    case LoopHintAttr::Disable:
+      OS << " Disable";
+      break;
+    case LoopHintAttr::Numeric:
+      OS << " Numeric";
+      break;
+    case LoopHintAttr::AssumeSafety:
+      OS << " AssumeSafety";
+      break;
+    case LoopHintAttr::Full:
+      OS << " Full";
+      break;
+    }
+    dumpStmt(SA->getValue());
+    break;
+  }
+  case attr::MSABI: {
+    break;
+  }
+  case attr::MSInheritance: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<MSInheritanceAttr>(A);
+    if (SA->getBestCase()) OS << " BestCase";
+    break;
+  }
+  case attr::MSNoVTable: {
+    break;
+  }
+  case attr::MSP430Interrupt: {
+    const auto *SA = cast<MSP430InterruptAttr>(A);
+    OS << " " << SA->getNumber();
+    break;
+  }
+  case attr::MSStruct: {
+    break;
+  }
+  case attr::MSVtorDisp: {
+    const auto *SA = cast<MSVtorDispAttr>(A);
+    OS << " " << SA->getVdm();
+    break;
+  }
+  case attr::MaxFieldAlignment: {
+    const auto *SA = cast<MaxFieldAlignmentAttr>(A);
+    OS << " " << SA->getAlignment();
+    break;
+  }
+  case attr::MayAlias: {
+    break;
+  }
+  case attr::MinSize: {
+    break;
+  }
+  case attr::Mips16: {
+    break;
+  }
+  case attr::MipsInterrupt: {
+    const auto *SA = cast<MipsInterruptAttr>(A);
+    switch(SA->getInterrupt()) {
+    case MipsInterruptAttr::sw0:
+      OS << " sw0";
+      break;
+    case MipsInterruptAttr::sw1:
+      OS << " sw1";
+      break;
+    case MipsInterruptAttr::hw0:
+      OS << " hw0";
+      break;
+    case MipsInterruptAttr::hw1:
+      OS << " hw1";
+      break;
+    case MipsInterruptAttr::hw2:
+      OS << " hw2";
+      break;
+    case MipsInterruptAttr::hw3:
+      OS << " hw3";
+      break;
+    case MipsInterruptAttr::hw4:
+      OS << " hw4";
+      break;
+    case MipsInterruptAttr::hw5:
+      OS << " hw5";
+      break;
+    case MipsInterruptAttr::eic:
+      OS << " eic";
+      break;
+    }
+    break;
+  }
+  case attr::Mode: {
+    const auto *SA = cast<ModeAttr>(A);
+    OS << " " << SA->getMode()->getName();
+    break;
+  }
+  case attr::NSConsumed: {
+    break;
+  }
+  case attr::NSConsumesSelf: {
+    break;
+  }
+  case attr::NSReturnsAutoreleased: {
+    break;
+  }
+  case attr::NSReturnsNotRetained: {
+    break;
+  }
+  case attr::NSReturnsRetained: {
+    break;
+  }
+  case attr::Naked: {
+    break;
+  }
+  case attr::NoAlias: {
+    break;
+  }
+  case attr::NoCommon: {
+    break;
+  }
+  case attr::NoDebug: {
+    break;
+  }
+  case attr::NoDuplicate: {
+    break;
+  }
+  case attr::NoInline: {
+    break;
+  }
+  case attr::NoInstrumentFunction: {
+    break;
+  }
+  case attr::NoMips16: {
+    break;
+  }
+  case attr::NoReturn: {
+    break;
+  }
+  case attr::NoSanitize: {
+    const auto *SA = cast<NoSanitizeAttr>(A);
+    for (const auto &Val : SA->sanitizers())
+      OS << " " << Val;
+    break;
+  }
+  case attr::NoSplitStack: {
+    break;
+  }
+  case attr::NoThreadSafetyAnalysis: {
+    break;
+  }
+  case attr::NoThrow: {
+    break;
+  }
+  case attr::NonNull: {
+    const auto *SA = cast<NonNullAttr>(A);
+    for (const auto &Val : SA->args())
+      OS << " " << Val;
+    break;
+  }
+  case attr::NotTailCalled: {
+    break;
+  }
+  case attr::OMPCaptureNoInit: {
+    break;
+  }
+  case attr::OMPDeclareSimdDecl: {
+    const auto *SA = cast<OMPDeclareSimdDeclAttr>(A);
+    switch(SA->getBranchState()) {
+    case OMPDeclareSimdDeclAttr::BS_Undefined:
+      OS << " BS_Undefined";
+      break;
+    case OMPDeclareSimdDeclAttr::BS_Inbranch:
+      OS << " BS_Inbranch";
+      break;
+    case OMPDeclareSimdDeclAttr::BS_Notinbranch:
+      OS << " BS_Notinbranch";
+      break;
+    }
+    for (const auto &Val : SA->modifiers())
+      OS << " " << Val;
+    dumpStmt(SA->getSimdlen());
+    for (OMPDeclareSimdDeclAttr::uniforms_iterator I = SA->uniforms_begin(), E = SA->uniforms_end(); I != E; ++I)
+      dumpStmt(*I);
+    for (OMPDeclareSimdDeclAttr::aligneds_iterator I = SA->aligneds_begin(), E = SA->aligneds_end(); I != E; ++I)
+      dumpStmt(*I);
+    for (OMPDeclareSimdDeclAttr::alignments_iterator I = SA->alignments_begin(), E = SA->alignments_end(); I != E; ++I)
+      dumpStmt(*I);
+    for (OMPDeclareSimdDeclAttr::linears_iterator I = SA->linears_begin(), E = SA->linears_end(); I != E; ++I)
+      dumpStmt(*I);
+    for (OMPDeclareSimdDeclAttr::steps_iterator I = SA->steps_begin(), E = SA->steps_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::OMPDeclareTargetDecl: {
+    const auto *SA = cast<OMPDeclareTargetDeclAttr>(A);
+    switch(SA->getMapType()) {
+    case OMPDeclareTargetDeclAttr::MT_To:
+      OS << " MT_To";
+      break;
+    case OMPDeclareTargetDeclAttr::MT_Link:
+      OS << " MT_Link";
+      break;
+    }
+    break;
+  }
+  case attr::OMPThreadPrivateDecl: {
+    break;
+  }
+  case attr::ObjCBoxable: {
+    break;
+  }
+  case attr::ObjCBridge: {
+    const auto *SA = cast<ObjCBridgeAttr>(A);
+    OS << " " << SA->getBridgedType()->getName();
+    break;
+  }
+  case attr::ObjCBridgeMutable: {
+    const auto *SA = cast<ObjCBridgeMutableAttr>(A);
+    OS << " " << SA->getBridgedType()->getName();
+    break;
+  }
+  case attr::ObjCBridgeRelated: {
+    const auto *SA = cast<ObjCBridgeRelatedAttr>(A);
+    OS << " " << SA->getRelatedClass()->getName();
+    if (SA->getClassMethod())
+      OS << " " << SA->getClassMethod()->getName();
+    if (SA->getInstanceMethod())
+      OS << " " << SA->getInstanceMethod()->getName();
+    break;
+  }
+  case attr::ObjCDesignatedInitializer: {
+    break;
+  }
+  case attr::ObjCException: {
+    break;
+  }
+  case attr::ObjCExplicitProtocolImpl: {
+    break;
+  }
+  case attr::ObjCIndependentClass: {
+    break;
+  }
+  case attr::ObjCMethodFamily: {
+    const auto *SA = cast<ObjCMethodFamilyAttr>(A);
+    switch(SA->getFamily()) {
+    case ObjCMethodFamilyAttr::OMF_None:
+      OS << " OMF_None";
+      break;
+    case ObjCMethodFamilyAttr::OMF_alloc:
+      OS << " OMF_alloc";
+      break;
+    case ObjCMethodFamilyAttr::OMF_copy:
+      OS << " OMF_copy";
+      break;
+    case ObjCMethodFamilyAttr::OMF_init:
+      OS << " OMF_init";
+      break;
+    case ObjCMethodFamilyAttr::OMF_mutableCopy:
+      OS << " OMF_mutableCopy";
+      break;
+    case ObjCMethodFamilyAttr::OMF_new:
+      OS << " OMF_new";
+      break;
+    }
+    break;
+  }
+  case attr::ObjCNSObject: {
+    break;
+  }
+  case attr::ObjCPreciseLifetime: {
+    break;
+  }
+  case attr::ObjCRequiresPropertyDefs: {
+    break;
+  }
+  case attr::ObjCRequiresSuper: {
+    break;
+  }
+  case attr::ObjCReturnsInnerPointer: {
+    break;
+  }
+  case attr::ObjCRootClass: {
+    break;
+  }
+  case attr::ObjCRuntimeName: {
+    const auto *SA = cast<ObjCRuntimeNameAttr>(A);
+    OS << " \"" << SA->getMetadataName() << "\"";
+    break;
+  }
+  case attr::ObjCRuntimeVisible: {
+    break;
+  }
+  case attr::ObjCSubclassingRestricted: {
+    break;
+  }
+  case attr::OpenCLAccess: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::OpenCLKernel: {
+    break;
+  }
+  case attr::OpenCLUnrollHint: {
+    const auto *SA = cast<OpenCLUnrollHintAttr>(A);
+    OS << " " << SA->getUnrollHint();
+    break;
+  }
+  case attr::OptimizeNone: {
+    break;
+  }
+  case attr::Overloadable: {
+    break;
+  }
+  case attr::Override: {
+    break;
+  }
+  case attr::Ownership: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<OwnershipAttr>(A);
+    OS << " " << SA->getModule()->getName();
+    for (const auto &Val : SA->args())
+      OS << " " << Val;
+    break;
+  }
+  case attr::Packed: {
+    break;
+  }
+  case attr::ParamTypestate: {
+    const auto *SA = cast<ParamTypestateAttr>(A);
+    switch(SA->getParamState()) {
+    case ParamTypestateAttr::Unknown:
+      OS << " Unknown";
+      break;
+    case ParamTypestateAttr::Consumed:
+      OS << " Consumed";
+      break;
+    case ParamTypestateAttr::Unconsumed:
+      OS << " Unconsumed";
+      break;
+    }
+    break;
+  }
+  case attr::Pascal: {
+    break;
+  }
+  case attr::PassObjectSize: {
+    const auto *SA = cast<PassObjectSizeAttr>(A);
+    OS << " " << SA->getType();
+    break;
+  }
+  case attr::Pcs: {
+    const auto *SA = cast<PcsAttr>(A);
+    switch(SA->getPCS()) {
+    case PcsAttr::AAPCS:
+      OS << " AAPCS";
+      break;
+    case PcsAttr::AAPCS_VFP:
+      OS << " AAPCS_VFP";
+      break;
+    }
+    break;
+  }
+  case attr::PreserveAll: {
+    break;
+  }
+  case attr::PreserveMost: {
+    break;
+  }
+  case attr::PtGuardedBy: {
+    const auto *SA = cast<PtGuardedByAttr>(A);
+    dumpStmt(SA->getArg());
+    break;
+  }
+  case attr::PtGuardedVar: {
+    break;
+  }
+  case attr::Pure: {
+    break;
+  }
+  case attr::RegCall: {
+    break;
+  }
+  case attr::ReleaseCapability: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<ReleaseCapabilityAttr>(A);
+    for (ReleaseCapabilityAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::RenderScriptKernel: {
+    break;
+  }
+  case attr::ReqdWorkGroupSize: {
+    const auto *SA = cast<ReqdWorkGroupSizeAttr>(A);
+    OS << " " << SA->getXDim();
+    OS << " " << SA->getYDim();
+    OS << " " << SA->getZDim();
+    break;
+  }
+  case attr::RequireConstantInit: {
+    break;
+  }
+  case attr::RequiresCapability: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<RequiresCapabilityAttr>(A);
+    for (RequiresCapabilityAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::Restrict: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::ReturnTypestate: {
+    const auto *SA = cast<ReturnTypestateAttr>(A);
+    switch(SA->getState()) {
+    case ReturnTypestateAttr::Unknown:
+      OS << " Unknown";
+      break;
+    case ReturnTypestateAttr::Consumed:
+      OS << " Consumed";
+      break;
+    case ReturnTypestateAttr::Unconsumed:
+      OS << " Unconsumed";
+      break;
+    }
+    break;
+  }
+  case attr::ReturnsNonNull: {
+    break;
+  }
+  case attr::ReturnsTwice: {
+    break;
+  }
+  case attr::ScopedLockable: {
+    break;
+  }
+  case attr::Section: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<SectionAttr>(A);
+    OS << " \"" << SA->getName() << "\"";
+    break;
+  }
+  case attr::SelectAny: {
+    break;
+  }
+  case attr::Sentinel: {
+    const auto *SA = cast<SentinelAttr>(A);
+    OS << " " << SA->getSentinel();
+    OS << " " << SA->getNullPos();
+    break;
+  }
+  case attr::SetTypestate: {
+    const auto *SA = cast<SetTypestateAttr>(A);
+    switch(SA->getNewState()) {
+    case SetTypestateAttr::Unknown:
+      OS << " Unknown";
+      break;
+    case SetTypestateAttr::Consumed:
+      OS << " Consumed";
+      break;
+    case SetTypestateAttr::Unconsumed:
+      OS << " Unconsumed";
+      break;
+    }
+    break;
+  }
+  case attr::SharedTrylockFunction: {
+    const auto *SA = cast<SharedTrylockFunctionAttr>(A);
+    dumpStmt(SA->getSuccessValue());
+    for (SharedTrylockFunctionAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::StdCall: {
+    break;
+  }
+  case attr::Suppress: {
+    const auto *SA = cast<SuppressAttr>(A);
+    for (const auto &Val : SA->diagnosticIdentifiers())
+      OS << " " << Val;
+    break;
+  }
+  case attr::SwiftCall: {
+    break;
+  }
+  case attr::SwiftContext: {
+    break;
+  }
+  case attr::SwiftErrorResult: {
+    break;
+  }
+  case attr::SwiftIndirectResult: {
+    break;
+  }
+  case attr::SysVABI: {
+    break;
+  }
+  case attr::TLSModel: {
+    const auto *SA = cast<TLSModelAttr>(A);
+    OS << " \"" << SA->getModel() << "\"";
+    break;
+  }
+  case attr::Target: {
+    const auto *SA = cast<TargetAttr>(A);
+    OS << " \"" << SA->getFeaturesStr() << "\"";
+    break;
+  }
+  case attr::TestTypestate: {
+    const auto *SA = cast<TestTypestateAttr>(A);
+    switch(SA->getTestState()) {
+    case TestTypestateAttr::Consumed:
+      OS << " Consumed";
+      break;
+    case TestTypestateAttr::Unconsumed:
+      OS << " Unconsumed";
+      break;
+    }
+    break;
+  }
+  case attr::ThisCall: {
+    break;
+  }
+  case attr::Thread: {
+    break;
+  }
+  case attr::TransparentUnion: {
+    break;
+  }
+  case attr::TryAcquireCapability: {
+    OS << " " << A->getSpelling();
+    const auto *SA = cast<TryAcquireCapabilityAttr>(A);
+    dumpStmt(SA->getSuccessValue());
+    for (TryAcquireCapabilityAttr::args_iterator I = SA->args_begin(), E = SA->args_end(); I != E; ++I)
+      dumpStmt(*I);
+    break;
+  }
+  case attr::TypeTagForDatatype: {
+    const auto *SA = cast<TypeTagForDatatypeAttr>(A);
+    OS << " " << SA->getArgumentKind()->getName();
+    OS << " " << SA->getMatchingCType().getAsString();
+    if (SA->getLayoutCompatible()) OS << " LayoutCompatible";
+    if (SA->getMustBeNull()) OS << " MustBeNull";
+    break;
+  }
+  case attr::TypeVisibility: {
+    const auto *SA = cast<TypeVisibilityAttr>(A);
+    switch(SA->getVisibility()) {
+    case TypeVisibilityAttr::Default:
+      OS << " Default";
+      break;
+    case TypeVisibilityAttr::Hidden:
+      OS << " Hidden";
+      break;
+    case TypeVisibilityAttr::Protected:
+      OS << " Protected";
+      break;
+    }
+    break;
+  }
+  case attr::Unavailable: {
+    const auto *SA = cast<UnavailableAttr>(A);
+    OS << " \"" << SA->getMessage() << "\"";
+    switch(SA->getImplicitReason()) {
+    case UnavailableAttr::IR_None:
+      OS << " IR_None";
+      break;
+    case UnavailableAttr::IR_ARCForbiddenType:
+      OS << " IR_ARCForbiddenType";
+      break;
+    case UnavailableAttr::IR_ForbiddenWeak:
+      OS << " IR_ForbiddenWeak";
+      break;
+    case UnavailableAttr::IR_ARCForbiddenConversion:
+      OS << " IR_ARCForbiddenConversion";
+      break;
+    case UnavailableAttr::IR_ARCInitReturnsUnrelated:
+      OS << " IR_ARCInitReturnsUnrelated";
+      break;
+    case UnavailableAttr::IR_ARCFieldWithOwnership:
+      OS << " IR_ARCFieldWithOwnership";
+      break;
+    }
+    break;
+  }
+  case attr::Unused: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::Used: {
+    break;
+  }
+  case attr::Uuid: {
+    const auto *SA = cast<UuidAttr>(A);
+    OS << " \"" << SA->getGuid() << "\"";
+    break;
+  }
+  case attr::VecReturn: {
+    break;
+  }
+  case attr::VecTypeHint: {
+    const auto *SA = cast<VecTypeHintAttr>(A);
+    OS << " " << SA->getTypeHint().getAsString();
+    break;
+  }
+  case attr::VectorCall: {
+    break;
+  }
+  case attr::Visibility: {
+    const auto *SA = cast<VisibilityAttr>(A);
+    switch(SA->getVisibility()) {
+    case VisibilityAttr::Default:
+      OS << " Default";
+      break;
+    case VisibilityAttr::Hidden:
+      OS << " Hidden";
+      break;
+    case VisibilityAttr::Protected:
+      OS << " Protected";
+      break;
+    }
+    break;
+  }
+  case attr::WarnUnused: {
+    break;
+  }
+  case attr::WarnUnusedResult: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::Weak: {
+    break;
+  }
+  case attr::WeakImport: {
+    break;
+  }
+  case attr::WeakRef: {
+    const auto *SA = cast<WeakRefAttr>(A);
+    OS << " \"" << SA->getAliasee() << "\"";
+    break;
+  }
+  case attr::WorkGroupSizeHint: {
+    const auto *SA = cast<WorkGroupSizeHintAttr>(A);
+    OS << " " << SA->getXDim();
+    OS << " " << SA->getYDim();
+    OS << " " << SA->getZDim();
+    break;
+  }
+  case attr::X86ForceAlignArgPointer: {
+    break;
+  }
+  case attr::XRayInstrument: {
+    OS << " " << A->getSpelling();
+    break;
+  }
+  case attr::XRayLogArgs: {
+    const auto *SA = cast<XRayLogArgsAttr>(A);
+    OS << " " << SA->getArgumentCount();
+    break;
+  }
+  }
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrImpl.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrImpl.inc
new file mode 100644
index 0000000..bef74cb
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrImpl.inc
@@ -0,0 +1,8917 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Attribute classes' member function definitions                             *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+AMDGPUFlatWorkGroupSizeAttr *AMDGPUFlatWorkGroupSizeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AMDGPUFlatWorkGroupSizeAttr(getLocation(), C, min, max, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AMDGPUFlatWorkGroupSizeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((amdgpu_flat_work_group_size(" << getMin() << ", " << getMax() << ")))";
+    break;
+  }
+}
+}
+
+const char *AMDGPUFlatWorkGroupSizeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "amdgpu_flat_work_group_size";
+  }
+}
+
+AMDGPUNumSGPRAttr *AMDGPUNumSGPRAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AMDGPUNumSGPRAttr(getLocation(), C, numSGPR, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AMDGPUNumSGPRAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((amdgpu_num_sgpr(" << getNumSGPR() << ")))";
+    break;
+  }
+}
+}
+
+const char *AMDGPUNumSGPRAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "amdgpu_num_sgpr";
+  }
+}
+
+AMDGPUNumVGPRAttr *AMDGPUNumVGPRAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AMDGPUNumVGPRAttr(getLocation(), C, numVGPR, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AMDGPUNumVGPRAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((amdgpu_num_vgpr(" << getNumVGPR() << ")))";
+    break;
+  }
+}
+}
+
+const char *AMDGPUNumVGPRAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "amdgpu_num_vgpr";
+  }
+}
+
+AMDGPUWavesPerEUAttr *AMDGPUWavesPerEUAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AMDGPUWavesPerEUAttr(getLocation(), C, min, max, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AMDGPUWavesPerEUAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((amdgpu_waves_per_eu(" << getMin() << ", " << getMax() << ")))";
+    break;
+  }
+}
+}
+
+const char *AMDGPUWavesPerEUAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "amdgpu_waves_per_eu";
+  }
+}
+
+ARMInterruptAttr *ARMInterruptAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ARMInterruptAttr(getLocation(), C, interrupt, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ARMInterruptAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((interrupt(\"" << ARMInterruptAttr::ConvertInterruptTypeToStr(getInterrupt()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *ARMInterruptAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "interrupt";
+  }
+}
+
+AVRInterruptAttr *AVRInterruptAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AVRInterruptAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AVRInterruptAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((interrupt))";
+    break;
+  }
+}
+}
+
+const char *AVRInterruptAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "interrupt";
+  }
+}
+
+AVRSignalAttr *AVRSignalAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AVRSignalAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AVRSignalAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((signal))";
+    break;
+  }
+}
+}
+
+const char *AVRSignalAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "signal";
+  }
+}
+
+AbiTagAttr *AbiTagAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AbiTagAttr(getLocation(), C, tags_, tags_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AbiTagAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((abi_tag(";
+  bool isFirst = true;
+  for (const auto &Val : tags()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << "\"" << Val << "\"";
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::abi_tag(";
+  bool isFirst = true;
+  for (const auto &Val : tags()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << "\"" << Val << "\"";
+  }
+  OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *AbiTagAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "abi_tag";
+  case 1:
+    return "abi_tag";
+  }
+}
+
+AcquireCapabilityAttr *AcquireCapabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AcquireCapabilityAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AcquireCapabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((acquire_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::acquire_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((acquire_shared_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 3 : {
+    OS << " [[clang::acquire_shared_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 4 : {
+    OS << " __attribute__((exclusive_lock_function(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 5 : {
+    OS << " __attribute__((shared_lock_function(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *AcquireCapabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "acquire_capability";
+  case 1:
+    return "acquire_capability";
+  case 2:
+    return "acquire_shared_capability";
+  case 3:
+    return "acquire_shared_capability";
+  case 4:
+    return "exclusive_lock_function";
+  case 5:
+    return "shared_lock_function";
+  }
+}
+
+AcquiredAfterAttr *AcquiredAfterAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AcquiredAfterAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AcquiredAfterAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((acquired_after(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *AcquiredAfterAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "acquired_after";
+  }
+}
+
+AcquiredBeforeAttr *AcquiredBeforeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AcquiredBeforeAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AcquiredBeforeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((acquired_before(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *AcquiredBeforeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "acquired_before";
+  }
+}
+
+AliasAttr *AliasAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AliasAttr(getLocation(), C, getAliasee(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AliasAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((alias(\"" << getAliasee() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::alias(\"" << getAliasee() << "\")]]";
+    break;
+  }
+}
+}
+
+const char *AliasAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "alias";
+  case 1:
+    return "alias";
+  }
+}
+
+AlignMac68kAttr *AlignMac68kAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AlignMac68kAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AlignMac68kAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *AlignMac68kAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+AlignValueAttr *AlignValueAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AlignValueAttr(getLocation(), C, alignment, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AlignValueAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((align_value(" << getAlignment() << ")))";
+    break;
+  }
+}
+}
+
+const char *AlignValueAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "align_value";
+  }
+}
+
+bool AlignedAttr::isAlignmentDependent() const {
+  if (isalignmentExpr)
+    return alignmentExpr && (alignmentExpr->isValueDependent() || alignmentExpr->isTypeDependent());
+  else
+    return alignmentType->getType()->isDependentType();
+}
+unsigned AlignedAttr::getAlignment(ASTContext &Ctx) const {
+  assert(!isAlignmentDependent());
+  if (isalignmentExpr)
+    return alignmentExpr ? alignmentExpr->EvaluateKnownConstInt(Ctx).getZExtValue() * Ctx.getCharWidth() : Ctx.getTargetDefaultAlignForAttributeAligned();
+  else
+    return 0; // FIXME
+}
+AlignedAttr *AlignedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AlignedAttr(getLocation(), C, isalignmentExpr, isalignmentExpr ? static_cast<void*>(alignmentExpr) : alignmentType, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AlignedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((aligned(";
+    if (isalignmentExpr && alignmentExpr)
+      alignmentExpr->printPretty(OS, nullptr, Policy);
+    OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::aligned(";
+    if (isalignmentExpr && alignmentExpr)
+      alignmentExpr->printPretty(OS, nullptr, Policy);
+    OS << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(align(";
+    if (isalignmentExpr && alignmentExpr)
+      alignmentExpr->printPretty(OS, nullptr, Policy);
+    OS << "))";
+    break;
+  }
+  case 3 : {
+    OS << " alignas(";
+    if (isalignmentExpr && alignmentExpr)
+      alignmentExpr->printPretty(OS, nullptr, Policy);
+    OS << ")";
+    break;
+  }
+  case 4 : {
+    OS << " _Alignas(";
+    if (isalignmentExpr && alignmentExpr)
+      alignmentExpr->printPretty(OS, nullptr, Policy);
+    OS << ")";
+    break;
+  }
+}
+}
+
+const char *AlignedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "aligned";
+  case 1:
+    return "aligned";
+  case 2:
+    return "align";
+  case 3:
+    return "alignas";
+  case 4:
+    return "_Alignas";
+  }
+}
+
+AllocAlignAttr *AllocAlignAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AllocAlignAttr(getLocation(), C, paramIndex, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AllocAlignAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((alloc_align(" << getParamIndex() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::alloc_align(" << getParamIndex() << ")]]";
+    break;
+  }
+}
+}
+
+const char *AllocAlignAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "alloc_align";
+  case 1:
+    return "alloc_align";
+  }
+}
+
+AllocSizeAttr *AllocSizeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AllocSizeAttr(getLocation(), C, elemSizeParam, numElemsParam, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AllocSizeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((alloc_size(" << getElemSizeParam() << ", " << getNumElemsParam() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::alloc_size(" << getElemSizeParam() << ", " << getNumElemsParam() << ")]]";
+    break;
+  }
+}
+}
+
+const char *AllocSizeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "alloc_size";
+  case 1:
+    return "alloc_size";
+  }
+}
+
+AlwaysInlineAttr *AlwaysInlineAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AlwaysInlineAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AlwaysInlineAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((always_inline))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::always_inline]]";
+    break;
+  }
+  case 2 : {
+    OS << " __forceinline";
+    break;
+  }
+}
+}
+
+const char *AlwaysInlineAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "always_inline";
+  case 1:
+    return "always_inline";
+  case 2:
+    return "__forceinline";
+  }
+}
+
+AnalyzerNoReturnAttr *AnalyzerNoReturnAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AnalyzerNoReturnAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AnalyzerNoReturnAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((analyzer_noreturn))";
+    break;
+  }
+}
+}
+
+const char *AnalyzerNoReturnAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "analyzer_noreturn";
+  }
+}
+
+AnnotateAttr *AnnotateAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AnnotateAttr(getLocation(), C, getAnnotation(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AnnotateAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((annotate(\"" << getAnnotation() << "\")))";
+    break;
+  }
+}
+}
+
+const char *AnnotateAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "annotate";
+  }
+}
+
+AnyX86InterruptAttr *AnyX86InterruptAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AnyX86InterruptAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AnyX86InterruptAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((interrupt))";
+    break;
+  }
+}
+}
+
+const char *AnyX86InterruptAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "interrupt";
+  }
+}
+
+ArcWeakrefUnavailableAttr *ArcWeakrefUnavailableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ArcWeakrefUnavailableAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ArcWeakrefUnavailableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_arc_weak_reference_unavailable))";
+    break;
+  }
+}
+}
+
+const char *ArcWeakrefUnavailableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_arc_weak_reference_unavailable";
+  }
+}
+
+ArgumentWithTypeTagAttr *ArgumentWithTypeTagAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ArgumentWithTypeTagAttr(getLocation(), C, argumentKind, argumentIdx, typeTagIdx, isPointer, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ArgumentWithTypeTagAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((argument_with_type_tag(";
+    OS << getArgumentKind()->getName();
+    OS << ", " << getArgumentIdx() << ", " << getTypeTagIdx() << ", " << getIsPointer() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " __attribute__((pointer_with_type_tag(";
+    OS << getArgumentKind()->getName();
+    OS << ", " << getArgumentIdx() << ", " << getTypeTagIdx() << ", " << getIsPointer() << ")))";
+    break;
+  }
+}
+}
+
+const char *ArgumentWithTypeTagAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "argument_with_type_tag";
+  case 1:
+    return "pointer_with_type_tag";
+  }
+}
+
+AsmLabelAttr *AsmLabelAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AsmLabelAttr(getLocation(), C, getLabel(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AsmLabelAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " asm(\"" << getLabel() << "\")";
+    break;
+  }
+  case 1 : {
+    OS << " __asm__(\"" << getLabel() << "\")";
+    break;
+  }
+}
+}
+
+const char *AsmLabelAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "asm";
+  case 1:
+    return "__asm__";
+  }
+}
+
+AssertCapabilityAttr *AssertCapabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AssertCapabilityAttr(getLocation(), C, expr, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AssertCapabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((assert_capability(" << getExpr() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::assert_capability(" << getExpr() << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((assert_shared_capability(" << getExpr() << ")))";
+    break;
+  }
+  case 3 : {
+    OS << " [[clang::assert_shared_capability(" << getExpr() << ")]]";
+    break;
+  }
+}
+}
+
+const char *AssertCapabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "assert_capability";
+  case 1:
+    return "assert_capability";
+  case 2:
+    return "assert_shared_capability";
+  case 3:
+    return "assert_shared_capability";
+  }
+}
+
+AssertExclusiveLockAttr *AssertExclusiveLockAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AssertExclusiveLockAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AssertExclusiveLockAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((assert_exclusive_lock(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *AssertExclusiveLockAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "assert_exclusive_lock";
+  }
+}
+
+AssertSharedLockAttr *AssertSharedLockAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AssertSharedLockAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AssertSharedLockAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((assert_shared_lock(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *AssertSharedLockAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "assert_shared_lock";
+  }
+}
+
+AssumeAlignedAttr *AssumeAlignedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AssumeAlignedAttr(getLocation(), C, alignment, offset, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AssumeAlignedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((assume_aligned(" << getAlignment() << ", " << getOffset() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::assume_aligned(" << getAlignment() << ", " << getOffset() << ")]]";
+    break;
+  }
+}
+}
+
+const char *AssumeAlignedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "assume_aligned";
+  case 1:
+    return "assume_aligned";
+  }
+}
+
+AvailabilityAttr *AvailabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) AvailabilityAttr(getLocation(), C, platform, getIntroduced(), getDeprecated(), getObsoleted(), unavailable, getMessage(), strict, getReplacement(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void AvailabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((availability(" << getPlatform()->getName();
+  if (getStrict()) OS << ", strict";
+  if (!getIntroduced().empty()) OS << ", introduced=" << getIntroduced();
+  if (!getDeprecated().empty()) OS << ", deprecated=" << getDeprecated();
+  if (!getObsoleted().empty()) OS << ", obsoleted=" << getObsoleted();
+  if (getUnavailable()) OS << ", unavailable";
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *AvailabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "availability";
+  }
+}
+
+BlocksAttr *BlocksAttr::clone(ASTContext &C) const {
+  auto *A = new (C) BlocksAttr(getLocation(), C, type, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void BlocksAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((blocks(\"" << BlocksAttr::ConvertBlockTypeToStr(getType()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *BlocksAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "blocks";
+  }
+}
+
+C11NoReturnAttr *C11NoReturnAttr::clone(ASTContext &C) const {
+  auto *A = new (C) C11NoReturnAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void C11NoReturnAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " _Noreturn";
+    break;
+  }
+}
+}
+
+const char *C11NoReturnAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "_Noreturn";
+  }
+}
+
+CDeclAttr *CDeclAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CDeclAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CDeclAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cdecl))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::cdecl]]";
+    break;
+  }
+  case 2 : {
+    OS << " __cdecl";
+    break;
+  }
+  case 3 : {
+    OS << " _cdecl";
+    break;
+  }
+}
+}
+
+const char *CDeclAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cdecl";
+  case 1:
+    return "cdecl";
+  case 2:
+    return "__cdecl";
+  case 3:
+    return "_cdecl";
+  }
+}
+
+CFAuditedTransferAttr *CFAuditedTransferAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CFAuditedTransferAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CFAuditedTransferAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cf_audited_transfer))";
+    break;
+  }
+}
+}
+
+const char *CFAuditedTransferAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cf_audited_transfer";
+  }
+}
+
+CFConsumedAttr *CFConsumedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CFConsumedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CFConsumedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cf_consumed))";
+    break;
+  }
+}
+}
+
+const char *CFConsumedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cf_consumed";
+  }
+}
+
+CFReturnsNotRetainedAttr *CFReturnsNotRetainedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CFReturnsNotRetainedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CFReturnsNotRetainedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cf_returns_not_retained))";
+    break;
+  }
+}
+}
+
+const char *CFReturnsNotRetainedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cf_returns_not_retained";
+  }
+}
+
+CFReturnsRetainedAttr *CFReturnsRetainedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CFReturnsRetainedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CFReturnsRetainedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cf_returns_retained))";
+    break;
+  }
+}
+}
+
+const char *CFReturnsRetainedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cf_returns_retained";
+  }
+}
+
+CFUnknownTransferAttr *CFUnknownTransferAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CFUnknownTransferAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CFUnknownTransferAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cf_unknown_transfer))";
+    break;
+  }
+}
+}
+
+const char *CFUnknownTransferAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cf_unknown_transfer";
+  }
+}
+
+CUDAConstantAttr *CUDAConstantAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDAConstantAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDAConstantAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((constant))";
+    break;
+  }
+  case 1 : {
+    OS << " __declspec(__constant__)";
+    break;
+  }
+}
+}
+
+const char *CUDAConstantAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "constant";
+  case 1:
+    return "__constant__";
+  }
+}
+
+CUDADeviceAttr *CUDADeviceAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDADeviceAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDADeviceAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((device))";
+    break;
+  }
+  case 1 : {
+    OS << " __declspec(__device__)";
+    break;
+  }
+}
+}
+
+const char *CUDADeviceAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "device";
+  case 1:
+    return "__device__";
+  }
+}
+
+CUDAGlobalAttr *CUDAGlobalAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDAGlobalAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDAGlobalAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((global))";
+    break;
+  }
+  case 1 : {
+    OS << " __declspec(__global__)";
+    break;
+  }
+}
+}
+
+const char *CUDAGlobalAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "global";
+  case 1:
+    return "__global__";
+  }
+}
+
+CUDAHostAttr *CUDAHostAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDAHostAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDAHostAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((host))";
+    break;
+  }
+  case 1 : {
+    OS << " __declspec(__host__)";
+    break;
+  }
+}
+}
+
+const char *CUDAHostAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "host";
+  case 1:
+    return "__host__";
+  }
+}
+
+CUDAInvalidTargetAttr *CUDAInvalidTargetAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDAInvalidTargetAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDAInvalidTargetAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *CUDAInvalidTargetAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+CUDALaunchBoundsAttr *CUDALaunchBoundsAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDALaunchBoundsAttr(getLocation(), C, maxThreads, minBlocks, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDALaunchBoundsAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((launch_bounds(" << getMaxThreads() << ", " << getMinBlocks() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " __declspec(__launch_bounds__(" << getMaxThreads() << ", " << getMinBlocks() << "))";
+    break;
+  }
+}
+}
+
+const char *CUDALaunchBoundsAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "launch_bounds";
+  case 1:
+    return "__launch_bounds__";
+  }
+}
+
+CUDASharedAttr *CUDASharedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CUDASharedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CUDASharedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((shared))";
+    break;
+  }
+  case 1 : {
+    OS << " __declspec(__shared__)";
+    break;
+  }
+}
+}
+
+const char *CUDASharedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "shared";
+  case 1:
+    return "__shared__";
+  }
+}
+
+CXX11NoReturnAttr *CXX11NoReturnAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CXX11NoReturnAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CXX11NoReturnAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " [[noreturn]]";
+    break;
+  }
+}
+}
+
+const char *CXX11NoReturnAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "noreturn";
+  }
+}
+
+CallableWhenAttr *CallableWhenAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CallableWhenAttr(getLocation(), C, callableStates_, callableStates_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CallableWhenAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((callable_when(";
+  bool isFirst = true;
+  for (const auto &Val : callableStates()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << "\"" << CallableWhenAttr::ConvertConsumedStateToStr(Val)<< "\"";
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *CallableWhenAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "callable_when";
+  }
+}
+
+CapabilityAttr *CapabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CapabilityAttr(getLocation(), C, getName(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CapabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((capability(\"" << getName() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::capability(\"" << getName() << "\")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((shared_capability(\"" << getName() << "\")))";
+    break;
+  }
+  case 3 : {
+    OS << " [[clang::shared_capability(\"" << getName() << "\")]]";
+    break;
+  }
+}
+}
+
+const char *CapabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "capability";
+  case 1:
+    return "capability";
+  case 2:
+    return "shared_capability";
+  case 3:
+    return "shared_capability";
+  }
+}
+
+CapturedRecordAttr *CapturedRecordAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CapturedRecordAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CapturedRecordAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *CapturedRecordAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+CarriesDependencyAttr *CarriesDependencyAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CarriesDependencyAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CarriesDependencyAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((carries_dependency))";
+    break;
+  }
+  case 1 : {
+    OS << " [[carries_dependency]]";
+    break;
+  }
+}
+}
+
+const char *CarriesDependencyAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "carries_dependency";
+  case 1:
+    return "carries_dependency";
+  }
+}
+
+CleanupAttr *CleanupAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CleanupAttr(getLocation(), C, functionDecl, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CleanupAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cleanup(" << getFunctionDecl()->getNameInfo().getAsString() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::cleanup(" << getFunctionDecl()->getNameInfo().getAsString() << ")]]";
+    break;
+  }
+}
+}
+
+const char *CleanupAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cleanup";
+  case 1:
+    return "cleanup";
+  }
+}
+
+ColdAttr *ColdAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ColdAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ColdAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((cold))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::cold]]";
+    break;
+  }
+}
+}
+
+const char *ColdAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "cold";
+  case 1:
+    return "cold";
+  }
+}
+
+CommonAttr *CommonAttr::clone(ASTContext &C) const {
+  auto *A = new (C) CommonAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void CommonAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((common))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::common]]";
+    break;
+  }
+}
+}
+
+const char *CommonAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "common";
+  case 1:
+    return "common";
+  }
+}
+
+ConstAttr *ConstAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ConstAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ConstAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((const))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::const]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((__const))";
+    break;
+  }
+  case 3 : {
+    OS << " [[gnu::__const]]";
+    break;
+  }
+}
+}
+
+const char *ConstAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "const";
+  case 1:
+    return "const";
+  case 2:
+    return "__const";
+  case 3:
+    return "__const";
+  }
+}
+
+ConstructorAttr *ConstructorAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ConstructorAttr(getLocation(), C, priority, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ConstructorAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((constructor(" << getPriority() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::constructor(" << getPriority() << ")]]";
+    break;
+  }
+}
+}
+
+const char *ConstructorAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "constructor";
+  case 1:
+    return "constructor";
+  }
+}
+
+ConsumableAttr *ConsumableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ConsumableAttr(getLocation(), C, defaultState, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ConsumableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((consumable(\"" << ConsumableAttr::ConvertConsumedStateToStr(getDefaultState()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *ConsumableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "consumable";
+  }
+}
+
+ConsumableAutoCastAttr *ConsumableAutoCastAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ConsumableAutoCastAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ConsumableAutoCastAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((consumable_auto_cast_state))";
+    break;
+  }
+}
+}
+
+const char *ConsumableAutoCastAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "consumable_auto_cast_state";
+  }
+}
+
+ConsumableSetOnReadAttr *ConsumableSetOnReadAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ConsumableSetOnReadAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ConsumableSetOnReadAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((consumable_set_state_on_read))";
+    break;
+  }
+}
+}
+
+const char *ConsumableSetOnReadAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "consumable_set_state_on_read";
+  }
+}
+
+ConvergentAttr *ConvergentAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ConvergentAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ConvergentAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((convergent))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::convergent]]";
+    break;
+  }
+}
+}
+
+const char *ConvergentAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "convergent";
+  case 1:
+    return "convergent";
+  }
+}
+
+DLLExportAttr *DLLExportAttr::clone(ASTContext &C) const {
+  auto *A = new (C) DLLExportAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void DLLExportAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(dllexport)";
+    break;
+  }
+  case 1 : {
+    OS << " __attribute__((dllexport))";
+    break;
+  }
+  case 2 : {
+    OS << " [[gnu::dllexport]]";
+    break;
+  }
+}
+}
+
+const char *DLLExportAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "dllexport";
+  case 1:
+    return "dllexport";
+  case 2:
+    return "dllexport";
+  }
+}
+
+DLLImportAttr *DLLImportAttr::clone(ASTContext &C) const {
+  auto *A = new (C) DLLImportAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void DLLImportAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(dllimport)";
+    break;
+  }
+  case 1 : {
+    OS << " __attribute__((dllimport))";
+    break;
+  }
+  case 2 : {
+    OS << " [[gnu::dllimport]]";
+    break;
+  }
+}
+}
+
+const char *DLLImportAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "dllimport";
+  case 1:
+    return "dllimport";
+  case 2:
+    return "dllimport";
+  }
+}
+
+DeprecatedAttr *DeprecatedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) DeprecatedAttr(getLocation(), C, getMessage(), getReplacement(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void DeprecatedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((deprecated(\"" << getMessage() << "\"";
+    if (!getReplacement().empty()) OS << ", \"" << getReplacement() << "\"";
+    OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::deprecated(\"" << getMessage() << "\"";
+    OS << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(deprecated(\"" << getMessage() << "\"";
+    OS << "))";
+    break;
+  }
+  case 3 : {
+    OS << " [[deprecated(\"" << getMessage() << "\"";
+    OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *DeprecatedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "deprecated";
+  case 1:
+    return "deprecated";
+  case 2:
+    return "deprecated";
+  case 3:
+    return "deprecated";
+  }
+}
+
+DestructorAttr *DestructorAttr::clone(ASTContext &C) const {
+  auto *A = new (C) DestructorAttr(getLocation(), C, priority, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void DestructorAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((destructor(" << getPriority() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::destructor(" << getPriority() << ")]]";
+    break;
+  }
+}
+}
+
+const char *DestructorAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "destructor";
+  case 1:
+    return "destructor";
+  }
+}
+
+DiagnoseIfAttr *DiagnoseIfAttr::clone(ASTContext &C) const {
+  auto *A = new (C) DiagnoseIfAttr(getLocation(), C, cond, getMessage(), diagnosticType, argDependent, parent, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void DiagnoseIfAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((diagnose_if(" << getCond() << ", \"" << getMessage() << "\", \"" << DiagnoseIfAttr::ConvertDiagnosticTypeToStr(getDiagnosticType()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *DiagnoseIfAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "diagnose_if";
+  }
+}
+
+DisableTailCallsAttr *DisableTailCallsAttr::clone(ASTContext &C) const {
+  auto *A = new (C) DisableTailCallsAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void DisableTailCallsAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((disable_tail_calls))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::disable_tail_calls]]";
+    break;
+  }
+}
+}
+
+const char *DisableTailCallsAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "disable_tail_calls";
+  case 1:
+    return "disable_tail_calls";
+  }
+}
+
+EmptyBasesAttr *EmptyBasesAttr::clone(ASTContext &C) const {
+  auto *A = new (C) EmptyBasesAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void EmptyBasesAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(empty_bases)";
+    break;
+  }
+}
+}
+
+const char *EmptyBasesAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "empty_bases";
+  }
+}
+
+EnableIfAttr *EnableIfAttr::clone(ASTContext &C) const {
+  auto *A = new (C) EnableIfAttr(getLocation(), C, cond, getMessage(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void EnableIfAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((enable_if(" << getCond() << ", \"" << getMessage() << "\")))";
+    break;
+  }
+}
+}
+
+const char *EnableIfAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "enable_if";
+  }
+}
+
+EnumExtensibilityAttr *EnumExtensibilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) EnumExtensibilityAttr(getLocation(), C, extensibility, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void EnumExtensibilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((enum_extensibility(\"" << EnumExtensibilityAttr::ConvertKindToStr(getExtensibility()) << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::enum_extensibility(\"" << EnumExtensibilityAttr::ConvertKindToStr(getExtensibility()) << "\")]]";
+    break;
+  }
+}
+}
+
+const char *EnumExtensibilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "enum_extensibility";
+  case 1:
+    return "enum_extensibility";
+  }
+}
+
+ExclusiveTrylockFunctionAttr *ExclusiveTrylockFunctionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ExclusiveTrylockFunctionAttr(getLocation(), C, successValue, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ExclusiveTrylockFunctionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((exclusive_trylock_function(" << getSuccessValue() << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *ExclusiveTrylockFunctionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "exclusive_trylock_function";
+  }
+}
+
+ExternalSourceSymbolAttr *ExternalSourceSymbolAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ExternalSourceSymbolAttr(getLocation(), C, getLanguage(), getDefinedIn(), generatedDeclaration, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ExternalSourceSymbolAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((external_source_symbol(\"" << getLanguage() << "\", \"" << getDefinedIn() << "\", " << getGeneratedDeclaration() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::external_source_symbol(\"" << getLanguage() << "\", \"" << getDefinedIn() << "\", " << getGeneratedDeclaration() << ")]]";
+    break;
+  }
+}
+}
+
+const char *ExternalSourceSymbolAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "external_source_symbol";
+  case 1:
+    return "external_source_symbol";
+  }
+}
+
+FallThroughAttr *FallThroughAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FallThroughAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FallThroughAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " [[fallthrough]]";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::fallthrough]]";
+    break;
+  }
+}
+}
+
+const char *FallThroughAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "fallthrough";
+  case 1:
+    return "fallthrough";
+  }
+}
+
+FastCallAttr *FastCallAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FastCallAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FastCallAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((fastcall))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::fastcall]]";
+    break;
+  }
+  case 2 : {
+    OS << " __fastcall";
+    break;
+  }
+  case 3 : {
+    OS << " _fastcall";
+    break;
+  }
+}
+}
+
+const char *FastCallAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "fastcall";
+  case 1:
+    return "fastcall";
+  case 2:
+    return "__fastcall";
+  case 3:
+    return "_fastcall";
+  }
+}
+
+FinalAttr *FinalAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FinalAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FinalAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " final";
+    break;
+  }
+  case 1 : {
+    OS << " sealed";
+    break;
+  }
+}
+}
+
+const char *FinalAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "final";
+  case 1:
+    return "sealed";
+  }
+}
+
+FlagEnumAttr *FlagEnumAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FlagEnumAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FlagEnumAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((flag_enum))";
+    break;
+  }
+}
+}
+
+const char *FlagEnumAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "flag_enum";
+  }
+}
+
+FlattenAttr *FlattenAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FlattenAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FlattenAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((flatten))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::flatten]]";
+    break;
+  }
+}
+}
+
+const char *FlattenAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "flatten";
+  case 1:
+    return "flatten";
+  }
+}
+
+FormatAttr *FormatAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FormatAttr(getLocation(), C, type, formatIdx, firstArg, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FormatAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((format(";
+    OS << getType()->getName();
+    OS << ", " << getFormatIdx() << ", " << getFirstArg() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::format(";
+    OS << getType()->getName();
+    OS << ", " << getFormatIdx() << ", " << getFirstArg() << ")]]";
+    break;
+  }
+}
+}
+
+const char *FormatAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "format";
+  case 1:
+    return "format";
+  }
+}
+
+FormatArgAttr *FormatArgAttr::clone(ASTContext &C) const {
+  auto *A = new (C) FormatArgAttr(getLocation(), C, formatIdx, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void FormatArgAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((format_arg(" << getFormatIdx() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::format_arg(" << getFormatIdx() << ")]]";
+    break;
+  }
+}
+}
+
+const char *FormatArgAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "format_arg";
+  case 1:
+    return "format_arg";
+  }
+}
+
+GNUInlineAttr *GNUInlineAttr::clone(ASTContext &C) const {
+  auto *A = new (C) GNUInlineAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void GNUInlineAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((gnu_inline))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::gnu_inline]]";
+    break;
+  }
+}
+}
+
+const char *GNUInlineAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "gnu_inline";
+  case 1:
+    return "gnu_inline";
+  }
+}
+
+GuardedByAttr *GuardedByAttr::clone(ASTContext &C) const {
+  auto *A = new (C) GuardedByAttr(getLocation(), C, arg, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void GuardedByAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((guarded_by(" << getArg() << ")))";
+    break;
+  }
+}
+}
+
+const char *GuardedByAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "guarded_by";
+  }
+}
+
+GuardedVarAttr *GuardedVarAttr::clone(ASTContext &C) const {
+  auto *A = new (C) GuardedVarAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void GuardedVarAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((guarded_var))";
+    break;
+  }
+}
+}
+
+const char *GuardedVarAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "guarded_var";
+  }
+}
+
+HotAttr *HotAttr::clone(ASTContext &C) const {
+  auto *A = new (C) HotAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void HotAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((hot))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::hot]]";
+    break;
+  }
+}
+}
+
+const char *HotAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "hot";
+  case 1:
+    return "hot";
+  }
+}
+
+IBActionAttr *IBActionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) IBActionAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void IBActionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ibaction))";
+    break;
+  }
+}
+}
+
+const char *IBActionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ibaction";
+  }
+}
+
+IBOutletAttr *IBOutletAttr::clone(ASTContext &C) const {
+  auto *A = new (C) IBOutletAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void IBOutletAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((iboutlet))";
+    break;
+  }
+}
+}
+
+const char *IBOutletAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "iboutlet";
+  }
+}
+
+IBOutletCollectionAttr *IBOutletCollectionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) IBOutletCollectionAttr(getLocation(), C, interface_, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void IBOutletCollectionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((iboutletcollection(" << getInterface().getAsString() << ")))";
+    break;
+  }
+}
+}
+
+const char *IBOutletCollectionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "iboutletcollection";
+  }
+}
+
+IFuncAttr *IFuncAttr::clone(ASTContext &C) const {
+  auto *A = new (C) IFuncAttr(getLocation(), C, getResolver(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void IFuncAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ifunc(\"" << getResolver() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::ifunc(\"" << getResolver() << "\")]]";
+    break;
+  }
+}
+}
+
+const char *IFuncAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ifunc";
+  case 1:
+    return "ifunc";
+  }
+}
+
+InitPriorityAttr *InitPriorityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) InitPriorityAttr(getLocation(), C, priority, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void InitPriorityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((init_priority(" << getPriority() << ")))";
+    break;
+  }
+}
+}
+
+const char *InitPriorityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "init_priority";
+  }
+}
+
+InitSegAttr *InitSegAttr::clone(ASTContext &C) const {
+  auto *A = new (C) InitSegAttr(getLocation(), C, getSection(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void InitSegAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << "#pragma init_seg ";
+    printPrettyPragma(OS, Policy);
+    OS << "\n";    break;
+  }
+}
+}
+
+const char *InitSegAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "init_seg";
+  }
+}
+
+IntelOclBiccAttr *IntelOclBiccAttr::clone(ASTContext &C) const {
+  auto *A = new (C) IntelOclBiccAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void IntelOclBiccAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((intel_ocl_bicc))";
+    break;
+  }
+}
+}
+
+const char *IntelOclBiccAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "intel_ocl_bicc";
+  }
+}
+
+InternalLinkageAttr *InternalLinkageAttr::clone(ASTContext &C) const {
+  auto *A = new (C) InternalLinkageAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void InternalLinkageAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((internal_linkage))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::internal_linkage]]";
+    break;
+  }
+}
+}
+
+const char *InternalLinkageAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "internal_linkage";
+  case 1:
+    return "internal_linkage";
+  }
+}
+
+LTOVisibilityPublicAttr *LTOVisibilityPublicAttr::clone(ASTContext &C) const {
+  auto *A = new (C) LTOVisibilityPublicAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void LTOVisibilityPublicAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " [[clang::lto_visibility_public]]";
+    break;
+  }
+}
+}
+
+const char *LTOVisibilityPublicAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "lto_visibility_public";
+  }
+}
+
+LayoutVersionAttr *LayoutVersionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) LayoutVersionAttr(getLocation(), C, version, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void LayoutVersionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(layout_version(" << getVersion() << "))";
+    break;
+  }
+}
+}
+
+const char *LayoutVersionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "layout_version";
+  }
+}
+
+LockReturnedAttr *LockReturnedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) LockReturnedAttr(getLocation(), C, arg, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void LockReturnedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((lock_returned(" << getArg() << ")))";
+    break;
+  }
+}
+}
+
+const char *LockReturnedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "lock_returned";
+  }
+}
+
+LocksExcludedAttr *LocksExcludedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) LocksExcludedAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void LocksExcludedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((locks_excluded(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *LocksExcludedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "locks_excluded";
+  }
+}
+
+LoopHintAttr *LoopHintAttr::clone(ASTContext &C) const {
+  auto *A = new (C) LoopHintAttr(getLocation(), C, option, state, value, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void LoopHintAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << "#pragma clang loop ";
+    printPrettyPragma(OS, Policy);
+    OS << "\n";    break;
+  }
+  case 1 : {
+    OS << "#pragma unroll ";
+    printPrettyPragma(OS, Policy);
+    OS << "\n";    break;
+  }
+  case 2 : {
+    OS << "#pragma nounroll ";
+    printPrettyPragma(OS, Policy);
+    OS << "\n";    break;
+  }
+}
+}
+
+const char *LoopHintAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "loop";
+  case 1:
+    return "unroll";
+  case 2:
+    return "nounroll";
+  }
+}
+
+MSABIAttr *MSABIAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MSABIAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MSABIAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ms_abi))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::ms_abi]]";
+    break;
+  }
+}
+}
+
+const char *MSABIAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ms_abi";
+  case 1:
+    return "ms_abi";
+  }
+}
+
+MSInheritanceAttr *MSInheritanceAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MSInheritanceAttr(getLocation(), C, bestCase, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MSInheritanceAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __single_inheritance(" << getBestCase() << ")";
+    break;
+  }
+  case 1 : {
+    OS << " __multiple_inheritance(" << getBestCase() << ")";
+    break;
+  }
+  case 2 : {
+    OS << " __virtual_inheritance(" << getBestCase() << ")";
+    break;
+  }
+  case 3 : {
+    OS << " __unspecified_inheritance(" << getBestCase() << ")";
+    break;
+  }
+}
+}
+
+const char *MSInheritanceAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "__single_inheritance";
+  case 1:
+    return "__multiple_inheritance";
+  case 2:
+    return "__virtual_inheritance";
+  case 3:
+    return "__unspecified_inheritance";
+  }
+}
+
+MSNoVTableAttr *MSNoVTableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MSNoVTableAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MSNoVTableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(novtable)";
+    break;
+  }
+}
+}
+
+const char *MSNoVTableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "novtable";
+  }
+}
+
+MSP430InterruptAttr *MSP430InterruptAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MSP430InterruptAttr(getLocation(), C, number, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MSP430InterruptAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((interrupt(" << getNumber() << ")))";
+    break;
+  }
+}
+}
+
+const char *MSP430InterruptAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "interrupt";
+  }
+}
+
+MSStructAttr *MSStructAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MSStructAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MSStructAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ms_struct))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::ms_struct]]";
+    break;
+  }
+}
+}
+
+const char *MSStructAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ms_struct";
+  case 1:
+    return "ms_struct";
+  }
+}
+
+MSVtorDispAttr *MSVtorDispAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MSVtorDispAttr(getLocation(), C, vdm, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MSVtorDispAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *MSVtorDispAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+MaxFieldAlignmentAttr *MaxFieldAlignmentAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MaxFieldAlignmentAttr(getLocation(), C, alignment, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MaxFieldAlignmentAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *MaxFieldAlignmentAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+MayAliasAttr *MayAliasAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MayAliasAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MayAliasAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((may_alias))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::may_alias]]";
+    break;
+  }
+}
+}
+
+const char *MayAliasAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "may_alias";
+  case 1:
+    return "may_alias";
+  }
+}
+
+MinSizeAttr *MinSizeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MinSizeAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MinSizeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((minsize))";
+    break;
+  }
+}
+}
+
+const char *MinSizeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "minsize";
+  }
+}
+
+Mips16Attr *Mips16Attr::clone(ASTContext &C) const {
+  auto *A = new (C) Mips16Attr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void Mips16Attr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((mips16))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::mips16]]";
+    break;
+  }
+}
+}
+
+const char *Mips16Attr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "mips16";
+  case 1:
+    return "mips16";
+  }
+}
+
+MipsInterruptAttr *MipsInterruptAttr::clone(ASTContext &C) const {
+  auto *A = new (C) MipsInterruptAttr(getLocation(), C, interrupt, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void MipsInterruptAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((interrupt(\"" << MipsInterruptAttr::ConvertInterruptTypeToStr(getInterrupt()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *MipsInterruptAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "interrupt";
+  }
+}
+
+ModeAttr *ModeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ModeAttr(getLocation(), C, mode, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ModeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((mode(";
+    OS << getMode()->getName();
+    OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::mode(";
+    OS << getMode()->getName();
+    OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *ModeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "mode";
+  case 1:
+    return "mode";
+  }
+}
+
+NSConsumedAttr *NSConsumedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NSConsumedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NSConsumedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ns_consumed))";
+    break;
+  }
+}
+}
+
+const char *NSConsumedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ns_consumed";
+  }
+}
+
+NSConsumesSelfAttr *NSConsumesSelfAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NSConsumesSelfAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NSConsumesSelfAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ns_consumes_self))";
+    break;
+  }
+}
+}
+
+const char *NSConsumesSelfAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ns_consumes_self";
+  }
+}
+
+NSReturnsAutoreleasedAttr *NSReturnsAutoreleasedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NSReturnsAutoreleasedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NSReturnsAutoreleasedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ns_returns_autoreleased))";
+    break;
+  }
+}
+}
+
+const char *NSReturnsAutoreleasedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ns_returns_autoreleased";
+  }
+}
+
+NSReturnsNotRetainedAttr *NSReturnsNotRetainedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NSReturnsNotRetainedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NSReturnsNotRetainedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ns_returns_not_retained))";
+    break;
+  }
+}
+}
+
+const char *NSReturnsNotRetainedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ns_returns_not_retained";
+  }
+}
+
+NSReturnsRetainedAttr *NSReturnsRetainedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NSReturnsRetainedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NSReturnsRetainedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ns_returns_retained))";
+    break;
+  }
+}
+}
+
+const char *NSReturnsRetainedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ns_returns_retained";
+  }
+}
+
+NakedAttr *NakedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NakedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NakedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((naked))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::naked]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(naked)";
+    break;
+  }
+}
+}
+
+const char *NakedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "naked";
+  case 1:
+    return "naked";
+  case 2:
+    return "naked";
+  }
+}
+
+NoAliasAttr *NoAliasAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoAliasAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoAliasAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(noalias)";
+    break;
+  }
+}
+}
+
+const char *NoAliasAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "noalias";
+  }
+}
+
+NoCommonAttr *NoCommonAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoCommonAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoCommonAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((nocommon))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::nocommon]]";
+    break;
+  }
+}
+}
+
+const char *NoCommonAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "nocommon";
+  case 1:
+    return "nocommon";
+  }
+}
+
+NoDebugAttr *NoDebugAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoDebugAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoDebugAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((nodebug))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::nodebug]]";
+    break;
+  }
+}
+}
+
+const char *NoDebugAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "nodebug";
+  case 1:
+    return "nodebug";
+  }
+}
+
+NoDuplicateAttr *NoDuplicateAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoDuplicateAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoDuplicateAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((noduplicate))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::noduplicate]]";
+    break;
+  }
+}
+}
+
+const char *NoDuplicateAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "noduplicate";
+  case 1:
+    return "noduplicate";
+  }
+}
+
+NoInlineAttr *NoInlineAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoInlineAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoInlineAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((noinline))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::noinline]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(noinline)";
+    break;
+  }
+}
+}
+
+const char *NoInlineAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "noinline";
+  case 1:
+    return "noinline";
+  case 2:
+    return "noinline";
+  }
+}
+
+NoInstrumentFunctionAttr *NoInstrumentFunctionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoInstrumentFunctionAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoInstrumentFunctionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((no_instrument_function))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::no_instrument_function]]";
+    break;
+  }
+}
+}
+
+const char *NoInstrumentFunctionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "no_instrument_function";
+  case 1:
+    return "no_instrument_function";
+  }
+}
+
+NoMips16Attr *NoMips16Attr::clone(ASTContext &C) const {
+  auto *A = new (C) NoMips16Attr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoMips16Attr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((nomips16))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::nomips16]]";
+    break;
+  }
+}
+}
+
+const char *NoMips16Attr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "nomips16";
+  case 1:
+    return "nomips16";
+  }
+}
+
+NoReturnAttr *NoReturnAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoReturnAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoReturnAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((noreturn))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::noreturn]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(noreturn)";
+    break;
+  }
+}
+}
+
+const char *NoReturnAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "noreturn";
+  case 1:
+    return "noreturn";
+  case 2:
+    return "noreturn";
+  }
+}
+
+NoSanitizeAttr *NoSanitizeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoSanitizeAttr(getLocation(), C, sanitizers_, sanitizers_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoSanitizeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((no_sanitize(";
+  bool isFirst = true;
+  for (const auto &Val : sanitizers()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << "\"" << Val << "\"";
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::no_sanitize(";
+  bool isFirst = true;
+  for (const auto &Val : sanitizers()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << "\"" << Val << "\"";
+  }
+  OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *NoSanitizeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "no_sanitize";
+  case 1:
+    return "no_sanitize";
+  }
+}
+
+NoSplitStackAttr *NoSplitStackAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoSplitStackAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoSplitStackAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((no_split_stack))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::no_split_stack]]";
+    break;
+  }
+}
+}
+
+const char *NoSplitStackAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "no_split_stack";
+  case 1:
+    return "no_split_stack";
+  }
+}
+
+NoThreadSafetyAnalysisAttr *NoThreadSafetyAnalysisAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoThreadSafetyAnalysisAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoThreadSafetyAnalysisAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((no_thread_safety_analysis))";
+    break;
+  }
+}
+}
+
+const char *NoThreadSafetyAnalysisAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "no_thread_safety_analysis";
+  }
+}
+
+NoThrowAttr *NoThrowAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NoThrowAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NoThrowAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((nothrow))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::nothrow]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(nothrow)";
+    break;
+  }
+}
+}
+
+const char *NoThrowAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "nothrow";
+  case 1:
+    return "nothrow";
+  case 2:
+    return "nothrow";
+  }
+}
+
+NonNullAttr *NonNullAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NonNullAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NonNullAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((nonnull(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::nonnull(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *NonNullAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "nonnull";
+  case 1:
+    return "nonnull";
+  }
+}
+
+NotTailCalledAttr *NotTailCalledAttr::clone(ASTContext &C) const {
+  auto *A = new (C) NotTailCalledAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void NotTailCalledAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((not_tail_called))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::not_tail_called]]";
+    break;
+  }
+}
+}
+
+const char *NotTailCalledAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "not_tail_called";
+  case 1:
+    return "not_tail_called";
+  }
+}
+
+OMPCaptureNoInitAttr *OMPCaptureNoInitAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OMPCaptureNoInitAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OMPCaptureNoInitAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *OMPCaptureNoInitAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+OMPDeclareSimdDeclAttr *OMPDeclareSimdDeclAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OMPDeclareSimdDeclAttr(getLocation(), C, branchState, simdlen, uniforms_, uniforms_Size, aligneds_, aligneds_Size, alignments_, alignments_Size, linears_, linears_Size, modifiers_, modifiers_Size, steps_, steps_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OMPDeclareSimdDeclAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << "#pragma omp declare simd ";
+    printPrettyPragma(OS, Policy);
+    OS << "\n";    break;
+  }
+}
+}
+
+const char *OMPDeclareSimdDeclAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "declare simd";
+  }
+}
+
+OMPDeclareTargetDeclAttr *OMPDeclareTargetDeclAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OMPDeclareTargetDeclAttr(getLocation(), C, mapType, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OMPDeclareTargetDeclAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << "#pragma omp declare target ";
+    printPrettyPragma(OS, Policy);
+    OS << "\n";    break;
+  }
+}
+}
+
+const char *OMPDeclareTargetDeclAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "declare target";
+  }
+}
+
+OMPThreadPrivateDeclAttr *OMPThreadPrivateDeclAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OMPThreadPrivateDeclAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OMPThreadPrivateDeclAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+}
+
+const char *OMPThreadPrivateDeclAttr::getSpelling() const {
+  return "(No spelling)";
+}
+
+ObjCBoxableAttr *ObjCBoxableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCBoxableAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCBoxableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_boxable))";
+    break;
+  }
+}
+}
+
+const char *ObjCBoxableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_boxable";
+  }
+}
+
+ObjCBridgeAttr *ObjCBridgeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCBridgeAttr(getLocation(), C, bridgedType, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCBridgeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_bridge(";
+    OS << getBridgedType()->getName();
+    OS << ")))";
+    break;
+  }
+}
+}
+
+const char *ObjCBridgeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_bridge";
+  }
+}
+
+ObjCBridgeMutableAttr *ObjCBridgeMutableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCBridgeMutableAttr(getLocation(), C, bridgedType, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCBridgeMutableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_bridge_mutable(";
+    OS << getBridgedType()->getName();
+    OS << ")))";
+    break;
+  }
+}
+}
+
+const char *ObjCBridgeMutableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_bridge_mutable";
+  }
+}
+
+ObjCBridgeRelatedAttr *ObjCBridgeRelatedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCBridgeRelatedAttr(getLocation(), C, relatedClass, classMethod, instanceMethod, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCBridgeRelatedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_bridge_related(";
+    OS << getRelatedClass()->getName();
+    OS << ", ";
+    if (getClassMethod()) OS << getClassMethod()->getName();
+    OS << ", ";
+    if (getInstanceMethod()) OS << getInstanceMethod()->getName();
+    OS << ")))";
+    break;
+  }
+}
+}
+
+const char *ObjCBridgeRelatedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_bridge_related";
+  }
+}
+
+ObjCDesignatedInitializerAttr *ObjCDesignatedInitializerAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCDesignatedInitializerAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCDesignatedInitializerAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_designated_initializer))";
+    break;
+  }
+}
+}
+
+const char *ObjCDesignatedInitializerAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_designated_initializer";
+  }
+}
+
+ObjCExceptionAttr *ObjCExceptionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCExceptionAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCExceptionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_exception))";
+    break;
+  }
+}
+}
+
+const char *ObjCExceptionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_exception";
+  }
+}
+
+ObjCExplicitProtocolImplAttr *ObjCExplicitProtocolImplAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCExplicitProtocolImplAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCExplicitProtocolImplAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_protocol_requires_explicit_implementation))";
+    break;
+  }
+}
+}
+
+const char *ObjCExplicitProtocolImplAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_protocol_requires_explicit_implementation";
+  }
+}
+
+ObjCIndependentClassAttr *ObjCIndependentClassAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCIndependentClassAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCIndependentClassAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_independent_class))";
+    break;
+  }
+}
+}
+
+const char *ObjCIndependentClassAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_independent_class";
+  }
+}
+
+ObjCMethodFamilyAttr *ObjCMethodFamilyAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCMethodFamilyAttr(getLocation(), C, family, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCMethodFamilyAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_method_family(\"" << ObjCMethodFamilyAttr::ConvertFamilyKindToStr(getFamily()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *ObjCMethodFamilyAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_method_family";
+  }
+}
+
+ObjCNSObjectAttr *ObjCNSObjectAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCNSObjectAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCNSObjectAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((NSObject))";
+    break;
+  }
+}
+}
+
+const char *ObjCNSObjectAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "NSObject";
+  }
+}
+
+ObjCPreciseLifetimeAttr *ObjCPreciseLifetimeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCPreciseLifetimeAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCPreciseLifetimeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_precise_lifetime))";
+    break;
+  }
+}
+}
+
+const char *ObjCPreciseLifetimeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_precise_lifetime";
+  }
+}
+
+ObjCRequiresPropertyDefsAttr *ObjCRequiresPropertyDefsAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCRequiresPropertyDefsAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCRequiresPropertyDefsAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_requires_property_definitions))";
+    break;
+  }
+}
+}
+
+const char *ObjCRequiresPropertyDefsAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_requires_property_definitions";
+  }
+}
+
+ObjCRequiresSuperAttr *ObjCRequiresSuperAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCRequiresSuperAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCRequiresSuperAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_requires_super))";
+    break;
+  }
+}
+}
+
+const char *ObjCRequiresSuperAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_requires_super";
+  }
+}
+
+ObjCReturnsInnerPointerAttr *ObjCReturnsInnerPointerAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCReturnsInnerPointerAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCReturnsInnerPointerAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_returns_inner_pointer))";
+    break;
+  }
+}
+}
+
+const char *ObjCReturnsInnerPointerAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_returns_inner_pointer";
+  }
+}
+
+ObjCRootClassAttr *ObjCRootClassAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCRootClassAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCRootClassAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_root_class))";
+    break;
+  }
+}
+}
+
+const char *ObjCRootClassAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_root_class";
+  }
+}
+
+ObjCRuntimeNameAttr *ObjCRuntimeNameAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCRuntimeNameAttr(getLocation(), C, getMetadataName(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCRuntimeNameAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_runtime_name(\"" << getMetadataName() << "\")))";
+    break;
+  }
+}
+}
+
+const char *ObjCRuntimeNameAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_runtime_name";
+  }
+}
+
+ObjCRuntimeVisibleAttr *ObjCRuntimeVisibleAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCRuntimeVisibleAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCRuntimeVisibleAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_runtime_visible))";
+    break;
+  }
+}
+}
+
+const char *ObjCRuntimeVisibleAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_runtime_visible";
+  }
+}
+
+ObjCSubclassingRestrictedAttr *ObjCSubclassingRestrictedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ObjCSubclassingRestrictedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ObjCSubclassingRestrictedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((objc_subclassing_restricted))";
+    break;
+  }
+}
+}
+
+const char *ObjCSubclassingRestrictedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "objc_subclassing_restricted";
+  }
+}
+
+OpenCLAccessAttr *OpenCLAccessAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OpenCLAccessAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OpenCLAccessAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __read_only";
+    break;
+  }
+  case 1 : {
+    OS << " read_only";
+    break;
+  }
+  case 2 : {
+    OS << " __write_only";
+    break;
+  }
+  case 3 : {
+    OS << " write_only";
+    break;
+  }
+  case 4 : {
+    OS << " __read_write";
+    break;
+  }
+  case 5 : {
+    OS << " read_write";
+    break;
+  }
+}
+}
+
+const char *OpenCLAccessAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "__read_only";
+  case 1:
+    return "read_only";
+  case 2:
+    return "__write_only";
+  case 3:
+    return "write_only";
+  case 4:
+    return "__read_write";
+  case 5:
+    return "read_write";
+  }
+}
+
+OpenCLKernelAttr *OpenCLKernelAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OpenCLKernelAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OpenCLKernelAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __kernel";
+    break;
+  }
+  case 1 : {
+    OS << " kernel";
+    break;
+  }
+}
+}
+
+const char *OpenCLKernelAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "__kernel";
+  case 1:
+    return "kernel";
+  }
+}
+
+OpenCLUnrollHintAttr *OpenCLUnrollHintAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OpenCLUnrollHintAttr(getLocation(), C, unrollHint, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OpenCLUnrollHintAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((opencl_unroll_hint(" << getUnrollHint() << ")))";
+    break;
+  }
+}
+}
+
+const char *OpenCLUnrollHintAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "opencl_unroll_hint";
+  }
+}
+
+OptimizeNoneAttr *OptimizeNoneAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OptimizeNoneAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OptimizeNoneAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((optnone))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::optnone]]";
+    break;
+  }
+}
+}
+
+const char *OptimizeNoneAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "optnone";
+  case 1:
+    return "optnone";
+  }
+}
+
+OverloadableAttr *OverloadableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OverloadableAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OverloadableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((overloadable))";
+    break;
+  }
+}
+}
+
+const char *OverloadableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "overloadable";
+  }
+}
+
+OverrideAttr *OverrideAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OverrideAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OverrideAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " override";
+    break;
+  }
+}
+}
+
+const char *OverrideAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "override";
+  }
+}
+
+OwnershipAttr *OwnershipAttr::clone(ASTContext &C) const {
+  auto *A = new (C) OwnershipAttr(getLocation(), C, module, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void OwnershipAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((ownership_holds(";
+    OS << getModule()->getName();
+    OS << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " __attribute__((ownership_returns(";
+    OS << getModule()->getName();
+    OS << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((ownership_takes(";
+    OS << getModule()->getName();
+    OS << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *OwnershipAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "ownership_holds";
+  case 1:
+    return "ownership_returns";
+  case 2:
+    return "ownership_takes";
+  }
+}
+
+PackedAttr *PackedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PackedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PackedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((packed))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::packed]]";
+    break;
+  }
+}
+}
+
+const char *PackedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "packed";
+  case 1:
+    return "packed";
+  }
+}
+
+ParamTypestateAttr *ParamTypestateAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ParamTypestateAttr(getLocation(), C, paramState, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ParamTypestateAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((param_typestate(\"" << ParamTypestateAttr::ConvertConsumedStateToStr(getParamState()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *ParamTypestateAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "param_typestate";
+  }
+}
+
+PascalAttr *PascalAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PascalAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PascalAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((pascal))";
+    break;
+  }
+  case 1 : {
+    OS << " __pascal";
+    break;
+  }
+  case 2 : {
+    OS << " _pascal";
+    break;
+  }
+}
+}
+
+const char *PascalAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "pascal";
+  case 1:
+    return "__pascal";
+  case 2:
+    return "_pascal";
+  }
+}
+
+PassObjectSizeAttr *PassObjectSizeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PassObjectSizeAttr(getLocation(), C, type, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PassObjectSizeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((pass_object_size(" << getType() << ")))";
+    break;
+  }
+}
+}
+
+const char *PassObjectSizeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "pass_object_size";
+  }
+}
+
+PcsAttr *PcsAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PcsAttr(getLocation(), C, pCS, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PcsAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((pcs(\"" << PcsAttr::ConvertPCSTypeToStr(getPCS()) << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::pcs(\"" << PcsAttr::ConvertPCSTypeToStr(getPCS()) << "\")]]";
+    break;
+  }
+}
+}
+
+const char *PcsAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "pcs";
+  case 1:
+    return "pcs";
+  }
+}
+
+PreserveAllAttr *PreserveAllAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PreserveAllAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PreserveAllAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((preserve_all))";
+    break;
+  }
+}
+}
+
+const char *PreserveAllAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "preserve_all";
+  }
+}
+
+PreserveMostAttr *PreserveMostAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PreserveMostAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PreserveMostAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((preserve_most))";
+    break;
+  }
+}
+}
+
+const char *PreserveMostAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "preserve_most";
+  }
+}
+
+PtGuardedByAttr *PtGuardedByAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PtGuardedByAttr(getLocation(), C, arg, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PtGuardedByAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((pt_guarded_by(" << getArg() << ")))";
+    break;
+  }
+}
+}
+
+const char *PtGuardedByAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "pt_guarded_by";
+  }
+}
+
+PtGuardedVarAttr *PtGuardedVarAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PtGuardedVarAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PtGuardedVarAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((pt_guarded_var))";
+    break;
+  }
+}
+}
+
+const char *PtGuardedVarAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "pt_guarded_var";
+  }
+}
+
+PureAttr *PureAttr::clone(ASTContext &C) const {
+  auto *A = new (C) PureAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void PureAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((pure))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::pure]]";
+    break;
+  }
+}
+}
+
+const char *PureAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "pure";
+  case 1:
+    return "pure";
+  }
+}
+
+RegCallAttr *RegCallAttr::clone(ASTContext &C) const {
+  auto *A = new (C) RegCallAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void RegCallAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((regcall))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::regcall]]";
+    break;
+  }
+  case 2 : {
+    OS << " __regcall";
+    break;
+  }
+}
+}
+
+const char *RegCallAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "regcall";
+  case 1:
+    return "regcall";
+  case 2:
+    return "__regcall";
+  }
+}
+
+ReleaseCapabilityAttr *ReleaseCapabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ReleaseCapabilityAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ReleaseCapabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((release_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::release_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((release_shared_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 3 : {
+    OS << " [[clang::release_shared_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 4 : {
+    OS << " __attribute__((release_generic_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 5 : {
+    OS << " [[clang::release_generic_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 6 : {
+    OS << " __attribute__((unlock_function(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *ReleaseCapabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "release_capability";
+  case 1:
+    return "release_capability";
+  case 2:
+    return "release_shared_capability";
+  case 3:
+    return "release_shared_capability";
+  case 4:
+    return "release_generic_capability";
+  case 5:
+    return "release_generic_capability";
+  case 6:
+    return "unlock_function";
+  }
+}
+
+RenderScriptKernelAttr *RenderScriptKernelAttr::clone(ASTContext &C) const {
+  auto *A = new (C) RenderScriptKernelAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void RenderScriptKernelAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((kernel))";
+    break;
+  }
+}
+}
+
+const char *RenderScriptKernelAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "kernel";
+  }
+}
+
+ReqdWorkGroupSizeAttr *ReqdWorkGroupSizeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ReqdWorkGroupSizeAttr(getLocation(), C, xDim, yDim, zDim, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ReqdWorkGroupSizeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((reqd_work_group_size(" << getXDim() << ", " << getYDim() << ", " << getZDim() << ")))";
+    break;
+  }
+}
+}
+
+const char *ReqdWorkGroupSizeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "reqd_work_group_size";
+  }
+}
+
+RequireConstantInitAttr *RequireConstantInitAttr::clone(ASTContext &C) const {
+  auto *A = new (C) RequireConstantInitAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void RequireConstantInitAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((require_constant_initialization))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::require_constant_initialization]]";
+    break;
+  }
+}
+}
+
+const char *RequireConstantInitAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "require_constant_initialization";
+  case 1:
+    return "require_constant_initialization";
+  }
+}
+
+RequiresCapabilityAttr *RequiresCapabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) RequiresCapabilityAttr(getLocation(), C, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void RequiresCapabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((requires_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::requires_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((exclusive_locks_required(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 3 : {
+    OS << " __attribute__((requires_shared_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 4 : {
+    OS << " [[clang::requires_shared_capability(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 5 : {
+    OS << " __attribute__((shared_locks_required(";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *RequiresCapabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "requires_capability";
+  case 1:
+    return "requires_capability";
+  case 2:
+    return "exclusive_locks_required";
+  case 3:
+    return "requires_shared_capability";
+  case 4:
+    return "requires_shared_capability";
+  case 5:
+    return "shared_locks_required";
+  }
+}
+
+RestrictAttr *RestrictAttr::clone(ASTContext &C) const {
+  auto *A = new (C) RestrictAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void RestrictAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(restrict)";
+    break;
+  }
+  case 1 : {
+    OS << " __attribute__((malloc))";
+    break;
+  }
+  case 2 : {
+    OS << " [[gnu::malloc]]";
+    break;
+  }
+}
+}
+
+const char *RestrictAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "restrict";
+  case 1:
+    return "malloc";
+  case 2:
+    return "malloc";
+  }
+}
+
+ReturnTypestateAttr *ReturnTypestateAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ReturnTypestateAttr(getLocation(), C, state, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ReturnTypestateAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((return_typestate(\"" << ReturnTypestateAttr::ConvertConsumedStateToStr(getState()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *ReturnTypestateAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "return_typestate";
+  }
+}
+
+ReturnsNonNullAttr *ReturnsNonNullAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ReturnsNonNullAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ReturnsNonNullAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((returns_nonnull))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::returns_nonnull]]";
+    break;
+  }
+}
+}
+
+const char *ReturnsNonNullAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "returns_nonnull";
+  case 1:
+    return "returns_nonnull";
+  }
+}
+
+ReturnsTwiceAttr *ReturnsTwiceAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ReturnsTwiceAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ReturnsTwiceAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((returns_twice))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::returns_twice]]";
+    break;
+  }
+}
+}
+
+const char *ReturnsTwiceAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "returns_twice";
+  case 1:
+    return "returns_twice";
+  }
+}
+
+ScopedLockableAttr *ScopedLockableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ScopedLockableAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ScopedLockableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((scoped_lockable))";
+    break;
+  }
+}
+}
+
+const char *ScopedLockableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "scoped_lockable";
+  }
+}
+
+SectionAttr *SectionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SectionAttr(getLocation(), C, getName(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SectionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((section(\"" << getName() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::section(\"" << getName() << "\")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __declspec(allocate(\"" << getName() << "\"))";
+    break;
+  }
+}
+}
+
+const char *SectionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "section";
+  case 1:
+    return "section";
+  case 2:
+    return "allocate";
+  }
+}
+
+SelectAnyAttr *SelectAnyAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SelectAnyAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SelectAnyAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(selectany)";
+    break;
+  }
+}
+}
+
+const char *SelectAnyAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "selectany";
+  }
+}
+
+SentinelAttr *SentinelAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SentinelAttr(getLocation(), C, sentinel, nullPos, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SentinelAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((sentinel(" << getSentinel() << ", " << getNullPos() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::sentinel(" << getSentinel() << ", " << getNullPos() << ")]]";
+    break;
+  }
+}
+}
+
+const char *SentinelAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "sentinel";
+  case 1:
+    return "sentinel";
+  }
+}
+
+SetTypestateAttr *SetTypestateAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SetTypestateAttr(getLocation(), C, newState, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SetTypestateAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((set_typestate(\"" << SetTypestateAttr::ConvertConsumedStateToStr(getNewState()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *SetTypestateAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "set_typestate";
+  }
+}
+
+SharedTrylockFunctionAttr *SharedTrylockFunctionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SharedTrylockFunctionAttr(getLocation(), C, successValue, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SharedTrylockFunctionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((shared_trylock_function(" << getSuccessValue() << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+}
+}
+
+const char *SharedTrylockFunctionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "shared_trylock_function";
+  }
+}
+
+StdCallAttr *StdCallAttr::clone(ASTContext &C) const {
+  auto *A = new (C) StdCallAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void StdCallAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((stdcall))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::stdcall]]";
+    break;
+  }
+  case 2 : {
+    OS << " __stdcall";
+    break;
+  }
+  case 3 : {
+    OS << " _stdcall";
+    break;
+  }
+}
+}
+
+const char *StdCallAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "stdcall";
+  case 1:
+    return "stdcall";
+  case 2:
+    return "__stdcall";
+  case 3:
+    return "_stdcall";
+  }
+}
+
+SuppressAttr *SuppressAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SuppressAttr(getLocation(), C, diagnosticIdentifiers_, diagnosticIdentifiers_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SuppressAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " [[gsl::suppress(";
+  bool isFirst = true;
+  for (const auto &Val : diagnosticIdentifiers()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << "\"" << Val << "\"";
+  }
+  OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *SuppressAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "suppress";
+  }
+}
+
+SwiftCallAttr *SwiftCallAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SwiftCallAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SwiftCallAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((swiftcall))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::swiftcall]]";
+    break;
+  }
+}
+}
+
+const char *SwiftCallAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "swiftcall";
+  case 1:
+    return "swiftcall";
+  }
+}
+
+SwiftContextAttr *SwiftContextAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SwiftContextAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SwiftContextAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((swift_context))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::swift_context]]";
+    break;
+  }
+}
+}
+
+const char *SwiftContextAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "swift_context";
+  case 1:
+    return "swift_context";
+  }
+}
+
+SwiftErrorResultAttr *SwiftErrorResultAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SwiftErrorResultAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SwiftErrorResultAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((swift_error_result))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::swift_error_result]]";
+    break;
+  }
+}
+}
+
+const char *SwiftErrorResultAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "swift_error_result";
+  case 1:
+    return "swift_error_result";
+  }
+}
+
+SwiftIndirectResultAttr *SwiftIndirectResultAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SwiftIndirectResultAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SwiftIndirectResultAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((swift_indirect_result))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::swift_indirect_result]]";
+    break;
+  }
+}
+}
+
+const char *SwiftIndirectResultAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "swift_indirect_result";
+  case 1:
+    return "swift_indirect_result";
+  }
+}
+
+SysVABIAttr *SysVABIAttr::clone(ASTContext &C) const {
+  auto *A = new (C) SysVABIAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void SysVABIAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((sysv_abi))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::sysv_abi]]";
+    break;
+  }
+}
+}
+
+const char *SysVABIAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "sysv_abi";
+  case 1:
+    return "sysv_abi";
+  }
+}
+
+TLSModelAttr *TLSModelAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TLSModelAttr(getLocation(), C, getModel(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TLSModelAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((tls_model(\"" << getModel() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::tls_model(\"" << getModel() << "\")]]";
+    break;
+  }
+}
+}
+
+const char *TLSModelAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "tls_model";
+  case 1:
+    return "tls_model";
+  }
+}
+
+TargetAttr *TargetAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TargetAttr(getLocation(), C, getFeaturesStr(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TargetAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((target(\"" << getFeaturesStr() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::target(\"" << getFeaturesStr() << "\")]]";
+    break;
+  }
+}
+}
+
+const char *TargetAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "target";
+  case 1:
+    return "target";
+  }
+}
+
+TestTypestateAttr *TestTypestateAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TestTypestateAttr(getLocation(), C, testState, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TestTypestateAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((test_typestate(\"" << TestTypestateAttr::ConvertConsumedStateToStr(getTestState()) << "\")))";
+    break;
+  }
+}
+}
+
+const char *TestTypestateAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "test_typestate";
+  }
+}
+
+ThisCallAttr *ThisCallAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ThisCallAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ThisCallAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((thiscall))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::thiscall]]";
+    break;
+  }
+  case 2 : {
+    OS << " __thiscall";
+    break;
+  }
+  case 3 : {
+    OS << " _thiscall";
+    break;
+  }
+}
+}
+
+const char *ThisCallAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "thiscall";
+  case 1:
+    return "thiscall";
+  case 2:
+    return "__thiscall";
+  case 3:
+    return "_thiscall";
+  }
+}
+
+ThreadAttr *ThreadAttr::clone(ASTContext &C) const {
+  auto *A = new (C) ThreadAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void ThreadAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(thread)";
+    break;
+  }
+}
+}
+
+const char *ThreadAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "thread";
+  }
+}
+
+TransparentUnionAttr *TransparentUnionAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TransparentUnionAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TransparentUnionAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((transparent_union))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::transparent_union]]";
+    break;
+  }
+}
+}
+
+const char *TransparentUnionAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "transparent_union";
+  case 1:
+    return "transparent_union";
+  }
+}
+
+TryAcquireCapabilityAttr *TryAcquireCapabilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TryAcquireCapabilityAttr(getLocation(), C, successValue, args_, args_Size, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TryAcquireCapabilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((try_acquire_capability(" << getSuccessValue() << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::try_acquire_capability(" << getSuccessValue() << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((try_acquire_shared_capability(" << getSuccessValue() << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")))";
+    break;
+  }
+  case 3 : {
+    OS << " [[clang::try_acquire_shared_capability(" << getSuccessValue() << ", ";
+  bool isFirst = true;
+  for (const auto &Val : args()) {
+    if (isFirst) isFirst = false;
+    else OS << ", ";
+    OS << Val;
+  }
+  OS << ")]]";
+    break;
+  }
+}
+}
+
+const char *TryAcquireCapabilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "try_acquire_capability";
+  case 1:
+    return "try_acquire_capability";
+  case 2:
+    return "try_acquire_shared_capability";
+  case 3:
+    return "try_acquire_shared_capability";
+  }
+}
+
+TypeTagForDatatypeAttr *TypeTagForDatatypeAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TypeTagForDatatypeAttr(getLocation(), C, argumentKind, matchingCType, layoutCompatible, mustBeNull, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TypeTagForDatatypeAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((type_tag_for_datatype(";
+    OS << getArgumentKind()->getName();
+    OS << ", " << getMatchingCType().getAsString() << ", " << getLayoutCompatible() << ", " << getMustBeNull() << ")))";
+    break;
+  }
+}
+}
+
+const char *TypeTagForDatatypeAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "type_tag_for_datatype";
+  }
+}
+
+TypeVisibilityAttr *TypeVisibilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) TypeVisibilityAttr(getLocation(), C, visibility, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void TypeVisibilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((type_visibility(\"" << TypeVisibilityAttr::ConvertVisibilityTypeToStr(getVisibility()) << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::type_visibility(\"" << TypeVisibilityAttr::ConvertVisibilityTypeToStr(getVisibility()) << "\")]]";
+    break;
+  }
+}
+}
+
+const char *TypeVisibilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "type_visibility";
+  case 1:
+    return "type_visibility";
+  }
+}
+
+UnavailableAttr *UnavailableAttr::clone(ASTContext &C) const {
+  auto *A = new (C) UnavailableAttr(getLocation(), C, getMessage(), implicitReason, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void UnavailableAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((unavailable(\"" << getMessage() << "\")))";
+    break;
+  }
+}
+}
+
+const char *UnavailableAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "unavailable";
+  }
+}
+
+UnusedAttr *UnusedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) UnusedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void UnusedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " [[maybe_unused]]";
+    break;
+  }
+  case 1 : {
+    OS << " __attribute__((unused))";
+    break;
+  }
+  case 2 : {
+    OS << " [[gnu::unused]]";
+    break;
+  }
+}
+}
+
+const char *UnusedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "maybe_unused";
+  case 1:
+    return "unused";
+  case 2:
+    return "unused";
+  }
+}
+
+UsedAttr *UsedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) UsedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void UsedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((used))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::used]]";
+    break;
+  }
+}
+}
+
+const char *UsedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "used";
+  case 1:
+    return "used";
+  }
+}
+
+UuidAttr *UuidAttr::clone(ASTContext &C) const {
+  auto *A = new (C) UuidAttr(getLocation(), C, getGuid(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void UuidAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __declspec(uuid(\"" << getGuid() << "\"))";
+    break;
+  }
+  case 1 : {
+    OS << "[uuid(\"" << getGuid() << "\")]";
+    break;
+  }
+}
+}
+
+const char *UuidAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "uuid";
+  case 1:
+    return "uuid";
+  }
+}
+
+VecReturnAttr *VecReturnAttr::clone(ASTContext &C) const {
+  auto *A = new (C) VecReturnAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void VecReturnAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((vecreturn))";
+    break;
+  }
+}
+}
+
+const char *VecReturnAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "vecreturn";
+  }
+}
+
+VecTypeHintAttr *VecTypeHintAttr::clone(ASTContext &C) const {
+  auto *A = new (C) VecTypeHintAttr(getLocation(), C, typeHint, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void VecTypeHintAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((vec_type_hint(" << getTypeHint().getAsString() << ")))";
+    break;
+  }
+}
+}
+
+const char *VecTypeHintAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "vec_type_hint";
+  }
+}
+
+VectorCallAttr *VectorCallAttr::clone(ASTContext &C) const {
+  auto *A = new (C) VectorCallAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void VectorCallAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((vectorcall))";
+    break;
+  }
+  case 1 : {
+    OS << " __vectorcall";
+    break;
+  }
+  case 2 : {
+    OS << " _vectorcall";
+    break;
+  }
+}
+}
+
+const char *VectorCallAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "vectorcall";
+  case 1:
+    return "__vectorcall";
+  case 2:
+    return "_vectorcall";
+  }
+}
+
+VisibilityAttr *VisibilityAttr::clone(ASTContext &C) const {
+  auto *A = new (C) VisibilityAttr(getLocation(), C, visibility, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void VisibilityAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((visibility(\"" << VisibilityAttr::ConvertVisibilityTypeToStr(getVisibility()) << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::visibility(\"" << VisibilityAttr::ConvertVisibilityTypeToStr(getVisibility()) << "\")]]";
+    break;
+  }
+}
+}
+
+const char *VisibilityAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "visibility";
+  case 1:
+    return "visibility";
+  }
+}
+
+WarnUnusedAttr *WarnUnusedAttr::clone(ASTContext &C) const {
+  auto *A = new (C) WarnUnusedAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void WarnUnusedAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((warn_unused))";
+    break;
+  }
+}
+}
+
+const char *WarnUnusedAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "warn_unused";
+  }
+}
+
+WarnUnusedResultAttr *WarnUnusedResultAttr::clone(ASTContext &C) const {
+  auto *A = new (C) WarnUnusedResultAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void WarnUnusedResultAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " [[nodiscard]]";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::warn_unused_result]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((warn_unused_result))";
+    break;
+  }
+  case 3 : {
+    OS << " [[gnu::warn_unused_result]]";
+    break;
+  }
+}
+}
+
+const char *WarnUnusedResultAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "nodiscard";
+  case 1:
+    return "warn_unused_result";
+  case 2:
+    return "warn_unused_result";
+  case 3:
+    return "warn_unused_result";
+  }
+}
+
+WeakAttr *WeakAttr::clone(ASTContext &C) const {
+  auto *A = new (C) WeakAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void WeakAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((weak))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::weak]]";
+    break;
+  }
+}
+}
+
+const char *WeakAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "weak";
+  case 1:
+    return "weak";
+  }
+}
+
+WeakImportAttr *WeakImportAttr::clone(ASTContext &C) const {
+  auto *A = new (C) WeakImportAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void WeakImportAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((weak_import))";
+    break;
+  }
+}
+}
+
+const char *WeakImportAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "weak_import";
+  }
+}
+
+WeakRefAttr *WeakRefAttr::clone(ASTContext &C) const {
+  auto *A = new (C) WeakRefAttr(getLocation(), C, getAliasee(), getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void WeakRefAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((weakref(\"" << getAliasee() << "\")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[gnu::weakref(\"" << getAliasee() << "\")]]";
+    break;
+  }
+}
+}
+
+const char *WeakRefAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "weakref";
+  case 1:
+    return "weakref";
+  }
+}
+
+WorkGroupSizeHintAttr *WorkGroupSizeHintAttr::clone(ASTContext &C) const {
+  auto *A = new (C) WorkGroupSizeHintAttr(getLocation(), C, xDim, yDim, zDim, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void WorkGroupSizeHintAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((work_group_size_hint(" << getXDim() << ", " << getYDim() << ", " << getZDim() << ")))";
+    break;
+  }
+}
+}
+
+const char *WorkGroupSizeHintAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "work_group_size_hint";
+  }
+}
+
+X86ForceAlignArgPointerAttr *X86ForceAlignArgPointerAttr::clone(ASTContext &C) const {
+  auto *A = new (C) X86ForceAlignArgPointerAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void X86ForceAlignArgPointerAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((force_align_arg_pointer))";
+    break;
+  }
+}
+}
+
+const char *X86ForceAlignArgPointerAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "force_align_arg_pointer";
+  }
+}
+
+XRayInstrumentAttr *XRayInstrumentAttr::clone(ASTContext &C) const {
+  auto *A = new (C) XRayInstrumentAttr(getLocation(), C, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void XRayInstrumentAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((xray_always_instrument))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::xray_always_instrument]]";
+    break;
+  }
+  case 2 : {
+    OS << " __attribute__((xray_never_instrument))";
+    break;
+  }
+  case 3 : {
+    OS << " [[clang::xray_never_instrument]]";
+    break;
+  }
+}
+}
+
+const char *XRayInstrumentAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "xray_always_instrument";
+  case 1:
+    return "xray_always_instrument";
+  case 2:
+    return "xray_never_instrument";
+  case 3:
+    return "xray_never_instrument";
+  }
+}
+
+XRayLogArgsAttr *XRayLogArgsAttr::clone(ASTContext &C) const {
+  auto *A = new (C) XRayLogArgsAttr(getLocation(), C, argumentCount, getSpellingListIndex());
+  A->Inherited = Inherited;
+  A->IsPackExpansion = IsPackExpansion;
+  A->Implicit = Implicit;
+  return A;
+}
+
+void XRayLogArgsAttr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    break;
+  case 0 : {
+    OS << " __attribute__((xray_log_args(" << getArgumentCount() << ")))";
+    break;
+  }
+  case 1 : {
+    OS << " [[clang::xray_log_args(" << getArgumentCount() << ")]]";
+    break;
+  }
+}
+}
+
+const char *XRayLogArgsAttr::getSpelling() const {
+  switch (SpellingListIndex) {
+  default:
+    llvm_unreachable("Unknown attribute spelling!");
+    return "(No spelling)";
+  case 0:
+    return "xray_log_args";
+  case 1:
+    return "xray_log_args";
+  }
+}
+
+const char *Attr::getSpelling() const {
+  switch (getKind()) {
+  case attr::AMDGPUFlatWorkGroupSize:
+    return cast<AMDGPUFlatWorkGroupSizeAttr>(this)->getSpelling();
+  case attr::AMDGPUNumSGPR:
+    return cast<AMDGPUNumSGPRAttr>(this)->getSpelling();
+  case attr::AMDGPUNumVGPR:
+    return cast<AMDGPUNumVGPRAttr>(this)->getSpelling();
+  case attr::AMDGPUWavesPerEU:
+    return cast<AMDGPUWavesPerEUAttr>(this)->getSpelling();
+  case attr::ARMInterrupt:
+    return cast<ARMInterruptAttr>(this)->getSpelling();
+  case attr::AVRInterrupt:
+    return cast<AVRInterruptAttr>(this)->getSpelling();
+  case attr::AVRSignal:
+    return cast<AVRSignalAttr>(this)->getSpelling();
+  case attr::AbiTag:
+    return cast<AbiTagAttr>(this)->getSpelling();
+  case attr::AcquireCapability:
+    return cast<AcquireCapabilityAttr>(this)->getSpelling();
+  case attr::AcquiredAfter:
+    return cast<AcquiredAfterAttr>(this)->getSpelling();
+  case attr::AcquiredBefore:
+    return cast<AcquiredBeforeAttr>(this)->getSpelling();
+  case attr::Alias:
+    return cast<AliasAttr>(this)->getSpelling();
+  case attr::AlignMac68k:
+    return cast<AlignMac68kAttr>(this)->getSpelling();
+  case attr::AlignValue:
+    return cast<AlignValueAttr>(this)->getSpelling();
+  case attr::Aligned:
+    return cast<AlignedAttr>(this)->getSpelling();
+  case attr::AllocAlign:
+    return cast<AllocAlignAttr>(this)->getSpelling();
+  case attr::AllocSize:
+    return cast<AllocSizeAttr>(this)->getSpelling();
+  case attr::AlwaysInline:
+    return cast<AlwaysInlineAttr>(this)->getSpelling();
+  case attr::AnalyzerNoReturn:
+    return cast<AnalyzerNoReturnAttr>(this)->getSpelling();
+  case attr::Annotate:
+    return cast<AnnotateAttr>(this)->getSpelling();
+  case attr::AnyX86Interrupt:
+    return cast<AnyX86InterruptAttr>(this)->getSpelling();
+  case attr::ArcWeakrefUnavailable:
+    return cast<ArcWeakrefUnavailableAttr>(this)->getSpelling();
+  case attr::ArgumentWithTypeTag:
+    return cast<ArgumentWithTypeTagAttr>(this)->getSpelling();
+  case attr::AsmLabel:
+    return cast<AsmLabelAttr>(this)->getSpelling();
+  case attr::AssertCapability:
+    return cast<AssertCapabilityAttr>(this)->getSpelling();
+  case attr::AssertExclusiveLock:
+    return cast<AssertExclusiveLockAttr>(this)->getSpelling();
+  case attr::AssertSharedLock:
+    return cast<AssertSharedLockAttr>(this)->getSpelling();
+  case attr::AssumeAligned:
+    return cast<AssumeAlignedAttr>(this)->getSpelling();
+  case attr::Availability:
+    return cast<AvailabilityAttr>(this)->getSpelling();
+  case attr::Blocks:
+    return cast<BlocksAttr>(this)->getSpelling();
+  case attr::C11NoReturn:
+    return cast<C11NoReturnAttr>(this)->getSpelling();
+  case attr::CDecl:
+    return cast<CDeclAttr>(this)->getSpelling();
+  case attr::CFAuditedTransfer:
+    return cast<CFAuditedTransferAttr>(this)->getSpelling();
+  case attr::CFConsumed:
+    return cast<CFConsumedAttr>(this)->getSpelling();
+  case attr::CFReturnsNotRetained:
+    return cast<CFReturnsNotRetainedAttr>(this)->getSpelling();
+  case attr::CFReturnsRetained:
+    return cast<CFReturnsRetainedAttr>(this)->getSpelling();
+  case attr::CFUnknownTransfer:
+    return cast<CFUnknownTransferAttr>(this)->getSpelling();
+  case attr::CUDAConstant:
+    return cast<CUDAConstantAttr>(this)->getSpelling();
+  case attr::CUDADevice:
+    return cast<CUDADeviceAttr>(this)->getSpelling();
+  case attr::CUDAGlobal:
+    return cast<CUDAGlobalAttr>(this)->getSpelling();
+  case attr::CUDAHost:
+    return cast<CUDAHostAttr>(this)->getSpelling();
+  case attr::CUDAInvalidTarget:
+    return cast<CUDAInvalidTargetAttr>(this)->getSpelling();
+  case attr::CUDALaunchBounds:
+    return cast<CUDALaunchBoundsAttr>(this)->getSpelling();
+  case attr::CUDAShared:
+    return cast<CUDASharedAttr>(this)->getSpelling();
+  case attr::CXX11NoReturn:
+    return cast<CXX11NoReturnAttr>(this)->getSpelling();
+  case attr::CallableWhen:
+    return cast<CallableWhenAttr>(this)->getSpelling();
+  case attr::Capability:
+    return cast<CapabilityAttr>(this)->getSpelling();
+  case attr::CapturedRecord:
+    return cast<CapturedRecordAttr>(this)->getSpelling();
+  case attr::CarriesDependency:
+    return cast<CarriesDependencyAttr>(this)->getSpelling();
+  case attr::Cleanup:
+    return cast<CleanupAttr>(this)->getSpelling();
+  case attr::Cold:
+    return cast<ColdAttr>(this)->getSpelling();
+  case attr::Common:
+    return cast<CommonAttr>(this)->getSpelling();
+  case attr::Const:
+    return cast<ConstAttr>(this)->getSpelling();
+  case attr::Constructor:
+    return cast<ConstructorAttr>(this)->getSpelling();
+  case attr::Consumable:
+    return cast<ConsumableAttr>(this)->getSpelling();
+  case attr::ConsumableAutoCast:
+    return cast<ConsumableAutoCastAttr>(this)->getSpelling();
+  case attr::ConsumableSetOnRead:
+    return cast<ConsumableSetOnReadAttr>(this)->getSpelling();
+  case attr::Convergent:
+    return cast<ConvergentAttr>(this)->getSpelling();
+  case attr::DLLExport:
+    return cast<DLLExportAttr>(this)->getSpelling();
+  case attr::DLLImport:
+    return cast<DLLImportAttr>(this)->getSpelling();
+  case attr::Deprecated:
+    return cast<DeprecatedAttr>(this)->getSpelling();
+  case attr::Destructor:
+    return cast<DestructorAttr>(this)->getSpelling();
+  case attr::DiagnoseIf:
+    return cast<DiagnoseIfAttr>(this)->getSpelling();
+  case attr::DisableTailCalls:
+    return cast<DisableTailCallsAttr>(this)->getSpelling();
+  case attr::EmptyBases:
+    return cast<EmptyBasesAttr>(this)->getSpelling();
+  case attr::EnableIf:
+    return cast<EnableIfAttr>(this)->getSpelling();
+  case attr::EnumExtensibility:
+    return cast<EnumExtensibilityAttr>(this)->getSpelling();
+  case attr::ExclusiveTrylockFunction:
+    return cast<ExclusiveTrylockFunctionAttr>(this)->getSpelling();
+  case attr::ExternalSourceSymbol:
+    return cast<ExternalSourceSymbolAttr>(this)->getSpelling();
+  case attr::FallThrough:
+    return cast<FallThroughAttr>(this)->getSpelling();
+  case attr::FastCall:
+    return cast<FastCallAttr>(this)->getSpelling();
+  case attr::Final:
+    return cast<FinalAttr>(this)->getSpelling();
+  case attr::FlagEnum:
+    return cast<FlagEnumAttr>(this)->getSpelling();
+  case attr::Flatten:
+    return cast<FlattenAttr>(this)->getSpelling();
+  case attr::Format:
+    return cast<FormatAttr>(this)->getSpelling();
+  case attr::FormatArg:
+    return cast<FormatArgAttr>(this)->getSpelling();
+  case attr::GNUInline:
+    return cast<GNUInlineAttr>(this)->getSpelling();
+  case attr::GuardedBy:
+    return cast<GuardedByAttr>(this)->getSpelling();
+  case attr::GuardedVar:
+    return cast<GuardedVarAttr>(this)->getSpelling();
+  case attr::Hot:
+    return cast<HotAttr>(this)->getSpelling();
+  case attr::IBAction:
+    return cast<IBActionAttr>(this)->getSpelling();
+  case attr::IBOutlet:
+    return cast<IBOutletAttr>(this)->getSpelling();
+  case attr::IBOutletCollection:
+    return cast<IBOutletCollectionAttr>(this)->getSpelling();
+  case attr::IFunc:
+    return cast<IFuncAttr>(this)->getSpelling();
+  case attr::InitPriority:
+    return cast<InitPriorityAttr>(this)->getSpelling();
+  case attr::InitSeg:
+    return cast<InitSegAttr>(this)->getSpelling();
+  case attr::IntelOclBicc:
+    return cast<IntelOclBiccAttr>(this)->getSpelling();
+  case attr::InternalLinkage:
+    return cast<InternalLinkageAttr>(this)->getSpelling();
+  case attr::LTOVisibilityPublic:
+    return cast<LTOVisibilityPublicAttr>(this)->getSpelling();
+  case attr::LayoutVersion:
+    return cast<LayoutVersionAttr>(this)->getSpelling();
+  case attr::LockReturned:
+    return cast<LockReturnedAttr>(this)->getSpelling();
+  case attr::LocksExcluded:
+    return cast<LocksExcludedAttr>(this)->getSpelling();
+  case attr::LoopHint:
+    return cast<LoopHintAttr>(this)->getSpelling();
+  case attr::MSABI:
+    return cast<MSABIAttr>(this)->getSpelling();
+  case attr::MSInheritance:
+    return cast<MSInheritanceAttr>(this)->getSpelling();
+  case attr::MSNoVTable:
+    return cast<MSNoVTableAttr>(this)->getSpelling();
+  case attr::MSP430Interrupt:
+    return cast<MSP430InterruptAttr>(this)->getSpelling();
+  case attr::MSStruct:
+    return cast<MSStructAttr>(this)->getSpelling();
+  case attr::MSVtorDisp:
+    return cast<MSVtorDispAttr>(this)->getSpelling();
+  case attr::MaxFieldAlignment:
+    return cast<MaxFieldAlignmentAttr>(this)->getSpelling();
+  case attr::MayAlias:
+    return cast<MayAliasAttr>(this)->getSpelling();
+  case attr::MinSize:
+    return cast<MinSizeAttr>(this)->getSpelling();
+  case attr::Mips16:
+    return cast<Mips16Attr>(this)->getSpelling();
+  case attr::MipsInterrupt:
+    return cast<MipsInterruptAttr>(this)->getSpelling();
+  case attr::Mode:
+    return cast<ModeAttr>(this)->getSpelling();
+  case attr::NSConsumed:
+    return cast<NSConsumedAttr>(this)->getSpelling();
+  case attr::NSConsumesSelf:
+    return cast<NSConsumesSelfAttr>(this)->getSpelling();
+  case attr::NSReturnsAutoreleased:
+    return cast<NSReturnsAutoreleasedAttr>(this)->getSpelling();
+  case attr::NSReturnsNotRetained:
+    return cast<NSReturnsNotRetainedAttr>(this)->getSpelling();
+  case attr::NSReturnsRetained:
+    return cast<NSReturnsRetainedAttr>(this)->getSpelling();
+  case attr::Naked:
+    return cast<NakedAttr>(this)->getSpelling();
+  case attr::NoAlias:
+    return cast<NoAliasAttr>(this)->getSpelling();
+  case attr::NoCommon:
+    return cast<NoCommonAttr>(this)->getSpelling();
+  case attr::NoDebug:
+    return cast<NoDebugAttr>(this)->getSpelling();
+  case attr::NoDuplicate:
+    return cast<NoDuplicateAttr>(this)->getSpelling();
+  case attr::NoInline:
+    return cast<NoInlineAttr>(this)->getSpelling();
+  case attr::NoInstrumentFunction:
+    return cast<NoInstrumentFunctionAttr>(this)->getSpelling();
+  case attr::NoMips16:
+    return cast<NoMips16Attr>(this)->getSpelling();
+  case attr::NoReturn:
+    return cast<NoReturnAttr>(this)->getSpelling();
+  case attr::NoSanitize:
+    return cast<NoSanitizeAttr>(this)->getSpelling();
+  case attr::NoSplitStack:
+    return cast<NoSplitStackAttr>(this)->getSpelling();
+  case attr::NoThreadSafetyAnalysis:
+    return cast<NoThreadSafetyAnalysisAttr>(this)->getSpelling();
+  case attr::NoThrow:
+    return cast<NoThrowAttr>(this)->getSpelling();
+  case attr::NonNull:
+    return cast<NonNullAttr>(this)->getSpelling();
+  case attr::NotTailCalled:
+    return cast<NotTailCalledAttr>(this)->getSpelling();
+  case attr::OMPCaptureNoInit:
+    return cast<OMPCaptureNoInitAttr>(this)->getSpelling();
+  case attr::OMPDeclareSimdDecl:
+    return cast<OMPDeclareSimdDeclAttr>(this)->getSpelling();
+  case attr::OMPDeclareTargetDecl:
+    return cast<OMPDeclareTargetDeclAttr>(this)->getSpelling();
+  case attr::OMPThreadPrivateDecl:
+    return cast<OMPThreadPrivateDeclAttr>(this)->getSpelling();
+  case attr::ObjCBoxable:
+    return cast<ObjCBoxableAttr>(this)->getSpelling();
+  case attr::ObjCBridge:
+    return cast<ObjCBridgeAttr>(this)->getSpelling();
+  case attr::ObjCBridgeMutable:
+    return cast<ObjCBridgeMutableAttr>(this)->getSpelling();
+  case attr::ObjCBridgeRelated:
+    return cast<ObjCBridgeRelatedAttr>(this)->getSpelling();
+  case attr::ObjCDesignatedInitializer:
+    return cast<ObjCDesignatedInitializerAttr>(this)->getSpelling();
+  case attr::ObjCException:
+    return cast<ObjCExceptionAttr>(this)->getSpelling();
+  case attr::ObjCExplicitProtocolImpl:
+    return cast<ObjCExplicitProtocolImplAttr>(this)->getSpelling();
+  case attr::ObjCIndependentClass:
+    return cast<ObjCIndependentClassAttr>(this)->getSpelling();
+  case attr::ObjCMethodFamily:
+    return cast<ObjCMethodFamilyAttr>(this)->getSpelling();
+  case attr::ObjCNSObject:
+    return cast<ObjCNSObjectAttr>(this)->getSpelling();
+  case attr::ObjCPreciseLifetime:
+    return cast<ObjCPreciseLifetimeAttr>(this)->getSpelling();
+  case attr::ObjCRequiresPropertyDefs:
+    return cast<ObjCRequiresPropertyDefsAttr>(this)->getSpelling();
+  case attr::ObjCRequiresSuper:
+    return cast<ObjCRequiresSuperAttr>(this)->getSpelling();
+  case attr::ObjCReturnsInnerPointer:
+    return cast<ObjCReturnsInnerPointerAttr>(this)->getSpelling();
+  case attr::ObjCRootClass:
+    return cast<ObjCRootClassAttr>(this)->getSpelling();
+  case attr::ObjCRuntimeName:
+    return cast<ObjCRuntimeNameAttr>(this)->getSpelling();
+  case attr::ObjCRuntimeVisible:
+    return cast<ObjCRuntimeVisibleAttr>(this)->getSpelling();
+  case attr::ObjCSubclassingRestricted:
+    return cast<ObjCSubclassingRestrictedAttr>(this)->getSpelling();
+  case attr::OpenCLAccess:
+    return cast<OpenCLAccessAttr>(this)->getSpelling();
+  case attr::OpenCLKernel:
+    return cast<OpenCLKernelAttr>(this)->getSpelling();
+  case attr::OpenCLUnrollHint:
+    return cast<OpenCLUnrollHintAttr>(this)->getSpelling();
+  case attr::OptimizeNone:
+    return cast<OptimizeNoneAttr>(this)->getSpelling();
+  case attr::Overloadable:
+    return cast<OverloadableAttr>(this)->getSpelling();
+  case attr::Override:
+    return cast<OverrideAttr>(this)->getSpelling();
+  case attr::Ownership:
+    return cast<OwnershipAttr>(this)->getSpelling();
+  case attr::Packed:
+    return cast<PackedAttr>(this)->getSpelling();
+  case attr::ParamTypestate:
+    return cast<ParamTypestateAttr>(this)->getSpelling();
+  case attr::Pascal:
+    return cast<PascalAttr>(this)->getSpelling();
+  case attr::PassObjectSize:
+    return cast<PassObjectSizeAttr>(this)->getSpelling();
+  case attr::Pcs:
+    return cast<PcsAttr>(this)->getSpelling();
+  case attr::PreserveAll:
+    return cast<PreserveAllAttr>(this)->getSpelling();
+  case attr::PreserveMost:
+    return cast<PreserveMostAttr>(this)->getSpelling();
+  case attr::PtGuardedBy:
+    return cast<PtGuardedByAttr>(this)->getSpelling();
+  case attr::PtGuardedVar:
+    return cast<PtGuardedVarAttr>(this)->getSpelling();
+  case attr::Pure:
+    return cast<PureAttr>(this)->getSpelling();
+  case attr::RegCall:
+    return cast<RegCallAttr>(this)->getSpelling();
+  case attr::ReleaseCapability:
+    return cast<ReleaseCapabilityAttr>(this)->getSpelling();
+  case attr::RenderScriptKernel:
+    return cast<RenderScriptKernelAttr>(this)->getSpelling();
+  case attr::ReqdWorkGroupSize:
+    return cast<ReqdWorkGroupSizeAttr>(this)->getSpelling();
+  case attr::RequireConstantInit:
+    return cast<RequireConstantInitAttr>(this)->getSpelling();
+  case attr::RequiresCapability:
+    return cast<RequiresCapabilityAttr>(this)->getSpelling();
+  case attr::Restrict:
+    return cast<RestrictAttr>(this)->getSpelling();
+  case attr::ReturnTypestate:
+    return cast<ReturnTypestateAttr>(this)->getSpelling();
+  case attr::ReturnsNonNull:
+    return cast<ReturnsNonNullAttr>(this)->getSpelling();
+  case attr::ReturnsTwice:
+    return cast<ReturnsTwiceAttr>(this)->getSpelling();
+  case attr::ScopedLockable:
+    return cast<ScopedLockableAttr>(this)->getSpelling();
+  case attr::Section:
+    return cast<SectionAttr>(this)->getSpelling();
+  case attr::SelectAny:
+    return cast<SelectAnyAttr>(this)->getSpelling();
+  case attr::Sentinel:
+    return cast<SentinelAttr>(this)->getSpelling();
+  case attr::SetTypestate:
+    return cast<SetTypestateAttr>(this)->getSpelling();
+  case attr::SharedTrylockFunction:
+    return cast<SharedTrylockFunctionAttr>(this)->getSpelling();
+  case attr::StdCall:
+    return cast<StdCallAttr>(this)->getSpelling();
+  case attr::Suppress:
+    return cast<SuppressAttr>(this)->getSpelling();
+  case attr::SwiftCall:
+    return cast<SwiftCallAttr>(this)->getSpelling();
+  case attr::SwiftContext:
+    return cast<SwiftContextAttr>(this)->getSpelling();
+  case attr::SwiftErrorResult:
+    return cast<SwiftErrorResultAttr>(this)->getSpelling();
+  case attr::SwiftIndirectResult:
+    return cast<SwiftIndirectResultAttr>(this)->getSpelling();
+  case attr::SysVABI:
+    return cast<SysVABIAttr>(this)->getSpelling();
+  case attr::TLSModel:
+    return cast<TLSModelAttr>(this)->getSpelling();
+  case attr::Target:
+    return cast<TargetAttr>(this)->getSpelling();
+  case attr::TestTypestate:
+    return cast<TestTypestateAttr>(this)->getSpelling();
+  case attr::ThisCall:
+    return cast<ThisCallAttr>(this)->getSpelling();
+  case attr::Thread:
+    return cast<ThreadAttr>(this)->getSpelling();
+  case attr::TransparentUnion:
+    return cast<TransparentUnionAttr>(this)->getSpelling();
+  case attr::TryAcquireCapability:
+    return cast<TryAcquireCapabilityAttr>(this)->getSpelling();
+  case attr::TypeTagForDatatype:
+    return cast<TypeTagForDatatypeAttr>(this)->getSpelling();
+  case attr::TypeVisibility:
+    return cast<TypeVisibilityAttr>(this)->getSpelling();
+  case attr::Unavailable:
+    return cast<UnavailableAttr>(this)->getSpelling();
+  case attr::Unused:
+    return cast<UnusedAttr>(this)->getSpelling();
+  case attr::Used:
+    return cast<UsedAttr>(this)->getSpelling();
+  case attr::Uuid:
+    return cast<UuidAttr>(this)->getSpelling();
+  case attr::VecReturn:
+    return cast<VecReturnAttr>(this)->getSpelling();
+  case attr::VecTypeHint:
+    return cast<VecTypeHintAttr>(this)->getSpelling();
+  case attr::VectorCall:
+    return cast<VectorCallAttr>(this)->getSpelling();
+  case attr::Visibility:
+    return cast<VisibilityAttr>(this)->getSpelling();
+  case attr::WarnUnused:
+    return cast<WarnUnusedAttr>(this)->getSpelling();
+  case attr::WarnUnusedResult:
+    return cast<WarnUnusedResultAttr>(this)->getSpelling();
+  case attr::Weak:
+    return cast<WeakAttr>(this)->getSpelling();
+  case attr::WeakImport:
+    return cast<WeakImportAttr>(this)->getSpelling();
+  case attr::WeakRef:
+    return cast<WeakRefAttr>(this)->getSpelling();
+  case attr::WorkGroupSizeHint:
+    return cast<WorkGroupSizeHintAttr>(this)->getSpelling();
+  case attr::X86ForceAlignArgPointer:
+    return cast<X86ForceAlignArgPointerAttr>(this)->getSpelling();
+  case attr::XRayInstrument:
+    return cast<XRayInstrumentAttr>(this)->getSpelling();
+  case attr::XRayLogArgs:
+    return cast<XRayLogArgsAttr>(this)->getSpelling();
+  }
+  llvm_unreachable("Unexpected attribute kind!");
+}
+
+Attr *Attr::clone(ASTContext &C) const {
+  switch (getKind()) {
+  case attr::AMDGPUFlatWorkGroupSize:
+    return cast<AMDGPUFlatWorkGroupSizeAttr>(this)->clone(C);
+  case attr::AMDGPUNumSGPR:
+    return cast<AMDGPUNumSGPRAttr>(this)->clone(C);
+  case attr::AMDGPUNumVGPR:
+    return cast<AMDGPUNumVGPRAttr>(this)->clone(C);
+  case attr::AMDGPUWavesPerEU:
+    return cast<AMDGPUWavesPerEUAttr>(this)->clone(C);
+  case attr::ARMInterrupt:
+    return cast<ARMInterruptAttr>(this)->clone(C);
+  case attr::AVRInterrupt:
+    return cast<AVRInterruptAttr>(this)->clone(C);
+  case attr::AVRSignal:
+    return cast<AVRSignalAttr>(this)->clone(C);
+  case attr::AbiTag:
+    return cast<AbiTagAttr>(this)->clone(C);
+  case attr::AcquireCapability:
+    return cast<AcquireCapabilityAttr>(this)->clone(C);
+  case attr::AcquiredAfter:
+    return cast<AcquiredAfterAttr>(this)->clone(C);
+  case attr::AcquiredBefore:
+    return cast<AcquiredBeforeAttr>(this)->clone(C);
+  case attr::Alias:
+    return cast<AliasAttr>(this)->clone(C);
+  case attr::AlignMac68k:
+    return cast<AlignMac68kAttr>(this)->clone(C);
+  case attr::AlignValue:
+    return cast<AlignValueAttr>(this)->clone(C);
+  case attr::Aligned:
+    return cast<AlignedAttr>(this)->clone(C);
+  case attr::AllocAlign:
+    return cast<AllocAlignAttr>(this)->clone(C);
+  case attr::AllocSize:
+    return cast<AllocSizeAttr>(this)->clone(C);
+  case attr::AlwaysInline:
+    return cast<AlwaysInlineAttr>(this)->clone(C);
+  case attr::AnalyzerNoReturn:
+    return cast<AnalyzerNoReturnAttr>(this)->clone(C);
+  case attr::Annotate:
+    return cast<AnnotateAttr>(this)->clone(C);
+  case attr::AnyX86Interrupt:
+    return cast<AnyX86InterruptAttr>(this)->clone(C);
+  case attr::ArcWeakrefUnavailable:
+    return cast<ArcWeakrefUnavailableAttr>(this)->clone(C);
+  case attr::ArgumentWithTypeTag:
+    return cast<ArgumentWithTypeTagAttr>(this)->clone(C);
+  case attr::AsmLabel:
+    return cast<AsmLabelAttr>(this)->clone(C);
+  case attr::AssertCapability:
+    return cast<AssertCapabilityAttr>(this)->clone(C);
+  case attr::AssertExclusiveLock:
+    return cast<AssertExclusiveLockAttr>(this)->clone(C);
+  case attr::AssertSharedLock:
+    return cast<AssertSharedLockAttr>(this)->clone(C);
+  case attr::AssumeAligned:
+    return cast<AssumeAlignedAttr>(this)->clone(C);
+  case attr::Availability:
+    return cast<AvailabilityAttr>(this)->clone(C);
+  case attr::Blocks:
+    return cast<BlocksAttr>(this)->clone(C);
+  case attr::C11NoReturn:
+    return cast<C11NoReturnAttr>(this)->clone(C);
+  case attr::CDecl:
+    return cast<CDeclAttr>(this)->clone(C);
+  case attr::CFAuditedTransfer:
+    return cast<CFAuditedTransferAttr>(this)->clone(C);
+  case attr::CFConsumed:
+    return cast<CFConsumedAttr>(this)->clone(C);
+  case attr::CFReturnsNotRetained:
+    return cast<CFReturnsNotRetainedAttr>(this)->clone(C);
+  case attr::CFReturnsRetained:
+    return cast<CFReturnsRetainedAttr>(this)->clone(C);
+  case attr::CFUnknownTransfer:
+    return cast<CFUnknownTransferAttr>(this)->clone(C);
+  case attr::CUDAConstant:
+    return cast<CUDAConstantAttr>(this)->clone(C);
+  case attr::CUDADevice:
+    return cast<CUDADeviceAttr>(this)->clone(C);
+  case attr::CUDAGlobal:
+    return cast<CUDAGlobalAttr>(this)->clone(C);
+  case attr::CUDAHost:
+    return cast<CUDAHostAttr>(this)->clone(C);
+  case attr::CUDAInvalidTarget:
+    return cast<CUDAInvalidTargetAttr>(this)->clone(C);
+  case attr::CUDALaunchBounds:
+    return cast<CUDALaunchBoundsAttr>(this)->clone(C);
+  case attr::CUDAShared:
+    return cast<CUDASharedAttr>(this)->clone(C);
+  case attr::CXX11NoReturn:
+    return cast<CXX11NoReturnAttr>(this)->clone(C);
+  case attr::CallableWhen:
+    return cast<CallableWhenAttr>(this)->clone(C);
+  case attr::Capability:
+    return cast<CapabilityAttr>(this)->clone(C);
+  case attr::CapturedRecord:
+    return cast<CapturedRecordAttr>(this)->clone(C);
+  case attr::CarriesDependency:
+    return cast<CarriesDependencyAttr>(this)->clone(C);
+  case attr::Cleanup:
+    return cast<CleanupAttr>(this)->clone(C);
+  case attr::Cold:
+    return cast<ColdAttr>(this)->clone(C);
+  case attr::Common:
+    return cast<CommonAttr>(this)->clone(C);
+  case attr::Const:
+    return cast<ConstAttr>(this)->clone(C);
+  case attr::Constructor:
+    return cast<ConstructorAttr>(this)->clone(C);
+  case attr::Consumable:
+    return cast<ConsumableAttr>(this)->clone(C);
+  case attr::ConsumableAutoCast:
+    return cast<ConsumableAutoCastAttr>(this)->clone(C);
+  case attr::ConsumableSetOnRead:
+    return cast<ConsumableSetOnReadAttr>(this)->clone(C);
+  case attr::Convergent:
+    return cast<ConvergentAttr>(this)->clone(C);
+  case attr::DLLExport:
+    return cast<DLLExportAttr>(this)->clone(C);
+  case attr::DLLImport:
+    return cast<DLLImportAttr>(this)->clone(C);
+  case attr::Deprecated:
+    return cast<DeprecatedAttr>(this)->clone(C);
+  case attr::Destructor:
+    return cast<DestructorAttr>(this)->clone(C);
+  case attr::DiagnoseIf:
+    return cast<DiagnoseIfAttr>(this)->clone(C);
+  case attr::DisableTailCalls:
+    return cast<DisableTailCallsAttr>(this)->clone(C);
+  case attr::EmptyBases:
+    return cast<EmptyBasesAttr>(this)->clone(C);
+  case attr::EnableIf:
+    return cast<EnableIfAttr>(this)->clone(C);
+  case attr::EnumExtensibility:
+    return cast<EnumExtensibilityAttr>(this)->clone(C);
+  case attr::ExclusiveTrylockFunction:
+    return cast<ExclusiveTrylockFunctionAttr>(this)->clone(C);
+  case attr::ExternalSourceSymbol:
+    return cast<ExternalSourceSymbolAttr>(this)->clone(C);
+  case attr::FallThrough:
+    return cast<FallThroughAttr>(this)->clone(C);
+  case attr::FastCall:
+    return cast<FastCallAttr>(this)->clone(C);
+  case attr::Final:
+    return cast<FinalAttr>(this)->clone(C);
+  case attr::FlagEnum:
+    return cast<FlagEnumAttr>(this)->clone(C);
+  case attr::Flatten:
+    return cast<FlattenAttr>(this)->clone(C);
+  case attr::Format:
+    return cast<FormatAttr>(this)->clone(C);
+  case attr::FormatArg:
+    return cast<FormatArgAttr>(this)->clone(C);
+  case attr::GNUInline:
+    return cast<GNUInlineAttr>(this)->clone(C);
+  case attr::GuardedBy:
+    return cast<GuardedByAttr>(this)->clone(C);
+  case attr::GuardedVar:
+    return cast<GuardedVarAttr>(this)->clone(C);
+  case attr::Hot:
+    return cast<HotAttr>(this)->clone(C);
+  case attr::IBAction:
+    return cast<IBActionAttr>(this)->clone(C);
+  case attr::IBOutlet:
+    return cast<IBOutletAttr>(this)->clone(C);
+  case attr::IBOutletCollection:
+    return cast<IBOutletCollectionAttr>(this)->clone(C);
+  case attr::IFunc:
+    return cast<IFuncAttr>(this)->clone(C);
+  case attr::InitPriority:
+    return cast<InitPriorityAttr>(this)->clone(C);
+  case attr::InitSeg:
+    return cast<InitSegAttr>(this)->clone(C);
+  case attr::IntelOclBicc:
+    return cast<IntelOclBiccAttr>(this)->clone(C);
+  case attr::InternalLinkage:
+    return cast<InternalLinkageAttr>(this)->clone(C);
+  case attr::LTOVisibilityPublic:
+    return cast<LTOVisibilityPublicAttr>(this)->clone(C);
+  case attr::LayoutVersion:
+    return cast<LayoutVersionAttr>(this)->clone(C);
+  case attr::LockReturned:
+    return cast<LockReturnedAttr>(this)->clone(C);
+  case attr::LocksExcluded:
+    return cast<LocksExcludedAttr>(this)->clone(C);
+  case attr::LoopHint:
+    return cast<LoopHintAttr>(this)->clone(C);
+  case attr::MSABI:
+    return cast<MSABIAttr>(this)->clone(C);
+  case attr::MSInheritance:
+    return cast<MSInheritanceAttr>(this)->clone(C);
+  case attr::MSNoVTable:
+    return cast<MSNoVTableAttr>(this)->clone(C);
+  case attr::MSP430Interrupt:
+    return cast<MSP430InterruptAttr>(this)->clone(C);
+  case attr::MSStruct:
+    return cast<MSStructAttr>(this)->clone(C);
+  case attr::MSVtorDisp:
+    return cast<MSVtorDispAttr>(this)->clone(C);
+  case attr::MaxFieldAlignment:
+    return cast<MaxFieldAlignmentAttr>(this)->clone(C);
+  case attr::MayAlias:
+    return cast<MayAliasAttr>(this)->clone(C);
+  case attr::MinSize:
+    return cast<MinSizeAttr>(this)->clone(C);
+  case attr::Mips16:
+    return cast<Mips16Attr>(this)->clone(C);
+  case attr::MipsInterrupt:
+    return cast<MipsInterruptAttr>(this)->clone(C);
+  case attr::Mode:
+    return cast<ModeAttr>(this)->clone(C);
+  case attr::NSConsumed:
+    return cast<NSConsumedAttr>(this)->clone(C);
+  case attr::NSConsumesSelf:
+    return cast<NSConsumesSelfAttr>(this)->clone(C);
+  case attr::NSReturnsAutoreleased:
+    return cast<NSReturnsAutoreleasedAttr>(this)->clone(C);
+  case attr::NSReturnsNotRetained:
+    return cast<NSReturnsNotRetainedAttr>(this)->clone(C);
+  case attr::NSReturnsRetained:
+    return cast<NSReturnsRetainedAttr>(this)->clone(C);
+  case attr::Naked:
+    return cast<NakedAttr>(this)->clone(C);
+  case attr::NoAlias:
+    return cast<NoAliasAttr>(this)->clone(C);
+  case attr::NoCommon:
+    return cast<NoCommonAttr>(this)->clone(C);
+  case attr::NoDebug:
+    return cast<NoDebugAttr>(this)->clone(C);
+  case attr::NoDuplicate:
+    return cast<NoDuplicateAttr>(this)->clone(C);
+  case attr::NoInline:
+    return cast<NoInlineAttr>(this)->clone(C);
+  case attr::NoInstrumentFunction:
+    return cast<NoInstrumentFunctionAttr>(this)->clone(C);
+  case attr::NoMips16:
+    return cast<NoMips16Attr>(this)->clone(C);
+  case attr::NoReturn:
+    return cast<NoReturnAttr>(this)->clone(C);
+  case attr::NoSanitize:
+    return cast<NoSanitizeAttr>(this)->clone(C);
+  case attr::NoSplitStack:
+    return cast<NoSplitStackAttr>(this)->clone(C);
+  case attr::NoThreadSafetyAnalysis:
+    return cast<NoThreadSafetyAnalysisAttr>(this)->clone(C);
+  case attr::NoThrow:
+    return cast<NoThrowAttr>(this)->clone(C);
+  case attr::NonNull:
+    return cast<NonNullAttr>(this)->clone(C);
+  case attr::NotTailCalled:
+    return cast<NotTailCalledAttr>(this)->clone(C);
+  case attr::OMPCaptureNoInit:
+    return cast<OMPCaptureNoInitAttr>(this)->clone(C);
+  case attr::OMPDeclareSimdDecl:
+    return cast<OMPDeclareSimdDeclAttr>(this)->clone(C);
+  case attr::OMPDeclareTargetDecl:
+    return cast<OMPDeclareTargetDeclAttr>(this)->clone(C);
+  case attr::OMPThreadPrivateDecl:
+    return cast<OMPThreadPrivateDeclAttr>(this)->clone(C);
+  case attr::ObjCBoxable:
+    return cast<ObjCBoxableAttr>(this)->clone(C);
+  case attr::ObjCBridge:
+    return cast<ObjCBridgeAttr>(this)->clone(C);
+  case attr::ObjCBridgeMutable:
+    return cast<ObjCBridgeMutableAttr>(this)->clone(C);
+  case attr::ObjCBridgeRelated:
+    return cast<ObjCBridgeRelatedAttr>(this)->clone(C);
+  case attr::ObjCDesignatedInitializer:
+    return cast<ObjCDesignatedInitializerAttr>(this)->clone(C);
+  case attr::ObjCException:
+    return cast<ObjCExceptionAttr>(this)->clone(C);
+  case attr::ObjCExplicitProtocolImpl:
+    return cast<ObjCExplicitProtocolImplAttr>(this)->clone(C);
+  case attr::ObjCIndependentClass:
+    return cast<ObjCIndependentClassAttr>(this)->clone(C);
+  case attr::ObjCMethodFamily:
+    return cast<ObjCMethodFamilyAttr>(this)->clone(C);
+  case attr::ObjCNSObject:
+    return cast<ObjCNSObjectAttr>(this)->clone(C);
+  case attr::ObjCPreciseLifetime:
+    return cast<ObjCPreciseLifetimeAttr>(this)->clone(C);
+  case attr::ObjCRequiresPropertyDefs:
+    return cast<ObjCRequiresPropertyDefsAttr>(this)->clone(C);
+  case attr::ObjCRequiresSuper:
+    return cast<ObjCRequiresSuperAttr>(this)->clone(C);
+  case attr::ObjCReturnsInnerPointer:
+    return cast<ObjCReturnsInnerPointerAttr>(this)->clone(C);
+  case attr::ObjCRootClass:
+    return cast<ObjCRootClassAttr>(this)->clone(C);
+  case attr::ObjCRuntimeName:
+    return cast<ObjCRuntimeNameAttr>(this)->clone(C);
+  case attr::ObjCRuntimeVisible:
+    return cast<ObjCRuntimeVisibleAttr>(this)->clone(C);
+  case attr::ObjCSubclassingRestricted:
+    return cast<ObjCSubclassingRestrictedAttr>(this)->clone(C);
+  case attr::OpenCLAccess:
+    return cast<OpenCLAccessAttr>(this)->clone(C);
+  case attr::OpenCLKernel:
+    return cast<OpenCLKernelAttr>(this)->clone(C);
+  case attr::OpenCLUnrollHint:
+    return cast<OpenCLUnrollHintAttr>(this)->clone(C);
+  case attr::OptimizeNone:
+    return cast<OptimizeNoneAttr>(this)->clone(C);
+  case attr::Overloadable:
+    return cast<OverloadableAttr>(this)->clone(C);
+  case attr::Override:
+    return cast<OverrideAttr>(this)->clone(C);
+  case attr::Ownership:
+    return cast<OwnershipAttr>(this)->clone(C);
+  case attr::Packed:
+    return cast<PackedAttr>(this)->clone(C);
+  case attr::ParamTypestate:
+    return cast<ParamTypestateAttr>(this)->clone(C);
+  case attr::Pascal:
+    return cast<PascalAttr>(this)->clone(C);
+  case attr::PassObjectSize:
+    return cast<PassObjectSizeAttr>(this)->clone(C);
+  case attr::Pcs:
+    return cast<PcsAttr>(this)->clone(C);
+  case attr::PreserveAll:
+    return cast<PreserveAllAttr>(this)->clone(C);
+  case attr::PreserveMost:
+    return cast<PreserveMostAttr>(this)->clone(C);
+  case attr::PtGuardedBy:
+    return cast<PtGuardedByAttr>(this)->clone(C);
+  case attr::PtGuardedVar:
+    return cast<PtGuardedVarAttr>(this)->clone(C);
+  case attr::Pure:
+    return cast<PureAttr>(this)->clone(C);
+  case attr::RegCall:
+    return cast<RegCallAttr>(this)->clone(C);
+  case attr::ReleaseCapability:
+    return cast<ReleaseCapabilityAttr>(this)->clone(C);
+  case attr::RenderScriptKernel:
+    return cast<RenderScriptKernelAttr>(this)->clone(C);
+  case attr::ReqdWorkGroupSize:
+    return cast<ReqdWorkGroupSizeAttr>(this)->clone(C);
+  case attr::RequireConstantInit:
+    return cast<RequireConstantInitAttr>(this)->clone(C);
+  case attr::RequiresCapability:
+    return cast<RequiresCapabilityAttr>(this)->clone(C);
+  case attr::Restrict:
+    return cast<RestrictAttr>(this)->clone(C);
+  case attr::ReturnTypestate:
+    return cast<ReturnTypestateAttr>(this)->clone(C);
+  case attr::ReturnsNonNull:
+    return cast<ReturnsNonNullAttr>(this)->clone(C);
+  case attr::ReturnsTwice:
+    return cast<ReturnsTwiceAttr>(this)->clone(C);
+  case attr::ScopedLockable:
+    return cast<ScopedLockableAttr>(this)->clone(C);
+  case attr::Section:
+    return cast<SectionAttr>(this)->clone(C);
+  case attr::SelectAny:
+    return cast<SelectAnyAttr>(this)->clone(C);
+  case attr::Sentinel:
+    return cast<SentinelAttr>(this)->clone(C);
+  case attr::SetTypestate:
+    return cast<SetTypestateAttr>(this)->clone(C);
+  case attr::SharedTrylockFunction:
+    return cast<SharedTrylockFunctionAttr>(this)->clone(C);
+  case attr::StdCall:
+    return cast<StdCallAttr>(this)->clone(C);
+  case attr::Suppress:
+    return cast<SuppressAttr>(this)->clone(C);
+  case attr::SwiftCall:
+    return cast<SwiftCallAttr>(this)->clone(C);
+  case attr::SwiftContext:
+    return cast<SwiftContextAttr>(this)->clone(C);
+  case attr::SwiftErrorResult:
+    return cast<SwiftErrorResultAttr>(this)->clone(C);
+  case attr::SwiftIndirectResult:
+    return cast<SwiftIndirectResultAttr>(this)->clone(C);
+  case attr::SysVABI:
+    return cast<SysVABIAttr>(this)->clone(C);
+  case attr::TLSModel:
+    return cast<TLSModelAttr>(this)->clone(C);
+  case attr::Target:
+    return cast<TargetAttr>(this)->clone(C);
+  case attr::TestTypestate:
+    return cast<TestTypestateAttr>(this)->clone(C);
+  case attr::ThisCall:
+    return cast<ThisCallAttr>(this)->clone(C);
+  case attr::Thread:
+    return cast<ThreadAttr>(this)->clone(C);
+  case attr::TransparentUnion:
+    return cast<TransparentUnionAttr>(this)->clone(C);
+  case attr::TryAcquireCapability:
+    return cast<TryAcquireCapabilityAttr>(this)->clone(C);
+  case attr::TypeTagForDatatype:
+    return cast<TypeTagForDatatypeAttr>(this)->clone(C);
+  case attr::TypeVisibility:
+    return cast<TypeVisibilityAttr>(this)->clone(C);
+  case attr::Unavailable:
+    return cast<UnavailableAttr>(this)->clone(C);
+  case attr::Unused:
+    return cast<UnusedAttr>(this)->clone(C);
+  case attr::Used:
+    return cast<UsedAttr>(this)->clone(C);
+  case attr::Uuid:
+    return cast<UuidAttr>(this)->clone(C);
+  case attr::VecReturn:
+    return cast<VecReturnAttr>(this)->clone(C);
+  case attr::VecTypeHint:
+    return cast<VecTypeHintAttr>(this)->clone(C);
+  case attr::VectorCall:
+    return cast<VectorCallAttr>(this)->clone(C);
+  case attr::Visibility:
+    return cast<VisibilityAttr>(this)->clone(C);
+  case attr::WarnUnused:
+    return cast<WarnUnusedAttr>(this)->clone(C);
+  case attr::WarnUnusedResult:
+    return cast<WarnUnusedResultAttr>(this)->clone(C);
+  case attr::Weak:
+    return cast<WeakAttr>(this)->clone(C);
+  case attr::WeakImport:
+    return cast<WeakImportAttr>(this)->clone(C);
+  case attr::WeakRef:
+    return cast<WeakRefAttr>(this)->clone(C);
+  case attr::WorkGroupSizeHint:
+    return cast<WorkGroupSizeHintAttr>(this)->clone(C);
+  case attr::X86ForceAlignArgPointer:
+    return cast<X86ForceAlignArgPointerAttr>(this)->clone(C);
+  case attr::XRayInstrument:
+    return cast<XRayInstrumentAttr>(this)->clone(C);
+  case attr::XRayLogArgs:
+    return cast<XRayLogArgsAttr>(this)->clone(C);
+  }
+  llvm_unreachable("Unexpected attribute kind!");
+}
+
+void Attr::printPretty(raw_ostream &OS, const PrintingPolicy &Policy) const {
+  switch (getKind()) {
+  case attr::AMDGPUFlatWorkGroupSize:
+    return cast<AMDGPUFlatWorkGroupSizeAttr>(this)->printPretty(OS, Policy);
+  case attr::AMDGPUNumSGPR:
+    return cast<AMDGPUNumSGPRAttr>(this)->printPretty(OS, Policy);
+  case attr::AMDGPUNumVGPR:
+    return cast<AMDGPUNumVGPRAttr>(this)->printPretty(OS, Policy);
+  case attr::AMDGPUWavesPerEU:
+    return cast<AMDGPUWavesPerEUAttr>(this)->printPretty(OS, Policy);
+  case attr::ARMInterrupt:
+    return cast<ARMInterruptAttr>(this)->printPretty(OS, Policy);
+  case attr::AVRInterrupt:
+    return cast<AVRInterruptAttr>(this)->printPretty(OS, Policy);
+  case attr::AVRSignal:
+    return cast<AVRSignalAttr>(this)->printPretty(OS, Policy);
+  case attr::AbiTag:
+    return cast<AbiTagAttr>(this)->printPretty(OS, Policy);
+  case attr::AcquireCapability:
+    return cast<AcquireCapabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::AcquiredAfter:
+    return cast<AcquiredAfterAttr>(this)->printPretty(OS, Policy);
+  case attr::AcquiredBefore:
+    return cast<AcquiredBeforeAttr>(this)->printPretty(OS, Policy);
+  case attr::Alias:
+    return cast<AliasAttr>(this)->printPretty(OS, Policy);
+  case attr::AlignMac68k:
+    return cast<AlignMac68kAttr>(this)->printPretty(OS, Policy);
+  case attr::AlignValue:
+    return cast<AlignValueAttr>(this)->printPretty(OS, Policy);
+  case attr::Aligned:
+    return cast<AlignedAttr>(this)->printPretty(OS, Policy);
+  case attr::AllocAlign:
+    return cast<AllocAlignAttr>(this)->printPretty(OS, Policy);
+  case attr::AllocSize:
+    return cast<AllocSizeAttr>(this)->printPretty(OS, Policy);
+  case attr::AlwaysInline:
+    return cast<AlwaysInlineAttr>(this)->printPretty(OS, Policy);
+  case attr::AnalyzerNoReturn:
+    return cast<AnalyzerNoReturnAttr>(this)->printPretty(OS, Policy);
+  case attr::Annotate:
+    return cast<AnnotateAttr>(this)->printPretty(OS, Policy);
+  case attr::AnyX86Interrupt:
+    return cast<AnyX86InterruptAttr>(this)->printPretty(OS, Policy);
+  case attr::ArcWeakrefUnavailable:
+    return cast<ArcWeakrefUnavailableAttr>(this)->printPretty(OS, Policy);
+  case attr::ArgumentWithTypeTag:
+    return cast<ArgumentWithTypeTagAttr>(this)->printPretty(OS, Policy);
+  case attr::AsmLabel:
+    return cast<AsmLabelAttr>(this)->printPretty(OS, Policy);
+  case attr::AssertCapability:
+    return cast<AssertCapabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::AssertExclusiveLock:
+    return cast<AssertExclusiveLockAttr>(this)->printPretty(OS, Policy);
+  case attr::AssertSharedLock:
+    return cast<AssertSharedLockAttr>(this)->printPretty(OS, Policy);
+  case attr::AssumeAligned:
+    return cast<AssumeAlignedAttr>(this)->printPretty(OS, Policy);
+  case attr::Availability:
+    return cast<AvailabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::Blocks:
+    return cast<BlocksAttr>(this)->printPretty(OS, Policy);
+  case attr::C11NoReturn:
+    return cast<C11NoReturnAttr>(this)->printPretty(OS, Policy);
+  case attr::CDecl:
+    return cast<CDeclAttr>(this)->printPretty(OS, Policy);
+  case attr::CFAuditedTransfer:
+    return cast<CFAuditedTransferAttr>(this)->printPretty(OS, Policy);
+  case attr::CFConsumed:
+    return cast<CFConsumedAttr>(this)->printPretty(OS, Policy);
+  case attr::CFReturnsNotRetained:
+    return cast<CFReturnsNotRetainedAttr>(this)->printPretty(OS, Policy);
+  case attr::CFReturnsRetained:
+    return cast<CFReturnsRetainedAttr>(this)->printPretty(OS, Policy);
+  case attr::CFUnknownTransfer:
+    return cast<CFUnknownTransferAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDAConstant:
+    return cast<CUDAConstantAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDADevice:
+    return cast<CUDADeviceAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDAGlobal:
+    return cast<CUDAGlobalAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDAHost:
+    return cast<CUDAHostAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDAInvalidTarget:
+    return cast<CUDAInvalidTargetAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDALaunchBounds:
+    return cast<CUDALaunchBoundsAttr>(this)->printPretty(OS, Policy);
+  case attr::CUDAShared:
+    return cast<CUDASharedAttr>(this)->printPretty(OS, Policy);
+  case attr::CXX11NoReturn:
+    return cast<CXX11NoReturnAttr>(this)->printPretty(OS, Policy);
+  case attr::CallableWhen:
+    return cast<CallableWhenAttr>(this)->printPretty(OS, Policy);
+  case attr::Capability:
+    return cast<CapabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::CapturedRecord:
+    return cast<CapturedRecordAttr>(this)->printPretty(OS, Policy);
+  case attr::CarriesDependency:
+    return cast<CarriesDependencyAttr>(this)->printPretty(OS, Policy);
+  case attr::Cleanup:
+    return cast<CleanupAttr>(this)->printPretty(OS, Policy);
+  case attr::Cold:
+    return cast<ColdAttr>(this)->printPretty(OS, Policy);
+  case attr::Common:
+    return cast<CommonAttr>(this)->printPretty(OS, Policy);
+  case attr::Const:
+    return cast<ConstAttr>(this)->printPretty(OS, Policy);
+  case attr::Constructor:
+    return cast<ConstructorAttr>(this)->printPretty(OS, Policy);
+  case attr::Consumable:
+    return cast<ConsumableAttr>(this)->printPretty(OS, Policy);
+  case attr::ConsumableAutoCast:
+    return cast<ConsumableAutoCastAttr>(this)->printPretty(OS, Policy);
+  case attr::ConsumableSetOnRead:
+    return cast<ConsumableSetOnReadAttr>(this)->printPretty(OS, Policy);
+  case attr::Convergent:
+    return cast<ConvergentAttr>(this)->printPretty(OS, Policy);
+  case attr::DLLExport:
+    return cast<DLLExportAttr>(this)->printPretty(OS, Policy);
+  case attr::DLLImport:
+    return cast<DLLImportAttr>(this)->printPretty(OS, Policy);
+  case attr::Deprecated:
+    return cast<DeprecatedAttr>(this)->printPretty(OS, Policy);
+  case attr::Destructor:
+    return cast<DestructorAttr>(this)->printPretty(OS, Policy);
+  case attr::DiagnoseIf:
+    return cast<DiagnoseIfAttr>(this)->printPretty(OS, Policy);
+  case attr::DisableTailCalls:
+    return cast<DisableTailCallsAttr>(this)->printPretty(OS, Policy);
+  case attr::EmptyBases:
+    return cast<EmptyBasesAttr>(this)->printPretty(OS, Policy);
+  case attr::EnableIf:
+    return cast<EnableIfAttr>(this)->printPretty(OS, Policy);
+  case attr::EnumExtensibility:
+    return cast<EnumExtensibilityAttr>(this)->printPretty(OS, Policy);
+  case attr::ExclusiveTrylockFunction:
+    return cast<ExclusiveTrylockFunctionAttr>(this)->printPretty(OS, Policy);
+  case attr::ExternalSourceSymbol:
+    return cast<ExternalSourceSymbolAttr>(this)->printPretty(OS, Policy);
+  case attr::FallThrough:
+    return cast<FallThroughAttr>(this)->printPretty(OS, Policy);
+  case attr::FastCall:
+    return cast<FastCallAttr>(this)->printPretty(OS, Policy);
+  case attr::Final:
+    return cast<FinalAttr>(this)->printPretty(OS, Policy);
+  case attr::FlagEnum:
+    return cast<FlagEnumAttr>(this)->printPretty(OS, Policy);
+  case attr::Flatten:
+    return cast<FlattenAttr>(this)->printPretty(OS, Policy);
+  case attr::Format:
+    return cast<FormatAttr>(this)->printPretty(OS, Policy);
+  case attr::FormatArg:
+    return cast<FormatArgAttr>(this)->printPretty(OS, Policy);
+  case attr::GNUInline:
+    return cast<GNUInlineAttr>(this)->printPretty(OS, Policy);
+  case attr::GuardedBy:
+    return cast<GuardedByAttr>(this)->printPretty(OS, Policy);
+  case attr::GuardedVar:
+    return cast<GuardedVarAttr>(this)->printPretty(OS, Policy);
+  case attr::Hot:
+    return cast<HotAttr>(this)->printPretty(OS, Policy);
+  case attr::IBAction:
+    return cast<IBActionAttr>(this)->printPretty(OS, Policy);
+  case attr::IBOutlet:
+    return cast<IBOutletAttr>(this)->printPretty(OS, Policy);
+  case attr::IBOutletCollection:
+    return cast<IBOutletCollectionAttr>(this)->printPretty(OS, Policy);
+  case attr::IFunc:
+    return cast<IFuncAttr>(this)->printPretty(OS, Policy);
+  case attr::InitPriority:
+    return cast<InitPriorityAttr>(this)->printPretty(OS, Policy);
+  case attr::InitSeg:
+    return cast<InitSegAttr>(this)->printPretty(OS, Policy);
+  case attr::IntelOclBicc:
+    return cast<IntelOclBiccAttr>(this)->printPretty(OS, Policy);
+  case attr::InternalLinkage:
+    return cast<InternalLinkageAttr>(this)->printPretty(OS, Policy);
+  case attr::LTOVisibilityPublic:
+    return cast<LTOVisibilityPublicAttr>(this)->printPretty(OS, Policy);
+  case attr::LayoutVersion:
+    return cast<LayoutVersionAttr>(this)->printPretty(OS, Policy);
+  case attr::LockReturned:
+    return cast<LockReturnedAttr>(this)->printPretty(OS, Policy);
+  case attr::LocksExcluded:
+    return cast<LocksExcludedAttr>(this)->printPretty(OS, Policy);
+  case attr::LoopHint:
+    return cast<LoopHintAttr>(this)->printPretty(OS, Policy);
+  case attr::MSABI:
+    return cast<MSABIAttr>(this)->printPretty(OS, Policy);
+  case attr::MSInheritance:
+    return cast<MSInheritanceAttr>(this)->printPretty(OS, Policy);
+  case attr::MSNoVTable:
+    return cast<MSNoVTableAttr>(this)->printPretty(OS, Policy);
+  case attr::MSP430Interrupt:
+    return cast<MSP430InterruptAttr>(this)->printPretty(OS, Policy);
+  case attr::MSStruct:
+    return cast<MSStructAttr>(this)->printPretty(OS, Policy);
+  case attr::MSVtorDisp:
+    return cast<MSVtorDispAttr>(this)->printPretty(OS, Policy);
+  case attr::MaxFieldAlignment:
+    return cast<MaxFieldAlignmentAttr>(this)->printPretty(OS, Policy);
+  case attr::MayAlias:
+    return cast<MayAliasAttr>(this)->printPretty(OS, Policy);
+  case attr::MinSize:
+    return cast<MinSizeAttr>(this)->printPretty(OS, Policy);
+  case attr::Mips16:
+    return cast<Mips16Attr>(this)->printPretty(OS, Policy);
+  case attr::MipsInterrupt:
+    return cast<MipsInterruptAttr>(this)->printPretty(OS, Policy);
+  case attr::Mode:
+    return cast<ModeAttr>(this)->printPretty(OS, Policy);
+  case attr::NSConsumed:
+    return cast<NSConsumedAttr>(this)->printPretty(OS, Policy);
+  case attr::NSConsumesSelf:
+    return cast<NSConsumesSelfAttr>(this)->printPretty(OS, Policy);
+  case attr::NSReturnsAutoreleased:
+    return cast<NSReturnsAutoreleasedAttr>(this)->printPretty(OS, Policy);
+  case attr::NSReturnsNotRetained:
+    return cast<NSReturnsNotRetainedAttr>(this)->printPretty(OS, Policy);
+  case attr::NSReturnsRetained:
+    return cast<NSReturnsRetainedAttr>(this)->printPretty(OS, Policy);
+  case attr::Naked:
+    return cast<NakedAttr>(this)->printPretty(OS, Policy);
+  case attr::NoAlias:
+    return cast<NoAliasAttr>(this)->printPretty(OS, Policy);
+  case attr::NoCommon:
+    return cast<NoCommonAttr>(this)->printPretty(OS, Policy);
+  case attr::NoDebug:
+    return cast<NoDebugAttr>(this)->printPretty(OS, Policy);
+  case attr::NoDuplicate:
+    return cast<NoDuplicateAttr>(this)->printPretty(OS, Policy);
+  case attr::NoInline:
+    return cast<NoInlineAttr>(this)->printPretty(OS, Policy);
+  case attr::NoInstrumentFunction:
+    return cast<NoInstrumentFunctionAttr>(this)->printPretty(OS, Policy);
+  case attr::NoMips16:
+    return cast<NoMips16Attr>(this)->printPretty(OS, Policy);
+  case attr::NoReturn:
+    return cast<NoReturnAttr>(this)->printPretty(OS, Policy);
+  case attr::NoSanitize:
+    return cast<NoSanitizeAttr>(this)->printPretty(OS, Policy);
+  case attr::NoSplitStack:
+    return cast<NoSplitStackAttr>(this)->printPretty(OS, Policy);
+  case attr::NoThreadSafetyAnalysis:
+    return cast<NoThreadSafetyAnalysisAttr>(this)->printPretty(OS, Policy);
+  case attr::NoThrow:
+    return cast<NoThrowAttr>(this)->printPretty(OS, Policy);
+  case attr::NonNull:
+    return cast<NonNullAttr>(this)->printPretty(OS, Policy);
+  case attr::NotTailCalled:
+    return cast<NotTailCalledAttr>(this)->printPretty(OS, Policy);
+  case attr::OMPCaptureNoInit:
+    return cast<OMPCaptureNoInitAttr>(this)->printPretty(OS, Policy);
+  case attr::OMPDeclareSimdDecl:
+    return cast<OMPDeclareSimdDeclAttr>(this)->printPretty(OS, Policy);
+  case attr::OMPDeclareTargetDecl:
+    return cast<OMPDeclareTargetDeclAttr>(this)->printPretty(OS, Policy);
+  case attr::OMPThreadPrivateDecl:
+    return cast<OMPThreadPrivateDeclAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCBoxable:
+    return cast<ObjCBoxableAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCBridge:
+    return cast<ObjCBridgeAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCBridgeMutable:
+    return cast<ObjCBridgeMutableAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCBridgeRelated:
+    return cast<ObjCBridgeRelatedAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCDesignatedInitializer:
+    return cast<ObjCDesignatedInitializerAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCException:
+    return cast<ObjCExceptionAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCExplicitProtocolImpl:
+    return cast<ObjCExplicitProtocolImplAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCIndependentClass:
+    return cast<ObjCIndependentClassAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCMethodFamily:
+    return cast<ObjCMethodFamilyAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCNSObject:
+    return cast<ObjCNSObjectAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCPreciseLifetime:
+    return cast<ObjCPreciseLifetimeAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCRequiresPropertyDefs:
+    return cast<ObjCRequiresPropertyDefsAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCRequiresSuper:
+    return cast<ObjCRequiresSuperAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCReturnsInnerPointer:
+    return cast<ObjCReturnsInnerPointerAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCRootClass:
+    return cast<ObjCRootClassAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCRuntimeName:
+    return cast<ObjCRuntimeNameAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCRuntimeVisible:
+    return cast<ObjCRuntimeVisibleAttr>(this)->printPretty(OS, Policy);
+  case attr::ObjCSubclassingRestricted:
+    return cast<ObjCSubclassingRestrictedAttr>(this)->printPretty(OS, Policy);
+  case attr::OpenCLAccess:
+    return cast<OpenCLAccessAttr>(this)->printPretty(OS, Policy);
+  case attr::OpenCLKernel:
+    return cast<OpenCLKernelAttr>(this)->printPretty(OS, Policy);
+  case attr::OpenCLUnrollHint:
+    return cast<OpenCLUnrollHintAttr>(this)->printPretty(OS, Policy);
+  case attr::OptimizeNone:
+    return cast<OptimizeNoneAttr>(this)->printPretty(OS, Policy);
+  case attr::Overloadable:
+    return cast<OverloadableAttr>(this)->printPretty(OS, Policy);
+  case attr::Override:
+    return cast<OverrideAttr>(this)->printPretty(OS, Policy);
+  case attr::Ownership:
+    return cast<OwnershipAttr>(this)->printPretty(OS, Policy);
+  case attr::Packed:
+    return cast<PackedAttr>(this)->printPretty(OS, Policy);
+  case attr::ParamTypestate:
+    return cast<ParamTypestateAttr>(this)->printPretty(OS, Policy);
+  case attr::Pascal:
+    return cast<PascalAttr>(this)->printPretty(OS, Policy);
+  case attr::PassObjectSize:
+    return cast<PassObjectSizeAttr>(this)->printPretty(OS, Policy);
+  case attr::Pcs:
+    return cast<PcsAttr>(this)->printPretty(OS, Policy);
+  case attr::PreserveAll:
+    return cast<PreserveAllAttr>(this)->printPretty(OS, Policy);
+  case attr::PreserveMost:
+    return cast<PreserveMostAttr>(this)->printPretty(OS, Policy);
+  case attr::PtGuardedBy:
+    return cast<PtGuardedByAttr>(this)->printPretty(OS, Policy);
+  case attr::PtGuardedVar:
+    return cast<PtGuardedVarAttr>(this)->printPretty(OS, Policy);
+  case attr::Pure:
+    return cast<PureAttr>(this)->printPretty(OS, Policy);
+  case attr::RegCall:
+    return cast<RegCallAttr>(this)->printPretty(OS, Policy);
+  case attr::ReleaseCapability:
+    return cast<ReleaseCapabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::RenderScriptKernel:
+    return cast<RenderScriptKernelAttr>(this)->printPretty(OS, Policy);
+  case attr::ReqdWorkGroupSize:
+    return cast<ReqdWorkGroupSizeAttr>(this)->printPretty(OS, Policy);
+  case attr::RequireConstantInit:
+    return cast<RequireConstantInitAttr>(this)->printPretty(OS, Policy);
+  case attr::RequiresCapability:
+    return cast<RequiresCapabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::Restrict:
+    return cast<RestrictAttr>(this)->printPretty(OS, Policy);
+  case attr::ReturnTypestate:
+    return cast<ReturnTypestateAttr>(this)->printPretty(OS, Policy);
+  case attr::ReturnsNonNull:
+    return cast<ReturnsNonNullAttr>(this)->printPretty(OS, Policy);
+  case attr::ReturnsTwice:
+    return cast<ReturnsTwiceAttr>(this)->printPretty(OS, Policy);
+  case attr::ScopedLockable:
+    return cast<ScopedLockableAttr>(this)->printPretty(OS, Policy);
+  case attr::Section:
+    return cast<SectionAttr>(this)->printPretty(OS, Policy);
+  case attr::SelectAny:
+    return cast<SelectAnyAttr>(this)->printPretty(OS, Policy);
+  case attr::Sentinel:
+    return cast<SentinelAttr>(this)->printPretty(OS, Policy);
+  case attr::SetTypestate:
+    return cast<SetTypestateAttr>(this)->printPretty(OS, Policy);
+  case attr::SharedTrylockFunction:
+    return cast<SharedTrylockFunctionAttr>(this)->printPretty(OS, Policy);
+  case attr::StdCall:
+    return cast<StdCallAttr>(this)->printPretty(OS, Policy);
+  case attr::Suppress:
+    return cast<SuppressAttr>(this)->printPretty(OS, Policy);
+  case attr::SwiftCall:
+    return cast<SwiftCallAttr>(this)->printPretty(OS, Policy);
+  case attr::SwiftContext:
+    return cast<SwiftContextAttr>(this)->printPretty(OS, Policy);
+  case attr::SwiftErrorResult:
+    return cast<SwiftErrorResultAttr>(this)->printPretty(OS, Policy);
+  case attr::SwiftIndirectResult:
+    return cast<SwiftIndirectResultAttr>(this)->printPretty(OS, Policy);
+  case attr::SysVABI:
+    return cast<SysVABIAttr>(this)->printPretty(OS, Policy);
+  case attr::TLSModel:
+    return cast<TLSModelAttr>(this)->printPretty(OS, Policy);
+  case attr::Target:
+    return cast<TargetAttr>(this)->printPretty(OS, Policy);
+  case attr::TestTypestate:
+    return cast<TestTypestateAttr>(this)->printPretty(OS, Policy);
+  case attr::ThisCall:
+    return cast<ThisCallAttr>(this)->printPretty(OS, Policy);
+  case attr::Thread:
+    return cast<ThreadAttr>(this)->printPretty(OS, Policy);
+  case attr::TransparentUnion:
+    return cast<TransparentUnionAttr>(this)->printPretty(OS, Policy);
+  case attr::TryAcquireCapability:
+    return cast<TryAcquireCapabilityAttr>(this)->printPretty(OS, Policy);
+  case attr::TypeTagForDatatype:
+    return cast<TypeTagForDatatypeAttr>(this)->printPretty(OS, Policy);
+  case attr::TypeVisibility:
+    return cast<TypeVisibilityAttr>(this)->printPretty(OS, Policy);
+  case attr::Unavailable:
+    return cast<UnavailableAttr>(this)->printPretty(OS, Policy);
+  case attr::Unused:
+    return cast<UnusedAttr>(this)->printPretty(OS, Policy);
+  case attr::Used:
+    return cast<UsedAttr>(this)->printPretty(OS, Policy);
+  case attr::Uuid:
+    return cast<UuidAttr>(this)->printPretty(OS, Policy);
+  case attr::VecReturn:
+    return cast<VecReturnAttr>(this)->printPretty(OS, Policy);
+  case attr::VecTypeHint:
+    return cast<VecTypeHintAttr>(this)->printPretty(OS, Policy);
+  case attr::VectorCall:
+    return cast<VectorCallAttr>(this)->printPretty(OS, Policy);
+  case attr::Visibility:
+    return cast<VisibilityAttr>(this)->printPretty(OS, Policy);
+  case attr::WarnUnused:
+    return cast<WarnUnusedAttr>(this)->printPretty(OS, Policy);
+  case attr::WarnUnusedResult:
+    return cast<WarnUnusedResultAttr>(this)->printPretty(OS, Policy);
+  case attr::Weak:
+    return cast<WeakAttr>(this)->printPretty(OS, Policy);
+  case attr::WeakImport:
+    return cast<WeakImportAttr>(this)->printPretty(OS, Policy);
+  case attr::WeakRef:
+    return cast<WeakRefAttr>(this)->printPretty(OS, Policy);
+  case attr::WorkGroupSizeHint:
+    return cast<WorkGroupSizeHintAttr>(this)->printPretty(OS, Policy);
+  case attr::X86ForceAlignArgPointer:
+    return cast<X86ForceAlignArgPointerAttr>(this)->printPretty(OS, Policy);
+  case attr::XRayInstrument:
+    return cast<XRayInstrumentAttr>(this)->printPretty(OS, Policy);
+  case attr::XRayLogArgs:
+    return cast<XRayLogArgsAttr>(this)->printPretty(OS, Policy);
+  }
+  llvm_unreachable("Unexpected attribute kind!");
+}
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrVisitor.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrVisitor.inc
new file mode 100644
index 0000000..e1c91d5
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/AttrVisitor.inc
@@ -0,0 +1,3378 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Used by RecursiveASTVisitor to visit attributes.                           *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifdef ATTR_VISITOR_DECLS_ONLY
+
+  bool TraverseAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A);
+  bool VisitAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A) {
+    return true; 
+  }
+  bool TraverseAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A);
+  bool VisitAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A) {
+    return true; 
+  }
+  bool TraverseAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A);
+  bool VisitAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A) {
+    return true; 
+  }
+  bool TraverseAMDGPUWavesPerEUAttr(AMDGPUWavesPerEUAttr *A);
+  bool VisitAMDGPUWavesPerEUAttr(AMDGPUWavesPerEUAttr *A) {
+    return true; 
+  }
+  bool TraverseARMInterruptAttr(ARMInterruptAttr *A);
+  bool VisitARMInterruptAttr(ARMInterruptAttr *A) {
+    return true; 
+  }
+  bool TraverseAVRInterruptAttr(AVRInterruptAttr *A);
+  bool VisitAVRInterruptAttr(AVRInterruptAttr *A) {
+    return true; 
+  }
+  bool TraverseAVRSignalAttr(AVRSignalAttr *A);
+  bool VisitAVRSignalAttr(AVRSignalAttr *A) {
+    return true; 
+  }
+  bool TraverseAbiTagAttr(AbiTagAttr *A);
+  bool VisitAbiTagAttr(AbiTagAttr *A) {
+    return true; 
+  }
+  bool TraverseAcquireCapabilityAttr(AcquireCapabilityAttr *A);
+  bool VisitAcquireCapabilityAttr(AcquireCapabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseAcquiredAfterAttr(AcquiredAfterAttr *A);
+  bool VisitAcquiredAfterAttr(AcquiredAfterAttr *A) {
+    return true; 
+  }
+  bool TraverseAcquiredBeforeAttr(AcquiredBeforeAttr *A);
+  bool VisitAcquiredBeforeAttr(AcquiredBeforeAttr *A) {
+    return true; 
+  }
+  bool TraverseAliasAttr(AliasAttr *A);
+  bool VisitAliasAttr(AliasAttr *A) {
+    return true; 
+  }
+  bool TraverseAlignMac68kAttr(AlignMac68kAttr *A);
+  bool VisitAlignMac68kAttr(AlignMac68kAttr *A) {
+    return true; 
+  }
+  bool TraverseAlignValueAttr(AlignValueAttr *A);
+  bool VisitAlignValueAttr(AlignValueAttr *A) {
+    return true; 
+  }
+  bool TraverseAlignedAttr(AlignedAttr *A);
+  bool VisitAlignedAttr(AlignedAttr *A) {
+    return true; 
+  }
+  bool TraverseAllocAlignAttr(AllocAlignAttr *A);
+  bool VisitAllocAlignAttr(AllocAlignAttr *A) {
+    return true; 
+  }
+  bool TraverseAllocSizeAttr(AllocSizeAttr *A);
+  bool VisitAllocSizeAttr(AllocSizeAttr *A) {
+    return true; 
+  }
+  bool TraverseAlwaysInlineAttr(AlwaysInlineAttr *A);
+  bool VisitAlwaysInlineAttr(AlwaysInlineAttr *A) {
+    return true; 
+  }
+  bool TraverseAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A);
+  bool VisitAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A) {
+    return true; 
+  }
+  bool TraverseAnnotateAttr(AnnotateAttr *A);
+  bool VisitAnnotateAttr(AnnotateAttr *A) {
+    return true; 
+  }
+  bool TraverseAnyX86InterruptAttr(AnyX86InterruptAttr *A);
+  bool VisitAnyX86InterruptAttr(AnyX86InterruptAttr *A) {
+    return true; 
+  }
+  bool TraverseArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A);
+  bool VisitArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A) {
+    return true; 
+  }
+  bool TraverseArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A);
+  bool VisitArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A) {
+    return true; 
+  }
+  bool TraverseAsmLabelAttr(AsmLabelAttr *A);
+  bool VisitAsmLabelAttr(AsmLabelAttr *A) {
+    return true; 
+  }
+  bool TraverseAssertCapabilityAttr(AssertCapabilityAttr *A);
+  bool VisitAssertCapabilityAttr(AssertCapabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseAssertExclusiveLockAttr(AssertExclusiveLockAttr *A);
+  bool VisitAssertExclusiveLockAttr(AssertExclusiveLockAttr *A) {
+    return true; 
+  }
+  bool TraverseAssertSharedLockAttr(AssertSharedLockAttr *A);
+  bool VisitAssertSharedLockAttr(AssertSharedLockAttr *A) {
+    return true; 
+  }
+  bool TraverseAssumeAlignedAttr(AssumeAlignedAttr *A);
+  bool VisitAssumeAlignedAttr(AssumeAlignedAttr *A) {
+    return true; 
+  }
+  bool TraverseAvailabilityAttr(AvailabilityAttr *A);
+  bool VisitAvailabilityAttr(AvailabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseBlocksAttr(BlocksAttr *A);
+  bool VisitBlocksAttr(BlocksAttr *A) {
+    return true; 
+  }
+  bool TraverseC11NoReturnAttr(C11NoReturnAttr *A);
+  bool VisitC11NoReturnAttr(C11NoReturnAttr *A) {
+    return true; 
+  }
+  bool TraverseCDeclAttr(CDeclAttr *A);
+  bool VisitCDeclAttr(CDeclAttr *A) {
+    return true; 
+  }
+  bool TraverseCFAuditedTransferAttr(CFAuditedTransferAttr *A);
+  bool VisitCFAuditedTransferAttr(CFAuditedTransferAttr *A) {
+    return true; 
+  }
+  bool TraverseCFConsumedAttr(CFConsumedAttr *A);
+  bool VisitCFConsumedAttr(CFConsumedAttr *A) {
+    return true; 
+  }
+  bool TraverseCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A);
+  bool VisitCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A) {
+    return true; 
+  }
+  bool TraverseCFReturnsRetainedAttr(CFReturnsRetainedAttr *A);
+  bool VisitCFReturnsRetainedAttr(CFReturnsRetainedAttr *A) {
+    return true; 
+  }
+  bool TraverseCFUnknownTransferAttr(CFUnknownTransferAttr *A);
+  bool VisitCFUnknownTransferAttr(CFUnknownTransferAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDAConstantAttr(CUDAConstantAttr *A);
+  bool VisitCUDAConstantAttr(CUDAConstantAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDADeviceAttr(CUDADeviceAttr *A);
+  bool VisitCUDADeviceAttr(CUDADeviceAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDAGlobalAttr(CUDAGlobalAttr *A);
+  bool VisitCUDAGlobalAttr(CUDAGlobalAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDAHostAttr(CUDAHostAttr *A);
+  bool VisitCUDAHostAttr(CUDAHostAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A);
+  bool VisitCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A);
+  bool VisitCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A) {
+    return true; 
+  }
+  bool TraverseCUDASharedAttr(CUDASharedAttr *A);
+  bool VisitCUDASharedAttr(CUDASharedAttr *A) {
+    return true; 
+  }
+  bool TraverseCXX11NoReturnAttr(CXX11NoReturnAttr *A);
+  bool VisitCXX11NoReturnAttr(CXX11NoReturnAttr *A) {
+    return true; 
+  }
+  bool TraverseCallableWhenAttr(CallableWhenAttr *A);
+  bool VisitCallableWhenAttr(CallableWhenAttr *A) {
+    return true; 
+  }
+  bool TraverseCapabilityAttr(CapabilityAttr *A);
+  bool VisitCapabilityAttr(CapabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseCapturedRecordAttr(CapturedRecordAttr *A);
+  bool VisitCapturedRecordAttr(CapturedRecordAttr *A) {
+    return true; 
+  }
+  bool TraverseCarriesDependencyAttr(CarriesDependencyAttr *A);
+  bool VisitCarriesDependencyAttr(CarriesDependencyAttr *A) {
+    return true; 
+  }
+  bool TraverseCleanupAttr(CleanupAttr *A);
+  bool VisitCleanupAttr(CleanupAttr *A) {
+    return true; 
+  }
+  bool TraverseColdAttr(ColdAttr *A);
+  bool VisitColdAttr(ColdAttr *A) {
+    return true; 
+  }
+  bool TraverseCommonAttr(CommonAttr *A);
+  bool VisitCommonAttr(CommonAttr *A) {
+    return true; 
+  }
+  bool TraverseConstAttr(ConstAttr *A);
+  bool VisitConstAttr(ConstAttr *A) {
+    return true; 
+  }
+  bool TraverseConstructorAttr(ConstructorAttr *A);
+  bool VisitConstructorAttr(ConstructorAttr *A) {
+    return true; 
+  }
+  bool TraverseConsumableAttr(ConsumableAttr *A);
+  bool VisitConsumableAttr(ConsumableAttr *A) {
+    return true; 
+  }
+  bool TraverseConsumableAutoCastAttr(ConsumableAutoCastAttr *A);
+  bool VisitConsumableAutoCastAttr(ConsumableAutoCastAttr *A) {
+    return true; 
+  }
+  bool TraverseConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A);
+  bool VisitConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A) {
+    return true; 
+  }
+  bool TraverseConvergentAttr(ConvergentAttr *A);
+  bool VisitConvergentAttr(ConvergentAttr *A) {
+    return true; 
+  }
+  bool TraverseDLLExportAttr(DLLExportAttr *A);
+  bool VisitDLLExportAttr(DLLExportAttr *A) {
+    return true; 
+  }
+  bool TraverseDLLImportAttr(DLLImportAttr *A);
+  bool VisitDLLImportAttr(DLLImportAttr *A) {
+    return true; 
+  }
+  bool TraverseDeprecatedAttr(DeprecatedAttr *A);
+  bool VisitDeprecatedAttr(DeprecatedAttr *A) {
+    return true; 
+  }
+  bool TraverseDestructorAttr(DestructorAttr *A);
+  bool VisitDestructorAttr(DestructorAttr *A) {
+    return true; 
+  }
+  bool TraverseDiagnoseIfAttr(DiagnoseIfAttr *A);
+  bool VisitDiagnoseIfAttr(DiagnoseIfAttr *A) {
+    return true; 
+  }
+  bool TraverseDisableTailCallsAttr(DisableTailCallsAttr *A);
+  bool VisitDisableTailCallsAttr(DisableTailCallsAttr *A) {
+    return true; 
+  }
+  bool TraverseEmptyBasesAttr(EmptyBasesAttr *A);
+  bool VisitEmptyBasesAttr(EmptyBasesAttr *A) {
+    return true; 
+  }
+  bool TraverseEnableIfAttr(EnableIfAttr *A);
+  bool VisitEnableIfAttr(EnableIfAttr *A) {
+    return true; 
+  }
+  bool TraverseEnumExtensibilityAttr(EnumExtensibilityAttr *A);
+  bool VisitEnumExtensibilityAttr(EnumExtensibilityAttr *A) {
+    return true; 
+  }
+  bool TraverseExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A);
+  bool VisitExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A) {
+    return true; 
+  }
+  bool TraverseExternalSourceSymbolAttr(ExternalSourceSymbolAttr *A);
+  bool VisitExternalSourceSymbolAttr(ExternalSourceSymbolAttr *A) {
+    return true; 
+  }
+  bool TraverseFallThroughAttr(FallThroughAttr *A);
+  bool VisitFallThroughAttr(FallThroughAttr *A) {
+    return true; 
+  }
+  bool TraverseFastCallAttr(FastCallAttr *A);
+  bool VisitFastCallAttr(FastCallAttr *A) {
+    return true; 
+  }
+  bool TraverseFinalAttr(FinalAttr *A);
+  bool VisitFinalAttr(FinalAttr *A) {
+    return true; 
+  }
+  bool TraverseFlagEnumAttr(FlagEnumAttr *A);
+  bool VisitFlagEnumAttr(FlagEnumAttr *A) {
+    return true; 
+  }
+  bool TraverseFlattenAttr(FlattenAttr *A);
+  bool VisitFlattenAttr(FlattenAttr *A) {
+    return true; 
+  }
+  bool TraverseFormatAttr(FormatAttr *A);
+  bool VisitFormatAttr(FormatAttr *A) {
+    return true; 
+  }
+  bool TraverseFormatArgAttr(FormatArgAttr *A);
+  bool VisitFormatArgAttr(FormatArgAttr *A) {
+    return true; 
+  }
+  bool TraverseGNUInlineAttr(GNUInlineAttr *A);
+  bool VisitGNUInlineAttr(GNUInlineAttr *A) {
+    return true; 
+  }
+  bool TraverseGuardedByAttr(GuardedByAttr *A);
+  bool VisitGuardedByAttr(GuardedByAttr *A) {
+    return true; 
+  }
+  bool TraverseGuardedVarAttr(GuardedVarAttr *A);
+  bool VisitGuardedVarAttr(GuardedVarAttr *A) {
+    return true; 
+  }
+  bool TraverseHotAttr(HotAttr *A);
+  bool VisitHotAttr(HotAttr *A) {
+    return true; 
+  }
+  bool TraverseIBActionAttr(IBActionAttr *A);
+  bool VisitIBActionAttr(IBActionAttr *A) {
+    return true; 
+  }
+  bool TraverseIBOutletAttr(IBOutletAttr *A);
+  bool VisitIBOutletAttr(IBOutletAttr *A) {
+    return true; 
+  }
+  bool TraverseIBOutletCollectionAttr(IBOutletCollectionAttr *A);
+  bool VisitIBOutletCollectionAttr(IBOutletCollectionAttr *A) {
+    return true; 
+  }
+  bool TraverseIFuncAttr(IFuncAttr *A);
+  bool VisitIFuncAttr(IFuncAttr *A) {
+    return true; 
+  }
+  bool TraverseInitPriorityAttr(InitPriorityAttr *A);
+  bool VisitInitPriorityAttr(InitPriorityAttr *A) {
+    return true; 
+  }
+  bool TraverseInitSegAttr(InitSegAttr *A);
+  bool VisitInitSegAttr(InitSegAttr *A) {
+    return true; 
+  }
+  bool TraverseIntelOclBiccAttr(IntelOclBiccAttr *A);
+  bool VisitIntelOclBiccAttr(IntelOclBiccAttr *A) {
+    return true; 
+  }
+  bool TraverseInternalLinkageAttr(InternalLinkageAttr *A);
+  bool VisitInternalLinkageAttr(InternalLinkageAttr *A) {
+    return true; 
+  }
+  bool TraverseLTOVisibilityPublicAttr(LTOVisibilityPublicAttr *A);
+  bool VisitLTOVisibilityPublicAttr(LTOVisibilityPublicAttr *A) {
+    return true; 
+  }
+  bool TraverseLayoutVersionAttr(LayoutVersionAttr *A);
+  bool VisitLayoutVersionAttr(LayoutVersionAttr *A) {
+    return true; 
+  }
+  bool TraverseLockReturnedAttr(LockReturnedAttr *A);
+  bool VisitLockReturnedAttr(LockReturnedAttr *A) {
+    return true; 
+  }
+  bool TraverseLocksExcludedAttr(LocksExcludedAttr *A);
+  bool VisitLocksExcludedAttr(LocksExcludedAttr *A) {
+    return true; 
+  }
+  bool TraverseLoopHintAttr(LoopHintAttr *A);
+  bool VisitLoopHintAttr(LoopHintAttr *A) {
+    return true; 
+  }
+  bool TraverseMSABIAttr(MSABIAttr *A);
+  bool VisitMSABIAttr(MSABIAttr *A) {
+    return true; 
+  }
+  bool TraverseMSInheritanceAttr(MSInheritanceAttr *A);
+  bool VisitMSInheritanceAttr(MSInheritanceAttr *A) {
+    return true; 
+  }
+  bool TraverseMSNoVTableAttr(MSNoVTableAttr *A);
+  bool VisitMSNoVTableAttr(MSNoVTableAttr *A) {
+    return true; 
+  }
+  bool TraverseMSP430InterruptAttr(MSP430InterruptAttr *A);
+  bool VisitMSP430InterruptAttr(MSP430InterruptAttr *A) {
+    return true; 
+  }
+  bool TraverseMSStructAttr(MSStructAttr *A);
+  bool VisitMSStructAttr(MSStructAttr *A) {
+    return true; 
+  }
+  bool TraverseMSVtorDispAttr(MSVtorDispAttr *A);
+  bool VisitMSVtorDispAttr(MSVtorDispAttr *A) {
+    return true; 
+  }
+  bool TraverseMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A);
+  bool VisitMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A) {
+    return true; 
+  }
+  bool TraverseMayAliasAttr(MayAliasAttr *A);
+  bool VisitMayAliasAttr(MayAliasAttr *A) {
+    return true; 
+  }
+  bool TraverseMinSizeAttr(MinSizeAttr *A);
+  bool VisitMinSizeAttr(MinSizeAttr *A) {
+    return true; 
+  }
+  bool TraverseMips16Attr(Mips16Attr *A);
+  bool VisitMips16Attr(Mips16Attr *A) {
+    return true; 
+  }
+  bool TraverseMipsInterruptAttr(MipsInterruptAttr *A);
+  bool VisitMipsInterruptAttr(MipsInterruptAttr *A) {
+    return true; 
+  }
+  bool TraverseModeAttr(ModeAttr *A);
+  bool VisitModeAttr(ModeAttr *A) {
+    return true; 
+  }
+  bool TraverseNSConsumedAttr(NSConsumedAttr *A);
+  bool VisitNSConsumedAttr(NSConsumedAttr *A) {
+    return true; 
+  }
+  bool TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A);
+  bool VisitNSConsumesSelfAttr(NSConsumesSelfAttr *A) {
+    return true; 
+  }
+  bool TraverseNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A);
+  bool VisitNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A) {
+    return true; 
+  }
+  bool TraverseNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A);
+  bool VisitNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A) {
+    return true; 
+  }
+  bool TraverseNSReturnsRetainedAttr(NSReturnsRetainedAttr *A);
+  bool VisitNSReturnsRetainedAttr(NSReturnsRetainedAttr *A) {
+    return true; 
+  }
+  bool TraverseNakedAttr(NakedAttr *A);
+  bool VisitNakedAttr(NakedAttr *A) {
+    return true; 
+  }
+  bool TraverseNoAliasAttr(NoAliasAttr *A);
+  bool VisitNoAliasAttr(NoAliasAttr *A) {
+    return true; 
+  }
+  bool TraverseNoCommonAttr(NoCommonAttr *A);
+  bool VisitNoCommonAttr(NoCommonAttr *A) {
+    return true; 
+  }
+  bool TraverseNoDebugAttr(NoDebugAttr *A);
+  bool VisitNoDebugAttr(NoDebugAttr *A) {
+    return true; 
+  }
+  bool TraverseNoDuplicateAttr(NoDuplicateAttr *A);
+  bool VisitNoDuplicateAttr(NoDuplicateAttr *A) {
+    return true; 
+  }
+  bool TraverseNoInlineAttr(NoInlineAttr *A);
+  bool VisitNoInlineAttr(NoInlineAttr *A) {
+    return true; 
+  }
+  bool TraverseNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A);
+  bool VisitNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A) {
+    return true; 
+  }
+  bool TraverseNoMips16Attr(NoMips16Attr *A);
+  bool VisitNoMips16Attr(NoMips16Attr *A) {
+    return true; 
+  }
+  bool TraverseNoReturnAttr(NoReturnAttr *A);
+  bool VisitNoReturnAttr(NoReturnAttr *A) {
+    return true; 
+  }
+  bool TraverseNoSanitizeAttr(NoSanitizeAttr *A);
+  bool VisitNoSanitizeAttr(NoSanitizeAttr *A) {
+    return true; 
+  }
+  bool TraverseNoSplitStackAttr(NoSplitStackAttr *A);
+  bool VisitNoSplitStackAttr(NoSplitStackAttr *A) {
+    return true; 
+  }
+  bool TraverseNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A);
+  bool VisitNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A) {
+    return true; 
+  }
+  bool TraverseNoThrowAttr(NoThrowAttr *A);
+  bool VisitNoThrowAttr(NoThrowAttr *A) {
+    return true; 
+  }
+  bool TraverseNonNullAttr(NonNullAttr *A);
+  bool VisitNonNullAttr(NonNullAttr *A) {
+    return true; 
+  }
+  bool TraverseNotTailCalledAttr(NotTailCalledAttr *A);
+  bool VisitNotTailCalledAttr(NotTailCalledAttr *A) {
+    return true; 
+  }
+  bool TraverseOMPCaptureNoInitAttr(OMPCaptureNoInitAttr *A);
+  bool VisitOMPCaptureNoInitAttr(OMPCaptureNoInitAttr *A) {
+    return true; 
+  }
+  bool TraverseOMPDeclareSimdDeclAttr(OMPDeclareSimdDeclAttr *A);
+  bool VisitOMPDeclareSimdDeclAttr(OMPDeclareSimdDeclAttr *A) {
+    return true; 
+  }
+  bool TraverseOMPDeclareTargetDeclAttr(OMPDeclareTargetDeclAttr *A);
+  bool VisitOMPDeclareTargetDeclAttr(OMPDeclareTargetDeclAttr *A) {
+    return true; 
+  }
+  bool TraverseOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A);
+  bool VisitOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCBoxableAttr(ObjCBoxableAttr *A);
+  bool VisitObjCBoxableAttr(ObjCBoxableAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCBridgeAttr(ObjCBridgeAttr *A);
+  bool VisitObjCBridgeAttr(ObjCBridgeAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A);
+  bool VisitObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A);
+  bool VisitObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A);
+  bool VisitObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCExceptionAttr(ObjCExceptionAttr *A);
+  bool VisitObjCExceptionAttr(ObjCExceptionAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A);
+  bool VisitObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCIndependentClassAttr(ObjCIndependentClassAttr *A);
+  bool VisitObjCIndependentClassAttr(ObjCIndependentClassAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A);
+  bool VisitObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCNSObjectAttr(ObjCNSObjectAttr *A);
+  bool VisitObjCNSObjectAttr(ObjCNSObjectAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A);
+  bool VisitObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A);
+  bool VisitObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A);
+  bool VisitObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A);
+  bool VisitObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCRootClassAttr(ObjCRootClassAttr *A);
+  bool VisitObjCRootClassAttr(ObjCRootClassAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A);
+  bool VisitObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCRuntimeVisibleAttr(ObjCRuntimeVisibleAttr *A);
+  bool VisitObjCRuntimeVisibleAttr(ObjCRuntimeVisibleAttr *A) {
+    return true; 
+  }
+  bool TraverseObjCSubclassingRestrictedAttr(ObjCSubclassingRestrictedAttr *A);
+  bool VisitObjCSubclassingRestrictedAttr(ObjCSubclassingRestrictedAttr *A) {
+    return true; 
+  }
+  bool TraverseOpenCLAccessAttr(OpenCLAccessAttr *A);
+  bool VisitOpenCLAccessAttr(OpenCLAccessAttr *A) {
+    return true; 
+  }
+  bool TraverseOpenCLKernelAttr(OpenCLKernelAttr *A);
+  bool VisitOpenCLKernelAttr(OpenCLKernelAttr *A) {
+    return true; 
+  }
+  bool TraverseOpenCLUnrollHintAttr(OpenCLUnrollHintAttr *A);
+  bool VisitOpenCLUnrollHintAttr(OpenCLUnrollHintAttr *A) {
+    return true; 
+  }
+  bool TraverseOptimizeNoneAttr(OptimizeNoneAttr *A);
+  bool VisitOptimizeNoneAttr(OptimizeNoneAttr *A) {
+    return true; 
+  }
+  bool TraverseOverloadableAttr(OverloadableAttr *A);
+  bool VisitOverloadableAttr(OverloadableAttr *A) {
+    return true; 
+  }
+  bool TraverseOverrideAttr(OverrideAttr *A);
+  bool VisitOverrideAttr(OverrideAttr *A) {
+    return true; 
+  }
+  bool TraverseOwnershipAttr(OwnershipAttr *A);
+  bool VisitOwnershipAttr(OwnershipAttr *A) {
+    return true; 
+  }
+  bool TraversePackedAttr(PackedAttr *A);
+  bool VisitPackedAttr(PackedAttr *A) {
+    return true; 
+  }
+  bool TraverseParamTypestateAttr(ParamTypestateAttr *A);
+  bool VisitParamTypestateAttr(ParamTypestateAttr *A) {
+    return true; 
+  }
+  bool TraversePascalAttr(PascalAttr *A);
+  bool VisitPascalAttr(PascalAttr *A) {
+    return true; 
+  }
+  bool TraversePassObjectSizeAttr(PassObjectSizeAttr *A);
+  bool VisitPassObjectSizeAttr(PassObjectSizeAttr *A) {
+    return true; 
+  }
+  bool TraversePcsAttr(PcsAttr *A);
+  bool VisitPcsAttr(PcsAttr *A) {
+    return true; 
+  }
+  bool TraversePreserveAllAttr(PreserveAllAttr *A);
+  bool VisitPreserveAllAttr(PreserveAllAttr *A) {
+    return true; 
+  }
+  bool TraversePreserveMostAttr(PreserveMostAttr *A);
+  bool VisitPreserveMostAttr(PreserveMostAttr *A) {
+    return true; 
+  }
+  bool TraversePtGuardedByAttr(PtGuardedByAttr *A);
+  bool VisitPtGuardedByAttr(PtGuardedByAttr *A) {
+    return true; 
+  }
+  bool TraversePtGuardedVarAttr(PtGuardedVarAttr *A);
+  bool VisitPtGuardedVarAttr(PtGuardedVarAttr *A) {
+    return true; 
+  }
+  bool TraversePureAttr(PureAttr *A);
+  bool VisitPureAttr(PureAttr *A) {
+    return true; 
+  }
+  bool TraverseRegCallAttr(RegCallAttr *A);
+  bool VisitRegCallAttr(RegCallAttr *A) {
+    return true; 
+  }
+  bool TraverseReleaseCapabilityAttr(ReleaseCapabilityAttr *A);
+  bool VisitReleaseCapabilityAttr(ReleaseCapabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseRenderScriptKernelAttr(RenderScriptKernelAttr *A);
+  bool VisitRenderScriptKernelAttr(RenderScriptKernelAttr *A) {
+    return true; 
+  }
+  bool TraverseReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A);
+  bool VisitReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A) {
+    return true; 
+  }
+  bool TraverseRequireConstantInitAttr(RequireConstantInitAttr *A);
+  bool VisitRequireConstantInitAttr(RequireConstantInitAttr *A) {
+    return true; 
+  }
+  bool TraverseRequiresCapabilityAttr(RequiresCapabilityAttr *A);
+  bool VisitRequiresCapabilityAttr(RequiresCapabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseRestrictAttr(RestrictAttr *A);
+  bool VisitRestrictAttr(RestrictAttr *A) {
+    return true; 
+  }
+  bool TraverseReturnTypestateAttr(ReturnTypestateAttr *A);
+  bool VisitReturnTypestateAttr(ReturnTypestateAttr *A) {
+    return true; 
+  }
+  bool TraverseReturnsNonNullAttr(ReturnsNonNullAttr *A);
+  bool VisitReturnsNonNullAttr(ReturnsNonNullAttr *A) {
+    return true; 
+  }
+  bool TraverseReturnsTwiceAttr(ReturnsTwiceAttr *A);
+  bool VisitReturnsTwiceAttr(ReturnsTwiceAttr *A) {
+    return true; 
+  }
+  bool TraverseScopedLockableAttr(ScopedLockableAttr *A);
+  bool VisitScopedLockableAttr(ScopedLockableAttr *A) {
+    return true; 
+  }
+  bool TraverseSectionAttr(SectionAttr *A);
+  bool VisitSectionAttr(SectionAttr *A) {
+    return true; 
+  }
+  bool TraverseSelectAnyAttr(SelectAnyAttr *A);
+  bool VisitSelectAnyAttr(SelectAnyAttr *A) {
+    return true; 
+  }
+  bool TraverseSentinelAttr(SentinelAttr *A);
+  bool VisitSentinelAttr(SentinelAttr *A) {
+    return true; 
+  }
+  bool TraverseSetTypestateAttr(SetTypestateAttr *A);
+  bool VisitSetTypestateAttr(SetTypestateAttr *A) {
+    return true; 
+  }
+  bool TraverseSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A);
+  bool VisitSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A) {
+    return true; 
+  }
+  bool TraverseStdCallAttr(StdCallAttr *A);
+  bool VisitStdCallAttr(StdCallAttr *A) {
+    return true; 
+  }
+  bool TraverseSuppressAttr(SuppressAttr *A);
+  bool VisitSuppressAttr(SuppressAttr *A) {
+    return true; 
+  }
+  bool TraverseSwiftCallAttr(SwiftCallAttr *A);
+  bool VisitSwiftCallAttr(SwiftCallAttr *A) {
+    return true; 
+  }
+  bool TraverseSwiftContextAttr(SwiftContextAttr *A);
+  bool VisitSwiftContextAttr(SwiftContextAttr *A) {
+    return true; 
+  }
+  bool TraverseSwiftErrorResultAttr(SwiftErrorResultAttr *A);
+  bool VisitSwiftErrorResultAttr(SwiftErrorResultAttr *A) {
+    return true; 
+  }
+  bool TraverseSwiftIndirectResultAttr(SwiftIndirectResultAttr *A);
+  bool VisitSwiftIndirectResultAttr(SwiftIndirectResultAttr *A) {
+    return true; 
+  }
+  bool TraverseSysVABIAttr(SysVABIAttr *A);
+  bool VisitSysVABIAttr(SysVABIAttr *A) {
+    return true; 
+  }
+  bool TraverseTLSModelAttr(TLSModelAttr *A);
+  bool VisitTLSModelAttr(TLSModelAttr *A) {
+    return true; 
+  }
+  bool TraverseTargetAttr(TargetAttr *A);
+  bool VisitTargetAttr(TargetAttr *A) {
+    return true; 
+  }
+  bool TraverseTestTypestateAttr(TestTypestateAttr *A);
+  bool VisitTestTypestateAttr(TestTypestateAttr *A) {
+    return true; 
+  }
+  bool TraverseThisCallAttr(ThisCallAttr *A);
+  bool VisitThisCallAttr(ThisCallAttr *A) {
+    return true; 
+  }
+  bool TraverseThreadAttr(ThreadAttr *A);
+  bool VisitThreadAttr(ThreadAttr *A) {
+    return true; 
+  }
+  bool TraverseTransparentUnionAttr(TransparentUnionAttr *A);
+  bool VisitTransparentUnionAttr(TransparentUnionAttr *A) {
+    return true; 
+  }
+  bool TraverseTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A);
+  bool VisitTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A) {
+    return true; 
+  }
+  bool TraverseTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A);
+  bool VisitTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A) {
+    return true; 
+  }
+  bool TraverseTypeVisibilityAttr(TypeVisibilityAttr *A);
+  bool VisitTypeVisibilityAttr(TypeVisibilityAttr *A) {
+    return true; 
+  }
+  bool TraverseUnavailableAttr(UnavailableAttr *A);
+  bool VisitUnavailableAttr(UnavailableAttr *A) {
+    return true; 
+  }
+  bool TraverseUnusedAttr(UnusedAttr *A);
+  bool VisitUnusedAttr(UnusedAttr *A) {
+    return true; 
+  }
+  bool TraverseUsedAttr(UsedAttr *A);
+  bool VisitUsedAttr(UsedAttr *A) {
+    return true; 
+  }
+  bool TraverseUuidAttr(UuidAttr *A);
+  bool VisitUuidAttr(UuidAttr *A) {
+    return true; 
+  }
+  bool TraverseVecReturnAttr(VecReturnAttr *A);
+  bool VisitVecReturnAttr(VecReturnAttr *A) {
+    return true; 
+  }
+  bool TraverseVecTypeHintAttr(VecTypeHintAttr *A);
+  bool VisitVecTypeHintAttr(VecTypeHintAttr *A) {
+    return true; 
+  }
+  bool TraverseVectorCallAttr(VectorCallAttr *A);
+  bool VisitVectorCallAttr(VectorCallAttr *A) {
+    return true; 
+  }
+  bool TraverseVisibilityAttr(VisibilityAttr *A);
+  bool VisitVisibilityAttr(VisibilityAttr *A) {
+    return true; 
+  }
+  bool TraverseWarnUnusedAttr(WarnUnusedAttr *A);
+  bool VisitWarnUnusedAttr(WarnUnusedAttr *A) {
+    return true; 
+  }
+  bool TraverseWarnUnusedResultAttr(WarnUnusedResultAttr *A);
+  bool VisitWarnUnusedResultAttr(WarnUnusedResultAttr *A) {
+    return true; 
+  }
+  bool TraverseWeakAttr(WeakAttr *A);
+  bool VisitWeakAttr(WeakAttr *A) {
+    return true; 
+  }
+  bool TraverseWeakImportAttr(WeakImportAttr *A);
+  bool VisitWeakImportAttr(WeakImportAttr *A) {
+    return true; 
+  }
+  bool TraverseWeakRefAttr(WeakRefAttr *A);
+  bool VisitWeakRefAttr(WeakRefAttr *A) {
+    return true; 
+  }
+  bool TraverseWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A);
+  bool VisitWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A) {
+    return true; 
+  }
+  bool TraverseX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A);
+  bool VisitX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A) {
+    return true; 
+  }
+  bool TraverseXRayInstrumentAttr(XRayInstrumentAttr *A);
+  bool VisitXRayInstrumentAttr(XRayInstrumentAttr *A) {
+    return true; 
+  }
+  bool TraverseXRayLogArgsAttr(XRayLogArgsAttr *A);
+  bool VisitXRayLogArgsAttr(XRayLogArgsAttr *A) {
+    return true; 
+  }
+
+#else // ATTR_VISITOR_DECLS_ONLY
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAMDGPUFlatWorkGroupSizeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAMDGPUNumSGPRAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAMDGPUNumVGPRAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAMDGPUWavesPerEUAttr(AMDGPUWavesPerEUAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAMDGPUWavesPerEUAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseARMInterruptAttr(ARMInterruptAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitARMInterruptAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAVRInterruptAttr(AVRInterruptAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAVRInterruptAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAVRSignalAttr(AVRSignalAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAVRSignalAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAbiTagAttr(AbiTagAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAbiTagAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAcquireCapabilityAttr(AcquireCapabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAcquireCapabilityAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAcquiredAfterAttr(AcquiredAfterAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAcquiredAfterAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAcquiredBeforeAttr(AcquiredBeforeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAcquiredBeforeAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAliasAttr(AliasAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAliasAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAlignMac68kAttr(AlignMac68kAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAlignMac68kAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAlignValueAttr(AlignValueAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAlignValueAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getAlignment()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAlignedAttr(AlignedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAlignedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAllocAlignAttr(AllocAlignAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAllocAlignAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAllocSizeAttr(AllocSizeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAllocSizeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAlwaysInlineAttr(AlwaysInlineAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAlwaysInlineAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAnalyzerNoReturnAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAnnotateAttr(AnnotateAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAnnotateAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAnyX86InterruptAttr(AnyX86InterruptAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAnyX86InterruptAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitArcWeakrefUnavailableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitArgumentWithTypeTagAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAsmLabelAttr(AsmLabelAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAsmLabelAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAssertCapabilityAttr(AssertCapabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAssertCapabilityAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getExpr()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAssertExclusiveLockAttr(AssertExclusiveLockAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAssertExclusiveLockAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAssertSharedLockAttr(AssertSharedLockAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAssertSharedLockAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAssumeAlignedAttr(AssumeAlignedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAssumeAlignedAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getAlignment()))
+    return false;
+  if (!getDerived().TraverseStmt(A->getOffset()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAvailabilityAttr(AvailabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitAvailabilityAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseBlocksAttr(BlocksAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitBlocksAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseC11NoReturnAttr(C11NoReturnAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitC11NoReturnAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCDeclAttr(CDeclAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCDeclAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCFAuditedTransferAttr(CFAuditedTransferAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCFAuditedTransferAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCFConsumedAttr(CFConsumedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCFConsumedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCFReturnsNotRetainedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCFReturnsRetainedAttr(CFReturnsRetainedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCFReturnsRetainedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCFUnknownTransferAttr(CFUnknownTransferAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCFUnknownTransferAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDAConstantAttr(CUDAConstantAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDAConstantAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDADeviceAttr(CUDADeviceAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDADeviceAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDAGlobalAttr(CUDAGlobalAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDAGlobalAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDAHostAttr(CUDAHostAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDAHostAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDAInvalidTargetAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDALaunchBoundsAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getMaxThreads()))
+    return false;
+  if (!getDerived().TraverseStmt(A->getMinBlocks()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCUDASharedAttr(CUDASharedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCUDASharedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCXX11NoReturnAttr(CXX11NoReturnAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCXX11NoReturnAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCallableWhenAttr(CallableWhenAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCallableWhenAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCapabilityAttr(CapabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCapabilityAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCapturedRecordAttr(CapturedRecordAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCapturedRecordAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCarriesDependencyAttr(CarriesDependencyAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCarriesDependencyAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCleanupAttr(CleanupAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCleanupAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseColdAttr(ColdAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitColdAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseCommonAttr(CommonAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitCommonAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseConstAttr(ConstAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitConstAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseConstructorAttr(ConstructorAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitConstructorAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseConsumableAttr(ConsumableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitConsumableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseConsumableAutoCastAttr(ConsumableAutoCastAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitConsumableAutoCastAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitConsumableSetOnReadAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseConvergentAttr(ConvergentAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitConvergentAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseDLLExportAttr(DLLExportAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitDLLExportAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseDLLImportAttr(DLLImportAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitDLLImportAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseDeprecatedAttr(DeprecatedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitDeprecatedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseDestructorAttr(DestructorAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitDestructorAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseDiagnoseIfAttr(DiagnoseIfAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitDiagnoseIfAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getCond()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseDisableTailCallsAttr(DisableTailCallsAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitDisableTailCallsAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseEmptyBasesAttr(EmptyBasesAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitEmptyBasesAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseEnableIfAttr(EnableIfAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitEnableIfAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getCond()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseEnumExtensibilityAttr(EnumExtensibilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitEnumExtensibilityAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitExclusiveTrylockFunctionAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getSuccessValue()))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseExternalSourceSymbolAttr(ExternalSourceSymbolAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitExternalSourceSymbolAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFallThroughAttr(FallThroughAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFallThroughAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFastCallAttr(FastCallAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFastCallAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFinalAttr(FinalAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFinalAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFlagEnumAttr(FlagEnumAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFlagEnumAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFlattenAttr(FlattenAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFlattenAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFormatAttr(FormatAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFormatAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseFormatArgAttr(FormatArgAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitFormatArgAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseGNUInlineAttr(GNUInlineAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitGNUInlineAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseGuardedByAttr(GuardedByAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitGuardedByAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getArg()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseGuardedVarAttr(GuardedVarAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitGuardedVarAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseHotAttr(HotAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitHotAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseIBActionAttr(IBActionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitIBActionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseIBOutletAttr(IBOutletAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitIBOutletAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseIBOutletCollectionAttr(IBOutletCollectionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitIBOutletCollectionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseIFuncAttr(IFuncAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitIFuncAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseInitPriorityAttr(InitPriorityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitInitPriorityAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseInitSegAttr(InitSegAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitInitSegAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseIntelOclBiccAttr(IntelOclBiccAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitIntelOclBiccAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseInternalLinkageAttr(InternalLinkageAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitInternalLinkageAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseLTOVisibilityPublicAttr(LTOVisibilityPublicAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitLTOVisibilityPublicAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseLayoutVersionAttr(LayoutVersionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitLayoutVersionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseLockReturnedAttr(LockReturnedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitLockReturnedAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getArg()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseLocksExcludedAttr(LocksExcludedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitLocksExcludedAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseLoopHintAttr(LoopHintAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitLoopHintAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getValue()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMSABIAttr(MSABIAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMSABIAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMSInheritanceAttr(MSInheritanceAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMSInheritanceAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMSNoVTableAttr(MSNoVTableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMSNoVTableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMSP430InterruptAttr(MSP430InterruptAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMSP430InterruptAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMSStructAttr(MSStructAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMSStructAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMSVtorDispAttr(MSVtorDispAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMSVtorDispAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMaxFieldAlignmentAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMayAliasAttr(MayAliasAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMayAliasAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMinSizeAttr(MinSizeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMinSizeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMips16Attr(Mips16Attr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMips16Attr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseMipsInterruptAttr(MipsInterruptAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitMipsInterruptAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseModeAttr(ModeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitModeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNSConsumedAttr(NSConsumedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNSConsumedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNSConsumesSelfAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNSReturnsAutoreleasedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNSReturnsNotRetainedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNSReturnsRetainedAttr(NSReturnsRetainedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNSReturnsRetainedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNakedAttr(NakedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNakedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoAliasAttr(NoAliasAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoAliasAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoCommonAttr(NoCommonAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoCommonAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoDebugAttr(NoDebugAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoDebugAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoDuplicateAttr(NoDuplicateAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoDuplicateAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoInlineAttr(NoInlineAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoInlineAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoInstrumentFunctionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoMips16Attr(NoMips16Attr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoMips16Attr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoReturnAttr(NoReturnAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoReturnAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoSanitizeAttr(NoSanitizeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoSanitizeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoSplitStackAttr(NoSplitStackAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoSplitStackAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoThreadSafetyAnalysisAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNoThrowAttr(NoThrowAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNoThrowAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNonNullAttr(NonNullAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNonNullAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseNotTailCalledAttr(NotTailCalledAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitNotTailCalledAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOMPCaptureNoInitAttr(OMPCaptureNoInitAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOMPCaptureNoInitAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOMPDeclareSimdDeclAttr(OMPDeclareSimdDeclAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOMPDeclareSimdDeclAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getSimdlen()))
+    return false;
+  {
+    Expr * *I = A->uniforms_begin();
+    Expr * *E = A->uniforms_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  {
+    Expr * *I = A->aligneds_begin();
+    Expr * *E = A->aligneds_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  {
+    Expr * *I = A->alignments_begin();
+    Expr * *E = A->alignments_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  {
+    Expr * *I = A->linears_begin();
+    Expr * *E = A->linears_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  {
+    Expr * *I = A->steps_begin();
+    Expr * *E = A->steps_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOMPDeclareTargetDeclAttr(OMPDeclareTargetDeclAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOMPDeclareTargetDeclAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOMPThreadPrivateDeclAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCBoxableAttr(ObjCBoxableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCBoxableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCBridgeAttr(ObjCBridgeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCBridgeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCBridgeMutableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCBridgeRelatedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCDesignatedInitializerAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCExceptionAttr(ObjCExceptionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCExceptionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCExplicitProtocolImplAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCIndependentClassAttr(ObjCIndependentClassAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCIndependentClassAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCMethodFamilyAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCNSObjectAttr(ObjCNSObjectAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCNSObjectAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCPreciseLifetimeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCRequiresPropertyDefsAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCRequiresSuperAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCReturnsInnerPointerAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCRootClassAttr(ObjCRootClassAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCRootClassAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCRuntimeNameAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCRuntimeVisibleAttr(ObjCRuntimeVisibleAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCRuntimeVisibleAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseObjCSubclassingRestrictedAttr(ObjCSubclassingRestrictedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitObjCSubclassingRestrictedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOpenCLAccessAttr(OpenCLAccessAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOpenCLAccessAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOpenCLKernelAttr(OpenCLKernelAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOpenCLKernelAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOpenCLUnrollHintAttr(OpenCLUnrollHintAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOpenCLUnrollHintAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOptimizeNoneAttr(OptimizeNoneAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOptimizeNoneAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOverloadableAttr(OverloadableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOverloadableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOverrideAttr(OverrideAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOverrideAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseOwnershipAttr(OwnershipAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitOwnershipAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePackedAttr(PackedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPackedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseParamTypestateAttr(ParamTypestateAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitParamTypestateAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePascalAttr(PascalAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPascalAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePassObjectSizeAttr(PassObjectSizeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPassObjectSizeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePcsAttr(PcsAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPcsAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePreserveAllAttr(PreserveAllAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPreserveAllAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePreserveMostAttr(PreserveMostAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPreserveMostAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePtGuardedByAttr(PtGuardedByAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPtGuardedByAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getArg()))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePtGuardedVarAttr(PtGuardedVarAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPtGuardedVarAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraversePureAttr(PureAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitPureAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseRegCallAttr(RegCallAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitRegCallAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseReleaseCapabilityAttr(ReleaseCapabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitReleaseCapabilityAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseRenderScriptKernelAttr(RenderScriptKernelAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitRenderScriptKernelAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitReqdWorkGroupSizeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseRequireConstantInitAttr(RequireConstantInitAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitRequireConstantInitAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseRequiresCapabilityAttr(RequiresCapabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitRequiresCapabilityAttr(A))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseRestrictAttr(RestrictAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitRestrictAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseReturnTypestateAttr(ReturnTypestateAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitReturnTypestateAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseReturnsNonNullAttr(ReturnsNonNullAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitReturnsNonNullAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseReturnsTwiceAttr(ReturnsTwiceAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitReturnsTwiceAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseScopedLockableAttr(ScopedLockableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitScopedLockableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSectionAttr(SectionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSectionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSelectAnyAttr(SelectAnyAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSelectAnyAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSentinelAttr(SentinelAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSentinelAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSetTypestateAttr(SetTypestateAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSetTypestateAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSharedTrylockFunctionAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getSuccessValue()))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseStdCallAttr(StdCallAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitStdCallAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSuppressAttr(SuppressAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSuppressAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSwiftCallAttr(SwiftCallAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSwiftCallAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSwiftContextAttr(SwiftContextAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSwiftContextAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSwiftErrorResultAttr(SwiftErrorResultAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSwiftErrorResultAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSwiftIndirectResultAttr(SwiftIndirectResultAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSwiftIndirectResultAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseSysVABIAttr(SysVABIAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitSysVABIAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTLSModelAttr(TLSModelAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTLSModelAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTargetAttr(TargetAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTargetAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTestTypestateAttr(TestTypestateAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTestTypestateAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseThisCallAttr(ThisCallAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitThisCallAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseThreadAttr(ThreadAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitThreadAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTransparentUnionAttr(TransparentUnionAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTransparentUnionAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTryAcquireCapabilityAttr(A))
+    return false;
+  if (!getDerived().TraverseStmt(A->getSuccessValue()))
+    return false;
+  {
+    Expr * *I = A->args_begin();
+    Expr * *E = A->args_end();
+    for (; I != E; ++I) {
+      if (!getDerived().TraverseStmt(*I))
+        return false;
+    }
+  }
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTypeTagForDatatypeAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseTypeVisibilityAttr(TypeVisibilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitTypeVisibilityAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseUnavailableAttr(UnavailableAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitUnavailableAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseUnusedAttr(UnusedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitUnusedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseUsedAttr(UsedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitUsedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseUuidAttr(UuidAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitUuidAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseVecReturnAttr(VecReturnAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitVecReturnAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseVecTypeHintAttr(VecTypeHintAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitVecTypeHintAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseVectorCallAttr(VectorCallAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitVectorCallAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseVisibilityAttr(VisibilityAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitVisibilityAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseWarnUnusedAttr(WarnUnusedAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitWarnUnusedAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseWarnUnusedResultAttr(WarnUnusedResultAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitWarnUnusedResultAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseWeakAttr(WeakAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitWeakAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseWeakImportAttr(WeakImportAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitWeakImportAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseWeakRefAttr(WeakRefAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitWeakRefAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitWorkGroupSizeHintAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitX86ForceAlignArgPointerAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseXRayInstrumentAttr(XRayInstrumentAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitXRayInstrumentAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseXRayLogArgsAttr(XRayLogArgsAttr *A) {
+  if (!getDerived().VisitAttr(A))
+    return false;
+  if (!getDerived().VisitXRayLogArgsAttr(A))
+    return false;
+  return true;
+}
+
+template <typename Derived>
+bool VISITORCLASS<Derived>::TraverseAttr(Attr *A) {
+  if (!A)
+    return true;
+
+  switch (A->getKind()) {
+    case attr::AMDGPUFlatWorkGroupSize:
+      return getDerived().TraverseAMDGPUFlatWorkGroupSizeAttr(cast<AMDGPUFlatWorkGroupSizeAttr>(A));
+    case attr::AMDGPUNumSGPR:
+      return getDerived().TraverseAMDGPUNumSGPRAttr(cast<AMDGPUNumSGPRAttr>(A));
+    case attr::AMDGPUNumVGPR:
+      return getDerived().TraverseAMDGPUNumVGPRAttr(cast<AMDGPUNumVGPRAttr>(A));
+    case attr::AMDGPUWavesPerEU:
+      return getDerived().TraverseAMDGPUWavesPerEUAttr(cast<AMDGPUWavesPerEUAttr>(A));
+    case attr::ARMInterrupt:
+      return getDerived().TraverseARMInterruptAttr(cast<ARMInterruptAttr>(A));
+    case attr::AVRInterrupt:
+      return getDerived().TraverseAVRInterruptAttr(cast<AVRInterruptAttr>(A));
+    case attr::AVRSignal:
+      return getDerived().TraverseAVRSignalAttr(cast<AVRSignalAttr>(A));
+    case attr::AbiTag:
+      return getDerived().TraverseAbiTagAttr(cast<AbiTagAttr>(A));
+    case attr::AcquireCapability:
+      return getDerived().TraverseAcquireCapabilityAttr(cast<AcquireCapabilityAttr>(A));
+    case attr::AcquiredAfter:
+      return getDerived().TraverseAcquiredAfterAttr(cast<AcquiredAfterAttr>(A));
+    case attr::AcquiredBefore:
+      return getDerived().TraverseAcquiredBeforeAttr(cast<AcquiredBeforeAttr>(A));
+    case attr::Alias:
+      return getDerived().TraverseAliasAttr(cast<AliasAttr>(A));
+    case attr::AlignMac68k:
+      return getDerived().TraverseAlignMac68kAttr(cast<AlignMac68kAttr>(A));
+    case attr::AlignValue:
+      return getDerived().TraverseAlignValueAttr(cast<AlignValueAttr>(A));
+    case attr::Aligned:
+      return getDerived().TraverseAlignedAttr(cast<AlignedAttr>(A));
+    case attr::AllocAlign:
+      return getDerived().TraverseAllocAlignAttr(cast<AllocAlignAttr>(A));
+    case attr::AllocSize:
+      return getDerived().TraverseAllocSizeAttr(cast<AllocSizeAttr>(A));
+    case attr::AlwaysInline:
+      return getDerived().TraverseAlwaysInlineAttr(cast<AlwaysInlineAttr>(A));
+    case attr::AnalyzerNoReturn:
+      return getDerived().TraverseAnalyzerNoReturnAttr(cast<AnalyzerNoReturnAttr>(A));
+    case attr::Annotate:
+      return getDerived().TraverseAnnotateAttr(cast<AnnotateAttr>(A));
+    case attr::AnyX86Interrupt:
+      return getDerived().TraverseAnyX86InterruptAttr(cast<AnyX86InterruptAttr>(A));
+    case attr::ArcWeakrefUnavailable:
+      return getDerived().TraverseArcWeakrefUnavailableAttr(cast<ArcWeakrefUnavailableAttr>(A));
+    case attr::ArgumentWithTypeTag:
+      return getDerived().TraverseArgumentWithTypeTagAttr(cast<ArgumentWithTypeTagAttr>(A));
+    case attr::AsmLabel:
+      return getDerived().TraverseAsmLabelAttr(cast<AsmLabelAttr>(A));
+    case attr::AssertCapability:
+      return getDerived().TraverseAssertCapabilityAttr(cast<AssertCapabilityAttr>(A));
+    case attr::AssertExclusiveLock:
+      return getDerived().TraverseAssertExclusiveLockAttr(cast<AssertExclusiveLockAttr>(A));
+    case attr::AssertSharedLock:
+      return getDerived().TraverseAssertSharedLockAttr(cast<AssertSharedLockAttr>(A));
+    case attr::AssumeAligned:
+      return getDerived().TraverseAssumeAlignedAttr(cast<AssumeAlignedAttr>(A));
+    case attr::Availability:
+      return getDerived().TraverseAvailabilityAttr(cast<AvailabilityAttr>(A));
+    case attr::Blocks:
+      return getDerived().TraverseBlocksAttr(cast<BlocksAttr>(A));
+    case attr::C11NoReturn:
+      return getDerived().TraverseC11NoReturnAttr(cast<C11NoReturnAttr>(A));
+    case attr::CDecl:
+      return getDerived().TraverseCDeclAttr(cast<CDeclAttr>(A));
+    case attr::CFAuditedTransfer:
+      return getDerived().TraverseCFAuditedTransferAttr(cast<CFAuditedTransferAttr>(A));
+    case attr::CFConsumed:
+      return getDerived().TraverseCFConsumedAttr(cast<CFConsumedAttr>(A));
+    case attr::CFReturnsNotRetained:
+      return getDerived().TraverseCFReturnsNotRetainedAttr(cast<CFReturnsNotRetainedAttr>(A));
+    case attr::CFReturnsRetained:
+      return getDerived().TraverseCFReturnsRetainedAttr(cast<CFReturnsRetainedAttr>(A));
+    case attr::CFUnknownTransfer:
+      return getDerived().TraverseCFUnknownTransferAttr(cast<CFUnknownTransferAttr>(A));
+    case attr::CUDAConstant:
+      return getDerived().TraverseCUDAConstantAttr(cast<CUDAConstantAttr>(A));
+    case attr::CUDADevice:
+      return getDerived().TraverseCUDADeviceAttr(cast<CUDADeviceAttr>(A));
+    case attr::CUDAGlobal:
+      return getDerived().TraverseCUDAGlobalAttr(cast<CUDAGlobalAttr>(A));
+    case attr::CUDAHost:
+      return getDerived().TraverseCUDAHostAttr(cast<CUDAHostAttr>(A));
+    case attr::CUDAInvalidTarget:
+      return getDerived().TraverseCUDAInvalidTargetAttr(cast<CUDAInvalidTargetAttr>(A));
+    case attr::CUDALaunchBounds:
+      return getDerived().TraverseCUDALaunchBoundsAttr(cast<CUDALaunchBoundsAttr>(A));
+    case attr::CUDAShared:
+      return getDerived().TraverseCUDASharedAttr(cast<CUDASharedAttr>(A));
+    case attr::CXX11NoReturn:
+      return getDerived().TraverseCXX11NoReturnAttr(cast<CXX11NoReturnAttr>(A));
+    case attr::CallableWhen:
+      return getDerived().TraverseCallableWhenAttr(cast<CallableWhenAttr>(A));
+    case attr::Capability:
+      return getDerived().TraverseCapabilityAttr(cast<CapabilityAttr>(A));
+    case attr::CapturedRecord:
+      return getDerived().TraverseCapturedRecordAttr(cast<CapturedRecordAttr>(A));
+    case attr::CarriesDependency:
+      return getDerived().TraverseCarriesDependencyAttr(cast<CarriesDependencyAttr>(A));
+    case attr::Cleanup:
+      return getDerived().TraverseCleanupAttr(cast<CleanupAttr>(A));
+    case attr::Cold:
+      return getDerived().TraverseColdAttr(cast<ColdAttr>(A));
+    case attr::Common:
+      return getDerived().TraverseCommonAttr(cast<CommonAttr>(A));
+    case attr::Const:
+      return getDerived().TraverseConstAttr(cast<ConstAttr>(A));
+    case attr::Constructor:
+      return getDerived().TraverseConstructorAttr(cast<ConstructorAttr>(A));
+    case attr::Consumable:
+      return getDerived().TraverseConsumableAttr(cast<ConsumableAttr>(A));
+    case attr::ConsumableAutoCast:
+      return getDerived().TraverseConsumableAutoCastAttr(cast<ConsumableAutoCastAttr>(A));
+    case attr::ConsumableSetOnRead:
+      return getDerived().TraverseConsumableSetOnReadAttr(cast<ConsumableSetOnReadAttr>(A));
+    case attr::Convergent:
+      return getDerived().TraverseConvergentAttr(cast<ConvergentAttr>(A));
+    case attr::DLLExport:
+      return getDerived().TraverseDLLExportAttr(cast<DLLExportAttr>(A));
+    case attr::DLLImport:
+      return getDerived().TraverseDLLImportAttr(cast<DLLImportAttr>(A));
+    case attr::Deprecated:
+      return getDerived().TraverseDeprecatedAttr(cast<DeprecatedAttr>(A));
+    case attr::Destructor:
+      return getDerived().TraverseDestructorAttr(cast<DestructorAttr>(A));
+    case attr::DiagnoseIf:
+      return getDerived().TraverseDiagnoseIfAttr(cast<DiagnoseIfAttr>(A));
+    case attr::DisableTailCalls:
+      return getDerived().TraverseDisableTailCallsAttr(cast<DisableTailCallsAttr>(A));
+    case attr::EmptyBases:
+      return getDerived().TraverseEmptyBasesAttr(cast<EmptyBasesAttr>(A));
+    case attr::EnableIf:
+      return getDerived().TraverseEnableIfAttr(cast<EnableIfAttr>(A));
+    case attr::EnumExtensibility:
+      return getDerived().TraverseEnumExtensibilityAttr(cast<EnumExtensibilityAttr>(A));
+    case attr::ExclusiveTrylockFunction:
+      return getDerived().TraverseExclusiveTrylockFunctionAttr(cast<ExclusiveTrylockFunctionAttr>(A));
+    case attr::ExternalSourceSymbol:
+      return getDerived().TraverseExternalSourceSymbolAttr(cast<ExternalSourceSymbolAttr>(A));
+    case attr::FallThrough:
+      return getDerived().TraverseFallThroughAttr(cast<FallThroughAttr>(A));
+    case attr::FastCall:
+      return getDerived().TraverseFastCallAttr(cast<FastCallAttr>(A));
+    case attr::Final:
+      return getDerived().TraverseFinalAttr(cast<FinalAttr>(A));
+    case attr::FlagEnum:
+      return getDerived().TraverseFlagEnumAttr(cast<FlagEnumAttr>(A));
+    case attr::Flatten:
+      return getDerived().TraverseFlattenAttr(cast<FlattenAttr>(A));
+    case attr::Format:
+      return getDerived().TraverseFormatAttr(cast<FormatAttr>(A));
+    case attr::FormatArg:
+      return getDerived().TraverseFormatArgAttr(cast<FormatArgAttr>(A));
+    case attr::GNUInline:
+      return getDerived().TraverseGNUInlineAttr(cast<GNUInlineAttr>(A));
+    case attr::GuardedBy:
+      return getDerived().TraverseGuardedByAttr(cast<GuardedByAttr>(A));
+    case attr::GuardedVar:
+      return getDerived().TraverseGuardedVarAttr(cast<GuardedVarAttr>(A));
+    case attr::Hot:
+      return getDerived().TraverseHotAttr(cast<HotAttr>(A));
+    case attr::IBAction:
+      return getDerived().TraverseIBActionAttr(cast<IBActionAttr>(A));
+    case attr::IBOutlet:
+      return getDerived().TraverseIBOutletAttr(cast<IBOutletAttr>(A));
+    case attr::IBOutletCollection:
+      return getDerived().TraverseIBOutletCollectionAttr(cast<IBOutletCollectionAttr>(A));
+    case attr::IFunc:
+      return getDerived().TraverseIFuncAttr(cast<IFuncAttr>(A));
+    case attr::InitPriority:
+      return getDerived().TraverseInitPriorityAttr(cast<InitPriorityAttr>(A));
+    case attr::InitSeg:
+      return getDerived().TraverseInitSegAttr(cast<InitSegAttr>(A));
+    case attr::IntelOclBicc:
+      return getDerived().TraverseIntelOclBiccAttr(cast<IntelOclBiccAttr>(A));
+    case attr::InternalLinkage:
+      return getDerived().TraverseInternalLinkageAttr(cast<InternalLinkageAttr>(A));
+    case attr::LTOVisibilityPublic:
+      return getDerived().TraverseLTOVisibilityPublicAttr(cast<LTOVisibilityPublicAttr>(A));
+    case attr::LayoutVersion:
+      return getDerived().TraverseLayoutVersionAttr(cast<LayoutVersionAttr>(A));
+    case attr::LockReturned:
+      return getDerived().TraverseLockReturnedAttr(cast<LockReturnedAttr>(A));
+    case attr::LocksExcluded:
+      return getDerived().TraverseLocksExcludedAttr(cast<LocksExcludedAttr>(A));
+    case attr::LoopHint:
+      return getDerived().TraverseLoopHintAttr(cast<LoopHintAttr>(A));
+    case attr::MSABI:
+      return getDerived().TraverseMSABIAttr(cast<MSABIAttr>(A));
+    case attr::MSInheritance:
+      return getDerived().TraverseMSInheritanceAttr(cast<MSInheritanceAttr>(A));
+    case attr::MSNoVTable:
+      return getDerived().TraverseMSNoVTableAttr(cast<MSNoVTableAttr>(A));
+    case attr::MSP430Interrupt:
+      return getDerived().TraverseMSP430InterruptAttr(cast<MSP430InterruptAttr>(A));
+    case attr::MSStruct:
+      return getDerived().TraverseMSStructAttr(cast<MSStructAttr>(A));
+    case attr::MSVtorDisp:
+      return getDerived().TraverseMSVtorDispAttr(cast<MSVtorDispAttr>(A));
+    case attr::MaxFieldAlignment:
+      return getDerived().TraverseMaxFieldAlignmentAttr(cast<MaxFieldAlignmentAttr>(A));
+    case attr::MayAlias:
+      return getDerived().TraverseMayAliasAttr(cast<MayAliasAttr>(A));
+    case attr::MinSize:
+      return getDerived().TraverseMinSizeAttr(cast<MinSizeAttr>(A));
+    case attr::Mips16:
+      return getDerived().TraverseMips16Attr(cast<Mips16Attr>(A));
+    case attr::MipsInterrupt:
+      return getDerived().TraverseMipsInterruptAttr(cast<MipsInterruptAttr>(A));
+    case attr::Mode:
+      return getDerived().TraverseModeAttr(cast<ModeAttr>(A));
+    case attr::NSConsumed:
+      return getDerived().TraverseNSConsumedAttr(cast<NSConsumedAttr>(A));
+    case attr::NSConsumesSelf:
+      return getDerived().TraverseNSConsumesSelfAttr(cast<NSConsumesSelfAttr>(A));
+    case attr::NSReturnsAutoreleased:
+      return getDerived().TraverseNSReturnsAutoreleasedAttr(cast<NSReturnsAutoreleasedAttr>(A));
+    case attr::NSReturnsNotRetained:
+      return getDerived().TraverseNSReturnsNotRetainedAttr(cast<NSReturnsNotRetainedAttr>(A));
+    case attr::NSReturnsRetained:
+      return getDerived().TraverseNSReturnsRetainedAttr(cast<NSReturnsRetainedAttr>(A));
+    case attr::Naked:
+      return getDerived().TraverseNakedAttr(cast<NakedAttr>(A));
+    case attr::NoAlias:
+      return getDerived().TraverseNoAliasAttr(cast<NoAliasAttr>(A));
+    case attr::NoCommon:
+      return getDerived().TraverseNoCommonAttr(cast<NoCommonAttr>(A));
+    case attr::NoDebug:
+      return getDerived().TraverseNoDebugAttr(cast<NoDebugAttr>(A));
+    case attr::NoDuplicate:
+      return getDerived().TraverseNoDuplicateAttr(cast<NoDuplicateAttr>(A));
+    case attr::NoInline:
+      return getDerived().TraverseNoInlineAttr(cast<NoInlineAttr>(A));
+    case attr::NoInstrumentFunction:
+      return getDerived().TraverseNoInstrumentFunctionAttr(cast<NoInstrumentFunctionAttr>(A));
+    case attr::NoMips16:
+      return getDerived().TraverseNoMips16Attr(cast<NoMips16Attr>(A));
+    case attr::NoReturn:
+      return getDerived().TraverseNoReturnAttr(cast<NoReturnAttr>(A));
+    case attr::NoSanitize:
+      return getDerived().TraverseNoSanitizeAttr(cast<NoSanitizeAttr>(A));
+    case attr::NoSplitStack:
+      return getDerived().TraverseNoSplitStackAttr(cast<NoSplitStackAttr>(A));
+    case attr::NoThreadSafetyAnalysis:
+      return getDerived().TraverseNoThreadSafetyAnalysisAttr(cast<NoThreadSafetyAnalysisAttr>(A));
+    case attr::NoThrow:
+      return getDerived().TraverseNoThrowAttr(cast<NoThrowAttr>(A));
+    case attr::NonNull:
+      return getDerived().TraverseNonNullAttr(cast<NonNullAttr>(A));
+    case attr::NotTailCalled:
+      return getDerived().TraverseNotTailCalledAttr(cast<NotTailCalledAttr>(A));
+    case attr::OMPCaptureNoInit:
+      return getDerived().TraverseOMPCaptureNoInitAttr(cast<OMPCaptureNoInitAttr>(A));
+    case attr::OMPDeclareSimdDecl:
+      return getDerived().TraverseOMPDeclareSimdDeclAttr(cast<OMPDeclareSimdDeclAttr>(A));
+    case attr::OMPDeclareTargetDecl:
+      return getDerived().TraverseOMPDeclareTargetDeclAttr(cast<OMPDeclareTargetDeclAttr>(A));
+    case attr::OMPThreadPrivateDecl:
+      return getDerived().TraverseOMPThreadPrivateDeclAttr(cast<OMPThreadPrivateDeclAttr>(A));
+    case attr::ObjCBoxable:
+      return getDerived().TraverseObjCBoxableAttr(cast<ObjCBoxableAttr>(A));
+    case attr::ObjCBridge:
+      return getDerived().TraverseObjCBridgeAttr(cast<ObjCBridgeAttr>(A));
+    case attr::ObjCBridgeMutable:
+      return getDerived().TraverseObjCBridgeMutableAttr(cast<ObjCBridgeMutableAttr>(A));
+    case attr::ObjCBridgeRelated:
+      return getDerived().TraverseObjCBridgeRelatedAttr(cast<ObjCBridgeRelatedAttr>(A));
+    case attr::ObjCDesignatedInitializer:
+      return getDerived().TraverseObjCDesignatedInitializerAttr(cast<ObjCDesignatedInitializerAttr>(A));
+    case attr::ObjCException:
+      return getDerived().TraverseObjCExceptionAttr(cast<ObjCExceptionAttr>(A));
+    case attr::ObjCExplicitProtocolImpl:
+      return getDerived().TraverseObjCExplicitProtocolImplAttr(cast<ObjCExplicitProtocolImplAttr>(A));
+    case attr::ObjCIndependentClass:
+      return getDerived().TraverseObjCIndependentClassAttr(cast<ObjCIndependentClassAttr>(A));
+    case attr::ObjCMethodFamily:
+      return getDerived().TraverseObjCMethodFamilyAttr(cast<ObjCMethodFamilyAttr>(A));
+    case attr::ObjCNSObject:
+      return getDerived().TraverseObjCNSObjectAttr(cast<ObjCNSObjectAttr>(A));
+    case attr::ObjCPreciseLifetime:
+      return getDerived().TraverseObjCPreciseLifetimeAttr(cast<ObjCPreciseLifetimeAttr>(A));
+    case attr::ObjCRequiresPropertyDefs:
+      return getDerived().TraverseObjCRequiresPropertyDefsAttr(cast<ObjCRequiresPropertyDefsAttr>(A));
+    case attr::ObjCRequiresSuper:
+      return getDerived().TraverseObjCRequiresSuperAttr(cast<ObjCRequiresSuperAttr>(A));
+    case attr::ObjCReturnsInnerPointer:
+      return getDerived().TraverseObjCReturnsInnerPointerAttr(cast<ObjCReturnsInnerPointerAttr>(A));
+    case attr::ObjCRootClass:
+      return getDerived().TraverseObjCRootClassAttr(cast<ObjCRootClassAttr>(A));
+    case attr::ObjCRuntimeName:
+      return getDerived().TraverseObjCRuntimeNameAttr(cast<ObjCRuntimeNameAttr>(A));
+    case attr::ObjCRuntimeVisible:
+      return getDerived().TraverseObjCRuntimeVisibleAttr(cast<ObjCRuntimeVisibleAttr>(A));
+    case attr::ObjCSubclassingRestricted:
+      return getDerived().TraverseObjCSubclassingRestrictedAttr(cast<ObjCSubclassingRestrictedAttr>(A));
+    case attr::OpenCLAccess:
+      return getDerived().TraverseOpenCLAccessAttr(cast<OpenCLAccessAttr>(A));
+    case attr::OpenCLKernel:
+      return getDerived().TraverseOpenCLKernelAttr(cast<OpenCLKernelAttr>(A));
+    case attr::OpenCLUnrollHint:
+      return getDerived().TraverseOpenCLUnrollHintAttr(cast<OpenCLUnrollHintAttr>(A));
+    case attr::OptimizeNone:
+      return getDerived().TraverseOptimizeNoneAttr(cast<OptimizeNoneAttr>(A));
+    case attr::Overloadable:
+      return getDerived().TraverseOverloadableAttr(cast<OverloadableAttr>(A));
+    case attr::Override:
+      return getDerived().TraverseOverrideAttr(cast<OverrideAttr>(A));
+    case attr::Ownership:
+      return getDerived().TraverseOwnershipAttr(cast<OwnershipAttr>(A));
+    case attr::Packed:
+      return getDerived().TraversePackedAttr(cast<PackedAttr>(A));
+    case attr::ParamTypestate:
+      return getDerived().TraverseParamTypestateAttr(cast<ParamTypestateAttr>(A));
+    case attr::Pascal:
+      return getDerived().TraversePascalAttr(cast<PascalAttr>(A));
+    case attr::PassObjectSize:
+      return getDerived().TraversePassObjectSizeAttr(cast<PassObjectSizeAttr>(A));
+    case attr::Pcs:
+      return getDerived().TraversePcsAttr(cast<PcsAttr>(A));
+    case attr::PreserveAll:
+      return getDerived().TraversePreserveAllAttr(cast<PreserveAllAttr>(A));
+    case attr::PreserveMost:
+      return getDerived().TraversePreserveMostAttr(cast<PreserveMostAttr>(A));
+    case attr::PtGuardedBy:
+      return getDerived().TraversePtGuardedByAttr(cast<PtGuardedByAttr>(A));
+    case attr::PtGuardedVar:
+      return getDerived().TraversePtGuardedVarAttr(cast<PtGuardedVarAttr>(A));
+    case attr::Pure:
+      return getDerived().TraversePureAttr(cast<PureAttr>(A));
+    case attr::RegCall:
+      return getDerived().TraverseRegCallAttr(cast<RegCallAttr>(A));
+    case attr::ReleaseCapability:
+      return getDerived().TraverseReleaseCapabilityAttr(cast<ReleaseCapabilityAttr>(A));
+    case attr::RenderScriptKernel:
+      return getDerived().TraverseRenderScriptKernelAttr(cast<RenderScriptKernelAttr>(A));
+    case attr::ReqdWorkGroupSize:
+      return getDerived().TraverseReqdWorkGroupSizeAttr(cast<ReqdWorkGroupSizeAttr>(A));
+    case attr::RequireConstantInit:
+      return getDerived().TraverseRequireConstantInitAttr(cast<RequireConstantInitAttr>(A));
+    case attr::RequiresCapability:
+      return getDerived().TraverseRequiresCapabilityAttr(cast<RequiresCapabilityAttr>(A));
+    case attr::Restrict:
+      return getDerived().TraverseRestrictAttr(cast<RestrictAttr>(A));
+    case attr::ReturnTypestate:
+      return getDerived().TraverseReturnTypestateAttr(cast<ReturnTypestateAttr>(A));
+    case attr::ReturnsNonNull:
+      return getDerived().TraverseReturnsNonNullAttr(cast<ReturnsNonNullAttr>(A));
+    case attr::ReturnsTwice:
+      return getDerived().TraverseReturnsTwiceAttr(cast<ReturnsTwiceAttr>(A));
+    case attr::ScopedLockable:
+      return getDerived().TraverseScopedLockableAttr(cast<ScopedLockableAttr>(A));
+    case attr::Section:
+      return getDerived().TraverseSectionAttr(cast<SectionAttr>(A));
+    case attr::SelectAny:
+      return getDerived().TraverseSelectAnyAttr(cast<SelectAnyAttr>(A));
+    case attr::Sentinel:
+      return getDerived().TraverseSentinelAttr(cast<SentinelAttr>(A));
+    case attr::SetTypestate:
+      return getDerived().TraverseSetTypestateAttr(cast<SetTypestateAttr>(A));
+    case attr::SharedTrylockFunction:
+      return getDerived().TraverseSharedTrylockFunctionAttr(cast<SharedTrylockFunctionAttr>(A));
+    case attr::StdCall:
+      return getDerived().TraverseStdCallAttr(cast<StdCallAttr>(A));
+    case attr::Suppress:
+      return getDerived().TraverseSuppressAttr(cast<SuppressAttr>(A));
+    case attr::SwiftCall:
+      return getDerived().TraverseSwiftCallAttr(cast<SwiftCallAttr>(A));
+    case attr::SwiftContext:
+      return getDerived().TraverseSwiftContextAttr(cast<SwiftContextAttr>(A));
+    case attr::SwiftErrorResult:
+      return getDerived().TraverseSwiftErrorResultAttr(cast<SwiftErrorResultAttr>(A));
+    case attr::SwiftIndirectResult:
+      return getDerived().TraverseSwiftIndirectResultAttr(cast<SwiftIndirectResultAttr>(A));
+    case attr::SysVABI:
+      return getDerived().TraverseSysVABIAttr(cast<SysVABIAttr>(A));
+    case attr::TLSModel:
+      return getDerived().TraverseTLSModelAttr(cast<TLSModelAttr>(A));
+    case attr::Target:
+      return getDerived().TraverseTargetAttr(cast<TargetAttr>(A));
+    case attr::TestTypestate:
+      return getDerived().TraverseTestTypestateAttr(cast<TestTypestateAttr>(A));
+    case attr::ThisCall:
+      return getDerived().TraverseThisCallAttr(cast<ThisCallAttr>(A));
+    case attr::Thread:
+      return getDerived().TraverseThreadAttr(cast<ThreadAttr>(A));
+    case attr::TransparentUnion:
+      return getDerived().TraverseTransparentUnionAttr(cast<TransparentUnionAttr>(A));
+    case attr::TryAcquireCapability:
+      return getDerived().TraverseTryAcquireCapabilityAttr(cast<TryAcquireCapabilityAttr>(A));
+    case attr::TypeTagForDatatype:
+      return getDerived().TraverseTypeTagForDatatypeAttr(cast<TypeTagForDatatypeAttr>(A));
+    case attr::TypeVisibility:
+      return getDerived().TraverseTypeVisibilityAttr(cast<TypeVisibilityAttr>(A));
+    case attr::Unavailable:
+      return getDerived().TraverseUnavailableAttr(cast<UnavailableAttr>(A));
+    case attr::Unused:
+      return getDerived().TraverseUnusedAttr(cast<UnusedAttr>(A));
+    case attr::Used:
+      return getDerived().TraverseUsedAttr(cast<UsedAttr>(A));
+    case attr::Uuid:
+      return getDerived().TraverseUuidAttr(cast<UuidAttr>(A));
+    case attr::VecReturn:
+      return getDerived().TraverseVecReturnAttr(cast<VecReturnAttr>(A));
+    case attr::VecTypeHint:
+      return getDerived().TraverseVecTypeHintAttr(cast<VecTypeHintAttr>(A));
+    case attr::VectorCall:
+      return getDerived().TraverseVectorCallAttr(cast<VectorCallAttr>(A));
+    case attr::Visibility:
+      return getDerived().TraverseVisibilityAttr(cast<VisibilityAttr>(A));
+    case attr::WarnUnused:
+      return getDerived().TraverseWarnUnusedAttr(cast<WarnUnusedAttr>(A));
+    case attr::WarnUnusedResult:
+      return getDerived().TraverseWarnUnusedResultAttr(cast<WarnUnusedResultAttr>(A));
+    case attr::Weak:
+      return getDerived().TraverseWeakAttr(cast<WeakAttr>(A));
+    case attr::WeakImport:
+      return getDerived().TraverseWeakImportAttr(cast<WeakImportAttr>(A));
+    case attr::WeakRef:
+      return getDerived().TraverseWeakRefAttr(cast<WeakRefAttr>(A));
+    case attr::WorkGroupSizeHint:
+      return getDerived().TraverseWorkGroupSizeHintAttr(cast<WorkGroupSizeHintAttr>(A));
+    case attr::X86ForceAlignArgPointer:
+      return getDerived().TraverseX86ForceAlignArgPointerAttr(cast<X86ForceAlignArgPointerAttr>(A));
+    case attr::XRayInstrument:
+      return getDerived().TraverseXRayInstrumentAttr(cast<XRayInstrumentAttr>(A));
+    case attr::XRayLogArgs:
+      return getDerived().TraverseXRayLogArgsAttr(cast<XRayLogArgsAttr>(A));
+  }
+  llvm_unreachable("bad attribute kind");
+}
+#endif  // ATTR_VISITOR_DECLS_ONLY
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/Attrs.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/Attrs.inc
new file mode 100644
index 0000000..b049551
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/Attrs.inc
@@ -0,0 +1,8156 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Attribute classes' definitions                                             *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef LLVM_CLANG_ATTR_CLASSES_INC
+#define LLVM_CLANG_ATTR_CLASSES_INC
+
+class AMDGPUFlatWorkGroupSizeAttr : public InheritableAttr {
+unsigned min;
+
+unsigned max;
+
+public:
+  static AMDGPUFlatWorkGroupSizeAttr *CreateImplicit(ASTContext &Ctx, unsigned Min, unsigned Max, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AMDGPUFlatWorkGroupSizeAttr(Loc, Ctx, Min, Max, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AMDGPUFlatWorkGroupSizeAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Min
+              , unsigned Max
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AMDGPUFlatWorkGroupSize, R, SI, false, false)
+              , min(Min)
+              , max(Max)
+  {
+  }
+
+  AMDGPUFlatWorkGroupSizeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getMin() const {
+    return min;
+  }
+
+  unsigned getMax() const {
+    return max;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AMDGPUFlatWorkGroupSize; }
+};
+
+class AMDGPUNumSGPRAttr : public InheritableAttr {
+unsigned numSGPR;
+
+public:
+  static AMDGPUNumSGPRAttr *CreateImplicit(ASTContext &Ctx, unsigned NumSGPR, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AMDGPUNumSGPRAttr(Loc, Ctx, NumSGPR, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AMDGPUNumSGPRAttr(SourceRange R, ASTContext &Ctx
+              , unsigned NumSGPR
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AMDGPUNumSGPR, R, SI, false, false)
+              , numSGPR(NumSGPR)
+  {
+  }
+
+  AMDGPUNumSGPRAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getNumSGPR() const {
+    return numSGPR;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AMDGPUNumSGPR; }
+};
+
+class AMDGPUNumVGPRAttr : public InheritableAttr {
+unsigned numVGPR;
+
+public:
+  static AMDGPUNumVGPRAttr *CreateImplicit(ASTContext &Ctx, unsigned NumVGPR, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AMDGPUNumVGPRAttr(Loc, Ctx, NumVGPR, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AMDGPUNumVGPRAttr(SourceRange R, ASTContext &Ctx
+              , unsigned NumVGPR
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AMDGPUNumVGPR, R, SI, false, false)
+              , numVGPR(NumVGPR)
+  {
+  }
+
+  AMDGPUNumVGPRAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getNumVGPR() const {
+    return numVGPR;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AMDGPUNumVGPR; }
+};
+
+class AMDGPUWavesPerEUAttr : public InheritableAttr {
+unsigned min;
+
+unsigned max;
+
+public:
+  static AMDGPUWavesPerEUAttr *CreateImplicit(ASTContext &Ctx, unsigned Min, unsigned Max, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AMDGPUWavesPerEUAttr(Loc, Ctx, Min, Max, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AMDGPUWavesPerEUAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Min
+              , unsigned Max
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AMDGPUWavesPerEU, R, SI, false, false)
+              , min(Min)
+              , max(Max)
+  {
+  }
+
+  AMDGPUWavesPerEUAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Min
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AMDGPUWavesPerEU, R, SI, false, false)
+              , min(Min)
+              , max()
+  {
+  }
+
+  AMDGPUWavesPerEUAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getMin() const {
+    return min;
+  }
+
+  unsigned getMax() const {
+    return max;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AMDGPUWavesPerEU; }
+};
+
+class ARMInterruptAttr : public InheritableAttr {
+public:
+  enum InterruptType {
+    IRQ,
+    FIQ,
+    SWI,
+    ABORT,
+    UNDEF,
+    Generic
+  };
+private:
+  InterruptType interrupt;
+
+public:
+  static ARMInterruptAttr *CreateImplicit(ASTContext &Ctx, InterruptType Interrupt, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ARMInterruptAttr(Loc, Ctx, Interrupt, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ARMInterruptAttr(SourceRange R, ASTContext &Ctx
+              , InterruptType Interrupt
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ARMInterrupt, R, SI, false, false)
+              , interrupt(Interrupt)
+  {
+  }
+
+  ARMInterruptAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ARMInterrupt, R, SI, false, false)
+              , interrupt(InterruptType(0))
+  {
+  }
+
+  ARMInterruptAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  InterruptType getInterrupt() const {
+    return interrupt;
+  }
+
+  static bool ConvertStrToInterruptType(StringRef Val, InterruptType &Out) {
+    Optional<InterruptType> R = llvm::StringSwitch<Optional<InterruptType>>(Val)
+      .Case("IRQ", ARMInterruptAttr::IRQ)
+      .Case("FIQ", ARMInterruptAttr::FIQ)
+      .Case("SWI", ARMInterruptAttr::SWI)
+      .Case("ABORT", ARMInterruptAttr::ABORT)
+      .Case("UNDEF", ARMInterruptAttr::UNDEF)
+      .Case("", ARMInterruptAttr::Generic)
+      .Default(Optional<InterruptType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertInterruptTypeToStr(InterruptType Val) {
+    switch(Val) {
+    case ARMInterruptAttr::IRQ: return "IRQ";
+    case ARMInterruptAttr::FIQ: return "FIQ";
+    case ARMInterruptAttr::SWI: return "SWI";
+    case ARMInterruptAttr::ABORT: return "ABORT";
+    case ARMInterruptAttr::UNDEF: return "UNDEF";
+    case ARMInterruptAttr::Generic: return "";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ARMInterrupt; }
+};
+
+class AVRInterruptAttr : public InheritableAttr {
+public:
+  static AVRInterruptAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AVRInterruptAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AVRInterruptAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AVRInterrupt, R, SI, false, false)
+  {
+  }
+
+  AVRInterruptAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AVRInterrupt; }
+};
+
+class AVRSignalAttr : public InheritableAttr {
+public:
+  static AVRSignalAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AVRSignalAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AVRSignalAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AVRSignal, R, SI, false, false)
+  {
+  }
+
+  AVRSignalAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AVRSignal; }
+};
+
+class AbiTagAttr : public Attr {
+  unsigned tags_Size;
+  StringRef *tags_;
+
+public:
+  static AbiTagAttr *CreateImplicit(ASTContext &Ctx, StringRef *Tags, unsigned TagsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AbiTagAttr(Loc, Ctx, Tags, TagsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AbiTagAttr(SourceRange R, ASTContext &Ctx
+              , StringRef *Tags, unsigned TagsSize
+              , unsigned SI
+             )
+    : Attr(attr::AbiTag, R, SI, false, false)
+              , tags_Size(TagsSize), tags_(new (Ctx, 16) StringRef[tags_Size])
+  {
+    for (size_t I = 0, E = tags_Size; I != E;
+         ++I) {
+      StringRef Ref = Tags[I];
+      if (!Ref.empty()) {
+        char *Mem = new (Ctx, 1) char[Ref.size()];
+        std::memcpy(Mem, Ref.data(), Ref.size());
+        tags_[I] = StringRef(Mem, Ref.size());
+      }
+    }
+  }
+
+  AbiTagAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::AbiTag, R, SI, false, false)
+              , tags_Size(0), tags_(nullptr)
+  {
+  }
+
+  AbiTagAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef StringRef* tags_iterator;
+  tags_iterator tags_begin() const { return tags_; }
+  tags_iterator tags_end() const { return tags_ + tags_Size; }
+  unsigned tags_size() const { return tags_Size; }
+  llvm::iterator_range<tags_iterator> tags() const { return llvm::make_range(tags_begin(), tags_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AbiTag; }
+};
+
+class AcquireCapabilityAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  enum Spelling {
+    GNU_acquire_capability = 0,
+    CXX11_clang_acquire_capability = 1,
+    GNU_acquire_shared_capability = 2,
+    CXX11_clang_acquire_shared_capability = 3,
+    GNU_exclusive_lock_function = 4,
+    GNU_shared_lock_function = 5
+  };
+
+  static AcquireCapabilityAttr *CreateImplicit(ASTContext &Ctx, Spelling S, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AcquireCapabilityAttr(Loc, Ctx, Args, ArgsSize, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AcquireCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AcquireCapability, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  AcquireCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AcquireCapability, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  AcquireCapabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_acquire_capability;
+    case 1: return CXX11_clang_acquire_capability;
+    case 2: return GNU_acquire_shared_capability;
+    case 3: return CXX11_clang_acquire_shared_capability;
+    case 4: return GNU_exclusive_lock_function;
+    case 5: return GNU_shared_lock_function;
+  }
+  }
+  bool isShared() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3 ||
+    SpellingListIndex == 5; }
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AcquireCapability; }
+};
+
+class AcquiredAfterAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static AcquiredAfterAttr *CreateImplicit(ASTContext &Ctx, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AcquiredAfterAttr(Loc, Ctx, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AcquiredAfterAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AcquiredAfter, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  AcquiredAfterAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AcquiredAfter, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  AcquiredAfterAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AcquiredAfter; }
+};
+
+class AcquiredBeforeAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static AcquiredBeforeAttr *CreateImplicit(ASTContext &Ctx, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AcquiredBeforeAttr(Loc, Ctx, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AcquiredBeforeAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AcquiredBefore, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  AcquiredBeforeAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AcquiredBefore, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  AcquiredBeforeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AcquiredBefore; }
+};
+
+class AliasAttr : public Attr {
+unsigned aliaseeLength;
+char *aliasee;
+
+public:
+  static AliasAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Aliasee, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AliasAttr(Loc, Ctx, Aliasee, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AliasAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Aliasee
+              , unsigned SI
+             )
+    : Attr(attr::Alias, R, SI, false, false)
+              , aliaseeLength(Aliasee.size()),aliasee(new (Ctx, 1) char[aliaseeLength])
+  {
+      if (!Aliasee.empty())
+        std::memcpy(aliasee, Aliasee.data(), aliaseeLength);
+  }
+
+  AliasAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getAliasee() const {
+    return llvm::StringRef(aliasee, aliaseeLength);
+  }
+  unsigned getAliaseeLength() const {
+    return aliaseeLength;
+  }
+  void setAliasee(ASTContext &C, llvm::StringRef S) {
+    aliaseeLength = S.size();
+    this->aliasee = new (C, 1) char [aliaseeLength];
+    if (!S.empty())
+      std::memcpy(this->aliasee, S.data(), aliaseeLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Alias; }
+};
+
+class AlignMac68kAttr : public InheritableAttr {
+public:
+  static AlignMac68kAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AlignMac68kAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AlignMac68kAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AlignMac68k, R, SI, false, false)
+  {
+  }
+
+  AlignMac68kAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AlignMac68k; }
+};
+
+class AlignValueAttr : public Attr {
+Expr * alignment;
+
+public:
+  static AlignValueAttr *CreateImplicit(ASTContext &Ctx, Expr * Alignment, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AlignValueAttr(Loc, Ctx, Alignment, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AlignValueAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Alignment
+              , unsigned SI
+             )
+    : Attr(attr::AlignValue, R, SI, false, false)
+              , alignment(Alignment)
+  {
+  }
+
+  AlignValueAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getAlignment() const {
+    return alignment;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AlignValue; }
+};
+
+class AlignedAttr : public InheritableAttr {
+bool isalignmentExpr;
+union {
+Expr *alignmentExpr;
+TypeSourceInfo *alignmentType;
+};
+
+public:
+  enum Spelling {
+    GNU_aligned = 0,
+    CXX11_gnu_aligned = 1,
+    Declspec_align = 2,
+    Keyword_alignas = 3,
+    Keyword_Alignas = 4
+  };
+
+  static AlignedAttr *CreateImplicit(ASTContext &Ctx, Spelling S, bool IsAlignmentExpr, void *Alignment, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AlignedAttr(Loc, Ctx, IsAlignmentExpr, Alignment, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AlignedAttr(SourceRange R, ASTContext &Ctx
+              , bool IsAlignmentExpr, void *Alignment
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Aligned, R, SI, false, false)
+              , isalignmentExpr(IsAlignmentExpr)
+  {
+    if (isalignmentExpr)
+       alignmentExpr = reinterpret_cast<Expr *>(Alignment);
+    else
+       alignmentType = reinterpret_cast<TypeSourceInfo *>(Alignment);
+  }
+
+  AlignedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Aligned, R, SI, false, false)
+              , isalignmentExpr(false)
+  {
+  }
+
+  AlignedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_aligned;
+    case 1: return CXX11_gnu_aligned;
+    case 2: return Declspec_align;
+    case 3: return Keyword_alignas;
+    case 4: return Keyword_Alignas;
+  }
+  }
+  bool isGNU() const { return SpellingListIndex == 0 ||
+    SpellingListIndex == 1; }
+  bool isC11() const { return SpellingListIndex == 4; }
+  bool isAlignas() const { return SpellingListIndex == 3 ||
+    SpellingListIndex == 4; }
+  bool isDeclspec() const { return SpellingListIndex == 2; }
+  bool isAlignmentDependent() const;
+  unsigned getAlignment(ASTContext &Ctx) const;
+  bool isAlignmentExpr() const {
+    return isalignmentExpr;
+  }
+  Expr *getAlignmentExpr() const {
+    assert(isalignmentExpr);
+    return alignmentExpr;
+  }
+  TypeSourceInfo *getAlignmentType() const {
+    assert(!isalignmentExpr);
+    return alignmentType;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Aligned; }
+};
+
+class AllocAlignAttr : public InheritableAttr {
+int paramIndex;
+
+public:
+  static AllocAlignAttr *CreateImplicit(ASTContext &Ctx, int ParamIndex, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AllocAlignAttr(Loc, Ctx, ParamIndex, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AllocAlignAttr(SourceRange R, ASTContext &Ctx
+              , int ParamIndex
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AllocAlign, R, SI, false, false)
+              , paramIndex(ParamIndex)
+  {
+  }
+
+  AllocAlignAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getParamIndex() const {
+    return paramIndex;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AllocAlign; }
+};
+
+class AllocSizeAttr : public InheritableAttr {
+int elemSizeParam;
+
+int numElemsParam;
+
+public:
+  static AllocSizeAttr *CreateImplicit(ASTContext &Ctx, int ElemSizeParam, int NumElemsParam, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AllocSizeAttr(Loc, Ctx, ElemSizeParam, NumElemsParam, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AllocSizeAttr(SourceRange R, ASTContext &Ctx
+              , int ElemSizeParam
+              , int NumElemsParam
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AllocSize, R, SI, false, false)
+              , elemSizeParam(ElemSizeParam)
+              , numElemsParam(NumElemsParam)
+  {
+  }
+
+  AllocSizeAttr(SourceRange R, ASTContext &Ctx
+              , int ElemSizeParam
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AllocSize, R, SI, false, false)
+              , elemSizeParam(ElemSizeParam)
+              , numElemsParam()
+  {
+  }
+
+  AllocSizeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getElemSizeParam() const {
+    return elemSizeParam;
+  }
+
+  int getNumElemsParam() const {
+    return numElemsParam;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AllocSize; }
+};
+
+class AlwaysInlineAttr : public InheritableAttr {
+public:
+  enum Spelling {
+    GNU_always_inline = 0,
+    CXX11_gnu_always_inline = 1,
+    Keyword_forceinline = 2
+  };
+
+  static AlwaysInlineAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AlwaysInlineAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AlwaysInlineAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AlwaysInline, R, SI, false, false)
+  {
+  }
+
+  AlwaysInlineAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_always_inline;
+    case 1: return CXX11_gnu_always_inline;
+    case 2: return Keyword_forceinline;
+  }
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AlwaysInline; }
+};
+
+class AnalyzerNoReturnAttr : public InheritableAttr {
+public:
+  static AnalyzerNoReturnAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AnalyzerNoReturnAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AnalyzerNoReturnAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AnalyzerNoReturn, R, SI, false, false)
+  {
+  }
+
+  AnalyzerNoReturnAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AnalyzerNoReturn; }
+};
+
+class AnnotateAttr : public InheritableParamAttr {
+unsigned annotationLength;
+char *annotation;
+
+public:
+  static AnnotateAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Annotation, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AnnotateAttr(Loc, Ctx, Annotation, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AnnotateAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Annotation
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::Annotate, R, SI, false, false)
+              , annotationLength(Annotation.size()),annotation(new (Ctx, 1) char[annotationLength])
+  {
+      if (!Annotation.empty())
+        std::memcpy(annotation, Annotation.data(), annotationLength);
+  }
+
+  AnnotateAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getAnnotation() const {
+    return llvm::StringRef(annotation, annotationLength);
+  }
+  unsigned getAnnotationLength() const {
+    return annotationLength;
+  }
+  void setAnnotation(ASTContext &C, llvm::StringRef S) {
+    annotationLength = S.size();
+    this->annotation = new (C, 1) char [annotationLength];
+    if (!S.empty())
+      std::memcpy(this->annotation, S.data(), annotationLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Annotate; }
+};
+
+class AnyX86InterruptAttr : public InheritableAttr {
+public:
+  static AnyX86InterruptAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AnyX86InterruptAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AnyX86InterruptAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AnyX86Interrupt, R, SI, false, false)
+  {
+  }
+
+  AnyX86InterruptAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AnyX86Interrupt; }
+};
+
+class ArcWeakrefUnavailableAttr : public InheritableAttr {
+public:
+  static ArcWeakrefUnavailableAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ArcWeakrefUnavailableAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ArcWeakrefUnavailableAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ArcWeakrefUnavailable, R, SI, false, false)
+  {
+  }
+
+  ArcWeakrefUnavailableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ArcWeakrefUnavailable; }
+};
+
+class ArgumentWithTypeTagAttr : public InheritableAttr {
+IdentifierInfo * argumentKind;
+
+unsigned argumentIdx;
+
+unsigned typeTagIdx;
+
+bool isPointer;
+
+public:
+  enum Spelling {
+    GNU_argument_with_type_tag = 0,
+    GNU_pointer_with_type_tag = 1
+  };
+
+  static ArgumentWithTypeTagAttr *CreateImplicit(ASTContext &Ctx, Spelling S, IdentifierInfo * ArgumentKind, unsigned ArgumentIdx, unsigned TypeTagIdx, bool IsPointer, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ArgumentWithTypeTagAttr(Loc, Ctx, ArgumentKind, ArgumentIdx, TypeTagIdx, IsPointer, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ArgumentWithTypeTagAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * ArgumentKind
+              , unsigned ArgumentIdx
+              , unsigned TypeTagIdx
+              , bool IsPointer
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ArgumentWithTypeTag, R, SI, false, false)
+              , argumentKind(ArgumentKind)
+              , argumentIdx(ArgumentIdx)
+              , typeTagIdx(TypeTagIdx)
+              , isPointer(IsPointer)
+  {
+  }
+
+  ArgumentWithTypeTagAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_argument_with_type_tag;
+    case 1: return GNU_pointer_with_type_tag;
+  }
+  }
+  IdentifierInfo * getArgumentKind() const {
+    return argumentKind;
+  }
+
+  unsigned getArgumentIdx() const {
+    return argumentIdx;
+  }
+
+  unsigned getTypeTagIdx() const {
+    return typeTagIdx;
+  }
+
+  bool getIsPointer() const {
+    return isPointer;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ArgumentWithTypeTag; }
+};
+
+class AsmLabelAttr : public InheritableAttr {
+unsigned labelLength;
+char *label;
+
+public:
+  static AsmLabelAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Label, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AsmLabelAttr(Loc, Ctx, Label, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AsmLabelAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Label
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AsmLabel, R, SI, false, false)
+              , labelLength(Label.size()),label(new (Ctx, 1) char[labelLength])
+  {
+      if (!Label.empty())
+        std::memcpy(label, Label.data(), labelLength);
+  }
+
+  AsmLabelAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getLabel() const {
+    return llvm::StringRef(label, labelLength);
+  }
+  unsigned getLabelLength() const {
+    return labelLength;
+  }
+  void setLabel(ASTContext &C, llvm::StringRef S) {
+    labelLength = S.size();
+    this->label = new (C, 1) char [labelLength];
+    if (!S.empty())
+      std::memcpy(this->label, S.data(), labelLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AsmLabel; }
+};
+
+class AssertCapabilityAttr : public InheritableAttr {
+Expr * expr;
+
+public:
+  enum Spelling {
+    GNU_assert_capability = 0,
+    CXX11_clang_assert_capability = 1,
+    GNU_assert_shared_capability = 2,
+    CXX11_clang_assert_shared_capability = 3
+  };
+
+  static AssertCapabilityAttr *CreateImplicit(ASTContext &Ctx, Spelling S, Expr * Expr, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AssertCapabilityAttr(Loc, Ctx, Expr, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AssertCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Expr
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssertCapability, R, SI, true, true)
+              , expr(Expr)
+  {
+  }
+
+  AssertCapabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_assert_capability;
+    case 1: return CXX11_clang_assert_capability;
+    case 2: return GNU_assert_shared_capability;
+    case 3: return CXX11_clang_assert_shared_capability;
+  }
+  }
+  bool isShared() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3; }
+  Expr * getExpr() const {
+    return expr;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AssertCapability; }
+};
+
+class AssertExclusiveLockAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static AssertExclusiveLockAttr *CreateImplicit(ASTContext &Ctx, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AssertExclusiveLockAttr(Loc, Ctx, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AssertExclusiveLockAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssertExclusiveLock, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  AssertExclusiveLockAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssertExclusiveLock, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  AssertExclusiveLockAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AssertExclusiveLock; }
+};
+
+class AssertSharedLockAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static AssertSharedLockAttr *CreateImplicit(ASTContext &Ctx, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AssertSharedLockAttr(Loc, Ctx, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AssertSharedLockAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssertSharedLock, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  AssertSharedLockAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssertSharedLock, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  AssertSharedLockAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AssertSharedLock; }
+};
+
+class AssumeAlignedAttr : public InheritableAttr {
+Expr * alignment;
+
+Expr * offset;
+
+public:
+  static AssumeAlignedAttr *CreateImplicit(ASTContext &Ctx, Expr * Alignment, Expr * Offset, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AssumeAlignedAttr(Loc, Ctx, Alignment, Offset, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AssumeAlignedAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Alignment
+              , Expr * Offset
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssumeAligned, R, SI, false, false)
+              , alignment(Alignment)
+              , offset(Offset)
+  {
+  }
+
+  AssumeAlignedAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Alignment
+              , unsigned SI
+             )
+    : InheritableAttr(attr::AssumeAligned, R, SI, false, false)
+              , alignment(Alignment)
+              , offset()
+  {
+  }
+
+  AssumeAlignedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getAlignment() const {
+    return alignment;
+  }
+
+  Expr * getOffset() const {
+    return offset;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::AssumeAligned; }
+};
+
+class AvailabilityAttr : public InheritableAttr {
+IdentifierInfo * platform;
+
+VersionTuple introduced;
+
+
+VersionTuple deprecated;
+
+
+VersionTuple obsoleted;
+
+
+bool unavailable;
+
+unsigned messageLength;
+char *message;
+
+bool strict;
+
+unsigned replacementLength;
+char *replacement;
+
+public:
+  static AvailabilityAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * Platform, VersionTuple Introduced, VersionTuple Deprecated, VersionTuple Obsoleted, bool Unavailable, llvm::StringRef Message, bool Strict, llvm::StringRef Replacement, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) AvailabilityAttr(Loc, Ctx, Platform, Introduced, Deprecated, Obsoleted, Unavailable, Message, Strict, Replacement, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  AvailabilityAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * Platform
+              , VersionTuple Introduced
+              , VersionTuple Deprecated
+              , VersionTuple Obsoleted
+              , bool Unavailable
+              , llvm::StringRef Message
+              , bool Strict
+              , llvm::StringRef Replacement
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Availability, R, SI, false, true)
+              , platform(Platform)
+              , introduced(Introduced)
+              , deprecated(Deprecated)
+              , obsoleted(Obsoleted)
+              , unavailable(Unavailable)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+              , strict(Strict)
+              , replacementLength(Replacement.size()),replacement(new (Ctx, 1) char[replacementLength])
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+      if (!Replacement.empty())
+        std::memcpy(replacement, Replacement.data(), replacementLength);
+  }
+
+  AvailabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getPlatform() const {
+    return platform;
+  }
+
+  VersionTuple getIntroduced() const {
+    return introduced;
+  }
+  void setIntroduced(ASTContext &C, VersionTuple V) {
+    introduced = V;
+  }
+
+  VersionTuple getDeprecated() const {
+    return deprecated;
+  }
+  void setDeprecated(ASTContext &C, VersionTuple V) {
+    deprecated = V;
+  }
+
+  VersionTuple getObsoleted() const {
+    return obsoleted;
+  }
+  void setObsoleted(ASTContext &C, VersionTuple V) {
+    obsoleted = V;
+  }
+
+  bool getUnavailable() const {
+    return unavailable;
+  }
+
+  llvm::StringRef getMessage() const {
+    return llvm::StringRef(message, messageLength);
+  }
+  unsigned getMessageLength() const {
+    return messageLength;
+  }
+  void setMessage(ASTContext &C, llvm::StringRef S) {
+    messageLength = S.size();
+    this->message = new (C, 1) char [messageLength];
+    if (!S.empty())
+      std::memcpy(this->message, S.data(), messageLength);
+  }
+
+  bool getStrict() const {
+    return strict;
+  }
+
+  llvm::StringRef getReplacement() const {
+    return llvm::StringRef(replacement, replacementLength);
+  }
+  unsigned getReplacementLength() const {
+    return replacementLength;
+  }
+  void setReplacement(ASTContext &C, llvm::StringRef S) {
+    replacementLength = S.size();
+    this->replacement = new (C, 1) char [replacementLength];
+    if (!S.empty())
+      std::memcpy(this->replacement, S.data(), replacementLength);
+  }
+
+static llvm::StringRef getPrettyPlatformName(llvm::StringRef Platform) {
+    return llvm::StringSwitch<llvm::StringRef>(Platform)
+             .Case("android", "Android")
+             .Case("ios", "iOS")
+             .Case("macos", "macOS")
+             .Case("tvos", "tvOS")
+             .Case("watchos", "watchOS")
+             .Case("ios_app_extension", "iOS (App Extension)")
+             .Case("macos_app_extension", "macOS (App Extension)")
+             .Case("tvos_app_extension", "tvOS (App Extension)")
+             .Case("watchos_app_extension", "watchOS (App Extension)")
+             .Default(llvm::StringRef());
+} 
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Availability; }
+};
+
+class BlocksAttr : public InheritableAttr {
+public:
+  enum BlockType {
+    ByRef
+  };
+private:
+  BlockType type;
+
+public:
+  static BlocksAttr *CreateImplicit(ASTContext &Ctx, BlockType Type, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) BlocksAttr(Loc, Ctx, Type, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  BlocksAttr(SourceRange R, ASTContext &Ctx
+              , BlockType Type
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Blocks, R, SI, false, false)
+              , type(Type)
+  {
+  }
+
+  BlocksAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  BlockType getType() const {
+    return type;
+  }
+
+  static bool ConvertStrToBlockType(StringRef Val, BlockType &Out) {
+    Optional<BlockType> R = llvm::StringSwitch<Optional<BlockType>>(Val)
+      .Case("byref", BlocksAttr::ByRef)
+      .Default(Optional<BlockType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertBlockTypeToStr(BlockType Val) {
+    switch(Val) {
+    case BlocksAttr::ByRef: return "byref";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Blocks; }
+};
+
+class C11NoReturnAttr : public InheritableAttr {
+public:
+  static C11NoReturnAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) C11NoReturnAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  C11NoReturnAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::C11NoReturn, R, SI, false, false)
+  {
+  }
+
+  C11NoReturnAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::C11NoReturn; }
+};
+
+class CDeclAttr : public InheritableAttr {
+public:
+  static CDeclAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CDeclAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CDeclAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CDecl, R, SI, false, false)
+  {
+  }
+
+  CDeclAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CDecl; }
+};
+
+class CFAuditedTransferAttr : public InheritableAttr {
+public:
+  static CFAuditedTransferAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CFAuditedTransferAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CFAuditedTransferAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CFAuditedTransfer, R, SI, false, false)
+  {
+  }
+
+  CFAuditedTransferAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CFAuditedTransfer; }
+};
+
+class CFConsumedAttr : public InheritableParamAttr {
+public:
+  static CFConsumedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CFConsumedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CFConsumedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::CFConsumed, R, SI, false, false)
+  {
+  }
+
+  CFConsumedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CFConsumed; }
+};
+
+class CFReturnsNotRetainedAttr : public InheritableAttr {
+public:
+  static CFReturnsNotRetainedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CFReturnsNotRetainedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CFReturnsNotRetainedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CFReturnsNotRetained, R, SI, false, false)
+  {
+  }
+
+  CFReturnsNotRetainedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CFReturnsNotRetained; }
+};
+
+class CFReturnsRetainedAttr : public InheritableAttr {
+public:
+  static CFReturnsRetainedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CFReturnsRetainedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CFReturnsRetainedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CFReturnsRetained, R, SI, false, false)
+  {
+  }
+
+  CFReturnsRetainedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CFReturnsRetained; }
+};
+
+class CFUnknownTransferAttr : public InheritableAttr {
+public:
+  static CFUnknownTransferAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CFUnknownTransferAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CFUnknownTransferAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CFUnknownTransfer, R, SI, false, false)
+  {
+  }
+
+  CFUnknownTransferAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CFUnknownTransfer; }
+};
+
+class CUDAConstantAttr : public InheritableAttr {
+public:
+  static CUDAConstantAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDAConstantAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDAConstantAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDAConstant, R, SI, false, false)
+  {
+  }
+
+  CUDAConstantAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDAConstant; }
+};
+
+class CUDADeviceAttr : public InheritableAttr {
+public:
+  static CUDADeviceAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDADeviceAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDADeviceAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDADevice, R, SI, false, false)
+  {
+  }
+
+  CUDADeviceAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDADevice; }
+};
+
+class CUDAGlobalAttr : public InheritableAttr {
+public:
+  static CUDAGlobalAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDAGlobalAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDAGlobalAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDAGlobal, R, SI, false, false)
+  {
+  }
+
+  CUDAGlobalAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDAGlobal; }
+};
+
+class CUDAHostAttr : public InheritableAttr {
+public:
+  static CUDAHostAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDAHostAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDAHostAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDAHost, R, SI, false, false)
+  {
+  }
+
+  CUDAHostAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDAHost; }
+};
+
+class CUDAInvalidTargetAttr : public InheritableAttr {
+public:
+  static CUDAInvalidTargetAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDAInvalidTargetAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDAInvalidTargetAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDAInvalidTarget, R, SI, false, false)
+  {
+  }
+
+  CUDAInvalidTargetAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDAInvalidTarget; }
+};
+
+class CUDALaunchBoundsAttr : public InheritableAttr {
+Expr * maxThreads;
+
+Expr * minBlocks;
+
+public:
+  static CUDALaunchBoundsAttr *CreateImplicit(ASTContext &Ctx, Expr * MaxThreads, Expr * MinBlocks, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDALaunchBoundsAttr(Loc, Ctx, MaxThreads, MinBlocks, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDALaunchBoundsAttr(SourceRange R, ASTContext &Ctx
+              , Expr * MaxThreads
+              , Expr * MinBlocks
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDALaunchBounds, R, SI, false, false)
+              , maxThreads(MaxThreads)
+              , minBlocks(MinBlocks)
+  {
+  }
+
+  CUDALaunchBoundsAttr(SourceRange R, ASTContext &Ctx
+              , Expr * MaxThreads
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDALaunchBounds, R, SI, false, false)
+              , maxThreads(MaxThreads)
+              , minBlocks()
+  {
+  }
+
+  CUDALaunchBoundsAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getMaxThreads() const {
+    return maxThreads;
+  }
+
+  Expr * getMinBlocks() const {
+    return minBlocks;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDALaunchBounds; }
+};
+
+class CUDASharedAttr : public InheritableAttr {
+public:
+  static CUDASharedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CUDASharedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CUDASharedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CUDAShared, R, SI, false, false)
+  {
+  }
+
+  CUDASharedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CUDAShared; }
+};
+
+class CXX11NoReturnAttr : public InheritableAttr {
+public:
+  static CXX11NoReturnAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CXX11NoReturnAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CXX11NoReturnAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CXX11NoReturn, R, SI, false, false)
+  {
+  }
+
+  CXX11NoReturnAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CXX11NoReturn; }
+};
+
+class CallableWhenAttr : public InheritableAttr {
+public:
+  enum ConsumedState {
+    Unknown,
+    Consumed,
+    Unconsumed
+  };
+private:
+  unsigned callableStates_Size;
+  ConsumedState *callableStates_;
+
+public:
+  static CallableWhenAttr *CreateImplicit(ASTContext &Ctx, ConsumedState *CallableStates, unsigned CallableStatesSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CallableWhenAttr(Loc, Ctx, CallableStates, CallableStatesSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CallableWhenAttr(SourceRange R, ASTContext &Ctx
+              , ConsumedState *CallableStates, unsigned CallableStatesSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CallableWhen, R, SI, false, false)
+              , callableStates_Size(CallableStatesSize), callableStates_(new (Ctx, 16) ConsumedState[callableStates_Size])
+  {
+    std::copy(CallableStates, CallableStates + callableStates_Size, callableStates_);
+  }
+
+  CallableWhenAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CallableWhen, R, SI, false, false)
+              , callableStates_Size(0), callableStates_(nullptr)
+  {
+  }
+
+  CallableWhenAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef ConsumedState* callableStates_iterator;
+  callableStates_iterator callableStates_begin() const { return callableStates_; }
+  callableStates_iterator callableStates_end() const { return callableStates_ + callableStates_Size; }
+  unsigned callableStates_size() const { return callableStates_Size; }
+  llvm::iterator_range<callableStates_iterator> callableStates() const { return llvm::make_range(callableStates_begin(), callableStates_end()); }
+
+
+  static bool ConvertStrToConsumedState(StringRef Val, ConsumedState &Out) {
+    Optional<ConsumedState> R = llvm::StringSwitch<Optional<ConsumedState>>(Val)
+      .Case("unknown", CallableWhenAttr::Unknown)
+      .Case("consumed", CallableWhenAttr::Consumed)
+      .Case("unconsumed", CallableWhenAttr::Unconsumed)
+      .Default(Optional<ConsumedState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertConsumedStateToStr(ConsumedState Val) {
+    switch(Val) {
+    case CallableWhenAttr::Unknown: return "unknown";
+    case CallableWhenAttr::Consumed: return "consumed";
+    case CallableWhenAttr::Unconsumed: return "unconsumed";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CallableWhen; }
+};
+
+class CapabilityAttr : public InheritableAttr {
+unsigned nameLength;
+char *name;
+
+public:
+  enum Spelling {
+    GNU_capability = 0,
+    CXX11_clang_capability = 1,
+    GNU_shared_capability = 2,
+    CXX11_clang_shared_capability = 3
+  };
+
+  static CapabilityAttr *CreateImplicit(ASTContext &Ctx, Spelling S, llvm::StringRef Name, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CapabilityAttr(Loc, Ctx, Name, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CapabilityAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Name
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Capability, R, SI, false, false)
+              , nameLength(Name.size()),name(new (Ctx, 1) char[nameLength])
+  {
+      if (!Name.empty())
+        std::memcpy(name, Name.data(), nameLength);
+  }
+
+  CapabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_capability;
+    case 1: return CXX11_clang_capability;
+    case 2: return GNU_shared_capability;
+    case 3: return CXX11_clang_shared_capability;
+  }
+  }
+  bool isShared() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3; }
+  llvm::StringRef getName() const {
+    return llvm::StringRef(name, nameLength);
+  }
+  unsigned getNameLength() const {
+    return nameLength;
+  }
+  void setName(ASTContext &C, llvm::StringRef S) {
+    nameLength = S.size();
+    this->name = new (C, 1) char [nameLength];
+    if (!S.empty())
+      std::memcpy(this->name, S.data(), nameLength);
+  }
+
+
+    bool isMutex() const { return getName().equals_lower("mutex"); }
+    bool isRole() const { return getName().equals_lower("role"); }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Capability; }
+};
+
+class CapturedRecordAttr : public InheritableAttr {
+public:
+  static CapturedRecordAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CapturedRecordAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CapturedRecordAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::CapturedRecord, R, SI, false, false)
+  {
+  }
+
+  CapturedRecordAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CapturedRecord; }
+};
+
+class CarriesDependencyAttr : public InheritableParamAttr {
+public:
+  static CarriesDependencyAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CarriesDependencyAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CarriesDependencyAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::CarriesDependency, R, SI, false, false)
+  {
+  }
+
+  CarriesDependencyAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::CarriesDependency; }
+};
+
+class CleanupAttr : public InheritableAttr {
+FunctionDecl * functionDecl;
+
+public:
+  static CleanupAttr *CreateImplicit(ASTContext &Ctx, FunctionDecl * FunctionDecl, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CleanupAttr(Loc, Ctx, FunctionDecl, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CleanupAttr(SourceRange R, ASTContext &Ctx
+              , FunctionDecl * FunctionDecl
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Cleanup, R, SI, false, false)
+              , functionDecl(FunctionDecl)
+  {
+  }
+
+  CleanupAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  FunctionDecl * getFunctionDecl() const {
+    return functionDecl;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Cleanup; }
+};
+
+class ColdAttr : public InheritableAttr {
+public:
+  static ColdAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ColdAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ColdAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Cold, R, SI, false, false)
+  {
+  }
+
+  ColdAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Cold; }
+};
+
+class CommonAttr : public InheritableAttr {
+public:
+  static CommonAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) CommonAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  CommonAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Common, R, SI, false, false)
+  {
+  }
+
+  CommonAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Common; }
+};
+
+class ConstAttr : public InheritableAttr {
+public:
+  static ConstAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ConstAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ConstAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Const, R, SI, false, false)
+  {
+  }
+
+  ConstAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Const; }
+};
+
+class ConstructorAttr : public InheritableAttr {
+int priority;
+
+public:
+  static ConstructorAttr *CreateImplicit(ASTContext &Ctx, int Priority, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ConstructorAttr(Loc, Ctx, Priority, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ConstructorAttr(SourceRange R, ASTContext &Ctx
+              , int Priority
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Constructor, R, SI, false, false)
+              , priority(Priority)
+  {
+  }
+
+  ConstructorAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Constructor, R, SI, false, false)
+              , priority()
+  {
+  }
+
+  ConstructorAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getPriority() const {
+    return priority;
+  }
+
+  static const int DefaultPriority = 65535;
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Constructor; }
+};
+
+class ConsumableAttr : public InheritableAttr {
+public:
+  enum ConsumedState {
+    Unknown,
+    Consumed,
+    Unconsumed
+  };
+private:
+  ConsumedState defaultState;
+
+public:
+  static ConsumableAttr *CreateImplicit(ASTContext &Ctx, ConsumedState DefaultState, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ConsumableAttr(Loc, Ctx, DefaultState, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ConsumableAttr(SourceRange R, ASTContext &Ctx
+              , ConsumedState DefaultState
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Consumable, R, SI, false, false)
+              , defaultState(DefaultState)
+  {
+  }
+
+  ConsumableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  ConsumedState getDefaultState() const {
+    return defaultState;
+  }
+
+  static bool ConvertStrToConsumedState(StringRef Val, ConsumedState &Out) {
+    Optional<ConsumedState> R = llvm::StringSwitch<Optional<ConsumedState>>(Val)
+      .Case("unknown", ConsumableAttr::Unknown)
+      .Case("consumed", ConsumableAttr::Consumed)
+      .Case("unconsumed", ConsumableAttr::Unconsumed)
+      .Default(Optional<ConsumedState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertConsumedStateToStr(ConsumedState Val) {
+    switch(Val) {
+    case ConsumableAttr::Unknown: return "unknown";
+    case ConsumableAttr::Consumed: return "consumed";
+    case ConsumableAttr::Unconsumed: return "unconsumed";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Consumable; }
+};
+
+class ConsumableAutoCastAttr : public InheritableAttr {
+public:
+  static ConsumableAutoCastAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ConsumableAutoCastAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ConsumableAutoCastAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ConsumableAutoCast, R, SI, false, false)
+  {
+  }
+
+  ConsumableAutoCastAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ConsumableAutoCast; }
+};
+
+class ConsumableSetOnReadAttr : public InheritableAttr {
+public:
+  static ConsumableSetOnReadAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ConsumableSetOnReadAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ConsumableSetOnReadAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ConsumableSetOnRead, R, SI, false, false)
+  {
+  }
+
+  ConsumableSetOnReadAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ConsumableSetOnRead; }
+};
+
+class ConvergentAttr : public InheritableAttr {
+public:
+  static ConvergentAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ConvergentAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ConvergentAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Convergent, R, SI, false, false)
+  {
+  }
+
+  ConvergentAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Convergent; }
+};
+
+class DLLExportAttr : public InheritableAttr {
+public:
+  static DLLExportAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DLLExportAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  DLLExportAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::DLLExport, R, SI, false, false)
+  {
+  }
+
+  DLLExportAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::DLLExport; }
+};
+
+class DLLImportAttr : public InheritableAttr {
+public:
+  static DLLImportAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DLLImportAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  DLLImportAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::DLLImport, R, SI, false, false)
+  {
+  }
+
+  DLLImportAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::DLLImport; }
+};
+
+class DeprecatedAttr : public InheritableAttr {
+unsigned messageLength;
+char *message;
+
+unsigned replacementLength;
+char *replacement;
+
+public:
+  static DeprecatedAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Message, llvm::StringRef Replacement, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DeprecatedAttr(Loc, Ctx, Message, Replacement, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  DeprecatedAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Message
+              , llvm::StringRef Replacement
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Deprecated, R, SI, false, false)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+              , replacementLength(Replacement.size()),replacement(new (Ctx, 1) char[replacementLength])
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+      if (!Replacement.empty())
+        std::memcpy(replacement, Replacement.data(), replacementLength);
+  }
+
+  DeprecatedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Deprecated, R, SI, false, false)
+              , messageLength(0),message(nullptr)
+              , replacementLength(0),replacement(nullptr)
+  {
+  }
+
+  DeprecatedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getMessage() const {
+    return llvm::StringRef(message, messageLength);
+  }
+  unsigned getMessageLength() const {
+    return messageLength;
+  }
+  void setMessage(ASTContext &C, llvm::StringRef S) {
+    messageLength = S.size();
+    this->message = new (C, 1) char [messageLength];
+    if (!S.empty())
+      std::memcpy(this->message, S.data(), messageLength);
+  }
+
+  llvm::StringRef getReplacement() const {
+    return llvm::StringRef(replacement, replacementLength);
+  }
+  unsigned getReplacementLength() const {
+    return replacementLength;
+  }
+  void setReplacement(ASTContext &C, llvm::StringRef S) {
+    replacementLength = S.size();
+    this->replacement = new (C, 1) char [replacementLength];
+    if (!S.empty())
+      std::memcpy(this->replacement, S.data(), replacementLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Deprecated; }
+};
+
+class DestructorAttr : public InheritableAttr {
+int priority;
+
+public:
+  static DestructorAttr *CreateImplicit(ASTContext &Ctx, int Priority, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DestructorAttr(Loc, Ctx, Priority, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  DestructorAttr(SourceRange R, ASTContext &Ctx
+              , int Priority
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Destructor, R, SI, false, false)
+              , priority(Priority)
+  {
+  }
+
+  DestructorAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Destructor, R, SI, false, false)
+              , priority()
+  {
+  }
+
+  DestructorAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getPriority() const {
+    return priority;
+  }
+
+  static const int DefaultPriority = 65535;
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Destructor; }
+};
+
+class DiagnoseIfAttr : public InheritableAttr {
+Expr * cond;
+
+unsigned messageLength;
+char *message;
+
+public:
+  enum DiagnosticType {
+    DT_Error,
+    DT_Warning
+  };
+private:
+  DiagnosticType diagnosticType;
+
+bool argDependent;
+
+FunctionDecl * parent;
+
+public:
+  static DiagnoseIfAttr *CreateImplicit(ASTContext &Ctx, Expr * Cond, llvm::StringRef Message, DiagnosticType DiagnosticType, bool ArgDependent, FunctionDecl * Parent, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DiagnoseIfAttr(Loc, Ctx, Cond, Message, DiagnosticType, ArgDependent, Parent, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  static DiagnoseIfAttr *CreateImplicit(ASTContext &Ctx, Expr * Cond, llvm::StringRef Message, DiagnosticType DiagnosticType, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DiagnoseIfAttr(Loc, Ctx, Cond, Message, DiagnosticType, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  DiagnoseIfAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Cond
+              , llvm::StringRef Message
+              , DiagnosticType DiagnosticType
+              , bool ArgDependent
+              , FunctionDecl * Parent
+              , unsigned SI
+             )
+    : InheritableAttr(attr::DiagnoseIf, R, SI, true, true)
+              , cond(Cond)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+              , diagnosticType(DiagnosticType)
+              , argDependent(ArgDependent)
+              , parent(Parent)
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+  }
+
+  DiagnoseIfAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Cond
+              , llvm::StringRef Message
+              , DiagnosticType DiagnosticType
+              , unsigned SI
+             )
+    : InheritableAttr(attr::DiagnoseIf, R, SI, true, true)
+              , cond(Cond)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+              , diagnosticType(DiagnosticType)
+              , argDependent()
+              , parent()
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+  }
+
+  DiagnoseIfAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getCond() const {
+    return cond;
+  }
+
+  llvm::StringRef getMessage() const {
+    return llvm::StringRef(message, messageLength);
+  }
+  unsigned getMessageLength() const {
+    return messageLength;
+  }
+  void setMessage(ASTContext &C, llvm::StringRef S) {
+    messageLength = S.size();
+    this->message = new (C, 1) char [messageLength];
+    if (!S.empty())
+      std::memcpy(this->message, S.data(), messageLength);
+  }
+
+  DiagnosticType getDiagnosticType() const {
+    return diagnosticType;
+  }
+
+  static bool ConvertStrToDiagnosticType(StringRef Val, DiagnosticType &Out) {
+    Optional<DiagnosticType> R = llvm::StringSwitch<Optional<DiagnosticType>>(Val)
+      .Case("error", DiagnoseIfAttr::DT_Error)
+      .Case("warning", DiagnoseIfAttr::DT_Warning)
+      .Default(Optional<DiagnosticType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertDiagnosticTypeToStr(DiagnosticType Val) {
+    switch(Val) {
+    case DiagnoseIfAttr::DT_Error: return "error";
+    case DiagnoseIfAttr::DT_Warning: return "warning";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+  bool getArgDependent() const {
+    return argDependent;
+  }
+
+  FunctionDecl * getParent() const {
+    return parent;
+  }
+
+
+    bool isError() const { return diagnosticType == DT_Error; }
+    bool isWarning() const { return diagnosticType == DT_Warning; }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::DiagnoseIf; }
+};
+
+class DisableTailCallsAttr : public InheritableAttr {
+public:
+  static DisableTailCallsAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) DisableTailCallsAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  DisableTailCallsAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::DisableTailCalls, R, SI, false, false)
+  {
+  }
+
+  DisableTailCallsAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::DisableTailCalls; }
+};
+
+class EmptyBasesAttr : public InheritableAttr {
+public:
+  static EmptyBasesAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) EmptyBasesAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  EmptyBasesAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::EmptyBases, R, SI, false, false)
+  {
+  }
+
+  EmptyBasesAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::EmptyBases; }
+};
+
+class EnableIfAttr : public InheritableAttr {
+Expr * cond;
+
+unsigned messageLength;
+char *message;
+
+public:
+  static EnableIfAttr *CreateImplicit(ASTContext &Ctx, Expr * Cond, llvm::StringRef Message, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) EnableIfAttr(Loc, Ctx, Cond, Message, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  EnableIfAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Cond
+              , llvm::StringRef Message
+              , unsigned SI
+             )
+    : InheritableAttr(attr::EnableIf, R, SI, false, false)
+              , cond(Cond)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+  }
+
+  EnableIfAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getCond() const {
+    return cond;
+  }
+
+  llvm::StringRef getMessage() const {
+    return llvm::StringRef(message, messageLength);
+  }
+  unsigned getMessageLength() const {
+    return messageLength;
+  }
+  void setMessage(ASTContext &C, llvm::StringRef S) {
+    messageLength = S.size();
+    this->message = new (C, 1) char [messageLength];
+    if (!S.empty())
+      std::memcpy(this->message, S.data(), messageLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::EnableIf; }
+};
+
+class EnumExtensibilityAttr : public InheritableAttr {
+public:
+  enum Kind {
+    Closed,
+    Open
+  };
+private:
+  Kind extensibility;
+
+public:
+  static EnumExtensibilityAttr *CreateImplicit(ASTContext &Ctx, Kind Extensibility, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) EnumExtensibilityAttr(Loc, Ctx, Extensibility, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  EnumExtensibilityAttr(SourceRange R, ASTContext &Ctx
+              , Kind Extensibility
+              , unsigned SI
+             )
+    : InheritableAttr(attr::EnumExtensibility, R, SI, false, false)
+              , extensibility(Extensibility)
+  {
+  }
+
+  EnumExtensibilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Kind getExtensibility() const {
+    return extensibility;
+  }
+
+  static bool ConvertStrToKind(StringRef Val, Kind &Out) {
+    Optional<Kind> R = llvm::StringSwitch<Optional<Kind>>(Val)
+      .Case("closed", EnumExtensibilityAttr::Closed)
+      .Case("open", EnumExtensibilityAttr::Open)
+      .Default(Optional<Kind>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertKindToStr(Kind Val) {
+    switch(Val) {
+    case EnumExtensibilityAttr::Closed: return "closed";
+    case EnumExtensibilityAttr::Open: return "open";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::EnumExtensibility; }
+};
+
+class ExclusiveTrylockFunctionAttr : public InheritableAttr {
+Expr * successValue;
+
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static ExclusiveTrylockFunctionAttr *CreateImplicit(ASTContext &Ctx, Expr * SuccessValue, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ExclusiveTrylockFunctionAttr(Loc, Ctx, SuccessValue, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ExclusiveTrylockFunctionAttr(SourceRange R, ASTContext &Ctx
+              , Expr * SuccessValue
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ExclusiveTrylockFunction, R, SI, true, true)
+              , successValue(SuccessValue)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  ExclusiveTrylockFunctionAttr(SourceRange R, ASTContext &Ctx
+              , Expr * SuccessValue
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ExclusiveTrylockFunction, R, SI, true, true)
+              , successValue(SuccessValue)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  ExclusiveTrylockFunctionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getSuccessValue() const {
+    return successValue;
+  }
+
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ExclusiveTrylockFunction; }
+};
+
+class ExternalSourceSymbolAttr : public InheritableAttr {
+unsigned languageLength;
+char *language;
+
+unsigned definedInLength;
+char *definedIn;
+
+bool generatedDeclaration;
+
+public:
+  static ExternalSourceSymbolAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Language, llvm::StringRef DefinedIn, bool GeneratedDeclaration, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ExternalSourceSymbolAttr(Loc, Ctx, Language, DefinedIn, GeneratedDeclaration, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ExternalSourceSymbolAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Language
+              , llvm::StringRef DefinedIn
+              , bool GeneratedDeclaration
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ExternalSourceSymbol, R, SI, false, false)
+              , languageLength(Language.size()),language(new (Ctx, 1) char[languageLength])
+              , definedInLength(DefinedIn.size()),definedIn(new (Ctx, 1) char[definedInLength])
+              , generatedDeclaration(GeneratedDeclaration)
+  {
+      if (!Language.empty())
+        std::memcpy(language, Language.data(), languageLength);
+      if (!DefinedIn.empty())
+        std::memcpy(definedIn, DefinedIn.data(), definedInLength);
+  }
+
+  ExternalSourceSymbolAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ExternalSourceSymbol, R, SI, false, false)
+              , languageLength(0),language(nullptr)
+              , definedInLength(0),definedIn(nullptr)
+              , generatedDeclaration()
+  {
+  }
+
+  ExternalSourceSymbolAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getLanguage() const {
+    return llvm::StringRef(language, languageLength);
+  }
+  unsigned getLanguageLength() const {
+    return languageLength;
+  }
+  void setLanguage(ASTContext &C, llvm::StringRef S) {
+    languageLength = S.size();
+    this->language = new (C, 1) char [languageLength];
+    if (!S.empty())
+      std::memcpy(this->language, S.data(), languageLength);
+  }
+
+  llvm::StringRef getDefinedIn() const {
+    return llvm::StringRef(definedIn, definedInLength);
+  }
+  unsigned getDefinedInLength() const {
+    return definedInLength;
+  }
+  void setDefinedIn(ASTContext &C, llvm::StringRef S) {
+    definedInLength = S.size();
+    this->definedIn = new (C, 1) char [definedInLength];
+    if (!S.empty())
+      std::memcpy(this->definedIn, S.data(), definedInLength);
+  }
+
+  bool getGeneratedDeclaration() const {
+    return generatedDeclaration;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ExternalSourceSymbol; }
+};
+
+class FallThroughAttr : public StmtAttr {
+public:
+  static FallThroughAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FallThroughAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FallThroughAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : StmtAttr(attr::FallThrough, R, SI, false, false)
+  {
+  }
+
+  FallThroughAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::FallThrough; }
+};
+
+class FastCallAttr : public InheritableAttr {
+public:
+  static FastCallAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FastCallAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FastCallAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::FastCall, R, SI, false, false)
+  {
+  }
+
+  FastCallAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::FastCall; }
+};
+
+class FinalAttr : public InheritableAttr {
+public:
+  enum Spelling {
+    Keyword_final = 0,
+    Keyword_sealed = 1
+  };
+
+  static FinalAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FinalAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FinalAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Final, R, SI, false, false)
+  {
+  }
+
+  FinalAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Keyword_final;
+    case 1: return Keyword_sealed;
+  }
+  }
+  bool isSpelledAsSealed() const { return SpellingListIndex == 1; }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Final; }
+};
+
+class FlagEnumAttr : public InheritableAttr {
+public:
+  static FlagEnumAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FlagEnumAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FlagEnumAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::FlagEnum, R, SI, false, false)
+  {
+  }
+
+  FlagEnumAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::FlagEnum; }
+};
+
+class FlattenAttr : public InheritableAttr {
+public:
+  static FlattenAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FlattenAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FlattenAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Flatten, R, SI, false, false)
+  {
+  }
+
+  FlattenAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Flatten; }
+};
+
+class FormatAttr : public InheritableAttr {
+IdentifierInfo * type;
+
+int formatIdx;
+
+int firstArg;
+
+public:
+  static FormatAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * Type, int FormatIdx, int FirstArg, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FormatAttr(Loc, Ctx, Type, FormatIdx, FirstArg, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FormatAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * Type
+              , int FormatIdx
+              , int FirstArg
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Format, R, SI, false, false)
+              , type(Type)
+              , formatIdx(FormatIdx)
+              , firstArg(FirstArg)
+  {
+  }
+
+  FormatAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getType() const {
+    return type;
+  }
+
+  int getFormatIdx() const {
+    return formatIdx;
+  }
+
+  int getFirstArg() const {
+    return firstArg;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Format; }
+};
+
+class FormatArgAttr : public InheritableAttr {
+int formatIdx;
+
+public:
+  static FormatArgAttr *CreateImplicit(ASTContext &Ctx, int FormatIdx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) FormatArgAttr(Loc, Ctx, FormatIdx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  FormatArgAttr(SourceRange R, ASTContext &Ctx
+              , int FormatIdx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::FormatArg, R, SI, false, false)
+              , formatIdx(FormatIdx)
+  {
+  }
+
+  FormatArgAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getFormatIdx() const {
+    return formatIdx;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::FormatArg; }
+};
+
+class GNUInlineAttr : public InheritableAttr {
+public:
+  static GNUInlineAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) GNUInlineAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  GNUInlineAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::GNUInline, R, SI, false, false)
+  {
+  }
+
+  GNUInlineAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::GNUInline; }
+};
+
+class GuardedByAttr : public InheritableAttr {
+Expr * arg;
+
+public:
+  static GuardedByAttr *CreateImplicit(ASTContext &Ctx, Expr * Arg, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) GuardedByAttr(Loc, Ctx, Arg, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  GuardedByAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Arg
+              , unsigned SI
+             )
+    : InheritableAttr(attr::GuardedBy, R, SI, true, true)
+              , arg(Arg)
+  {
+  }
+
+  GuardedByAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getArg() const {
+    return arg;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::GuardedBy; }
+};
+
+class GuardedVarAttr : public InheritableAttr {
+public:
+  static GuardedVarAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) GuardedVarAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  GuardedVarAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::GuardedVar, R, SI, false, false)
+  {
+  }
+
+  GuardedVarAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::GuardedVar; }
+};
+
+class HotAttr : public InheritableAttr {
+public:
+  static HotAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) HotAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  HotAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Hot, R, SI, false, false)
+  {
+  }
+
+  HotAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Hot; }
+};
+
+class IBActionAttr : public InheritableAttr {
+public:
+  static IBActionAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) IBActionAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  IBActionAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::IBAction, R, SI, false, false)
+  {
+  }
+
+  IBActionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::IBAction; }
+};
+
+class IBOutletAttr : public InheritableAttr {
+public:
+  static IBOutletAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) IBOutletAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  IBOutletAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::IBOutlet, R, SI, false, false)
+  {
+  }
+
+  IBOutletAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::IBOutlet; }
+};
+
+class IBOutletCollectionAttr : public InheritableAttr {
+TypeSourceInfo * interface_;
+
+public:
+  static IBOutletCollectionAttr *CreateImplicit(ASTContext &Ctx, TypeSourceInfo * Interface, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) IBOutletCollectionAttr(Loc, Ctx, Interface, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  IBOutletCollectionAttr(SourceRange R, ASTContext &Ctx
+              , TypeSourceInfo * Interface
+              , unsigned SI
+             )
+    : InheritableAttr(attr::IBOutletCollection, R, SI, false, false)
+              , interface_(Interface)
+  {
+  }
+
+  IBOutletCollectionAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::IBOutletCollection, R, SI, false, false)
+              , interface_()
+  {
+  }
+
+  IBOutletCollectionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  QualType getInterface() const {
+    return interface_->getType();
+  }  TypeSourceInfo * getInterfaceLoc() const {
+    return interface_;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::IBOutletCollection; }
+};
+
+class IFuncAttr : public Attr {
+unsigned resolverLength;
+char *resolver;
+
+public:
+  static IFuncAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Resolver, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) IFuncAttr(Loc, Ctx, Resolver, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  IFuncAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Resolver
+              , unsigned SI
+             )
+    : Attr(attr::IFunc, R, SI, false, false)
+              , resolverLength(Resolver.size()),resolver(new (Ctx, 1) char[resolverLength])
+  {
+      if (!Resolver.empty())
+        std::memcpy(resolver, Resolver.data(), resolverLength);
+  }
+
+  IFuncAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getResolver() const {
+    return llvm::StringRef(resolver, resolverLength);
+  }
+  unsigned getResolverLength() const {
+    return resolverLength;
+  }
+  void setResolver(ASTContext &C, llvm::StringRef S) {
+    resolverLength = S.size();
+    this->resolver = new (C, 1) char [resolverLength];
+    if (!S.empty())
+      std::memcpy(this->resolver, S.data(), resolverLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::IFunc; }
+};
+
+class InitPriorityAttr : public InheritableAttr {
+unsigned priority;
+
+public:
+  static InitPriorityAttr *CreateImplicit(ASTContext &Ctx, unsigned Priority, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) InitPriorityAttr(Loc, Ctx, Priority, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  InitPriorityAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Priority
+              , unsigned SI
+             )
+    : InheritableAttr(attr::InitPriority, R, SI, false, false)
+              , priority(Priority)
+  {
+  }
+
+  InitPriorityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getPriority() const {
+    return priority;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::InitPriority; }
+};
+
+class InitSegAttr : public Attr {
+unsigned sectionLength;
+char *section;
+
+public:
+  static InitSegAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Section, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) InitSegAttr(Loc, Ctx, Section, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  InitSegAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Section
+              , unsigned SI
+             )
+    : Attr(attr::InitSeg, R, SI, false, false)
+              , sectionLength(Section.size()),section(new (Ctx, 1) char[sectionLength])
+  {
+      if (!Section.empty())
+        std::memcpy(section, Section.data(), sectionLength);
+  }
+
+  InitSegAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getSection() const {
+    return llvm::StringRef(section, sectionLength);
+  }
+  unsigned getSectionLength() const {
+    return sectionLength;
+  }
+  void setSection(ASTContext &C, llvm::StringRef S) {
+    sectionLength = S.size();
+    this->section = new (C, 1) char [sectionLength];
+    if (!S.empty())
+      std::memcpy(this->section, S.data(), sectionLength);
+  }
+
+
+  void printPrettyPragma(raw_ostream &OS, const PrintingPolicy &Policy) const {
+    OS << '(' << getSection() << ')';
+  }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::InitSeg; }
+};
+
+class IntelOclBiccAttr : public InheritableAttr {
+public:
+  static IntelOclBiccAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) IntelOclBiccAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  IntelOclBiccAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::IntelOclBicc, R, SI, false, false)
+  {
+  }
+
+  IntelOclBiccAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::IntelOclBicc; }
+};
+
+class InternalLinkageAttr : public InheritableAttr {
+public:
+  static InternalLinkageAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) InternalLinkageAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  InternalLinkageAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::InternalLinkage, R, SI, false, false)
+  {
+  }
+
+  InternalLinkageAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::InternalLinkage; }
+};
+
+class LTOVisibilityPublicAttr : public InheritableAttr {
+public:
+  static LTOVisibilityPublicAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) LTOVisibilityPublicAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  LTOVisibilityPublicAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::LTOVisibilityPublic, R, SI, false, false)
+  {
+  }
+
+  LTOVisibilityPublicAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::LTOVisibilityPublic; }
+};
+
+class LayoutVersionAttr : public InheritableAttr {
+unsigned version;
+
+public:
+  static LayoutVersionAttr *CreateImplicit(ASTContext &Ctx, unsigned Version, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) LayoutVersionAttr(Loc, Ctx, Version, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  LayoutVersionAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Version
+              , unsigned SI
+             )
+    : InheritableAttr(attr::LayoutVersion, R, SI, false, false)
+              , version(Version)
+  {
+  }
+
+  LayoutVersionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getVersion() const {
+    return version;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::LayoutVersion; }
+};
+
+class LockReturnedAttr : public InheritableAttr {
+Expr * arg;
+
+public:
+  static LockReturnedAttr *CreateImplicit(ASTContext &Ctx, Expr * Arg, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) LockReturnedAttr(Loc, Ctx, Arg, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  LockReturnedAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Arg
+              , unsigned SI
+             )
+    : InheritableAttr(attr::LockReturned, R, SI, true, false)
+              , arg(Arg)
+  {
+  }
+
+  LockReturnedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getArg() const {
+    return arg;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::LockReturned; }
+};
+
+class LocksExcludedAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static LocksExcludedAttr *CreateImplicit(ASTContext &Ctx, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) LocksExcludedAttr(Loc, Ctx, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  LocksExcludedAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::LocksExcluded, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  LocksExcludedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::LocksExcluded, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  LocksExcludedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::LocksExcluded; }
+};
+
+class LoopHintAttr : public Attr {
+public:
+  enum OptionType {
+    Vectorize,
+    VectorizeWidth,
+    Interleave,
+    InterleaveCount,
+    Unroll,
+    UnrollCount,
+    Distribute
+  };
+private:
+  OptionType option;
+
+public:
+  enum LoopHintState {
+    Enable,
+    Disable,
+    Numeric,
+    AssumeSafety,
+    Full
+  };
+private:
+  LoopHintState state;
+
+Expr * value;
+
+public:
+  enum Spelling {
+    Pragma_clang_loop = 0,
+    Pragma_unroll = 1,
+    Pragma_nounroll = 2
+  };
+
+  static LoopHintAttr *CreateImplicit(ASTContext &Ctx, Spelling S, OptionType Option, LoopHintState State, Expr * Value, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) LoopHintAttr(Loc, Ctx, Option, State, Value, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  LoopHintAttr(SourceRange R, ASTContext &Ctx
+              , OptionType Option
+              , LoopHintState State
+              , Expr * Value
+              , unsigned SI
+             )
+    : Attr(attr::LoopHint, R, SI, false, false)
+              , option(Option)
+              , state(State)
+              , value(Value)
+  {
+  }
+
+  LoopHintAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Pragma_clang_loop;
+    case 1: return Pragma_unroll;
+    case 2: return Pragma_nounroll;
+  }
+  }
+  OptionType getOption() const {
+    return option;
+  }
+
+  static bool ConvertStrToOptionType(StringRef Val, OptionType &Out) {
+    Optional<OptionType> R = llvm::StringSwitch<Optional<OptionType>>(Val)
+      .Case("vectorize", LoopHintAttr::Vectorize)
+      .Case("vectorize_width", LoopHintAttr::VectorizeWidth)
+      .Case("interleave", LoopHintAttr::Interleave)
+      .Case("interleave_count", LoopHintAttr::InterleaveCount)
+      .Case("unroll", LoopHintAttr::Unroll)
+      .Case("unroll_count", LoopHintAttr::UnrollCount)
+      .Case("distribute", LoopHintAttr::Distribute)
+      .Default(Optional<OptionType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertOptionTypeToStr(OptionType Val) {
+    switch(Val) {
+    case LoopHintAttr::Vectorize: return "vectorize";
+    case LoopHintAttr::VectorizeWidth: return "vectorize_width";
+    case LoopHintAttr::Interleave: return "interleave";
+    case LoopHintAttr::InterleaveCount: return "interleave_count";
+    case LoopHintAttr::Unroll: return "unroll";
+    case LoopHintAttr::UnrollCount: return "unroll_count";
+    case LoopHintAttr::Distribute: return "distribute";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+  LoopHintState getState() const {
+    return state;
+  }
+
+  static bool ConvertStrToLoopHintState(StringRef Val, LoopHintState &Out) {
+    Optional<LoopHintState> R = llvm::StringSwitch<Optional<LoopHintState>>(Val)
+      .Case("enable", LoopHintAttr::Enable)
+      .Case("disable", LoopHintAttr::Disable)
+      .Case("numeric", LoopHintAttr::Numeric)
+      .Case("assume_safety", LoopHintAttr::AssumeSafety)
+      .Case("full", LoopHintAttr::Full)
+      .Default(Optional<LoopHintState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertLoopHintStateToStr(LoopHintState Val) {
+    switch(Val) {
+    case LoopHintAttr::Enable: return "enable";
+    case LoopHintAttr::Disable: return "disable";
+    case LoopHintAttr::Numeric: return "numeric";
+    case LoopHintAttr::AssumeSafety: return "assume_safety";
+    case LoopHintAttr::Full: return "full";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+  Expr * getValue() const {
+    return value;
+  }
+
+
+  static const char *getOptionName(int Option) {
+    switch(Option) {
+    case Vectorize: return "vectorize";
+    case VectorizeWidth: return "vectorize_width";
+    case Interleave: return "interleave";
+    case InterleaveCount: return "interleave_count";
+    case Unroll: return "unroll";
+    case UnrollCount: return "unroll_count";
+    case Distribute: return "distribute";
+    }
+    llvm_unreachable("Unhandled LoopHint option.");
+  }
+
+  void printPrettyPragma(raw_ostream &OS, const PrintingPolicy &Policy) const {
+    unsigned SpellingIndex = getSpellingListIndex();
+    // For "#pragma unroll" and "#pragma nounroll" the string "unroll" or
+    // "nounroll" is already emitted as the pragma name.
+    if (SpellingIndex == Pragma_nounroll)
+      return;
+    else if (SpellingIndex == Pragma_unroll) {
+      OS << getValueString(Policy);
+      return;
+    }
+
+    assert(SpellingIndex == Pragma_clang_loop && "Unexpected spelling");
+    OS << getOptionName(option) << getValueString(Policy);
+  }
+
+  // Return a string containing the loop hint argument including the
+  // enclosing parentheses.
+  std::string getValueString(const PrintingPolicy &Policy) const {
+    std::string ValueName;
+    llvm::raw_string_ostream OS(ValueName);
+    OS << "(";
+    if (state == Numeric)
+      value->printPretty(OS, nullptr, Policy);
+    else if (state == Enable)
+      OS << "enable";
+    else if (state == Full)
+      OS << "full";
+    else if (state == AssumeSafety)
+      OS << "assume_safety";
+    else
+      OS << "disable";
+    OS << ")";
+    return OS.str();
+  }
+
+  // Return a string suitable for identifying this attribute in diagnostics.
+  std::string getDiagnosticName(const PrintingPolicy &Policy) const {
+    unsigned SpellingIndex = getSpellingListIndex();
+    if (SpellingIndex == Pragma_nounroll)
+      return "#pragma nounroll";
+    else if (SpellingIndex == Pragma_unroll)
+      return "#pragma unroll" + (option == UnrollCount ? getValueString(Policy) : "");
+
+    assert(SpellingIndex == Pragma_clang_loop && "Unexpected spelling");
+    return getOptionName(option) + getValueString(Policy);
+  }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::LoopHint; }
+};
+
+class MSABIAttr : public InheritableAttr {
+public:
+  static MSABIAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MSABIAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MSABIAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSABI, R, SI, false, false)
+  {
+  }
+
+  MSABIAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MSABI; }
+};
+
+class MSInheritanceAttr : public InheritableAttr {
+bool bestCase;
+
+public:
+  enum Spelling {
+    Keyword_single_inheritance = 0,
+    Keyword_multiple_inheritance = 1,
+    Keyword_virtual_inheritance = 2,
+    Keyword_unspecified_inheritance = 3
+  };
+
+  static MSInheritanceAttr *CreateImplicit(ASTContext &Ctx, Spelling S, bool BestCase, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MSInheritanceAttr(Loc, Ctx, BestCase, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MSInheritanceAttr(SourceRange R, ASTContext &Ctx
+              , bool BestCase
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSInheritance, R, SI, false, false)
+              , bestCase(BestCase)
+  {
+  }
+
+  MSInheritanceAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSInheritance, R, SI, false, false)
+              , bestCase()
+  {
+  }
+
+  MSInheritanceAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Keyword_single_inheritance;
+    case 1: return Keyword_multiple_inheritance;
+    case 2: return Keyword_virtual_inheritance;
+    case 3: return Keyword_unspecified_inheritance;
+  }
+  }
+  bool getBestCase() const {
+    return bestCase;
+  }
+
+  static const bool DefaultBestCase = true;
+
+
+  static bool hasVBPtrOffsetField(Spelling Inheritance) {
+    return Inheritance == Keyword_unspecified_inheritance;
+  }
+
+  // Only member pointers to functions need a this adjustment, since it can be
+  // combined with the field offset for data pointers.
+  static bool hasNVOffsetField(bool IsMemberFunction, Spelling Inheritance) {
+    return IsMemberFunction && Inheritance >= Keyword_multiple_inheritance;
+  }
+
+  static bool hasVBTableOffsetField(Spelling Inheritance) {
+    return Inheritance >= Keyword_virtual_inheritance;
+  }
+
+  static bool hasOnlyOneField(bool IsMemberFunction,
+                              Spelling Inheritance) {
+    if (IsMemberFunction)
+      return Inheritance <= Keyword_single_inheritance;
+    return Inheritance <= Keyword_multiple_inheritance;
+  }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MSInheritance; }
+};
+
+class MSNoVTableAttr : public InheritableAttr {
+public:
+  static MSNoVTableAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MSNoVTableAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MSNoVTableAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSNoVTable, R, SI, false, false)
+  {
+  }
+
+  MSNoVTableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MSNoVTable; }
+};
+
+class MSP430InterruptAttr : public InheritableAttr {
+unsigned number;
+
+public:
+  static MSP430InterruptAttr *CreateImplicit(ASTContext &Ctx, unsigned Number, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MSP430InterruptAttr(Loc, Ctx, Number, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MSP430InterruptAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Number
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSP430Interrupt, R, SI, false, false)
+              , number(Number)
+  {
+  }
+
+  MSP430InterruptAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getNumber() const {
+    return number;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MSP430Interrupt; }
+};
+
+class MSStructAttr : public InheritableAttr {
+public:
+  static MSStructAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MSStructAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MSStructAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSStruct, R, SI, false, false)
+  {
+  }
+
+  MSStructAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MSStruct; }
+};
+
+class MSVtorDispAttr : public InheritableAttr {
+unsigned vdm;
+
+public:
+  static MSVtorDispAttr *CreateImplicit(ASTContext &Ctx, unsigned Vdm, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MSVtorDispAttr(Loc, Ctx, Vdm, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MSVtorDispAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Vdm
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MSVtorDisp, R, SI, false, false)
+              , vdm(Vdm)
+  {
+  }
+
+  MSVtorDispAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getVdm() const {
+    return vdm;
+  }
+
+
+  enum Mode {
+    Never,
+    ForVBaseOverride,
+    ForVFTable
+  };
+
+  Mode getVtorDispMode() const { return Mode(vdm); }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MSVtorDisp; }
+};
+
+class MaxFieldAlignmentAttr : public InheritableAttr {
+unsigned alignment;
+
+public:
+  static MaxFieldAlignmentAttr *CreateImplicit(ASTContext &Ctx, unsigned Alignment, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MaxFieldAlignmentAttr(Loc, Ctx, Alignment, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MaxFieldAlignmentAttr(SourceRange R, ASTContext &Ctx
+              , unsigned Alignment
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MaxFieldAlignment, R, SI, false, false)
+              , alignment(Alignment)
+  {
+  }
+
+  MaxFieldAlignmentAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getAlignment() const {
+    return alignment;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MaxFieldAlignment; }
+};
+
+class MayAliasAttr : public InheritableAttr {
+public:
+  static MayAliasAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MayAliasAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MayAliasAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MayAlias, R, SI, false, false)
+  {
+  }
+
+  MayAliasAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MayAlias; }
+};
+
+class MinSizeAttr : public InheritableAttr {
+public:
+  static MinSizeAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MinSizeAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MinSizeAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MinSize, R, SI, false, false)
+  {
+  }
+
+  MinSizeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MinSize; }
+};
+
+class Mips16Attr : public InheritableAttr {
+public:
+  static Mips16Attr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) Mips16Attr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  Mips16Attr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Mips16, R, SI, false, false)
+  {
+  }
+
+  Mips16Attr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Mips16; }
+};
+
+class MipsInterruptAttr : public InheritableAttr {
+public:
+  enum InterruptType {
+    sw0,
+    sw1,
+    hw0,
+    hw1,
+    hw2,
+    hw3,
+    hw4,
+    hw5,
+    eic
+  };
+private:
+  InterruptType interrupt;
+
+public:
+  static MipsInterruptAttr *CreateImplicit(ASTContext &Ctx, InterruptType Interrupt, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) MipsInterruptAttr(Loc, Ctx, Interrupt, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  MipsInterruptAttr(SourceRange R, ASTContext &Ctx
+              , InterruptType Interrupt
+              , unsigned SI
+             )
+    : InheritableAttr(attr::MipsInterrupt, R, SI, false, false)
+              , interrupt(Interrupt)
+  {
+  }
+
+  MipsInterruptAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  InterruptType getInterrupt() const {
+    return interrupt;
+  }
+
+  static bool ConvertStrToInterruptType(StringRef Val, InterruptType &Out) {
+    Optional<InterruptType> R = llvm::StringSwitch<Optional<InterruptType>>(Val)
+      .Case("vector=sw0", MipsInterruptAttr::sw0)
+      .Case("vector=sw1", MipsInterruptAttr::sw1)
+      .Case("vector=hw0", MipsInterruptAttr::hw0)
+      .Case("vector=hw1", MipsInterruptAttr::hw1)
+      .Case("vector=hw2", MipsInterruptAttr::hw2)
+      .Case("vector=hw3", MipsInterruptAttr::hw3)
+      .Case("vector=hw4", MipsInterruptAttr::hw4)
+      .Case("vector=hw5", MipsInterruptAttr::hw5)
+      .Case("eic", MipsInterruptAttr::eic)
+      .Case("", MipsInterruptAttr::eic)
+      .Default(Optional<InterruptType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertInterruptTypeToStr(InterruptType Val) {
+    switch(Val) {
+    case MipsInterruptAttr::sw0: return "vector=sw0";
+    case MipsInterruptAttr::sw1: return "vector=sw1";
+    case MipsInterruptAttr::hw0: return "vector=hw0";
+    case MipsInterruptAttr::hw1: return "vector=hw1";
+    case MipsInterruptAttr::hw2: return "vector=hw2";
+    case MipsInterruptAttr::hw3: return "vector=hw3";
+    case MipsInterruptAttr::hw4: return "vector=hw4";
+    case MipsInterruptAttr::hw5: return "vector=hw5";
+    case MipsInterruptAttr::eic: return "eic";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::MipsInterrupt; }
+};
+
+class ModeAttr : public Attr {
+IdentifierInfo * mode;
+
+public:
+  static ModeAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * Mode, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ModeAttr(Loc, Ctx, Mode, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ModeAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * Mode
+              , unsigned SI
+             )
+    : Attr(attr::Mode, R, SI, false, false)
+              , mode(Mode)
+  {
+  }
+
+  ModeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getMode() const {
+    return mode;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Mode; }
+};
+
+class NSConsumedAttr : public InheritableParamAttr {
+public:
+  static NSConsumedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NSConsumedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NSConsumedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::NSConsumed, R, SI, false, false)
+  {
+  }
+
+  NSConsumedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NSConsumed; }
+};
+
+class NSConsumesSelfAttr : public InheritableAttr {
+public:
+  static NSConsumesSelfAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NSConsumesSelfAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NSConsumesSelfAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NSConsumesSelf, R, SI, false, false)
+  {
+  }
+
+  NSConsumesSelfAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NSConsumesSelf; }
+};
+
+class NSReturnsAutoreleasedAttr : public InheritableAttr {
+public:
+  static NSReturnsAutoreleasedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NSReturnsAutoreleasedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NSReturnsAutoreleasedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NSReturnsAutoreleased, R, SI, false, false)
+  {
+  }
+
+  NSReturnsAutoreleasedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NSReturnsAutoreleased; }
+};
+
+class NSReturnsNotRetainedAttr : public InheritableAttr {
+public:
+  static NSReturnsNotRetainedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NSReturnsNotRetainedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NSReturnsNotRetainedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NSReturnsNotRetained, R, SI, false, false)
+  {
+  }
+
+  NSReturnsNotRetainedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NSReturnsNotRetained; }
+};
+
+class NSReturnsRetainedAttr : public InheritableAttr {
+public:
+  static NSReturnsRetainedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NSReturnsRetainedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NSReturnsRetainedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NSReturnsRetained, R, SI, false, false)
+  {
+  }
+
+  NSReturnsRetainedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NSReturnsRetained; }
+};
+
+class NakedAttr : public InheritableAttr {
+public:
+  static NakedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NakedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NakedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Naked, R, SI, false, false)
+  {
+  }
+
+  NakedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Naked; }
+};
+
+class NoAliasAttr : public InheritableAttr {
+public:
+  static NoAliasAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoAliasAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoAliasAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoAlias, R, SI, false, false)
+  {
+  }
+
+  NoAliasAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoAlias; }
+};
+
+class NoCommonAttr : public InheritableAttr {
+public:
+  static NoCommonAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoCommonAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoCommonAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoCommon, R, SI, false, false)
+  {
+  }
+
+  NoCommonAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoCommon; }
+};
+
+class NoDebugAttr : public InheritableAttr {
+public:
+  static NoDebugAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoDebugAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoDebugAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoDebug, R, SI, false, false)
+  {
+  }
+
+  NoDebugAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoDebug; }
+};
+
+class NoDuplicateAttr : public InheritableAttr {
+public:
+  static NoDuplicateAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoDuplicateAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoDuplicateAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoDuplicate, R, SI, false, false)
+  {
+  }
+
+  NoDuplicateAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoDuplicate; }
+};
+
+class NoInlineAttr : public InheritableAttr {
+public:
+  static NoInlineAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoInlineAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoInlineAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoInline, R, SI, false, false)
+  {
+  }
+
+  NoInlineAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoInline; }
+};
+
+class NoInstrumentFunctionAttr : public InheritableAttr {
+public:
+  static NoInstrumentFunctionAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoInstrumentFunctionAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoInstrumentFunctionAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoInstrumentFunction, R, SI, false, false)
+  {
+  }
+
+  NoInstrumentFunctionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoInstrumentFunction; }
+};
+
+class NoMips16Attr : public InheritableAttr {
+public:
+  static NoMips16Attr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoMips16Attr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoMips16Attr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoMips16, R, SI, false, false)
+  {
+  }
+
+  NoMips16Attr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoMips16; }
+};
+
+class NoReturnAttr : public InheritableAttr {
+public:
+  static NoReturnAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoReturnAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoReturnAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoReturn, R, SI, false, false)
+  {
+  }
+
+  NoReturnAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoReturn; }
+};
+
+class NoSanitizeAttr : public InheritableAttr {
+  unsigned sanitizers_Size;
+  StringRef *sanitizers_;
+
+public:
+  static NoSanitizeAttr *CreateImplicit(ASTContext &Ctx, StringRef *Sanitizers, unsigned SanitizersSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoSanitizeAttr(Loc, Ctx, Sanitizers, SanitizersSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoSanitizeAttr(SourceRange R, ASTContext &Ctx
+              , StringRef *Sanitizers, unsigned SanitizersSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoSanitize, R, SI, false, false)
+              , sanitizers_Size(SanitizersSize), sanitizers_(new (Ctx, 16) StringRef[sanitizers_Size])
+  {
+    for (size_t I = 0, E = sanitizers_Size; I != E;
+         ++I) {
+      StringRef Ref = Sanitizers[I];
+      if (!Ref.empty()) {
+        char *Mem = new (Ctx, 1) char[Ref.size()];
+        std::memcpy(Mem, Ref.data(), Ref.size());
+        sanitizers_[I] = StringRef(Mem, Ref.size());
+      }
+    }
+  }
+
+  NoSanitizeAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoSanitize, R, SI, false, false)
+              , sanitizers_Size(0), sanitizers_(nullptr)
+  {
+  }
+
+  NoSanitizeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef StringRef* sanitizers_iterator;
+  sanitizers_iterator sanitizers_begin() const { return sanitizers_; }
+  sanitizers_iterator sanitizers_end() const { return sanitizers_ + sanitizers_Size; }
+  unsigned sanitizers_size() const { return sanitizers_Size; }
+  llvm::iterator_range<sanitizers_iterator> sanitizers() const { return llvm::make_range(sanitizers_begin(), sanitizers_end()); }
+
+
+
+    SanitizerMask getMask() const {
+      SanitizerMask Mask = 0;
+      for (auto SanitizerName : sanitizers()) {
+        SanitizerMask ParsedMask =
+            parseSanitizerValue(SanitizerName, /*AllowGroups=*/true);
+        Mask |= expandSanitizerGroups(ParsedMask);
+      }
+      return Mask;
+    }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoSanitize; }
+};
+
+class NoSplitStackAttr : public InheritableAttr {
+public:
+  static NoSplitStackAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoSplitStackAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoSplitStackAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoSplitStack, R, SI, false, false)
+  {
+  }
+
+  NoSplitStackAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoSplitStack; }
+};
+
+class NoThreadSafetyAnalysisAttr : public InheritableAttr {
+public:
+  static NoThreadSafetyAnalysisAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoThreadSafetyAnalysisAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoThreadSafetyAnalysisAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoThreadSafetyAnalysis, R, SI, false, false)
+  {
+  }
+
+  NoThreadSafetyAnalysisAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoThreadSafetyAnalysis; }
+};
+
+class NoThrowAttr : public InheritableAttr {
+public:
+  static NoThrowAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NoThrowAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NoThrowAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NoThrow, R, SI, false, false)
+  {
+  }
+
+  NoThrowAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NoThrow; }
+};
+
+class NonNullAttr : public InheritableParamAttr {
+  unsigned args_Size;
+  unsigned *args_;
+
+public:
+  static NonNullAttr *CreateImplicit(ASTContext &Ctx, unsigned *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NonNullAttr(Loc, Ctx, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NonNullAttr(SourceRange R, ASTContext &Ctx
+              , unsigned *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::NonNull, R, SI, false, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) unsigned[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  NonNullAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::NonNull, R, SI, false, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  NonNullAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef unsigned* args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+bool isNonNull(unsigned idx) const {
+    if (!args_size())
+      return true;
+    for (const auto &V : args())
+      if (V == idx)
+        return true;
+    return false;
+  } 
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NonNull; }
+};
+
+class NotTailCalledAttr : public InheritableAttr {
+public:
+  static NotTailCalledAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) NotTailCalledAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  NotTailCalledAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::NotTailCalled, R, SI, false, false)
+  {
+  }
+
+  NotTailCalledAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::NotTailCalled; }
+};
+
+class OMPCaptureNoInitAttr : public InheritableAttr {
+public:
+  static OMPCaptureNoInitAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OMPCaptureNoInitAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OMPCaptureNoInitAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::OMPCaptureNoInit, R, SI, false, false)
+  {
+  }
+
+  OMPCaptureNoInitAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OMPCaptureNoInit; }
+};
+
+class OMPDeclareSimdDeclAttr : public Attr {
+public:
+  enum BranchStateTy {
+    BS_Undefined,
+    BS_Inbranch,
+    BS_Notinbranch
+  };
+private:
+  BranchStateTy branchState;
+
+Expr * simdlen;
+
+  unsigned uniforms_Size;
+  Expr * *uniforms_;
+
+  unsigned aligneds_Size;
+  Expr * *aligneds_;
+
+  unsigned alignments_Size;
+  Expr * *alignments_;
+
+  unsigned linears_Size;
+  Expr * *linears_;
+
+  unsigned modifiers_Size;
+  unsigned *modifiers_;
+
+  unsigned steps_Size;
+  Expr * *steps_;
+
+public:
+  static OMPDeclareSimdDeclAttr *CreateImplicit(ASTContext &Ctx, BranchStateTy BranchState, Expr * Simdlen, Expr * *Uniforms, unsigned UniformsSize, Expr * *Aligneds, unsigned AlignedsSize, Expr * *Alignments, unsigned AlignmentsSize, Expr * *Linears, unsigned LinearsSize, unsigned *Modifiers, unsigned ModifiersSize, Expr * *Steps, unsigned StepsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OMPDeclareSimdDeclAttr(Loc, Ctx, BranchState, Simdlen, Uniforms, UniformsSize, Aligneds, AlignedsSize, Alignments, AlignmentsSize, Linears, LinearsSize, Modifiers, ModifiersSize, Steps, StepsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OMPDeclareSimdDeclAttr(SourceRange R, ASTContext &Ctx
+              , BranchStateTy BranchState
+              , Expr * Simdlen
+              , Expr * *Uniforms, unsigned UniformsSize
+              , Expr * *Aligneds, unsigned AlignedsSize
+              , Expr * *Alignments, unsigned AlignmentsSize
+              , Expr * *Linears, unsigned LinearsSize
+              , unsigned *Modifiers, unsigned ModifiersSize
+              , Expr * *Steps, unsigned StepsSize
+              , unsigned SI
+             )
+    : Attr(attr::OMPDeclareSimdDecl, R, SI, false, false)
+              , branchState(BranchState)
+              , simdlen(Simdlen)
+              , uniforms_Size(UniformsSize), uniforms_(new (Ctx, 16) Expr *[uniforms_Size])
+              , aligneds_Size(AlignedsSize), aligneds_(new (Ctx, 16) Expr *[aligneds_Size])
+              , alignments_Size(AlignmentsSize), alignments_(new (Ctx, 16) Expr *[alignments_Size])
+              , linears_Size(LinearsSize), linears_(new (Ctx, 16) Expr *[linears_Size])
+              , modifiers_Size(ModifiersSize), modifiers_(new (Ctx, 16) unsigned[modifiers_Size])
+              , steps_Size(StepsSize), steps_(new (Ctx, 16) Expr *[steps_Size])
+  {
+    std::copy(Uniforms, Uniforms + uniforms_Size, uniforms_);
+    std::copy(Aligneds, Aligneds + aligneds_Size, aligneds_);
+    std::copy(Alignments, Alignments + alignments_Size, alignments_);
+    std::copy(Linears, Linears + linears_Size, linears_);
+    std::copy(Modifiers, Modifiers + modifiers_Size, modifiers_);
+    std::copy(Steps, Steps + steps_Size, steps_);
+  }
+
+  OMPDeclareSimdDeclAttr(SourceRange R, ASTContext &Ctx
+              , BranchStateTy BranchState
+              , Expr * Simdlen
+              , unsigned SI
+             )
+    : Attr(attr::OMPDeclareSimdDecl, R, SI, false, false)
+              , branchState(BranchState)
+              , simdlen(Simdlen)
+              , uniforms_Size(0), uniforms_(nullptr)
+              , aligneds_Size(0), aligneds_(nullptr)
+              , alignments_Size(0), alignments_(nullptr)
+              , linears_Size(0), linears_(nullptr)
+              , modifiers_Size(0), modifiers_(nullptr)
+              , steps_Size(0), steps_(nullptr)
+  {
+  }
+
+  OMPDeclareSimdDeclAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  BranchStateTy getBranchState() const {
+    return branchState;
+  }
+
+  static bool ConvertStrToBranchStateTy(StringRef Val, BranchStateTy &Out) {
+    Optional<BranchStateTy> R = llvm::StringSwitch<Optional<BranchStateTy>>(Val)
+      .Case("", OMPDeclareSimdDeclAttr::BS_Undefined)
+      .Case("inbranch", OMPDeclareSimdDeclAttr::BS_Inbranch)
+      .Case("notinbranch", OMPDeclareSimdDeclAttr::BS_Notinbranch)
+      .Default(Optional<BranchStateTy>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertBranchStateTyToStr(BranchStateTy Val) {
+    switch(Val) {
+    case OMPDeclareSimdDeclAttr::BS_Undefined: return "";
+    case OMPDeclareSimdDeclAttr::BS_Inbranch: return "inbranch";
+    case OMPDeclareSimdDeclAttr::BS_Notinbranch: return "notinbranch";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+  Expr * getSimdlen() const {
+    return simdlen;
+  }
+
+  typedef Expr ** uniforms_iterator;
+  uniforms_iterator uniforms_begin() const { return uniforms_; }
+  uniforms_iterator uniforms_end() const { return uniforms_ + uniforms_Size; }
+  unsigned uniforms_size() const { return uniforms_Size; }
+  llvm::iterator_range<uniforms_iterator> uniforms() const { return llvm::make_range(uniforms_begin(), uniforms_end()); }
+
+
+  typedef Expr ** aligneds_iterator;
+  aligneds_iterator aligneds_begin() const { return aligneds_; }
+  aligneds_iterator aligneds_end() const { return aligneds_ + aligneds_Size; }
+  unsigned aligneds_size() const { return aligneds_Size; }
+  llvm::iterator_range<aligneds_iterator> aligneds() const { return llvm::make_range(aligneds_begin(), aligneds_end()); }
+
+
+  typedef Expr ** alignments_iterator;
+  alignments_iterator alignments_begin() const { return alignments_; }
+  alignments_iterator alignments_end() const { return alignments_ + alignments_Size; }
+  unsigned alignments_size() const { return alignments_Size; }
+  llvm::iterator_range<alignments_iterator> alignments() const { return llvm::make_range(alignments_begin(), alignments_end()); }
+
+
+  typedef Expr ** linears_iterator;
+  linears_iterator linears_begin() const { return linears_; }
+  linears_iterator linears_end() const { return linears_ + linears_Size; }
+  unsigned linears_size() const { return linears_Size; }
+  llvm::iterator_range<linears_iterator> linears() const { return llvm::make_range(linears_begin(), linears_end()); }
+
+
+  typedef unsigned* modifiers_iterator;
+  modifiers_iterator modifiers_begin() const { return modifiers_; }
+  modifiers_iterator modifiers_end() const { return modifiers_ + modifiers_Size; }
+  unsigned modifiers_size() const { return modifiers_Size; }
+  llvm::iterator_range<modifiers_iterator> modifiers() const { return llvm::make_range(modifiers_begin(), modifiers_end()); }
+
+
+  typedef Expr ** steps_iterator;
+  steps_iterator steps_begin() const { return steps_; }
+  steps_iterator steps_end() const { return steps_ + steps_Size; }
+  unsigned steps_size() const { return steps_Size; }
+  llvm::iterator_range<steps_iterator> steps() const { return llvm::make_range(steps_begin(), steps_end()); }
+
+
+
+    void printPrettyPragma(raw_ostream & OS, const PrintingPolicy &Policy)
+        const {
+      if (getBranchState() != BS_Undefined)
+        OS << ConvertBranchStateTyToStr(getBranchState()) << " ";
+      if (auto *E = getSimdlen()) {
+        OS << "simdlen(";
+        E->printPretty(OS, nullptr, Policy);
+        OS << ") ";
+      }
+      if (uniforms_size() > 0) {
+        OS << "uniform";
+        StringRef Sep = "(";
+        for (auto *E : uniforms()) {
+          OS << Sep;
+          E->printPretty(OS, nullptr, Policy);
+          Sep = ", ";
+        }
+        OS << ") ";
+      }
+      alignments_iterator NI = alignments_begin();
+      for (auto *E : aligneds()) {
+        OS << "aligned(";
+        E->printPretty(OS, nullptr, Policy);
+        if (*NI) {
+          OS << ": ";
+          (*NI)->printPretty(OS, nullptr, Policy);
+        }
+        OS << ") ";
+        ++NI;
+      }
+      steps_iterator I = steps_begin();
+      modifiers_iterator MI = modifiers_begin();
+      for (auto *E : linears()) {
+        OS << "linear(";
+        if (*MI != OMPC_LINEAR_unknown)
+          OS << getOpenMPSimpleClauseTypeName(OMPC_linear, *MI) << "(";
+        E->printPretty(OS, nullptr, Policy);
+        if (*MI != OMPC_LINEAR_unknown)
+          OS << ")";
+        if (*I) {
+          OS << ": ";
+          (*I)->printPretty(OS, nullptr, Policy);
+        }
+        OS << ") ";
+        ++I;
+        ++MI;
+      }
+    }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OMPDeclareSimdDecl; }
+};
+
+class OMPDeclareTargetDeclAttr : public Attr {
+public:
+  enum MapTypeTy {
+    MT_To,
+    MT_Link
+  };
+private:
+  MapTypeTy mapType;
+
+public:
+  static OMPDeclareTargetDeclAttr *CreateImplicit(ASTContext &Ctx, MapTypeTy MapType, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OMPDeclareTargetDeclAttr(Loc, Ctx, MapType, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OMPDeclareTargetDeclAttr(SourceRange R, ASTContext &Ctx
+              , MapTypeTy MapType
+              , unsigned SI
+             )
+    : Attr(attr::OMPDeclareTargetDecl, R, SI, false, false)
+              , mapType(MapType)
+  {
+  }
+
+  OMPDeclareTargetDeclAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  MapTypeTy getMapType() const {
+    return mapType;
+  }
+
+  static bool ConvertStrToMapTypeTy(StringRef Val, MapTypeTy &Out) {
+    Optional<MapTypeTy> R = llvm::StringSwitch<Optional<MapTypeTy>>(Val)
+      .Case("to", OMPDeclareTargetDeclAttr::MT_To)
+      .Case("link", OMPDeclareTargetDeclAttr::MT_Link)
+      .Default(Optional<MapTypeTy>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertMapTypeTyToStr(MapTypeTy Val) {
+    switch(Val) {
+    case OMPDeclareTargetDeclAttr::MT_To: return "to";
+    case OMPDeclareTargetDeclAttr::MT_Link: return "link";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+    void printPrettyPragma(raw_ostream &OS, const PrintingPolicy &Policy) const {
+      // Use fake syntax because it is for testing and debugging purpose only.
+      if (getMapType() != MT_To)
+        OS << ConvertMapTypeTyToStr(getMapType()) << " ";
+    }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OMPDeclareTargetDecl; }
+};
+
+class OMPThreadPrivateDeclAttr : public InheritableAttr {
+public:
+  static OMPThreadPrivateDeclAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OMPThreadPrivateDeclAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OMPThreadPrivateDeclAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::OMPThreadPrivateDecl, R, SI, false, false)
+  {
+  }
+
+  OMPThreadPrivateDeclAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OMPThreadPrivateDecl; }
+};
+
+class ObjCBoxableAttr : public Attr {
+public:
+  static ObjCBoxableAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCBoxableAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCBoxableAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::ObjCBoxable, R, SI, false, false)
+  {
+  }
+
+  ObjCBoxableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCBoxable; }
+};
+
+class ObjCBridgeAttr : public InheritableAttr {
+IdentifierInfo * bridgedType;
+
+public:
+  static ObjCBridgeAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * BridgedType, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCBridgeAttr(Loc, Ctx, BridgedType, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCBridgeAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * BridgedType
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCBridge, R, SI, false, false)
+              , bridgedType(BridgedType)
+  {
+  }
+
+  ObjCBridgeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getBridgedType() const {
+    return bridgedType;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCBridge; }
+};
+
+class ObjCBridgeMutableAttr : public InheritableAttr {
+IdentifierInfo * bridgedType;
+
+public:
+  static ObjCBridgeMutableAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * BridgedType, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCBridgeMutableAttr(Loc, Ctx, BridgedType, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCBridgeMutableAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * BridgedType
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCBridgeMutable, R, SI, false, false)
+              , bridgedType(BridgedType)
+  {
+  }
+
+  ObjCBridgeMutableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getBridgedType() const {
+    return bridgedType;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCBridgeMutable; }
+};
+
+class ObjCBridgeRelatedAttr : public InheritableAttr {
+IdentifierInfo * relatedClass;
+
+IdentifierInfo * classMethod;
+
+IdentifierInfo * instanceMethod;
+
+public:
+  static ObjCBridgeRelatedAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * RelatedClass, IdentifierInfo * ClassMethod, IdentifierInfo * InstanceMethod, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCBridgeRelatedAttr(Loc, Ctx, RelatedClass, ClassMethod, InstanceMethod, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCBridgeRelatedAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * RelatedClass
+              , IdentifierInfo * ClassMethod
+              , IdentifierInfo * InstanceMethod
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCBridgeRelated, R, SI, false, false)
+              , relatedClass(RelatedClass)
+              , classMethod(ClassMethod)
+              , instanceMethod(InstanceMethod)
+  {
+  }
+
+  ObjCBridgeRelatedAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * RelatedClass
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCBridgeRelated, R, SI, false, false)
+              , relatedClass(RelatedClass)
+              , classMethod()
+              , instanceMethod()
+  {
+  }
+
+  ObjCBridgeRelatedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getRelatedClass() const {
+    return relatedClass;
+  }
+
+  IdentifierInfo * getClassMethod() const {
+    return classMethod;
+  }
+
+  IdentifierInfo * getInstanceMethod() const {
+    return instanceMethod;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCBridgeRelated; }
+};
+
+class ObjCDesignatedInitializerAttr : public Attr {
+public:
+  static ObjCDesignatedInitializerAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCDesignatedInitializerAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCDesignatedInitializerAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::ObjCDesignatedInitializer, R, SI, false, false)
+  {
+  }
+
+  ObjCDesignatedInitializerAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCDesignatedInitializer; }
+};
+
+class ObjCExceptionAttr : public InheritableAttr {
+public:
+  static ObjCExceptionAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCExceptionAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCExceptionAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCException, R, SI, false, false)
+  {
+  }
+
+  ObjCExceptionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCException; }
+};
+
+class ObjCExplicitProtocolImplAttr : public InheritableAttr {
+public:
+  static ObjCExplicitProtocolImplAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCExplicitProtocolImplAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCExplicitProtocolImplAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCExplicitProtocolImpl, R, SI, false, false)
+  {
+  }
+
+  ObjCExplicitProtocolImplAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCExplicitProtocolImpl; }
+};
+
+class ObjCIndependentClassAttr : public InheritableAttr {
+public:
+  static ObjCIndependentClassAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCIndependentClassAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCIndependentClassAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCIndependentClass, R, SI, false, false)
+  {
+  }
+
+  ObjCIndependentClassAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCIndependentClass; }
+};
+
+class ObjCMethodFamilyAttr : public InheritableAttr {
+public:
+  enum FamilyKind {
+    OMF_None,
+    OMF_alloc,
+    OMF_copy,
+    OMF_init,
+    OMF_mutableCopy,
+    OMF_new
+  };
+private:
+  FamilyKind family;
+
+public:
+  static ObjCMethodFamilyAttr *CreateImplicit(ASTContext &Ctx, FamilyKind Family, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCMethodFamilyAttr(Loc, Ctx, Family, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCMethodFamilyAttr(SourceRange R, ASTContext &Ctx
+              , FamilyKind Family
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCMethodFamily, R, SI, false, false)
+              , family(Family)
+  {
+  }
+
+  ObjCMethodFamilyAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  FamilyKind getFamily() const {
+    return family;
+  }
+
+  static bool ConvertStrToFamilyKind(StringRef Val, FamilyKind &Out) {
+    Optional<FamilyKind> R = llvm::StringSwitch<Optional<FamilyKind>>(Val)
+      .Case("none", ObjCMethodFamilyAttr::OMF_None)
+      .Case("alloc", ObjCMethodFamilyAttr::OMF_alloc)
+      .Case("copy", ObjCMethodFamilyAttr::OMF_copy)
+      .Case("init", ObjCMethodFamilyAttr::OMF_init)
+      .Case("mutableCopy", ObjCMethodFamilyAttr::OMF_mutableCopy)
+      .Case("new", ObjCMethodFamilyAttr::OMF_new)
+      .Default(Optional<FamilyKind>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertFamilyKindToStr(FamilyKind Val) {
+    switch(Val) {
+    case ObjCMethodFamilyAttr::OMF_None: return "none";
+    case ObjCMethodFamilyAttr::OMF_alloc: return "alloc";
+    case ObjCMethodFamilyAttr::OMF_copy: return "copy";
+    case ObjCMethodFamilyAttr::OMF_init: return "init";
+    case ObjCMethodFamilyAttr::OMF_mutableCopy: return "mutableCopy";
+    case ObjCMethodFamilyAttr::OMF_new: return "new";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCMethodFamily; }
+};
+
+class ObjCNSObjectAttr : public InheritableAttr {
+public:
+  static ObjCNSObjectAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCNSObjectAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCNSObjectAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCNSObject, R, SI, false, false)
+  {
+  }
+
+  ObjCNSObjectAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCNSObject; }
+};
+
+class ObjCPreciseLifetimeAttr : public InheritableAttr {
+public:
+  static ObjCPreciseLifetimeAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCPreciseLifetimeAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCPreciseLifetimeAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCPreciseLifetime, R, SI, false, false)
+  {
+  }
+
+  ObjCPreciseLifetimeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCPreciseLifetime; }
+};
+
+class ObjCRequiresPropertyDefsAttr : public InheritableAttr {
+public:
+  static ObjCRequiresPropertyDefsAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCRequiresPropertyDefsAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCRequiresPropertyDefsAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCRequiresPropertyDefs, R, SI, false, false)
+  {
+  }
+
+  ObjCRequiresPropertyDefsAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCRequiresPropertyDefs; }
+};
+
+class ObjCRequiresSuperAttr : public InheritableAttr {
+public:
+  static ObjCRequiresSuperAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCRequiresSuperAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCRequiresSuperAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCRequiresSuper, R, SI, false, false)
+  {
+  }
+
+  ObjCRequiresSuperAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCRequiresSuper; }
+};
+
+class ObjCReturnsInnerPointerAttr : public InheritableAttr {
+public:
+  static ObjCReturnsInnerPointerAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCReturnsInnerPointerAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCReturnsInnerPointerAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCReturnsInnerPointer, R, SI, false, false)
+  {
+  }
+
+  ObjCReturnsInnerPointerAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCReturnsInnerPointer; }
+};
+
+class ObjCRootClassAttr : public InheritableAttr {
+public:
+  static ObjCRootClassAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCRootClassAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCRootClassAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCRootClass, R, SI, false, false)
+  {
+  }
+
+  ObjCRootClassAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCRootClass; }
+};
+
+class ObjCRuntimeNameAttr : public Attr {
+unsigned metadataNameLength;
+char *metadataName;
+
+public:
+  static ObjCRuntimeNameAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef MetadataName, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCRuntimeNameAttr(Loc, Ctx, MetadataName, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCRuntimeNameAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef MetadataName
+              , unsigned SI
+             )
+    : Attr(attr::ObjCRuntimeName, R, SI, false, false)
+              , metadataNameLength(MetadataName.size()),metadataName(new (Ctx, 1) char[metadataNameLength])
+  {
+      if (!MetadataName.empty())
+        std::memcpy(metadataName, MetadataName.data(), metadataNameLength);
+  }
+
+  ObjCRuntimeNameAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getMetadataName() const {
+    return llvm::StringRef(metadataName, metadataNameLength);
+  }
+  unsigned getMetadataNameLength() const {
+    return metadataNameLength;
+  }
+  void setMetadataName(ASTContext &C, llvm::StringRef S) {
+    metadataNameLength = S.size();
+    this->metadataName = new (C, 1) char [metadataNameLength];
+    if (!S.empty())
+      std::memcpy(this->metadataName, S.data(), metadataNameLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCRuntimeName; }
+};
+
+class ObjCRuntimeVisibleAttr : public Attr {
+public:
+  static ObjCRuntimeVisibleAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCRuntimeVisibleAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCRuntimeVisibleAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::ObjCRuntimeVisible, R, SI, false, false)
+  {
+  }
+
+  ObjCRuntimeVisibleAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCRuntimeVisible; }
+};
+
+class ObjCSubclassingRestrictedAttr : public InheritableAttr {
+public:
+  static ObjCSubclassingRestrictedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ObjCSubclassingRestrictedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ObjCSubclassingRestrictedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ObjCSubclassingRestricted, R, SI, false, false)
+  {
+  }
+
+  ObjCSubclassingRestrictedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ObjCSubclassingRestricted; }
+};
+
+class OpenCLAccessAttr : public Attr {
+public:
+  enum Spelling {
+    Keyword_read_only = 0,
+    Keyword_write_only = 2,
+    Keyword_read_write = 4
+  };
+
+  static OpenCLAccessAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OpenCLAccessAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OpenCLAccessAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::OpenCLAccess, R, SI, false, false)
+  {
+  }
+
+  OpenCLAccessAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Keyword_read_only;
+    case 1: return Keyword_read_only;
+    case 2: return Keyword_write_only;
+    case 3: return Keyword_write_only;
+    case 4: return Keyword_read_write;
+    case 5: return Keyword_read_write;
+  }
+  }
+  bool isReadOnly() const { return SpellingListIndex == 0 ||
+    SpellingListIndex == 1; }
+  bool isReadWrite() const { return SpellingListIndex == 4 ||
+    SpellingListIndex == 5; }
+  bool isWriteOnly() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3; }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OpenCLAccess; }
+};
+
+class OpenCLKernelAttr : public InheritableAttr {
+public:
+  static OpenCLKernelAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OpenCLKernelAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OpenCLKernelAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::OpenCLKernel, R, SI, false, false)
+  {
+  }
+
+  OpenCLKernelAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OpenCLKernel; }
+};
+
+class OpenCLUnrollHintAttr : public InheritableAttr {
+unsigned unrollHint;
+
+public:
+  static OpenCLUnrollHintAttr *CreateImplicit(ASTContext &Ctx, unsigned UnrollHint, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OpenCLUnrollHintAttr(Loc, Ctx, UnrollHint, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OpenCLUnrollHintAttr(SourceRange R, ASTContext &Ctx
+              , unsigned UnrollHint
+              , unsigned SI
+             )
+    : InheritableAttr(attr::OpenCLUnrollHint, R, SI, false, false)
+              , unrollHint(UnrollHint)
+  {
+  }
+
+  OpenCLUnrollHintAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getUnrollHint() const {
+    return unrollHint;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OpenCLUnrollHint; }
+};
+
+class OptimizeNoneAttr : public InheritableAttr {
+public:
+  static OptimizeNoneAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OptimizeNoneAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OptimizeNoneAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::OptimizeNone, R, SI, false, false)
+  {
+  }
+
+  OptimizeNoneAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::OptimizeNone; }
+};
+
+class OverloadableAttr : public Attr {
+public:
+  static OverloadableAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OverloadableAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OverloadableAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::Overloadable, R, SI, false, false)
+  {
+  }
+
+  OverloadableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Overloadable; }
+};
+
+class OverrideAttr : public InheritableAttr {
+public:
+  static OverrideAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OverrideAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OverrideAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Override, R, SI, false, false)
+  {
+  }
+
+  OverrideAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Override; }
+};
+
+class OwnershipAttr : public InheritableAttr {
+IdentifierInfo * module;
+
+  unsigned args_Size;
+  unsigned *args_;
+
+public:
+  enum Spelling {
+    GNU_ownership_holds = 0,
+    GNU_ownership_returns = 1,
+    GNU_ownership_takes = 2
+  };
+
+  static OwnershipAttr *CreateImplicit(ASTContext &Ctx, Spelling S, IdentifierInfo * Module, unsigned *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) OwnershipAttr(Loc, Ctx, Module, Args, ArgsSize, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  OwnershipAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * Module
+              , unsigned *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Ownership, R, SI, false, false)
+              , module(Module)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) unsigned[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  OwnershipAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * Module
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Ownership, R, SI, false, false)
+              , module(Module)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  OwnershipAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_ownership_holds;
+    case 1: return GNU_ownership_returns;
+    case 2: return GNU_ownership_takes;
+  }
+  }
+  bool isHolds() const { return SpellingListIndex == 0; }
+  bool isReturns() const { return SpellingListIndex == 1; }
+  bool isTakes() const { return SpellingListIndex == 2; }
+  IdentifierInfo * getModule() const {
+    return module;
+  }
+
+  typedef unsigned* args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+    enum OwnershipKind { Holds, Returns, Takes };
+    OwnershipKind getOwnKind() const {
+      return isHolds() ? Holds :
+             isTakes() ? Takes :
+             Returns;
+    }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Ownership; }
+};
+
+class PackedAttr : public InheritableAttr {
+public:
+  static PackedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PackedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PackedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Packed, R, SI, false, false)
+  {
+  }
+
+  PackedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Packed; }
+};
+
+class ParamTypestateAttr : public InheritableAttr {
+public:
+  enum ConsumedState {
+    Unknown,
+    Consumed,
+    Unconsumed
+  };
+private:
+  ConsumedState paramState;
+
+public:
+  static ParamTypestateAttr *CreateImplicit(ASTContext &Ctx, ConsumedState ParamState, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ParamTypestateAttr(Loc, Ctx, ParamState, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ParamTypestateAttr(SourceRange R, ASTContext &Ctx
+              , ConsumedState ParamState
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ParamTypestate, R, SI, false, false)
+              , paramState(ParamState)
+  {
+  }
+
+  ParamTypestateAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  ConsumedState getParamState() const {
+    return paramState;
+  }
+
+  static bool ConvertStrToConsumedState(StringRef Val, ConsumedState &Out) {
+    Optional<ConsumedState> R = llvm::StringSwitch<Optional<ConsumedState>>(Val)
+      .Case("unknown", ParamTypestateAttr::Unknown)
+      .Case("consumed", ParamTypestateAttr::Consumed)
+      .Case("unconsumed", ParamTypestateAttr::Unconsumed)
+      .Default(Optional<ConsumedState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertConsumedStateToStr(ConsumedState Val) {
+    switch(Val) {
+    case ParamTypestateAttr::Unknown: return "unknown";
+    case ParamTypestateAttr::Consumed: return "consumed";
+    case ParamTypestateAttr::Unconsumed: return "unconsumed";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ParamTypestate; }
+};
+
+class PascalAttr : public InheritableAttr {
+public:
+  static PascalAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PascalAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PascalAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Pascal, R, SI, false, false)
+  {
+  }
+
+  PascalAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Pascal; }
+};
+
+class PassObjectSizeAttr : public InheritableParamAttr {
+int type;
+
+public:
+  static PassObjectSizeAttr *CreateImplicit(ASTContext &Ctx, int Type, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PassObjectSizeAttr(Loc, Ctx, Type, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PassObjectSizeAttr(SourceRange R, ASTContext &Ctx
+              , int Type
+              , unsigned SI
+             )
+    : InheritableParamAttr(attr::PassObjectSize, R, SI, false, false)
+              , type(Type)
+  {
+  }
+
+  PassObjectSizeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getType() const {
+    return type;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::PassObjectSize; }
+};
+
+class PcsAttr : public InheritableAttr {
+public:
+  enum PCSType {
+    AAPCS,
+    AAPCS_VFP
+  };
+private:
+  PCSType pCS;
+
+public:
+  static PcsAttr *CreateImplicit(ASTContext &Ctx, PCSType PCS, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PcsAttr(Loc, Ctx, PCS, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PcsAttr(SourceRange R, ASTContext &Ctx
+              , PCSType PCS
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Pcs, R, SI, false, false)
+              , pCS(PCS)
+  {
+  }
+
+  PcsAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  PCSType getPCS() const {
+    return pCS;
+  }
+
+  static bool ConvertStrToPCSType(StringRef Val, PCSType &Out) {
+    Optional<PCSType> R = llvm::StringSwitch<Optional<PCSType>>(Val)
+      .Case("aapcs", PcsAttr::AAPCS)
+      .Case("aapcs-vfp", PcsAttr::AAPCS_VFP)
+      .Default(Optional<PCSType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertPCSTypeToStr(PCSType Val) {
+    switch(Val) {
+    case PcsAttr::AAPCS: return "aapcs";
+    case PcsAttr::AAPCS_VFP: return "aapcs-vfp";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Pcs; }
+};
+
+class PreserveAllAttr : public InheritableAttr {
+public:
+  static PreserveAllAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PreserveAllAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PreserveAllAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::PreserveAll, R, SI, false, false)
+  {
+  }
+
+  PreserveAllAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::PreserveAll; }
+};
+
+class PreserveMostAttr : public InheritableAttr {
+public:
+  static PreserveMostAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PreserveMostAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PreserveMostAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::PreserveMost, R, SI, false, false)
+  {
+  }
+
+  PreserveMostAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::PreserveMost; }
+};
+
+class PtGuardedByAttr : public InheritableAttr {
+Expr * arg;
+
+public:
+  static PtGuardedByAttr *CreateImplicit(ASTContext &Ctx, Expr * Arg, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PtGuardedByAttr(Loc, Ctx, Arg, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PtGuardedByAttr(SourceRange R, ASTContext &Ctx
+              , Expr * Arg
+              , unsigned SI
+             )
+    : InheritableAttr(attr::PtGuardedBy, R, SI, true, true)
+              , arg(Arg)
+  {
+  }
+
+  PtGuardedByAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getArg() const {
+    return arg;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::PtGuardedBy; }
+};
+
+class PtGuardedVarAttr : public InheritableAttr {
+public:
+  static PtGuardedVarAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PtGuardedVarAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PtGuardedVarAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::PtGuardedVar, R, SI, false, false)
+  {
+  }
+
+  PtGuardedVarAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::PtGuardedVar; }
+};
+
+class PureAttr : public InheritableAttr {
+public:
+  static PureAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) PureAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  PureAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Pure, R, SI, false, false)
+  {
+  }
+
+  PureAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Pure; }
+};
+
+class RegCallAttr : public InheritableAttr {
+public:
+  static RegCallAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) RegCallAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  RegCallAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::RegCall, R, SI, false, false)
+  {
+  }
+
+  RegCallAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::RegCall; }
+};
+
+class ReleaseCapabilityAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  enum Spelling {
+    GNU_release_capability = 0,
+    CXX11_clang_release_capability = 1,
+    GNU_release_shared_capability = 2,
+    CXX11_clang_release_shared_capability = 3,
+    GNU_release_generic_capability = 4,
+    CXX11_clang_release_generic_capability = 5,
+    GNU_unlock_function = 6
+  };
+
+  static ReleaseCapabilityAttr *CreateImplicit(ASTContext &Ctx, Spelling S, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ReleaseCapabilityAttr(Loc, Ctx, Args, ArgsSize, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ReleaseCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ReleaseCapability, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  ReleaseCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ReleaseCapability, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  ReleaseCapabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_release_capability;
+    case 1: return CXX11_clang_release_capability;
+    case 2: return GNU_release_shared_capability;
+    case 3: return CXX11_clang_release_shared_capability;
+    case 4: return GNU_release_generic_capability;
+    case 5: return CXX11_clang_release_generic_capability;
+    case 6: return GNU_unlock_function;
+  }
+  }
+  bool isShared() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3; }
+  bool isGeneric() const { return SpellingListIndex == 4 ||
+    SpellingListIndex == 5 ||
+    SpellingListIndex == 6; }
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ReleaseCapability; }
+};
+
+class RenderScriptKernelAttr : public Attr {
+public:
+  static RenderScriptKernelAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) RenderScriptKernelAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  RenderScriptKernelAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::RenderScriptKernel, R, SI, false, false)
+  {
+  }
+
+  RenderScriptKernelAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::RenderScriptKernel; }
+};
+
+class ReqdWorkGroupSizeAttr : public InheritableAttr {
+unsigned xDim;
+
+unsigned yDim;
+
+unsigned zDim;
+
+public:
+  static ReqdWorkGroupSizeAttr *CreateImplicit(ASTContext &Ctx, unsigned XDim, unsigned YDim, unsigned ZDim, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ReqdWorkGroupSizeAttr(Loc, Ctx, XDim, YDim, ZDim, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ReqdWorkGroupSizeAttr(SourceRange R, ASTContext &Ctx
+              , unsigned XDim
+              , unsigned YDim
+              , unsigned ZDim
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ReqdWorkGroupSize, R, SI, false, false)
+              , xDim(XDim)
+              , yDim(YDim)
+              , zDim(ZDim)
+  {
+  }
+
+  ReqdWorkGroupSizeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getXDim() const {
+    return xDim;
+  }
+
+  unsigned getYDim() const {
+    return yDim;
+  }
+
+  unsigned getZDim() const {
+    return zDim;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ReqdWorkGroupSize; }
+};
+
+class RequireConstantInitAttr : public InheritableAttr {
+public:
+  static RequireConstantInitAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) RequireConstantInitAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  RequireConstantInitAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::RequireConstantInit, R, SI, false, false)
+  {
+  }
+
+  RequireConstantInitAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::RequireConstantInit; }
+};
+
+class RequiresCapabilityAttr : public InheritableAttr {
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  enum Spelling {
+    GNU_requires_capability = 0,
+    CXX11_clang_requires_capability = 1,
+    GNU_exclusive_locks_required = 2,
+    GNU_requires_shared_capability = 3,
+    CXX11_clang_requires_shared_capability = 4,
+    GNU_shared_locks_required = 5
+  };
+
+  static RequiresCapabilityAttr *CreateImplicit(ASTContext &Ctx, Spelling S, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) RequiresCapabilityAttr(Loc, Ctx, Args, ArgsSize, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  RequiresCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::RequiresCapability, R, SI, true, true)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  RequiresCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::RequiresCapability, R, SI, true, true)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  RequiresCapabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_requires_capability;
+    case 1: return CXX11_clang_requires_capability;
+    case 2: return GNU_exclusive_locks_required;
+    case 3: return GNU_requires_shared_capability;
+    case 4: return CXX11_clang_requires_shared_capability;
+    case 5: return GNU_shared_locks_required;
+  }
+  }
+  bool isShared() const { return SpellingListIndex == 3 ||
+    SpellingListIndex == 5 ||
+    SpellingListIndex == 4; }
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::RequiresCapability; }
+};
+
+class RestrictAttr : public InheritableAttr {
+public:
+  enum Spelling {
+    Declspec_restrict = 0,
+    GNU_malloc = 1,
+    CXX11_gnu_malloc = 2
+  };
+
+  static RestrictAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) RestrictAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  RestrictAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Restrict, R, SI, false, false)
+  {
+  }
+
+  RestrictAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Declspec_restrict;
+    case 1: return GNU_malloc;
+    case 2: return CXX11_gnu_malloc;
+  }
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Restrict; }
+};
+
+class ReturnTypestateAttr : public InheritableAttr {
+public:
+  enum ConsumedState {
+    Unknown,
+    Consumed,
+    Unconsumed
+  };
+private:
+  ConsumedState state;
+
+public:
+  static ReturnTypestateAttr *CreateImplicit(ASTContext &Ctx, ConsumedState State, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ReturnTypestateAttr(Loc, Ctx, State, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ReturnTypestateAttr(SourceRange R, ASTContext &Ctx
+              , ConsumedState State
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ReturnTypestate, R, SI, false, false)
+              , state(State)
+  {
+  }
+
+  ReturnTypestateAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  ConsumedState getState() const {
+    return state;
+  }
+
+  static bool ConvertStrToConsumedState(StringRef Val, ConsumedState &Out) {
+    Optional<ConsumedState> R = llvm::StringSwitch<Optional<ConsumedState>>(Val)
+      .Case("unknown", ReturnTypestateAttr::Unknown)
+      .Case("consumed", ReturnTypestateAttr::Consumed)
+      .Case("unconsumed", ReturnTypestateAttr::Unconsumed)
+      .Default(Optional<ConsumedState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertConsumedStateToStr(ConsumedState Val) {
+    switch(Val) {
+    case ReturnTypestateAttr::Unknown: return "unknown";
+    case ReturnTypestateAttr::Consumed: return "consumed";
+    case ReturnTypestateAttr::Unconsumed: return "unconsumed";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ReturnTypestate; }
+};
+
+class ReturnsNonNullAttr : public InheritableAttr {
+public:
+  static ReturnsNonNullAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ReturnsNonNullAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ReturnsNonNullAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ReturnsNonNull, R, SI, false, false)
+  {
+  }
+
+  ReturnsNonNullAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ReturnsNonNull; }
+};
+
+class ReturnsTwiceAttr : public InheritableAttr {
+public:
+  static ReturnsTwiceAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ReturnsTwiceAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ReturnsTwiceAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ReturnsTwice, R, SI, false, false)
+  {
+  }
+
+  ReturnsTwiceAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ReturnsTwice; }
+};
+
+class ScopedLockableAttr : public InheritableAttr {
+public:
+  static ScopedLockableAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ScopedLockableAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ScopedLockableAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ScopedLockable, R, SI, false, false)
+  {
+  }
+
+  ScopedLockableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ScopedLockable; }
+};
+
+class SectionAttr : public InheritableAttr {
+unsigned nameLength;
+char *name;
+
+public:
+  enum Spelling {
+    GNU_section = 0,
+    CXX11_gnu_section = 1,
+    Declspec_allocate = 2
+  };
+
+  static SectionAttr *CreateImplicit(ASTContext &Ctx, Spelling S, llvm::StringRef Name, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SectionAttr(Loc, Ctx, Name, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SectionAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Name
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Section, R, SI, false, false)
+              , nameLength(Name.size()),name(new (Ctx, 1) char[nameLength])
+  {
+      if (!Name.empty())
+        std::memcpy(name, Name.data(), nameLength);
+  }
+
+  SectionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_section;
+    case 1: return CXX11_gnu_section;
+    case 2: return Declspec_allocate;
+  }
+  }
+  llvm::StringRef getName() const {
+    return llvm::StringRef(name, nameLength);
+  }
+  unsigned getNameLength() const {
+    return nameLength;
+  }
+  void setName(ASTContext &C, llvm::StringRef S) {
+    nameLength = S.size();
+    this->name = new (C, 1) char [nameLength];
+    if (!S.empty())
+      std::memcpy(this->name, S.data(), nameLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Section; }
+};
+
+class SelectAnyAttr : public InheritableAttr {
+public:
+  static SelectAnyAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SelectAnyAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SelectAnyAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::SelectAny, R, SI, false, false)
+  {
+  }
+
+  SelectAnyAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SelectAny; }
+};
+
+class SentinelAttr : public InheritableAttr {
+int sentinel;
+
+int nullPos;
+
+public:
+  static SentinelAttr *CreateImplicit(ASTContext &Ctx, int Sentinel, int NullPos, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SentinelAttr(Loc, Ctx, Sentinel, NullPos, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SentinelAttr(SourceRange R, ASTContext &Ctx
+              , int Sentinel
+              , int NullPos
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Sentinel, R, SI, false, false)
+              , sentinel(Sentinel)
+              , nullPos(NullPos)
+  {
+  }
+
+  SentinelAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Sentinel, R, SI, false, false)
+              , sentinel()
+              , nullPos()
+  {
+  }
+
+  SentinelAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  int getSentinel() const {
+    return sentinel;
+  }
+
+  static const int DefaultSentinel = 0;
+
+  int getNullPos() const {
+    return nullPos;
+  }
+
+  static const int DefaultNullPos = 0;
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Sentinel; }
+};
+
+class SetTypestateAttr : public InheritableAttr {
+public:
+  enum ConsumedState {
+    Unknown,
+    Consumed,
+    Unconsumed
+  };
+private:
+  ConsumedState newState;
+
+public:
+  static SetTypestateAttr *CreateImplicit(ASTContext &Ctx, ConsumedState NewState, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SetTypestateAttr(Loc, Ctx, NewState, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SetTypestateAttr(SourceRange R, ASTContext &Ctx
+              , ConsumedState NewState
+              , unsigned SI
+             )
+    : InheritableAttr(attr::SetTypestate, R, SI, false, false)
+              , newState(NewState)
+  {
+  }
+
+  SetTypestateAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  ConsumedState getNewState() const {
+    return newState;
+  }
+
+  static bool ConvertStrToConsumedState(StringRef Val, ConsumedState &Out) {
+    Optional<ConsumedState> R = llvm::StringSwitch<Optional<ConsumedState>>(Val)
+      .Case("unknown", SetTypestateAttr::Unknown)
+      .Case("consumed", SetTypestateAttr::Consumed)
+      .Case("unconsumed", SetTypestateAttr::Unconsumed)
+      .Default(Optional<ConsumedState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertConsumedStateToStr(ConsumedState Val) {
+    switch(Val) {
+    case SetTypestateAttr::Unknown: return "unknown";
+    case SetTypestateAttr::Consumed: return "consumed";
+    case SetTypestateAttr::Unconsumed: return "unconsumed";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SetTypestate; }
+};
+
+class SharedTrylockFunctionAttr : public InheritableAttr {
+Expr * successValue;
+
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  static SharedTrylockFunctionAttr *CreateImplicit(ASTContext &Ctx, Expr * SuccessValue, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SharedTrylockFunctionAttr(Loc, Ctx, SuccessValue, Args, ArgsSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SharedTrylockFunctionAttr(SourceRange R, ASTContext &Ctx
+              , Expr * SuccessValue
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::SharedTrylockFunction, R, SI, true, true)
+              , successValue(SuccessValue)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  SharedTrylockFunctionAttr(SourceRange R, ASTContext &Ctx
+              , Expr * SuccessValue
+              , unsigned SI
+             )
+    : InheritableAttr(attr::SharedTrylockFunction, R, SI, true, true)
+              , successValue(SuccessValue)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  SharedTrylockFunctionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Expr * getSuccessValue() const {
+    return successValue;
+  }
+
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SharedTrylockFunction; }
+};
+
+class StdCallAttr : public InheritableAttr {
+public:
+  static StdCallAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) StdCallAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  StdCallAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::StdCall, R, SI, false, false)
+  {
+  }
+
+  StdCallAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::StdCall; }
+};
+
+class SuppressAttr : public StmtAttr {
+  unsigned diagnosticIdentifiers_Size;
+  StringRef *diagnosticIdentifiers_;
+
+public:
+  static SuppressAttr *CreateImplicit(ASTContext &Ctx, StringRef *DiagnosticIdentifiers, unsigned DiagnosticIdentifiersSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SuppressAttr(Loc, Ctx, DiagnosticIdentifiers, DiagnosticIdentifiersSize, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SuppressAttr(SourceRange R, ASTContext &Ctx
+              , StringRef *DiagnosticIdentifiers, unsigned DiagnosticIdentifiersSize
+              , unsigned SI
+             )
+    : StmtAttr(attr::Suppress, R, SI, false, false)
+              , diagnosticIdentifiers_Size(DiagnosticIdentifiersSize), diagnosticIdentifiers_(new (Ctx, 16) StringRef[diagnosticIdentifiers_Size])
+  {
+    for (size_t I = 0, E = diagnosticIdentifiers_Size; I != E;
+         ++I) {
+      StringRef Ref = DiagnosticIdentifiers[I];
+      if (!Ref.empty()) {
+        char *Mem = new (Ctx, 1) char[Ref.size()];
+        std::memcpy(Mem, Ref.data(), Ref.size());
+        diagnosticIdentifiers_[I] = StringRef(Mem, Ref.size());
+      }
+    }
+  }
+
+  SuppressAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : StmtAttr(attr::Suppress, R, SI, false, false)
+              , diagnosticIdentifiers_Size(0), diagnosticIdentifiers_(nullptr)
+  {
+  }
+
+  SuppressAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  typedef StringRef* diagnosticIdentifiers_iterator;
+  diagnosticIdentifiers_iterator diagnosticIdentifiers_begin() const { return diagnosticIdentifiers_; }
+  diagnosticIdentifiers_iterator diagnosticIdentifiers_end() const { return diagnosticIdentifiers_ + diagnosticIdentifiers_Size; }
+  unsigned diagnosticIdentifiers_size() const { return diagnosticIdentifiers_Size; }
+  llvm::iterator_range<diagnosticIdentifiers_iterator> diagnosticIdentifiers() const { return llvm::make_range(diagnosticIdentifiers_begin(), diagnosticIdentifiers_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Suppress; }
+};
+
+class SwiftCallAttr : public InheritableAttr {
+public:
+  static SwiftCallAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SwiftCallAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SwiftCallAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::SwiftCall, R, SI, false, false)
+  {
+  }
+
+  SwiftCallAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SwiftCall; }
+};
+
+class SwiftContextAttr : public ParameterABIAttr {
+public:
+  static SwiftContextAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SwiftContextAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SwiftContextAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : ParameterABIAttr(attr::SwiftContext, R, SI, false, false)
+  {
+  }
+
+  SwiftContextAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SwiftContext; }
+};
+
+class SwiftErrorResultAttr : public ParameterABIAttr {
+public:
+  static SwiftErrorResultAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SwiftErrorResultAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SwiftErrorResultAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : ParameterABIAttr(attr::SwiftErrorResult, R, SI, false, false)
+  {
+  }
+
+  SwiftErrorResultAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SwiftErrorResult; }
+};
+
+class SwiftIndirectResultAttr : public ParameterABIAttr {
+public:
+  static SwiftIndirectResultAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SwiftIndirectResultAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SwiftIndirectResultAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : ParameterABIAttr(attr::SwiftIndirectResult, R, SI, false, false)
+  {
+  }
+
+  SwiftIndirectResultAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SwiftIndirectResult; }
+};
+
+class SysVABIAttr : public InheritableAttr {
+public:
+  static SysVABIAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) SysVABIAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  SysVABIAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::SysVABI, R, SI, false, false)
+  {
+  }
+
+  SysVABIAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::SysVABI; }
+};
+
+class TLSModelAttr : public InheritableAttr {
+unsigned modelLength;
+char *model;
+
+public:
+  static TLSModelAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Model, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TLSModelAttr(Loc, Ctx, Model, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TLSModelAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Model
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TLSModel, R, SI, false, false)
+              , modelLength(Model.size()),model(new (Ctx, 1) char[modelLength])
+  {
+      if (!Model.empty())
+        std::memcpy(model, Model.data(), modelLength);
+  }
+
+  TLSModelAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getModel() const {
+    return llvm::StringRef(model, modelLength);
+  }
+  unsigned getModelLength() const {
+    return modelLength;
+  }
+  void setModel(ASTContext &C, llvm::StringRef S) {
+    modelLength = S.size();
+    this->model = new (C, 1) char [modelLength];
+    if (!S.empty())
+      std::memcpy(this->model, S.data(), modelLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::TLSModel; }
+};
+
+class TargetAttr : public InheritableAttr {
+unsigned featuresStrLength;
+char *featuresStr;
+
+public:
+  static TargetAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef FeaturesStr, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TargetAttr(Loc, Ctx, FeaturesStr, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TargetAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef FeaturesStr
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Target, R, SI, false, false)
+              , featuresStrLength(FeaturesStr.size()),featuresStr(new (Ctx, 1) char[featuresStrLength])
+  {
+      if (!FeaturesStr.empty())
+        std::memcpy(featuresStr, FeaturesStr.data(), featuresStrLength);
+  }
+
+  TargetAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getFeaturesStr() const {
+    return llvm::StringRef(featuresStr, featuresStrLength);
+  }
+  unsigned getFeaturesStrLength() const {
+    return featuresStrLength;
+  }
+  void setFeaturesStr(ASTContext &C, llvm::StringRef S) {
+    featuresStrLength = S.size();
+    this->featuresStr = new (C, 1) char [featuresStrLength];
+    if (!S.empty())
+      std::memcpy(this->featuresStr, S.data(), featuresStrLength);
+  }
+
+
+    typedef std::pair<std::vector<std::string>, StringRef> ParsedTargetAttr;
+    ParsedTargetAttr parse() const {
+      ParsedTargetAttr Ret;
+      SmallVector<StringRef, 1> AttrFeatures;
+      getFeaturesStr().split(AttrFeatures, ",");
+
+      // Grab the various features and prepend a "+" to turn on the feature to
+      // the backend and add them to our existing set of features.
+      for (auto &Feature : AttrFeatures) {
+        // Go ahead and trim whitespace rather than either erroring or
+        // accepting it weirdly.
+        Feature = Feature.trim();
+
+        // We don't support cpu tuning this way currently.
+        // TODO: Support the fpmath option. It will require checking
+        // overall feature validity for the function with the rest of the
+        // attributes on the function.
+        if (Feature.startswith("fpmath=") || Feature.startswith("tune="))
+	  continue;
+
+        // While we're here iterating check for a different target cpu.
+        if (Feature.startswith("arch="))
+          Ret.second = Feature.split("=").second.trim();
+        else if (Feature.startswith("no-"))
+          Ret.first.push_back("-" + Feature.split("-").second.str());
+        else
+          Ret.first.push_back("+" + Feature.str());
+      }
+      return Ret;
+    }
+  
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Target; }
+};
+
+class TestTypestateAttr : public InheritableAttr {
+public:
+  enum ConsumedState {
+    Consumed,
+    Unconsumed
+  };
+private:
+  ConsumedState testState;
+
+public:
+  static TestTypestateAttr *CreateImplicit(ASTContext &Ctx, ConsumedState TestState, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TestTypestateAttr(Loc, Ctx, TestState, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TestTypestateAttr(SourceRange R, ASTContext &Ctx
+              , ConsumedState TestState
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TestTypestate, R, SI, false, false)
+              , testState(TestState)
+  {
+  }
+
+  TestTypestateAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  ConsumedState getTestState() const {
+    return testState;
+  }
+
+  static bool ConvertStrToConsumedState(StringRef Val, ConsumedState &Out) {
+    Optional<ConsumedState> R = llvm::StringSwitch<Optional<ConsumedState>>(Val)
+      .Case("consumed", TestTypestateAttr::Consumed)
+      .Case("unconsumed", TestTypestateAttr::Unconsumed)
+      .Default(Optional<ConsumedState>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertConsumedStateToStr(ConsumedState Val) {
+    switch(Val) {
+    case TestTypestateAttr::Consumed: return "consumed";
+    case TestTypestateAttr::Unconsumed: return "unconsumed";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::TestTypestate; }
+};
+
+class ThisCallAttr : public InheritableAttr {
+public:
+  static ThisCallAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ThisCallAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ThisCallAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::ThisCall, R, SI, false, false)
+  {
+  }
+
+  ThisCallAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::ThisCall; }
+};
+
+class ThreadAttr : public Attr {
+public:
+  static ThreadAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) ThreadAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  ThreadAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : Attr(attr::Thread, R, SI, false, false)
+  {
+  }
+
+  ThreadAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Thread; }
+};
+
+class TransparentUnionAttr : public InheritableAttr {
+public:
+  static TransparentUnionAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TransparentUnionAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TransparentUnionAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TransparentUnion, R, SI, false, false)
+  {
+  }
+
+  TransparentUnionAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::TransparentUnion; }
+};
+
+class TryAcquireCapabilityAttr : public InheritableAttr {
+Expr * successValue;
+
+  unsigned args_Size;
+  Expr * *args_;
+
+public:
+  enum Spelling {
+    GNU_try_acquire_capability = 0,
+    CXX11_clang_try_acquire_capability = 1,
+    GNU_try_acquire_shared_capability = 2,
+    CXX11_clang_try_acquire_shared_capability = 3
+  };
+
+  static TryAcquireCapabilityAttr *CreateImplicit(ASTContext &Ctx, Spelling S, Expr * SuccessValue, Expr * *Args, unsigned ArgsSize, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TryAcquireCapabilityAttr(Loc, Ctx, SuccessValue, Args, ArgsSize, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TryAcquireCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , Expr * SuccessValue
+              , Expr * *Args, unsigned ArgsSize
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TryAcquireCapability, R, SI, true, true)
+              , successValue(SuccessValue)
+              , args_Size(ArgsSize), args_(new (Ctx, 16) Expr *[args_Size])
+  {
+    std::copy(Args, Args + args_Size, args_);
+  }
+
+  TryAcquireCapabilityAttr(SourceRange R, ASTContext &Ctx
+              , Expr * SuccessValue
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TryAcquireCapability, R, SI, true, true)
+              , successValue(SuccessValue)
+              , args_Size(0), args_(nullptr)
+  {
+  }
+
+  TryAcquireCapabilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_try_acquire_capability;
+    case 1: return CXX11_clang_try_acquire_capability;
+    case 2: return GNU_try_acquire_shared_capability;
+    case 3: return CXX11_clang_try_acquire_shared_capability;
+  }
+  }
+  bool isShared() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3; }
+  Expr * getSuccessValue() const {
+    return successValue;
+  }
+
+  typedef Expr ** args_iterator;
+  args_iterator args_begin() const { return args_; }
+  args_iterator args_end() const { return args_ + args_Size; }
+  unsigned args_size() const { return args_Size; }
+  llvm::iterator_range<args_iterator> args() const { return llvm::make_range(args_begin(), args_end()); }
+
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::TryAcquireCapability; }
+};
+
+class TypeTagForDatatypeAttr : public InheritableAttr {
+IdentifierInfo * argumentKind;
+
+TypeSourceInfo * matchingCType;
+
+bool layoutCompatible;
+
+bool mustBeNull;
+
+public:
+  static TypeTagForDatatypeAttr *CreateImplicit(ASTContext &Ctx, IdentifierInfo * ArgumentKind, TypeSourceInfo * MatchingCType, bool LayoutCompatible, bool MustBeNull, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TypeTagForDatatypeAttr(Loc, Ctx, ArgumentKind, MatchingCType, LayoutCompatible, MustBeNull, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TypeTagForDatatypeAttr(SourceRange R, ASTContext &Ctx
+              , IdentifierInfo * ArgumentKind
+              , TypeSourceInfo * MatchingCType
+              , bool LayoutCompatible
+              , bool MustBeNull
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TypeTagForDatatype, R, SI, false, false)
+              , argumentKind(ArgumentKind)
+              , matchingCType(MatchingCType)
+              , layoutCompatible(LayoutCompatible)
+              , mustBeNull(MustBeNull)
+  {
+  }
+
+  TypeTagForDatatypeAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  IdentifierInfo * getArgumentKind() const {
+    return argumentKind;
+  }
+
+  QualType getMatchingCType() const {
+    return matchingCType->getType();
+  }  TypeSourceInfo * getMatchingCTypeLoc() const {
+    return matchingCType;
+  }
+
+  bool getLayoutCompatible() const {
+    return layoutCompatible;
+  }
+
+  bool getMustBeNull() const {
+    return mustBeNull;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::TypeTagForDatatype; }
+};
+
+class TypeVisibilityAttr : public InheritableAttr {
+public:
+  enum VisibilityType {
+    Default,
+    Hidden,
+    Protected
+  };
+private:
+  VisibilityType visibility;
+
+public:
+  static TypeVisibilityAttr *CreateImplicit(ASTContext &Ctx, VisibilityType Visibility, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) TypeVisibilityAttr(Loc, Ctx, Visibility, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  TypeVisibilityAttr(SourceRange R, ASTContext &Ctx
+              , VisibilityType Visibility
+              , unsigned SI
+             )
+    : InheritableAttr(attr::TypeVisibility, R, SI, false, false)
+              , visibility(Visibility)
+  {
+  }
+
+  TypeVisibilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  VisibilityType getVisibility() const {
+    return visibility;
+  }
+
+  static bool ConvertStrToVisibilityType(StringRef Val, VisibilityType &Out) {
+    Optional<VisibilityType> R = llvm::StringSwitch<Optional<VisibilityType>>(Val)
+      .Case("default", TypeVisibilityAttr::Default)
+      .Case("hidden", TypeVisibilityAttr::Hidden)
+      .Case("internal", TypeVisibilityAttr::Hidden)
+      .Case("protected", TypeVisibilityAttr::Protected)
+      .Default(Optional<VisibilityType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertVisibilityTypeToStr(VisibilityType Val) {
+    switch(Val) {
+    case TypeVisibilityAttr::Default: return "default";
+    case TypeVisibilityAttr::Hidden: return "hidden";
+    case TypeVisibilityAttr::Protected: return "protected";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::TypeVisibility; }
+};
+
+class UnavailableAttr : public InheritableAttr {
+unsigned messageLength;
+char *message;
+
+public:
+  enum ImplicitReason {
+    IR_None,
+    IR_ARCForbiddenType,
+    IR_ForbiddenWeak,
+    IR_ARCForbiddenConversion,
+    IR_ARCInitReturnsUnrelated,
+    IR_ARCFieldWithOwnership
+  };
+private:
+  ImplicitReason implicitReason;
+
+public:
+  static UnavailableAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Message, ImplicitReason ImplicitReason, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) UnavailableAttr(Loc, Ctx, Message, ImplicitReason, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  static UnavailableAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Message, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) UnavailableAttr(Loc, Ctx, Message, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  UnavailableAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Message
+              , ImplicitReason ImplicitReason
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Unavailable, R, SI, false, false)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+              , implicitReason(ImplicitReason)
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+  }
+
+  UnavailableAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Message
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Unavailable, R, SI, false, false)
+              , messageLength(Message.size()),message(new (Ctx, 1) char[messageLength])
+              , implicitReason(ImplicitReason(0))
+  {
+      if (!Message.empty())
+        std::memcpy(message, Message.data(), messageLength);
+  }
+
+  UnavailableAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Unavailable, R, SI, false, false)
+              , messageLength(0),message(nullptr)
+              , implicitReason(ImplicitReason(0))
+  {
+  }
+
+  UnavailableAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getMessage() const {
+    return llvm::StringRef(message, messageLength);
+  }
+  unsigned getMessageLength() const {
+    return messageLength;
+  }
+  void setMessage(ASTContext &C, llvm::StringRef S) {
+    messageLength = S.size();
+    this->message = new (C, 1) char [messageLength];
+    if (!S.empty())
+      std::memcpy(this->message, S.data(), messageLength);
+  }
+
+  ImplicitReason getImplicitReason() const {
+    return implicitReason;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Unavailable; }
+};
+
+class UnusedAttr : public InheritableAttr {
+public:
+  enum Spelling {
+    CXX11_maybe_unused = 0,
+    GNU_unused = 1,
+    CXX11_gnu_unused = 2
+  };
+
+  static UnusedAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) UnusedAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  UnusedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Unused, R, SI, false, false)
+  {
+  }
+
+  UnusedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return CXX11_maybe_unused;
+    case 1: return GNU_unused;
+    case 2: return CXX11_gnu_unused;
+  }
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Unused; }
+};
+
+class UsedAttr : public InheritableAttr {
+public:
+  static UsedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) UsedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  UsedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Used, R, SI, false, false)
+  {
+  }
+
+  UsedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Used; }
+};
+
+class UuidAttr : public InheritableAttr {
+unsigned guidLength;
+char *guid;
+
+public:
+  static UuidAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Guid, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) UuidAttr(Loc, Ctx, Guid, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  UuidAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Guid
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Uuid, R, SI, false, false)
+              , guidLength(Guid.size()),guid(new (Ctx, 1) char[guidLength])
+  {
+      if (!Guid.empty())
+        std::memcpy(guid, Guid.data(), guidLength);
+  }
+
+  UuidAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getGuid() const {
+    return llvm::StringRef(guid, guidLength);
+  }
+  unsigned getGuidLength() const {
+    return guidLength;
+  }
+  void setGuid(ASTContext &C, llvm::StringRef S) {
+    guidLength = S.size();
+    this->guid = new (C, 1) char [guidLength];
+    if (!S.empty())
+      std::memcpy(this->guid, S.data(), guidLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Uuid; }
+};
+
+class VecReturnAttr : public InheritableAttr {
+public:
+  static VecReturnAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) VecReturnAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  VecReturnAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::VecReturn, R, SI, false, false)
+  {
+  }
+
+  VecReturnAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::VecReturn; }
+};
+
+class VecTypeHintAttr : public InheritableAttr {
+TypeSourceInfo * typeHint;
+
+public:
+  static VecTypeHintAttr *CreateImplicit(ASTContext &Ctx, TypeSourceInfo * TypeHint, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) VecTypeHintAttr(Loc, Ctx, TypeHint, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  VecTypeHintAttr(SourceRange R, ASTContext &Ctx
+              , TypeSourceInfo * TypeHint
+              , unsigned SI
+             )
+    : InheritableAttr(attr::VecTypeHint, R, SI, false, false)
+              , typeHint(TypeHint)
+  {
+  }
+
+  VecTypeHintAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  QualType getTypeHint() const {
+    return typeHint->getType();
+  }  TypeSourceInfo * getTypeHintLoc() const {
+    return typeHint;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::VecTypeHint; }
+};
+
+class VectorCallAttr : public InheritableAttr {
+public:
+  static VectorCallAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) VectorCallAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  VectorCallAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::VectorCall, R, SI, false, false)
+  {
+  }
+
+  VectorCallAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::VectorCall; }
+};
+
+class VisibilityAttr : public InheritableAttr {
+public:
+  enum VisibilityType {
+    Default,
+    Hidden,
+    Protected
+  };
+private:
+  VisibilityType visibility;
+
+public:
+  static VisibilityAttr *CreateImplicit(ASTContext &Ctx, VisibilityType Visibility, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) VisibilityAttr(Loc, Ctx, Visibility, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  VisibilityAttr(SourceRange R, ASTContext &Ctx
+              , VisibilityType Visibility
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Visibility, R, SI, false, false)
+              , visibility(Visibility)
+  {
+  }
+
+  VisibilityAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  VisibilityType getVisibility() const {
+    return visibility;
+  }
+
+  static bool ConvertStrToVisibilityType(StringRef Val, VisibilityType &Out) {
+    Optional<VisibilityType> R = llvm::StringSwitch<Optional<VisibilityType>>(Val)
+      .Case("default", VisibilityAttr::Default)
+      .Case("hidden", VisibilityAttr::Hidden)
+      .Case("internal", VisibilityAttr::Hidden)
+      .Case("protected", VisibilityAttr::Protected)
+      .Default(Optional<VisibilityType>());
+    if (R) {
+      Out = *R;
+      return true;
+    }
+    return false;
+  }
+
+  static const char *ConvertVisibilityTypeToStr(VisibilityType Val) {
+    switch(Val) {
+    case VisibilityAttr::Default: return "default";
+    case VisibilityAttr::Hidden: return "hidden";
+    case VisibilityAttr::Protected: return "protected";
+    }
+    llvm_unreachable("No enumerator with that value");
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Visibility; }
+};
+
+class WarnUnusedAttr : public InheritableAttr {
+public:
+  static WarnUnusedAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) WarnUnusedAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  WarnUnusedAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::WarnUnused, R, SI, false, false)
+  {
+  }
+
+  WarnUnusedAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::WarnUnused; }
+};
+
+class WarnUnusedResultAttr : public InheritableAttr {
+public:
+  enum Spelling {
+    CXX11_nodiscard = 0,
+    CXX11_clang_warn_unused_result = 1,
+    GNU_warn_unused_result = 2,
+    CXX11_gnu_warn_unused_result = 3
+  };
+
+  static WarnUnusedResultAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) WarnUnusedResultAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  WarnUnusedResultAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::WarnUnusedResult, R, SI, false, false)
+  {
+  }
+
+  WarnUnusedResultAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return CXX11_nodiscard;
+    case 1: return CXX11_clang_warn_unused_result;
+    case 2: return GNU_warn_unused_result;
+    case 3: return CXX11_gnu_warn_unused_result;
+  }
+  }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::WarnUnusedResult; }
+};
+
+class WeakAttr : public InheritableAttr {
+public:
+  static WeakAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) WeakAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  WeakAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::Weak, R, SI, false, false)
+  {
+  }
+
+  WeakAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::Weak; }
+};
+
+class WeakImportAttr : public InheritableAttr {
+public:
+  static WeakImportAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) WeakImportAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  WeakImportAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::WeakImport, R, SI, false, false)
+  {
+  }
+
+  WeakImportAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::WeakImport; }
+};
+
+class WeakRefAttr : public InheritableAttr {
+unsigned aliaseeLength;
+char *aliasee;
+
+public:
+  static WeakRefAttr *CreateImplicit(ASTContext &Ctx, llvm::StringRef Aliasee, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) WeakRefAttr(Loc, Ctx, Aliasee, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  WeakRefAttr(SourceRange R, ASTContext &Ctx
+              , llvm::StringRef Aliasee
+              , unsigned SI
+             )
+    : InheritableAttr(attr::WeakRef, R, SI, false, false)
+              , aliaseeLength(Aliasee.size()),aliasee(new (Ctx, 1) char[aliaseeLength])
+  {
+      if (!Aliasee.empty())
+        std::memcpy(aliasee, Aliasee.data(), aliaseeLength);
+  }
+
+  WeakRefAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::WeakRef, R, SI, false, false)
+              , aliaseeLength(0),aliasee(nullptr)
+  {
+  }
+
+  WeakRefAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  llvm::StringRef getAliasee() const {
+    return llvm::StringRef(aliasee, aliaseeLength);
+  }
+  unsigned getAliaseeLength() const {
+    return aliaseeLength;
+  }
+  void setAliasee(ASTContext &C, llvm::StringRef S) {
+    aliaseeLength = S.size();
+    this->aliasee = new (C, 1) char [aliaseeLength];
+    if (!S.empty())
+      std::memcpy(this->aliasee, S.data(), aliaseeLength);
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::WeakRef; }
+};
+
+class WorkGroupSizeHintAttr : public InheritableAttr {
+unsigned xDim;
+
+unsigned yDim;
+
+unsigned zDim;
+
+public:
+  static WorkGroupSizeHintAttr *CreateImplicit(ASTContext &Ctx, unsigned XDim, unsigned YDim, unsigned ZDim, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) WorkGroupSizeHintAttr(Loc, Ctx, XDim, YDim, ZDim, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  WorkGroupSizeHintAttr(SourceRange R, ASTContext &Ctx
+              , unsigned XDim
+              , unsigned YDim
+              , unsigned ZDim
+              , unsigned SI
+             )
+    : InheritableAttr(attr::WorkGroupSizeHint, R, SI, false, false)
+              , xDim(XDim)
+              , yDim(YDim)
+              , zDim(ZDim)
+  {
+  }
+
+  WorkGroupSizeHintAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getXDim() const {
+    return xDim;
+  }
+
+  unsigned getYDim() const {
+    return yDim;
+  }
+
+  unsigned getZDim() const {
+    return zDim;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::WorkGroupSizeHint; }
+};
+
+class X86ForceAlignArgPointerAttr : public InheritableAttr {
+public:
+  static X86ForceAlignArgPointerAttr *CreateImplicit(ASTContext &Ctx, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) X86ForceAlignArgPointerAttr(Loc, Ctx, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  X86ForceAlignArgPointerAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::X86ForceAlignArgPointer, R, SI, false, false)
+  {
+  }
+
+  X86ForceAlignArgPointerAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::X86ForceAlignArgPointer; }
+};
+
+class XRayInstrumentAttr : public InheritableAttr {
+public:
+  enum Spelling {
+    GNU_xray_always_instrument = 0,
+    CXX11_clang_xray_always_instrument = 1,
+    GNU_xray_never_instrument = 2,
+    CXX11_clang_xray_never_instrument = 3
+  };
+
+  static XRayInstrumentAttr *CreateImplicit(ASTContext &Ctx, Spelling S, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) XRayInstrumentAttr(Loc, Ctx, S);
+    A->setImplicit(true);
+    return A;
+  }
+
+  XRayInstrumentAttr(SourceRange R, ASTContext &Ctx
+              , unsigned SI
+             )
+    : InheritableAttr(attr::XRayInstrument, R, SI, false, false)
+  {
+  }
+
+  XRayInstrumentAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  Spelling getSemanticSpelling() const {
+  switch (SpellingListIndex) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_xray_always_instrument;
+    case 1: return CXX11_clang_xray_always_instrument;
+    case 2: return GNU_xray_never_instrument;
+    case 3: return CXX11_clang_xray_never_instrument;
+  }
+  }
+  bool alwaysXRayInstrument() const { return SpellingListIndex == 0 ||
+    SpellingListIndex == 1; }
+  bool neverXRayInstrument() const { return SpellingListIndex == 2 ||
+    SpellingListIndex == 3; }
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::XRayInstrument; }
+};
+
+class XRayLogArgsAttr : public InheritableAttr {
+unsigned argumentCount;
+
+public:
+  static XRayLogArgsAttr *CreateImplicit(ASTContext &Ctx, unsigned ArgumentCount, SourceRange Loc = SourceRange()) {
+    auto *A = new (Ctx) XRayLogArgsAttr(Loc, Ctx, ArgumentCount, 0);
+    A->setImplicit(true);
+    return A;
+  }
+
+  XRayLogArgsAttr(SourceRange R, ASTContext &Ctx
+              , unsigned ArgumentCount
+              , unsigned SI
+             )
+    : InheritableAttr(attr::XRayLogArgs, R, SI, false, false)
+              , argumentCount(ArgumentCount)
+  {
+  }
+
+  XRayLogArgsAttr *clone(ASTContext &C) const;
+  void printPretty(raw_ostream &OS,
+                   const PrintingPolicy &Policy) const;
+  const char *getSpelling() const;
+  unsigned getArgumentCount() const {
+    return argumentCount;
+  }
+
+
+
+  static bool classof(const Attr *A) { return A->getKind() == attr::XRayLogArgs; }
+};
+
+#endif // LLVM_CLANG_ATTR_CLASSES_INC
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentCommandInfo.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentCommandInfo.inc
new file mode 100644
index 0000000..cee74e8
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentCommandInfo.inc
@@ -0,0 +1,800 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* A list of commands useable in documentation comments                       *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+namespace {
+const CommandInfo Commands[] = {
+  { "a", "", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "abstract", "", 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "addtogroup", "", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "arg", "", 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "attention", "", 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "author", "", 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "authors", "", 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "b", "", 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "brief", "", 8, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "bug", "", 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "c", "", 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "callback", "", 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+  { "category", "", 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "class", "", 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
+  { "classdesign", "", 14, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "coclass", "", 15, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "code", "endcode", 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endcode", "", 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "const", "", 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "constant", "", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "copyright", "", 20, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "date", "", 21, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "def", "", 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "defgroup", "", 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "dependency", "", 24, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "deprecated", "", 25, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "details", "", 26, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "discussion", "", 27, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "dot", "enddot", 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "enddot", "", 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "e", "", 30, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "em", "", 31, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "enum", "", 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "exception", "", 33, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "f{", "f}", 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "f}", "", 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "f[", "f]", 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "f]", "", 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "f$", "f$", 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "fn", "", 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "function", "", 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+  { "functiongroup", "", 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+  { "headerfile", "", 42, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "helper", "", 43, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "helperclass", "", 44, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "helps", "", 45, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "htmlonly", "endhtmlonly", 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endhtmlonly", "", 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "ingroup", "", 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "instancesize", "", 49, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "interface", "", 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
+  { "invariant", "", 51, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "latexonly", "endlatexonly", 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endlatexonly", "", 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "li", "", 54, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "link", "/link", 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "/link", "", 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "mainpage", "", 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "manonly", "endmanonly", 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endmanonly", "", 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "method", "", 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+  { "methodgroup", "", 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+  { "msc", "endmsc", 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endmsc", "", 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "name", "", 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "namespace", "", 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "note", "", 66, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "overload", "", 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "ownership", "", 68, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "p", "", 69, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "par", "", 70, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "paragraph", "", 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "param", "", 72, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "performance", "", 73, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "post", "", 74, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "pre", "", 75, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "property", "", 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "protocol", "", 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
+  { "ref", "", 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "related", "", 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "relatedalso", "", 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "relates", "", 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "relatesalso", "", 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "remark", "", 83, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "remarks", "", 84, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "result", "", 85, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "return", "", 86, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "returns", "", 87, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "rtfonly", "endrtfonly", 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endrtfonly", "", 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "sa", "", 90, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "section", "", 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "security", "", 92, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "see", "", 93, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "seealso", "", 94, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "short", "", 95, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "since", "", 96, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "struct", "", 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
+  { "subpage", "", 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "subsection", "", 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "subsubsection", "", 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "superclass", "", 101, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
+  { "template", "", 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "templatefield", "", 103, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "textblock", "/textblock", 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "/textblock", "", 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "throw", "", 106, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "throws", "", 107, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "todo", "", 108, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "tparam", "", 109, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "typedef", "", 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "union", "", 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 },
+  { "var", "", 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+  { "verbatim", "endverbatim", 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endverbatim", "", 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+  { "version", "", 115, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "warning", "", 116, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+  { "weakgroup", "", 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
+  { "xmlonly", "endxmlonly", 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+  { "endxmlonly", "", 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
+};
+} // unnamed namespace
+
+const CommandInfo *CommandTraits::getBuiltinCommandInfo(
+                                         StringRef Name) {
+  switch (Name.size()) {
+  default: break;
+  case 1:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      return &Commands[0];	 // "a"
+    case 'b':	 // 1 string to match.
+      return &Commands[7];	 // "b"
+    case 'c':	 // 1 string to match.
+      return &Commands[10];	 // "c"
+    case 'e':	 // 1 string to match.
+      return &Commands[30];	 // "e"
+    case 'p':	 // 1 string to match.
+      return &Commands[69];	 // "p"
+    }
+    break;
+  case 2:	 // 9 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'e':	 // 1 string to match.
+      if (Name[1] != 'm')
+        break;
+      return &Commands[31];	 // "em"
+    case 'f':	 // 6 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case '$':	 // 1 string to match.
+        return &Commands[38];	 // "f$"
+      case '[':	 // 1 string to match.
+        return &Commands[36];	 // "f["
+      case ']':	 // 1 string to match.
+        return &Commands[37];	 // "f]"
+      case 'n':	 // 1 string to match.
+        return &Commands[39];	 // "fn"
+      case '{':	 // 1 string to match.
+        return &Commands[34];	 // "f{"
+      case '}':	 // 1 string to match.
+        return &Commands[35];	 // "f}"
+      }
+      break;
+    case 'l':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return &Commands[54];	 // "li"
+    case 's':	 // 1 string to match.
+      if (Name[1] != 'a')
+        break;
+      return &Commands[90];	 // "sa"
+    }
+    break;
+  case 3:	 // 10 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rg", 2) != 0)
+        break;
+      return &Commands[3];	 // "arg"
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ug", 2) != 0)
+        break;
+      return &Commands[9];	 // "bug"
+    case 'd':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (Name[2] != 'f')
+          break;
+        return &Commands[22];	 // "def"
+      case 'o':	 // 1 string to match.
+        if (Name[2] != 't')
+          break;
+        return &Commands[28];	 // "dot"
+      }
+      break;
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "sc", 2) != 0)
+        break;
+      return &Commands[62];	 // "msc"
+    case 'p':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (Name[2] != 'r')
+          break;
+        return &Commands[70];	 // "par"
+      case 'r':	 // 1 string to match.
+        if (Name[2] != 'e')
+          break;
+        return &Commands[75];	 // "pre"
+      }
+      break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ef", 2) != 0)
+        break;
+      return &Commands[78];	 // "ref"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ee", 2) != 0)
+        break;
+      return &Commands[93];	 // "see"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ar", 2) != 0)
+        break;
+      return &Commands[112];	 // "var"
+    }
+    break;
+  case 4:	 // 8 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ode", 3) != 0)
+        break;
+      return &Commands[16];	 // "code"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ate", 3) != 0)
+        break;
+      return &Commands[21];	 // "date"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "num", 3) != 0)
+        break;
+      return &Commands[32];	 // "enum"
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ink", 3) != 0)
+        break;
+      return &Commands[55];	 // "link"
+    case 'n':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "me", 2) != 0)
+          break;
+        return &Commands[64];	 // "name"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "te", 2) != 0)
+          break;
+        return &Commands[66];	 // "note"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ost", 3) != 0)
+        break;
+      return &Commands[74];	 // "post"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "odo", 3) != 0)
+        break;
+      return &Commands[108];	 // "todo"
+    }
+    break;
+  case 5:	 // 10 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '/':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "link", 4) != 0)
+        break;
+      return &Commands[56];	 // "/link"
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rief", 4) != 0)
+        break;
+      return &Commands[8];	 // "brief"
+    case 'c':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'l':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ass", 3) != 0)
+          break;
+        return &Commands[13];	 // "class"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nst", 3) != 0)
+          break;
+        return &Commands[18];	 // "const"
+      }
+      break;
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elps", 4) != 0)
+        break;
+      return &Commands[45];	 // "helps"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "aram", 4) != 0)
+        break;
+      return &Commands[72];	 // "param"
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ort", 3) != 0)
+          break;
+        return &Commands[95];	 // "short"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nce", 3) != 0)
+          break;
+        return &Commands[96];	 // "since"
+      }
+      break;
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "hrow", 4) != 0)
+        break;
+      return &Commands[106];	 // "throw"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nion", 4) != 0)
+        break;
+      return &Commands[111];	 // "union"
+    }
+    break;
+  case 6:	 // 11 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uthor", 5) != 0)
+        break;
+      return &Commands[5];	 // "author"
+    case 'e':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "nd", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "ot", 2) != 0)
+          break;
+        return &Commands[29];	 // "enddot"
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "sc", 2) != 0)
+          break;
+        return &Commands[63];	 // "endmsc"
+      }
+      break;
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elper", 5) != 0)
+        break;
+      return &Commands[43];	 // "helper"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ethod", 5) != 0)
+        break;
+      return &Commands[60];	 // "method"
+    case 'r':	 // 3 strings to match.
+      if (Name[1] != 'e')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ark", 3) != 0)
+          break;
+        return &Commands[83];	 // "remark"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ult", 3) != 0)
+          break;
+        return &Commands[85];	 // "result"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "urn", 3) != 0)
+          break;
+        return &Commands[86];	 // "return"
+      }
+      break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "truct", 5) != 0)
+        break;
+      return &Commands[97];	 // "struct"
+    case 't':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rows", 4) != 0)
+          break;
+        return &Commands[107];	 // "throws"
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "aram", 4) != 0)
+          break;
+        return &Commands[109];	 // "tparam"
+      }
+      break;
+    }
+    break;
+  case 7:	 // 18 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uthors", 6) != 0)
+        break;
+      return &Commands[6];	 // "authors"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "oclass", 6) != 0)
+        break;
+      return &Commands[15];	 // "coclass"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "etails", 6) != 0)
+        break;
+      return &Commands[26];	 // "details"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ndcode", 6) != 0)
+        break;
+      return &Commands[17];	 // "endcode"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ngroup", 6) != 0)
+        break;
+      return &Commands[48];	 // "ingroup"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "anonly", 6) != 0)
+        break;
+      return &Commands[58];	 // "manonly"
+    case 'r':	 // 5 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 4 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'l':	 // 2 strings to match.
+          if (memcmp(Name.data()+3, "ate", 3) != 0)
+            break;
+          switch (Name[6]) {
+          default: break;
+          case 'd':	 // 1 string to match.
+            return &Commands[79];	 // "related"
+          case 's':	 // 1 string to match.
+            return &Commands[81];	 // "relates"
+          }
+          break;
+        case 'm':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "arks", 4) != 0)
+            break;
+          return &Commands[84];	 // "remarks"
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "urns", 4) != 0)
+            break;
+          return &Commands[87];	 // "returns"
+        }
+        break;
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "fonly", 5) != 0)
+          break;
+        return &Commands[88];	 // "rtfonly"
+      }
+      break;
+    case 's':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 2 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'c':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "tion", 4) != 0)
+            break;
+          return &Commands[91];	 // "section"
+        case 'e':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "also", 4) != 0)
+            break;
+          return &Commands[94];	 // "seealso"
+        }
+        break;
+      case 'u':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "bpage", 5) != 0)
+          break;
+        return &Commands[98];	 // "subpage"
+      }
+      break;
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ypedef", 6) != 0)
+        break;
+      return &Commands[110];	 // "typedef"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ersion", 6) != 0)
+        break;
+      return &Commands[115];	 // "version"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "arning", 6) != 0)
+        break;
+      return &Commands[116];	 // "warning"
+    case 'x':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "mlonly", 6) != 0)
+        break;
+      return &Commands[118];	 // "xmlonly"
+    }
+    break;
+  case 8:	 // 14 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bstract", 7) != 0)
+        break;
+      return &Commands[1];	 // "abstract"
+    case 'c':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 2 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'l':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "lback", 5) != 0)
+            break;
+          return &Commands[11];	 // "callback"
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "egory", 5) != 0)
+            break;
+          return &Commands[12];	 // "category"
+        }
+        break;
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nstant", 6) != 0)
+          break;
+        return &Commands[19];	 // "constant"
+      }
+      break;
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "efgroup", 7) != 0)
+        break;
+      return &Commands[23];	 // "defgroup"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "unction", 7) != 0)
+        break;
+      return &Commands[40];	 // "function"
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "tmlonly", 7) != 0)
+        break;
+      return &Commands[46];	 // "htmlonly"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ainpage", 7) != 0)
+        break;
+      return &Commands[57];	 // "mainpage"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "verload", 7) != 0)
+        break;
+      return &Commands[67];	 // "overload"
+    case 'p':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "ro", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "erty", 4) != 0)
+          break;
+        return &Commands[76];	 // "property"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "ocol", 4) != 0)
+          break;
+        return &Commands[77];	 // "protocol"
+      }
+      break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ecurity", 7) != 0)
+        break;
+      return &Commands[92];	 // "security"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "emplate", 7) != 0)
+        break;
+      return &Commands[102];	 // "template"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "erbatim", 7) != 0)
+        break;
+      return &Commands[113];	 // "verbatim"
+    }
+    break;
+  case 9:	 // 11 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ttention", 8) != 0)
+        break;
+      return &Commands[4];	 // "attention"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "opyright", 8) != 0)
+        break;
+      return &Commands[20];	 // "copyright"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "xception", 8) != 0)
+        break;
+      return &Commands[33];	 // "exception"
+    case 'i':	 // 2 strings to match.
+      if (Name[1] != 'n')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "erface", 6) != 0)
+          break;
+        return &Commands[50];	 // "interface"
+      case 'v':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ariant", 6) != 0)
+          break;
+        return &Commands[51];	 // "invariant"
+      }
+      break;
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "atexonly", 8) != 0)
+        break;
+      return &Commands[52];	 // "latexonly"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "amespace", 8) != 0)
+        break;
+      return &Commands[65];	 // "namespace"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "wnership", 8) != 0)
+        break;
+      return &Commands[68];	 // "ownership"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "aragraph", 8) != 0)
+        break;
+      return &Commands[71];	 // "paragraph"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "extblock", 8) != 0)
+        break;
+      return &Commands[104];	 // "textblock"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eakgroup", 8) != 0)
+        break;
+      return &Commands[117];	 // "weakgroup"
+    }
+    break;
+  case 10:	 // 11 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '/':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "textblock", 9) != 0)
+        break;
+      return &Commands[105];	 // "/textblock"
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ddtogroup", 9) != 0)
+        break;
+      return &Commands[2];	 // "addtogroup"
+    case 'd':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 2 strings to match.
+        if (Name[2] != 'p')
+          break;
+        switch (Name[3]) {
+        default: break;
+        case 'e':	 // 1 string to match.
+          if (memcmp(Name.data()+4, "ndency", 6) != 0)
+            break;
+          return &Commands[24];	 // "dependency"
+        case 'r':	 // 1 string to match.
+          if (memcmp(Name.data()+4, "ecated", 6) != 0)
+            break;
+          return &Commands[25];	 // "deprecated"
+        }
+        break;
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "scussion", 8) != 0)
+          break;
+        return &Commands[27];	 // "discussion"
+      }
+      break;
+    case 'e':	 // 3 strings to match.
+      if (memcmp(Name.data()+1, "nd", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "anonly", 6) != 0)
+          break;
+        return &Commands[59];	 // "endmanonly"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "tfonly", 6) != 0)
+          break;
+        return &Commands[89];	 // "endrtfonly"
+      case 'x':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "mlonly", 6) != 0)
+          break;
+        return &Commands[119];	 // "endxmlonly"
+      }
+      break;
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eaderfile", 9) != 0)
+        break;
+      return &Commands[42];	 // "headerfile"
+    case 's':	 // 2 strings to match.
+      if (Name[1] != 'u')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "section", 7) != 0)
+          break;
+        return &Commands[99];	 // "subsection"
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "erclass", 7) != 0)
+          break;
+        return &Commands[101];	 // "superclass"
+      }
+      break;
+    }
+    break;
+  case 11:	 // 8 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lassdesign", 10) != 0)
+        break;
+      return &Commands[14];	 // "classdesign"
+    case 'e':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "nd", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "tmlonly", 7) != 0)
+          break;
+        return &Commands[47];	 // "endhtmlonly"
+      case 'v':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "erbatim", 7) != 0)
+          break;
+        return &Commands[114];	 // "endverbatim"
+      }
+      break;
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elperclass", 10) != 0)
+        break;
+      return &Commands[44];	 // "helperclass"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ethodgroup", 10) != 0)
+        break;
+      return &Commands[61];	 // "methodgroup"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "erformance", 10) != 0)
+        break;
+      return &Commands[73];	 // "performance"
+    case 'r':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "elate", 5) != 0)
+        break;
+      switch (Name[6]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+7, "also", 4) != 0)
+          break;
+        return &Commands[80];	 // "relatedalso"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+7, "also", 4) != 0)
+          break;
+        return &Commands[82];	 // "relatesalso"
+      }
+      break;
+    }
+    break;
+  case 12:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ndlatexonly", 11) != 0)
+        break;
+      return &Commands[53];	 // "endlatexonly"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nstancesize", 11) != 0)
+        break;
+      return &Commands[49];	 // "instancesize"
+    }
+    break;
+  case 13:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "unctiongroup", 12) != 0)
+        break;
+      return &Commands[41];	 // "functiongroup"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ubsubsection", 12) != 0)
+        break;
+      return &Commands[100];	 // "subsubsection"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "emplatefield", 12) != 0)
+        break;
+      return &Commands[103];	 // "templatefield"
+    }
+    break;
+  }
+  return nullptr;
+}
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentCommandList.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentCommandList.inc
new file mode 100644
index 0000000..d54cd67
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentCommandList.inc
@@ -0,0 +1,131 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* A list of commands useable in documentation comments                       *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef COMMENT_COMMAND
+#  define COMMENT_COMMAND(NAME)
+#endif
+COMMENT_COMMAND(a)
+COMMENT_COMMAND(abstract)
+COMMENT_COMMAND(addtogroup)
+COMMENT_COMMAND(arg)
+COMMENT_COMMAND(attention)
+COMMENT_COMMAND(author)
+COMMENT_COMMAND(authors)
+COMMENT_COMMAND(b)
+COMMENT_COMMAND(brief)
+COMMENT_COMMAND(bug)
+COMMENT_COMMAND(c)
+COMMENT_COMMAND(callback)
+COMMENT_COMMAND(category)
+COMMENT_COMMAND(class)
+COMMENT_COMMAND(classdesign)
+COMMENT_COMMAND(coclass)
+COMMENT_COMMAND(code)
+COMMENT_COMMAND(endcode)
+COMMENT_COMMAND(const)
+COMMENT_COMMAND(constant)
+COMMENT_COMMAND(copyright)
+COMMENT_COMMAND(date)
+COMMENT_COMMAND(def)
+COMMENT_COMMAND(defgroup)
+COMMENT_COMMAND(dependency)
+COMMENT_COMMAND(deprecated)
+COMMENT_COMMAND(details)
+COMMENT_COMMAND(discussion)
+COMMENT_COMMAND(dot)
+COMMENT_COMMAND(enddot)
+COMMENT_COMMAND(e)
+COMMENT_COMMAND(em)
+COMMENT_COMMAND(enum)
+COMMENT_COMMAND(exception)
+COMMENT_COMMAND(flbrace)
+COMMENT_COMMAND(frbrace)
+COMMENT_COMMAND(flsquare)
+COMMENT_COMMAND(frsquare)
+COMMENT_COMMAND(fdollar)
+COMMENT_COMMAND(fn)
+COMMENT_COMMAND(function)
+COMMENT_COMMAND(functiongroup)
+COMMENT_COMMAND(headerfile)
+COMMENT_COMMAND(helper)
+COMMENT_COMMAND(helperclass)
+COMMENT_COMMAND(helps)
+COMMENT_COMMAND(htmlonly)
+COMMENT_COMMAND(endhtmlonly)
+COMMENT_COMMAND(ingroup)
+COMMENT_COMMAND(instancesize)
+COMMENT_COMMAND(interface)
+COMMENT_COMMAND(invariant)
+COMMENT_COMMAND(latexonly)
+COMMENT_COMMAND(endlatexonly)
+COMMENT_COMMAND(li)
+COMMENT_COMMAND(link)
+COMMENT_COMMAND(slashlink)
+COMMENT_COMMAND(mainpage)
+COMMENT_COMMAND(manonly)
+COMMENT_COMMAND(endmanonly)
+COMMENT_COMMAND(method)
+COMMENT_COMMAND(methodgroup)
+COMMENT_COMMAND(msc)
+COMMENT_COMMAND(endmsc)
+COMMENT_COMMAND(name)
+COMMENT_COMMAND(namespace)
+COMMENT_COMMAND(note)
+COMMENT_COMMAND(overload)
+COMMENT_COMMAND(ownership)
+COMMENT_COMMAND(p)
+COMMENT_COMMAND(par)
+COMMENT_COMMAND(paragraph)
+COMMENT_COMMAND(param)
+COMMENT_COMMAND(performance)
+COMMENT_COMMAND(post)
+COMMENT_COMMAND(pre)
+COMMENT_COMMAND(property)
+COMMENT_COMMAND(protocol)
+COMMENT_COMMAND(ref)
+COMMENT_COMMAND(related)
+COMMENT_COMMAND(relatedalso)
+COMMENT_COMMAND(relates)
+COMMENT_COMMAND(relatesalso)
+COMMENT_COMMAND(remark)
+COMMENT_COMMAND(remarks)
+COMMENT_COMMAND(result)
+COMMENT_COMMAND(return)
+COMMENT_COMMAND(returns)
+COMMENT_COMMAND(rtfonly)
+COMMENT_COMMAND(endrtfonly)
+COMMENT_COMMAND(sa)
+COMMENT_COMMAND(section)
+COMMENT_COMMAND(security)
+COMMENT_COMMAND(see)
+COMMENT_COMMAND(seealso)
+COMMENT_COMMAND(short)
+COMMENT_COMMAND(since)
+COMMENT_COMMAND(struct)
+COMMENT_COMMAND(subpage)
+COMMENT_COMMAND(subsection)
+COMMENT_COMMAND(subsubsection)
+COMMENT_COMMAND(superclass)
+COMMENT_COMMAND(template)
+COMMENT_COMMAND(templatefield)
+COMMENT_COMMAND(textblock)
+COMMENT_COMMAND(slashtextblock)
+COMMENT_COMMAND(throw)
+COMMENT_COMMAND(throws)
+COMMENT_COMMAND(todo)
+COMMENT_COMMAND(tparam)
+COMMENT_COMMAND(typedef)
+COMMENT_COMMAND(union)
+COMMENT_COMMAND(var)
+COMMENT_COMMAND(verbatim)
+COMMENT_COMMAND(endverbatim)
+COMMENT_COMMAND(version)
+COMMENT_COMMAND(warning)
+COMMENT_COMMAND(weakgroup)
+COMMENT_COMMAND(xmlonly)
+COMMENT_COMMAND(endxmlonly)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc
new file mode 100644
index 0000000..750d15e
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc
@@ -0,0 +1,815 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* HTML named character reference to UTF-8 translation                        *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+StringRef translateHTMLNamedCharacterReferenceToUTF8(
+                                             StringRef Name) {
+  switch (Name.size()) {
+  default: break;
+  case 2:	 // 15 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'G':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'T':	 // 1 string to match.
+        return "\x3e";	 // "GT"
+      case 't':	 // 1 string to match.
+        return "\x3e";	 // "Gt"
+      }
+      break;
+    case 'L':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'T':	 // 1 string to match.
+        return "\x3c";	 // "LT"
+      case 't':	 // 1 string to match.
+        return "\x3c";	 // "Lt"
+      }
+      break;
+    case 'P':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return "\xce\xa0";	 // "Pi"
+    case 'X':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return "\xce\x9e";	 // "Xi"
+    case 'g':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        return "\xe2\x89\xa5";	 // "ge"
+      case 't':	 // 1 string to match.
+        return "\x3e";	 // "gt"
+      }
+      break;
+    case 'l':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        return "\xe2\x89\xa4";	 // "le"
+      case 't':	 // 1 string to match.
+        return "\x3c";	 // "lt"
+      }
+      break;
+    case 'm':	 // 1 string to match.
+      if (Name[1] != 'u')
+        break;
+      return "\xce\xbc";	 // "mu"
+    case 'n':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        return "\xe2\x89\xa0";	 // "ne"
+      case 'u':	 // 1 string to match.
+        return "\xce\xbd";	 // "nu"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return "\xcf\x80";	 // "pi"
+    case 'x':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return "\xce\xbe";	 // "xi"
+    }
+    break;
+  case 3:	 // 16 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'A':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "MP", 2) != 0)
+        break;
+      return "\x26";	 // "AMP"
+    case 'P':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (Name[2] != 'i')
+          break;
+        return "\xce\xa6";	 // "Phi"
+      case 's':	 // 1 string to match.
+        if (Name[2] != 'i')
+          break;
+        return "\xce\xa8";	 // "Psi"
+      }
+      break;
+    case 'R':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "EG", 2) != 0)
+        break;
+      return "\xc2\xae";	 // "REG"
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "mp", 2) != 0)
+        break;
+      return "\x26";	 // "amp"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "hi", 2) != 0)
+        break;
+      return "\xcf\x87";	 // "chi"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eg", 2) != 0)
+        break;
+      return "\xc2\xb0";	 // "deg"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ta", 2) != 0)
+        break;
+      return "\xce\xb7";	 // "eta"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nt", 2) != 0)
+        break;
+      return "\xe2\x88\xab";	 // "int"
+    case 'p':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (Name[2] != 'i')
+          break;
+        return "\xcf\x86";	 // "phi"
+      case 's':	 // 1 string to match.
+        if (Name[2] != 'i')
+          break;
+        return "\xcf\x88";	 // "psi"
+      }
+      break;
+    case 'r':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (Name[2] != 'g')
+          break;
+        return "\xc2\xae";	 // "reg"
+      case 'h':	 // 1 string to match.
+        if (Name[2] != 'o')
+          break;
+        return "\xcf\x81";	 // "rho"
+      }
+      break;
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'i':	 // 1 string to match.
+        if (Name[2] != 'm')
+          break;
+        return "\xe2\x88\xbc";	 // "sim"
+      case 'u':	 // 1 string to match.
+        if (Name[2] != 'm')
+          break;
+        return "\xe2\x88\x91";	 // "sum"
+      }
+      break;
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "au", 2) != 0)
+        break;
+      return "\xcf\x84";	 // "tau"
+    }
+    break;
+  case 4:	 // 30 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'A':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\x84";	 // "Auml"
+    case 'C':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "OPY", 3) != 0)
+        break;
+      return "\xc2\xa9";	 // "COPY"
+    case 'E':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\x8b";	 // "Euml"
+    case 'I':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\x8f";	 // "Iuml"
+    case 'O':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\x96";	 // "Ouml"
+    case 'Q':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "UOT", 3) != 0)
+        break;
+      return "\x22";	 // "QUOT"
+    case 'U':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\x9c";	 // "Uuml"
+    case 'Y':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc5\xb8";	 // "Yuml"
+    case 'a':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "os", 2) != 0)
+          break;
+        return "\x27";	 // "apos"
+      case 'u':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ml", 2) != 0)
+          break;
+        return "\xc3\xa4";	 // "auml"
+      }
+      break;
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eta", 3) != 0)
+        break;
+      return "\xce\xb2";	 // "beta"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "opy", 3) != 0)
+        break;
+      return "\xc2\xa9";	 // "copy"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\xab";	 // "euml"
+    case 'i':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ta", 2) != 0)
+          break;
+        return "\xce\xb9";	 // "iota"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "in", 2) != 0)
+          break;
+        return "\xe2\x88\x88";	 // "isin"
+      case 'u':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ml", 2) != 0)
+          break;
+        return "\xc3\xaf";	 // "iuml"
+      }
+      break;
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "arr", 3) != 0)
+        break;
+      return "\xe2\x86\x90";	 // "larr"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bsp", 3) != 0)
+        break;
+      return "\xc2\xa0";	 // "nbsp"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\xb6";	 // "ouml"
+    case 'p':	 // 4 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rt", 2) != 0)
+          break;
+        return "\xe2\x88\x82";	 // "part"
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rp", 2) != 0)
+          break;
+        return "\xe2\x8a\xa5";	 // "perp"
+      case 'r':	 // 2 strings to match.
+        if (Name[2] != 'o')
+          break;
+        switch (Name[3]) {
+        default: break;
+        case 'd':	 // 1 string to match.
+          return "\xe2\x88\x8f";	 // "prod"
+        case 'p':	 // 1 string to match.
+          return "\xe2\x88\x9d";	 // "prop"
+        }
+        break;
+      }
+      break;
+    case 'q':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uot", 3) != 0)
+        break;
+      return "\x22";	 // "quot"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "arr", 3) != 0)
+        break;
+      return "\xe2\x86\x92";	 // "rarr"
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ot", 2) != 0)
+          break;
+        return "\xe2\x8b\x85";	 // "sdot"
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ct", 2) != 0)
+          break;
+        return "\xc2\xa7";	 // "sect"
+      }
+      break;
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\xbc";	 // "uuml"
+    case 'y':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uml", 3) != 0)
+        break;
+      return "\xc3\xbf";	 // "yuml"
+    case 'z':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eta", 3) != 0)
+        break;
+      return "\xce\xb6";	 // "zeta"
+    }
+    break;
+  case 5:	 // 48 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'A':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "irc", 3) != 0)
+          break;
+        return "\xc3\x82";	 // "Acirc"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ing", 3) != 0)
+          break;
+        return "\xc3\x85";	 // "Aring"
+      }
+      break;
+    case 'D':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elta", 4) != 0)
+        break;
+      return "\xce\x94";	 // "Delta"
+    case 'E':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "circ", 4) != 0)
+        break;
+      return "\xc3\x8a";	 // "Ecirc"
+    case 'G':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "amma", 4) != 0)
+        break;
+      return "\xce\x93";	 // "Gamma"
+    case 'I':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "circ", 4) != 0)
+        break;
+      return "\xc3\x8e";	 // "Icirc"
+    case 'O':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "irc", 3) != 0)
+          break;
+        return "\xc3\x94";	 // "Ocirc"
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ega", 3) != 0)
+          break;
+        return "\xce\xa9";	 // "Omega"
+      }
+      break;
+    case 'P':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rime", 4) != 0)
+        break;
+      return "\xe2\x80\xb3";	 // "Prime"
+    case 'S':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "igma", 4) != 0)
+        break;
+      return "\xce\xa3";	 // "Sigma"
+    case 'T':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'R':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ADE", 3) != 0)
+          break;
+        return "\xe2\x84\xa2";	 // "TRADE"
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "eta", 3) != 0)
+          break;
+        return "\xce\x98";	 // "Theta"
+      }
+      break;
+    case 'U':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "circ", 4) != 0)
+        break;
+      return "\xc3\x9b";	 // "Ucirc"
+    case 'Y':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "circ", 4) != 0)
+        break;
+      return "\xc5\xb6";	 // "Ycirc"
+    case 'a':	 // 4 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "irc", 3) != 0)
+          break;
+        return "\xc3\xa2";	 // "acirc"
+      case 'l':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "pha", 3) != 0)
+          break;
+        return "\xce\xb1";	 // "alpha"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ing", 3) != 0)
+          break;
+        return "\xc3\xa5";	 // "aring"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ymp", 3) != 0)
+          break;
+        return "\xe2\x89\x88";	 // "asymp"
+      }
+      break;
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elta", 4) != 0)
+        break;
+      return "\xce\xb4";	 // "delta"
+    case 'e':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "irc", 3) != 0)
+          break;
+        return "\xc3\xaa";	 // "ecirc"
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "pty", 3) != 0)
+          break;
+        return "\xe2\x88\x85";	 // "empty"
+      case 'q':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "uiv", 3) != 0)
+          break;
+        return "\xe2\x89\xa1";	 // "equiv"
+      }
+      break;
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "amma", 4) != 0)
+        break;
+      return "\xce\xb3";	 // "gamma"
+    case 'i':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "irc", 3) != 0)
+          break;
+        return "\xc3\xae";	 // "icirc"
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "fin", 3) != 0)
+          break;
+        return "\xe2\x88\x9e";	 // "infin"
+      }
+      break;
+    case 'k':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "appa", 4) != 0)
+        break;
+      return "\xce\xba";	 // "kappa"
+    case 'l':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "eil", 3) != 0)
+          break;
+        return "\xe2\x8c\x88";	 // "lceil"
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quo", 3) != 0)
+          break;
+        return "\xe2\x80\x9c";	 // "ldquo"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quo", 3) != 0)
+          break;
+        return "\xe2\x80\x98";	 // "lsquo"
+      }
+      break;
+    case 'm':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ash", 3) != 0)
+          break;
+        return "\xe2\x80\x94";	 // "mdash"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nus", 3) != 0)
+          break;
+        return "\xe2\x88\x92";	 // "minus"
+      }
+      break;
+    case 'n':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "bla", 3) != 0)
+          break;
+        return "\xe2\x88\x87";	 // "nabla"
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ash", 3) != 0)
+          break;
+        return "\xe2\x80\x93";	 // "ndash"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "tin", 3) != 0)
+          break;
+        return "\xe2\x88\x89";	 // "notin"
+      }
+      break;
+    case 'o':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "irc", 3) != 0)
+          break;
+        return "\xc3\xb4";	 // "ocirc"
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ega", 3) != 0)
+          break;
+        return "\xcf\x89";	 // "omega"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rime", 4) != 0)
+        break;
+      return "\xe2\x80\xb2";	 // "prime"
+    case 'r':	 // 4 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "dic", 3) != 0)
+          break;
+        return "\xe2\x88\x9a";	 // "radic"
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "eil", 3) != 0)
+          break;
+        return "\xe2\x8c\x89";	 // "rceil"
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quo", 3) != 0)
+          break;
+        return "\xe2\x80\x9d";	 // "rdquo"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quo", 3) != 0)
+          break;
+        return "\xe2\x80\x99";	 // "rsquo"
+      }
+      break;
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "gma", 3) != 0)
+          break;
+        return "\xcf\x83";	 // "sigma"
+      case 'z':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "lig", 3) != 0)
+          break;
+        return "\xc3\x9f";	 // "szlig"
+      }
+      break;
+    case 't':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "eta", 3) != 0)
+          break;
+        return "\xce\xb8";	 // "theta"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "mes", 3) != 0)
+          break;
+        return "\xc3\x97";	 // "times"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ade", 3) != 0)
+          break;
+        return "\xe2\x84\xa2";	 // "trade"
+      }
+      break;
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "circ", 4) != 0)
+        break;
+      return "\xc3\xbb";	 // "ucirc"
+    case 'y':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "circ", 4) != 0)
+        break;
+      return "\xc5\xb7";	 // "ycirc"
+    }
+    break;
+  case 6:	 // 37 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'A':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\x81";	 // "Aacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\x80";	 // "Agrave"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ilde", 4) != 0)
+          break;
+        return "\xc3\x83";	 // "Atilde"
+      }
+      break;
+    case 'C':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "cedil", 5) != 0)
+        break;
+      return "\xc3\x87";	 // "Ccedil"
+    case 'E':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\x89";	 // "Eacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\x88";	 // "Egrave"
+      }
+      break;
+    case 'I':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\x8d";	 // "Iacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\x8c";	 // "Igrave"
+      }
+      break;
+    case 'L':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ambda", 5) != 0)
+        break;
+      return "\xce\x9b";	 // "Lambda"
+    case 'N':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "tilde", 5) != 0)
+        break;
+      return "\xc3\x91";	 // "Ntilde"
+    case 'O':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\x93";	 // "Oacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\x92";	 // "Ograve"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ilde", 4) != 0)
+          break;
+        return "\xc3\x95";	 // "Otilde"
+      }
+      break;
+    case 'U':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\x9a";	 // "Uacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\x99";	 // "Ugrave"
+      }
+      break;
+    case 'Y':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "acute", 5) != 0)
+        break;
+      return "\xc3\x9d";	 // "Yacute"
+    case 'a':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\xa1";	 // "aacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\xa0";	 // "agrave"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ilde", 4) != 0)
+          break;
+        return "\xc3\xa3";	 // "atilde"
+      }
+      break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "cedil", 5) != 0)
+        break;
+      return "\xc3\xa7";	 // "ccedil"
+    case 'e':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\xa9";	 // "eacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\xa8";	 // "egrave"
+      }
+      break;
+    case 'i':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\xad";	 // "iacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\xac";	 // "igrave"
+      }
+      break;
+    case 'l':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "mbda", 4) != 0)
+          break;
+        return "\xce\xbb";	 // "lambda"
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "loor", 4) != 0)
+          break;
+        return "\xe2\x8c\x8a";	 // "lfloor"
+      }
+      break;
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "tilde", 5) != 0)
+        break;
+      return "\xc3\xb1";	 // "ntilde"
+    case 'o':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\xb3";	 // "oacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\xb2";	 // "ograve"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ilde", 4) != 0)
+          break;
+        return "\xc3\xb5";	 // "otilde"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lusmn", 5) != 0)
+        break;
+      return "\xc2\xb1";	 // "plusmn"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "floor", 5) != 0)
+        break;
+      return "\xe2\x8c\x8b";	 // "rfloor"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "igmaf", 5) != 0)
+        break;
+      return "\xcf\x82";	 // "sigmaf"
+    case 'u':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\xba";	 // "uacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xc3\xb9";	 // "ugrave"
+      }
+      break;
+    case 'y':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "cute", 4) != 0)
+          break;
+        return "\xc3\xbd";	 // "yacute"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rave", 4) != 0)
+          break;
+        return "\xe1\xbb\xb3";	 // "ygrave"
+      }
+      break;
+    }
+    break;
+  case 7:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'U':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "psilon", 6) != 0)
+        break;
+      return "\xce\xa5";	 // "Upsilon"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "psilon", 6) != 0)
+        break;
+      return "\xce\xb5";	 // "epsilon"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "psilon", 6) != 0)
+        break;
+      return "\xcf\x85";	 // "upsilon"
+    }
+    break;
+  }
+  return StringRef();
+}
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLTags.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLTags.inc
new file mode 100644
index 0000000..18923a7
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLTags.inc
@@ -0,0 +1,228 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* HTML tag name matcher                                                      *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+bool isHTMLTagName(StringRef Name) {
+  switch (Name.size()) {
+  default: break;
+  case 1:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      return true;	 // "a"
+    case 'b':	 // 1 string to match.
+      return true;	 // "b"
+    case 'i':	 // 1 string to match.
+      return true;	 // "i"
+    case 'p':	 // 1 string to match.
+      return true;	 // "p"
+    case 's':	 // 1 string to match.
+      return true;	 // "s"
+    case 'u':	 // 1 string to match.
+      return true;	 // "u"
+    }
+    break;
+  case 2:	 // 19 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'b':	 // 1 string to match.
+      if (Name[1] != 'r')
+        break;
+      return true;	 // "br"
+    case 'd':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        return true;	 // "dd"
+      case 'l':	 // 1 string to match.
+        return true;	 // "dl"
+      case 't':	 // 1 string to match.
+        return true;	 // "dt"
+      }
+      break;
+    case 'e':	 // 1 string to match.
+      if (Name[1] != 'm')
+        break;
+      return true;	 // "em"
+    case 'h':	 // 7 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case '1':	 // 1 string to match.
+        return true;	 // "h1"
+      case '2':	 // 1 string to match.
+        return true;	 // "h2"
+      case '3':	 // 1 string to match.
+        return true;	 // "h3"
+      case '4':	 // 1 string to match.
+        return true;	 // "h4"
+      case '5':	 // 1 string to match.
+        return true;	 // "h5"
+      case '6':	 // 1 string to match.
+        return true;	 // "h6"
+      case 'r':	 // 1 string to match.
+        return true;	 // "hr"
+      }
+      break;
+    case 'l':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return true;	 // "li"
+    case 'o':	 // 1 string to match.
+      if (Name[1] != 'l')
+        break;
+      return true;	 // "ol"
+    case 't':	 // 4 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        return true;	 // "td"
+      case 'h':	 // 1 string to match.
+        return true;	 // "th"
+      case 'r':	 // 1 string to match.
+        return true;	 // "tr"
+      case 't':	 // 1 string to match.
+        return true;	 // "tt"
+      }
+      break;
+    case 'u':	 // 1 string to match.
+      if (Name[1] != 'l')
+        break;
+      return true;	 // "ul"
+    }
+    break;
+  case 3:	 // 9 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ig", 2) != 0)
+        break;
+      return true;	 // "big"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ol", 2) != 0)
+        break;
+      return true;	 // "col"
+    case 'd':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (Name[2] != 'l')
+          break;
+        return true;	 // "del"
+      case 'i':	 // 1 string to match.
+        if (Name[2] != 'v')
+          break;
+        return true;	 // "div"
+      }
+      break;
+    case 'i':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'm':	 // 1 string to match.
+        if (Name[2] != 'g')
+          break;
+        return true;	 // "img"
+      case 'n':	 // 1 string to match.
+        if (Name[2] != 's')
+          break;
+        return true;	 // "ins"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "re", 2) != 0)
+        break;
+      return true;	 // "pre"
+    case 's':	 // 2 strings to match.
+      if (Name[1] != 'u')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        return true;	 // "sub"
+      case 'p':	 // 1 string to match.
+        return true;	 // "sup"
+      }
+      break;
+    }
+    break;
+  case 4:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ode", 3) != 0)
+        break;
+      return true;	 // "code"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ont", 3) != 0)
+        break;
+      return true;	 // "font"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "pan", 3) != 0)
+        break;
+      return true;	 // "span"
+    }
+    break;
+  case 5:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "mall", 4) != 0)
+        break;
+      return true;	 // "small"
+    case 't':	 // 4 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ble", 3) != 0)
+          break;
+        return true;	 // "table"
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ody", 3) != 0)
+          break;
+        return true;	 // "tbody"
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "oot", 3) != 0)
+          break;
+        return true;	 // "tfoot"
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ead", 3) != 0)
+          break;
+        return true;	 // "thead"
+      }
+      break;
+    }
+    break;
+  case 6:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "str", 3) != 0)
+      break;
+    switch (Name[3]) {
+    default: break;
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+4, "ke", 2) != 0)
+        break;
+      return true;	 // "strike"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+4, "ng", 2) != 0)
+        break;
+      return true;	 // "strong"
+    }
+    break;
+  case 7:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "caption", 7) != 0)
+      break;
+    return true;	 // "caption"
+  case 8:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "colgroup", 8) != 0)
+      break;
+    return true;	 // "colgroup"
+  case 10:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "blockquote", 10) != 0)
+      break;
+    return true;	 // "blockquote"
+  }
+  return false;
+}
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLTagsProperties.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLTagsProperties.inc
new file mode 100644
index 0000000..b73a575
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentHTMLTagsProperties.inc
@@ -0,0 +1,104 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* HTML tag properties                                                        *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+bool isHTMLEndTagOptional(StringRef Name) {
+  switch (Name.size()) {
+  default: break;
+  case 1:	 // 1 string to match.
+    if (Name[0] != 'p')
+      break;
+    return true;	 // "p"
+  case 2:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'd':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        return true;	 // "dd"
+      case 't':	 // 1 string to match.
+        return true;	 // "dt"
+      }
+      break;
+    case 'l':	 // 1 string to match.
+      if (Name[1] != 'i')
+        break;
+      return true;	 // "li"
+    case 't':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        return true;	 // "td"
+      case 'h':	 // 1 string to match.
+        return true;	 // "th"
+      case 'r':	 // 1 string to match.
+        return true;	 // "tr"
+      }
+      break;
+    }
+    break;
+  case 5:	 // 3 strings to match.
+    if (Name[0] != 't')
+      break;
+    switch (Name[1]) {
+    default: break;
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+2, "ody", 3) != 0)
+        break;
+      return true;	 // "tbody"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+2, "oot", 3) != 0)
+        break;
+      return true;	 // "tfoot"
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+2, "ead", 3) != 0)
+        break;
+      return true;	 // "thead"
+    }
+    break;
+  case 8:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "colgroup", 8) != 0)
+      break;
+    return true;	 // "colgroup"
+  }
+  return false;
+}
+
+bool isHTMLEndTagForbidden(StringRef Name) {
+  switch (Name.size()) {
+  default: break;
+  case 2:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'b':	 // 1 string to match.
+      if (Name[1] != 'r')
+        break;
+      return true;	 // "br"
+    case 'h':	 // 1 string to match.
+      if (Name[1] != 'r')
+        break;
+      return true;	 // "hr"
+    }
+    break;
+  case 3:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ol", 2) != 0)
+        break;
+      return true;	 // "col"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "mg", 2) != 0)
+        break;
+      return true;	 // "img"
+    }
+    break;
+  }
+  return false;
+}
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentNodes.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentNodes.inc
new file mode 100644
index 0000000..e0b0990
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/CommentNodes.inc
@@ -0,0 +1,123 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* List of AST nodes of a particular kind                                     *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef ABSTRACT_COMMENT
+#  define ABSTRACT_COMMENT(Type) Type
+#endif
+#ifndef COMMENT_RANGE
+#  define COMMENT_RANGE(Base, First, Last)
+#endif
+
+#ifndef LAST_COMMENT_RANGE
+#  define LAST_COMMENT_RANGE(Base, First, Last) COMMENT_RANGE(Base, First, Last)
+#endif
+
+#ifndef BLOCKCONTENTCOMMENT
+#  define BLOCKCONTENTCOMMENT(Type, Base) COMMENT(Type, Base)
+#endif
+ABSTRACT_COMMENT(BLOCKCONTENTCOMMENT(BlockContentComment, Comment))
+#ifndef BLOCKCOMMANDCOMMENT
+#  define BLOCKCOMMANDCOMMENT(Type, Base) BLOCKCONTENTCOMMENT(Type, Base)
+#endif
+BLOCKCOMMANDCOMMENT(BlockCommandComment, BlockContentComment)
+#ifndef PARAMCOMMANDCOMMENT
+#  define PARAMCOMMANDCOMMENT(Type, Base) BLOCKCOMMANDCOMMENT(Type, Base)
+#endif
+PARAMCOMMANDCOMMENT(ParamCommandComment, BlockCommandComment)
+#undef PARAMCOMMANDCOMMENT
+
+#ifndef TPARAMCOMMANDCOMMENT
+#  define TPARAMCOMMANDCOMMENT(Type, Base) BLOCKCOMMANDCOMMENT(Type, Base)
+#endif
+TPARAMCOMMANDCOMMENT(TParamCommandComment, BlockCommandComment)
+#undef TPARAMCOMMANDCOMMENT
+
+#ifndef VERBATIMBLOCKCOMMENT
+#  define VERBATIMBLOCKCOMMENT(Type, Base) BLOCKCOMMANDCOMMENT(Type, Base)
+#endif
+VERBATIMBLOCKCOMMENT(VerbatimBlockComment, BlockCommandComment)
+#undef VERBATIMBLOCKCOMMENT
+
+#ifndef VERBATIMLINECOMMENT
+#  define VERBATIMLINECOMMENT(Type, Base) BLOCKCOMMANDCOMMENT(Type, Base)
+#endif
+VERBATIMLINECOMMENT(VerbatimLineComment, BlockCommandComment)
+#undef VERBATIMLINECOMMENT
+
+COMMENT_RANGE(BlockCommandComment, BlockCommandComment, VerbatimLineComment)
+
+#undef BLOCKCOMMANDCOMMENT
+
+#ifndef PARAGRAPHCOMMENT
+#  define PARAGRAPHCOMMENT(Type, Base) BLOCKCONTENTCOMMENT(Type, Base)
+#endif
+PARAGRAPHCOMMENT(ParagraphComment, BlockContentComment)
+#undef PARAGRAPHCOMMENT
+
+COMMENT_RANGE(BlockContentComment, BlockCommandComment, ParagraphComment)
+
+#undef BLOCKCONTENTCOMMENT
+
+#ifndef FULLCOMMENT
+#  define FULLCOMMENT(Type, Base) COMMENT(Type, Base)
+#endif
+FULLCOMMENT(FullComment, Comment)
+#undef FULLCOMMENT
+
+#ifndef INLINECONTENTCOMMENT
+#  define INLINECONTENTCOMMENT(Type, Base) COMMENT(Type, Base)
+#endif
+ABSTRACT_COMMENT(INLINECONTENTCOMMENT(InlineContentComment, Comment))
+#ifndef HTMLTAGCOMMENT
+#  define HTMLTAGCOMMENT(Type, Base) INLINECONTENTCOMMENT(Type, Base)
+#endif
+ABSTRACT_COMMENT(HTMLTAGCOMMENT(HTMLTagComment, InlineContentComment))
+#ifndef HTMLENDTAGCOMMENT
+#  define HTMLENDTAGCOMMENT(Type, Base) HTMLTAGCOMMENT(Type, Base)
+#endif
+HTMLENDTAGCOMMENT(HTMLEndTagComment, HTMLTagComment)
+#undef HTMLENDTAGCOMMENT
+
+#ifndef HTMLSTARTTAGCOMMENT
+#  define HTMLSTARTTAGCOMMENT(Type, Base) HTMLTAGCOMMENT(Type, Base)
+#endif
+HTMLSTARTTAGCOMMENT(HTMLStartTagComment, HTMLTagComment)
+#undef HTMLSTARTTAGCOMMENT
+
+COMMENT_RANGE(HTMLTagComment, HTMLEndTagComment, HTMLStartTagComment)
+
+#undef HTMLTAGCOMMENT
+
+#ifndef INLINECOMMANDCOMMENT
+#  define INLINECOMMANDCOMMENT(Type, Base) INLINECONTENTCOMMENT(Type, Base)
+#endif
+INLINECOMMANDCOMMENT(InlineCommandComment, InlineContentComment)
+#undef INLINECOMMANDCOMMENT
+
+#ifndef TEXTCOMMENT
+#  define TEXTCOMMENT(Type, Base) INLINECONTENTCOMMENT(Type, Base)
+#endif
+TEXTCOMMENT(TextComment, InlineContentComment)
+#undef TEXTCOMMENT
+
+COMMENT_RANGE(InlineContentComment, HTMLEndTagComment, TextComment)
+
+#undef INLINECONTENTCOMMENT
+
+#ifndef VERBATIMBLOCKLINECOMMENT
+#  define VERBATIMBLOCKLINECOMMENT(Type, Base) COMMENT(Type, Base)
+#endif
+VERBATIMBLOCKLINECOMMENT(VerbatimBlockLineComment, Comment)
+#undef VERBATIMBLOCKLINECOMMENT
+
+LAST_COMMENT_RANGE(Comment, BlockCommandComment, VerbatimBlockLineComment)
+
+#undef COMMENT
+#undef COMMENT_RANGE
+#undef LAST_COMMENT_RANGE
+#undef ABSTRACT_COMMENT
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/DeclNodes.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/DeclNodes.inc
new file mode 100644
index 0000000..4773470
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/DeclNodes.inc
@@ -0,0 +1,589 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* List of AST nodes of a particular kind                                     *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef ABSTRACT_DECL
+#  define ABSTRACT_DECL(Type) Type
+#endif
+#ifndef DECL_RANGE
+#  define DECL_RANGE(Base, First, Last)
+#endif
+
+#ifndef LAST_DECL_RANGE
+#  define LAST_DECL_RANGE(Base, First, Last) DECL_RANGE(Base, First, Last)
+#endif
+
+#ifndef ACCESSSPEC
+#  define ACCESSSPEC(Type, Base) DECL(Type, Base)
+#endif
+ACCESSSPEC(AccessSpec, Decl)
+#undef ACCESSSPEC
+
+#ifndef BLOCK
+#  define BLOCK(Type, Base) DECL(Type, Base)
+#endif
+BLOCK(Block, Decl)
+#undef BLOCK
+
+#ifndef CAPTURED
+#  define CAPTURED(Type, Base) DECL(Type, Base)
+#endif
+CAPTURED(Captured, Decl)
+#undef CAPTURED
+
+#ifndef CLASSSCOPEFUNCTIONSPECIALIZATION
+#  define CLASSSCOPEFUNCTIONSPECIALIZATION(Type, Base) DECL(Type, Base)
+#endif
+CLASSSCOPEFUNCTIONSPECIALIZATION(ClassScopeFunctionSpecialization, Decl)
+#undef CLASSSCOPEFUNCTIONSPECIALIZATION
+
+#ifndef EMPTY
+#  define EMPTY(Type, Base) DECL(Type, Base)
+#endif
+EMPTY(Empty, Decl)
+#undef EMPTY
+
+#ifndef EXPORT
+#  define EXPORT(Type, Base) DECL(Type, Base)
+#endif
+EXPORT(Export, Decl)
+#undef EXPORT
+
+#ifndef EXTERNCCONTEXT
+#  define EXTERNCCONTEXT(Type, Base) DECL(Type, Base)
+#endif
+EXTERNCCONTEXT(ExternCContext, Decl)
+#undef EXTERNCCONTEXT
+
+#ifndef FILESCOPEASM
+#  define FILESCOPEASM(Type, Base) DECL(Type, Base)
+#endif
+FILESCOPEASM(FileScopeAsm, Decl)
+#undef FILESCOPEASM
+
+#ifndef FRIEND
+#  define FRIEND(Type, Base) DECL(Type, Base)
+#endif
+FRIEND(Friend, Decl)
+#undef FRIEND
+
+#ifndef FRIENDTEMPLATE
+#  define FRIENDTEMPLATE(Type, Base) DECL(Type, Base)
+#endif
+FRIENDTEMPLATE(FriendTemplate, Decl)
+#undef FRIENDTEMPLATE
+
+#ifndef IMPORT
+#  define IMPORT(Type, Base) DECL(Type, Base)
+#endif
+IMPORT(Import, Decl)
+#undef IMPORT
+
+#ifndef LINKAGESPEC
+#  define LINKAGESPEC(Type, Base) DECL(Type, Base)
+#endif
+LINKAGESPEC(LinkageSpec, Decl)
+#undef LINKAGESPEC
+
+#ifndef NAMED
+#  define NAMED(Type, Base) DECL(Type, Base)
+#endif
+ABSTRACT_DECL(NAMED(Named, Decl))
+#ifndef LABEL
+#  define LABEL(Type, Base) NAMED(Type, Base)
+#endif
+LABEL(Label, NamedDecl)
+#undef LABEL
+
+#ifndef NAMESPACE
+#  define NAMESPACE(Type, Base) NAMED(Type, Base)
+#endif
+NAMESPACE(Namespace, NamedDecl)
+#undef NAMESPACE
+
+#ifndef NAMESPACEALIAS
+#  define NAMESPACEALIAS(Type, Base) NAMED(Type, Base)
+#endif
+NAMESPACEALIAS(NamespaceAlias, NamedDecl)
+#undef NAMESPACEALIAS
+
+#ifndef OBJCCOMPATIBLEALIAS
+#  define OBJCCOMPATIBLEALIAS(Type, Base) NAMED(Type, Base)
+#endif
+OBJCCOMPATIBLEALIAS(ObjCCompatibleAlias, NamedDecl)
+#undef OBJCCOMPATIBLEALIAS
+
+#ifndef OBJCCONTAINER
+#  define OBJCCONTAINER(Type, Base) NAMED(Type, Base)
+#endif
+ABSTRACT_DECL(OBJCCONTAINER(ObjCContainer, NamedDecl))
+#ifndef OBJCCATEGORY
+#  define OBJCCATEGORY(Type, Base) OBJCCONTAINER(Type, Base)
+#endif
+OBJCCATEGORY(ObjCCategory, ObjCContainerDecl)
+#undef OBJCCATEGORY
+
+#ifndef OBJCIMPL
+#  define OBJCIMPL(Type, Base) OBJCCONTAINER(Type, Base)
+#endif
+ABSTRACT_DECL(OBJCIMPL(ObjCImpl, ObjCContainerDecl))
+#ifndef OBJCCATEGORYIMPL
+#  define OBJCCATEGORYIMPL(Type, Base) OBJCIMPL(Type, Base)
+#endif
+OBJCCATEGORYIMPL(ObjCCategoryImpl, ObjCImplDecl)
+#undef OBJCCATEGORYIMPL
+
+#ifndef OBJCIMPLEMENTATION
+#  define OBJCIMPLEMENTATION(Type, Base) OBJCIMPL(Type, Base)
+#endif
+OBJCIMPLEMENTATION(ObjCImplementation, ObjCImplDecl)
+#undef OBJCIMPLEMENTATION
+
+DECL_RANGE(ObjCImpl, ObjCCategoryImpl, ObjCImplementation)
+
+#undef OBJCIMPL
+
+#ifndef OBJCINTERFACE
+#  define OBJCINTERFACE(Type, Base) OBJCCONTAINER(Type, Base)
+#endif
+OBJCINTERFACE(ObjCInterface, ObjCContainerDecl)
+#undef OBJCINTERFACE
+
+#ifndef OBJCPROTOCOL
+#  define OBJCPROTOCOL(Type, Base) OBJCCONTAINER(Type, Base)
+#endif
+OBJCPROTOCOL(ObjCProtocol, ObjCContainerDecl)
+#undef OBJCPROTOCOL
+
+DECL_RANGE(ObjCContainer, ObjCCategory, ObjCProtocol)
+
+#undef OBJCCONTAINER
+
+#ifndef OBJCMETHOD
+#  define OBJCMETHOD(Type, Base) NAMED(Type, Base)
+#endif
+OBJCMETHOD(ObjCMethod, NamedDecl)
+#undef OBJCMETHOD
+
+#ifndef OBJCPROPERTY
+#  define OBJCPROPERTY(Type, Base) NAMED(Type, Base)
+#endif
+OBJCPROPERTY(ObjCProperty, NamedDecl)
+#undef OBJCPROPERTY
+
+#ifndef TEMPLATE
+#  define TEMPLATE(Type, Base) NAMED(Type, Base)
+#endif
+ABSTRACT_DECL(TEMPLATE(Template, NamedDecl))
+#ifndef BUILTINTEMPLATE
+#  define BUILTINTEMPLATE(Type, Base) TEMPLATE(Type, Base)
+#endif
+BUILTINTEMPLATE(BuiltinTemplate, TemplateDecl)
+#undef BUILTINTEMPLATE
+
+#ifndef REDECLARABLETEMPLATE
+#  define REDECLARABLETEMPLATE(Type, Base) TEMPLATE(Type, Base)
+#endif
+ABSTRACT_DECL(REDECLARABLETEMPLATE(RedeclarableTemplate, TemplateDecl))
+#ifndef CLASSTEMPLATE
+#  define CLASSTEMPLATE(Type, Base) REDECLARABLETEMPLATE(Type, Base)
+#endif
+CLASSTEMPLATE(ClassTemplate, RedeclarableTemplateDecl)
+#undef CLASSTEMPLATE
+
+#ifndef FUNCTIONTEMPLATE
+#  define FUNCTIONTEMPLATE(Type, Base) REDECLARABLETEMPLATE(Type, Base)
+#endif
+FUNCTIONTEMPLATE(FunctionTemplate, RedeclarableTemplateDecl)
+#undef FUNCTIONTEMPLATE
+
+#ifndef TYPEALIASTEMPLATE
+#  define TYPEALIASTEMPLATE(Type, Base) REDECLARABLETEMPLATE(Type, Base)
+#endif
+TYPEALIASTEMPLATE(TypeAliasTemplate, RedeclarableTemplateDecl)
+#undef TYPEALIASTEMPLATE
+
+#ifndef VARTEMPLATE
+#  define VARTEMPLATE(Type, Base) REDECLARABLETEMPLATE(Type, Base)
+#endif
+VARTEMPLATE(VarTemplate, RedeclarableTemplateDecl)
+#undef VARTEMPLATE
+
+DECL_RANGE(RedeclarableTemplate, ClassTemplate, VarTemplate)
+
+#undef REDECLARABLETEMPLATE
+
+#ifndef TEMPLATETEMPLATEPARM
+#  define TEMPLATETEMPLATEPARM(Type, Base) TEMPLATE(Type, Base)
+#endif
+TEMPLATETEMPLATEPARM(TemplateTemplateParm, TemplateDecl)
+#undef TEMPLATETEMPLATEPARM
+
+DECL_RANGE(Template, BuiltinTemplate, TemplateTemplateParm)
+
+#undef TEMPLATE
+
+#ifndef TYPE
+#  define TYPE(Type, Base) NAMED(Type, Base)
+#endif
+ABSTRACT_DECL(TYPE(Type, NamedDecl))
+#ifndef TAG
+#  define TAG(Type, Base) TYPE(Type, Base)
+#endif
+ABSTRACT_DECL(TAG(Tag, TypeDecl))
+#ifndef ENUM
+#  define ENUM(Type, Base) TAG(Type, Base)
+#endif
+ENUM(Enum, TagDecl)
+#undef ENUM
+
+#ifndef RECORD
+#  define RECORD(Type, Base) TAG(Type, Base)
+#endif
+RECORD(Record, TagDecl)
+#ifndef CXXRECORD
+#  define CXXRECORD(Type, Base) RECORD(Type, Base)
+#endif
+CXXRECORD(CXXRecord, RecordDecl)
+#ifndef CLASSTEMPLATESPECIALIZATION
+#  define CLASSTEMPLATESPECIALIZATION(Type, Base) CXXRECORD(Type, Base)
+#endif
+CLASSTEMPLATESPECIALIZATION(ClassTemplateSpecialization, CXXRecordDecl)
+#ifndef CLASSTEMPLATEPARTIALSPECIALIZATION
+#  define CLASSTEMPLATEPARTIALSPECIALIZATION(Type, Base) CLASSTEMPLATESPECIALIZATION(Type, Base)
+#endif
+CLASSTEMPLATEPARTIALSPECIALIZATION(ClassTemplatePartialSpecialization, ClassTemplateSpecializationDecl)
+#undef CLASSTEMPLATEPARTIALSPECIALIZATION
+
+DECL_RANGE(ClassTemplateSpecialization, ClassTemplateSpecialization, ClassTemplatePartialSpecialization)
+
+#undef CLASSTEMPLATESPECIALIZATION
+
+DECL_RANGE(CXXRecord, CXXRecord, ClassTemplatePartialSpecialization)
+
+#undef CXXRECORD
+
+DECL_RANGE(Record, Record, ClassTemplatePartialSpecialization)
+
+#undef RECORD
+
+DECL_RANGE(Tag, Enum, ClassTemplatePartialSpecialization)
+
+#undef TAG
+
+#ifndef TEMPLATETYPEPARM
+#  define TEMPLATETYPEPARM(Type, Base) TYPE(Type, Base)
+#endif
+TEMPLATETYPEPARM(TemplateTypeParm, TypeDecl)
+#undef TEMPLATETYPEPARM
+
+#ifndef TYPEDEFNAME
+#  define TYPEDEFNAME(Type, Base) TYPE(Type, Base)
+#endif
+ABSTRACT_DECL(TYPEDEFNAME(TypedefName, TypeDecl))
+#ifndef OBJCTYPEPARAM
+#  define OBJCTYPEPARAM(Type, Base) TYPEDEFNAME(Type, Base)
+#endif
+OBJCTYPEPARAM(ObjCTypeParam, TypedefNameDecl)
+#undef OBJCTYPEPARAM
+
+#ifndef TYPEALIAS
+#  define TYPEALIAS(Type, Base) TYPEDEFNAME(Type, Base)
+#endif
+TYPEALIAS(TypeAlias, TypedefNameDecl)
+#undef TYPEALIAS
+
+#ifndef TYPEDEF
+#  define TYPEDEF(Type, Base) TYPEDEFNAME(Type, Base)
+#endif
+TYPEDEF(Typedef, TypedefNameDecl)
+#undef TYPEDEF
+
+DECL_RANGE(TypedefName, ObjCTypeParam, Typedef)
+
+#undef TYPEDEFNAME
+
+#ifndef UNRESOLVEDUSINGTYPENAME
+#  define UNRESOLVEDUSINGTYPENAME(Type, Base) TYPE(Type, Base)
+#endif
+UNRESOLVEDUSINGTYPENAME(UnresolvedUsingTypename, TypeDecl)
+#undef UNRESOLVEDUSINGTYPENAME
+
+DECL_RANGE(Type, Enum, UnresolvedUsingTypename)
+
+#undef TYPE
+
+#ifndef USING
+#  define USING(Type, Base) NAMED(Type, Base)
+#endif
+USING(Using, NamedDecl)
+#undef USING
+
+#ifndef USINGDIRECTIVE
+#  define USINGDIRECTIVE(Type, Base) NAMED(Type, Base)
+#endif
+USINGDIRECTIVE(UsingDirective, NamedDecl)
+#undef USINGDIRECTIVE
+
+#ifndef USINGPACK
+#  define USINGPACK(Type, Base) NAMED(Type, Base)
+#endif
+USINGPACK(UsingPack, NamedDecl)
+#undef USINGPACK
+
+#ifndef USINGSHADOW
+#  define USINGSHADOW(Type, Base) NAMED(Type, Base)
+#endif
+USINGSHADOW(UsingShadow, NamedDecl)
+#ifndef CONSTRUCTORUSINGSHADOW
+#  define CONSTRUCTORUSINGSHADOW(Type, Base) USINGSHADOW(Type, Base)
+#endif
+CONSTRUCTORUSINGSHADOW(ConstructorUsingShadow, UsingShadowDecl)
+#undef CONSTRUCTORUSINGSHADOW
+
+DECL_RANGE(UsingShadow, UsingShadow, ConstructorUsingShadow)
+
+#undef USINGSHADOW
+
+#ifndef VALUE
+#  define VALUE(Type, Base) NAMED(Type, Base)
+#endif
+ABSTRACT_DECL(VALUE(Value, NamedDecl))
+#ifndef BINDING
+#  define BINDING(Type, Base) VALUE(Type, Base)
+#endif
+BINDING(Binding, ValueDecl)
+#undef BINDING
+
+#ifndef DECLARATOR
+#  define DECLARATOR(Type, Base) VALUE(Type, Base)
+#endif
+ABSTRACT_DECL(DECLARATOR(Declarator, ValueDecl))
+#ifndef FIELD
+#  define FIELD(Type, Base) DECLARATOR(Type, Base)
+#endif
+FIELD(Field, DeclaratorDecl)
+#ifndef OBJCATDEFSFIELD
+#  define OBJCATDEFSFIELD(Type, Base) FIELD(Type, Base)
+#endif
+OBJCATDEFSFIELD(ObjCAtDefsField, FieldDecl)
+#undef OBJCATDEFSFIELD
+
+#ifndef OBJCIVAR
+#  define OBJCIVAR(Type, Base) FIELD(Type, Base)
+#endif
+OBJCIVAR(ObjCIvar, FieldDecl)
+#undef OBJCIVAR
+
+DECL_RANGE(Field, Field, ObjCIvar)
+
+#undef FIELD
+
+#ifndef FUNCTION
+#  define FUNCTION(Type, Base) DECLARATOR(Type, Base)
+#endif
+FUNCTION(Function, DeclaratorDecl)
+#ifndef CXXDEDUCTIONGUIDE
+#  define CXXDEDUCTIONGUIDE(Type, Base) FUNCTION(Type, Base)
+#endif
+CXXDEDUCTIONGUIDE(CXXDeductionGuide, FunctionDecl)
+#undef CXXDEDUCTIONGUIDE
+
+#ifndef CXXMETHOD
+#  define CXXMETHOD(Type, Base) FUNCTION(Type, Base)
+#endif
+CXXMETHOD(CXXMethod, FunctionDecl)
+#ifndef CXXCONSTRUCTOR
+#  define CXXCONSTRUCTOR(Type, Base) CXXMETHOD(Type, Base)
+#endif
+CXXCONSTRUCTOR(CXXConstructor, CXXMethodDecl)
+#undef CXXCONSTRUCTOR
+
+#ifndef CXXCONVERSION
+#  define CXXCONVERSION(Type, Base) CXXMETHOD(Type, Base)
+#endif
+CXXCONVERSION(CXXConversion, CXXMethodDecl)
+#undef CXXCONVERSION
+
+#ifndef CXXDESTRUCTOR
+#  define CXXDESTRUCTOR(Type, Base) CXXMETHOD(Type, Base)
+#endif
+CXXDESTRUCTOR(CXXDestructor, CXXMethodDecl)
+#undef CXXDESTRUCTOR
+
+DECL_RANGE(CXXMethod, CXXMethod, CXXDestructor)
+
+#undef CXXMETHOD
+
+DECL_RANGE(Function, Function, CXXDestructor)
+
+#undef FUNCTION
+
+#ifndef MSPROPERTY
+#  define MSPROPERTY(Type, Base) DECLARATOR(Type, Base)
+#endif
+MSPROPERTY(MSProperty, DeclaratorDecl)
+#undef MSPROPERTY
+
+#ifndef NONTYPETEMPLATEPARM
+#  define NONTYPETEMPLATEPARM(Type, Base) DECLARATOR(Type, Base)
+#endif
+NONTYPETEMPLATEPARM(NonTypeTemplateParm, DeclaratorDecl)
+#undef NONTYPETEMPLATEPARM
+
+#ifndef VAR
+#  define VAR(Type, Base) DECLARATOR(Type, Base)
+#endif
+VAR(Var, DeclaratorDecl)
+#ifndef DECOMPOSITION
+#  define DECOMPOSITION(Type, Base) VAR(Type, Base)
+#endif
+DECOMPOSITION(Decomposition, VarDecl)
+#undef DECOMPOSITION
+
+#ifndef IMPLICITPARAM
+#  define IMPLICITPARAM(Type, Base) VAR(Type, Base)
+#endif
+IMPLICITPARAM(ImplicitParam, VarDecl)
+#undef IMPLICITPARAM
+
+#ifndef OMPCAPTUREDEXPR
+#  define OMPCAPTUREDEXPR(Type, Base) VAR(Type, Base)
+#endif
+OMPCAPTUREDEXPR(OMPCapturedExpr, VarDecl)
+#undef OMPCAPTUREDEXPR
+
+#ifndef PARMVAR
+#  define PARMVAR(Type, Base) VAR(Type, Base)
+#endif
+PARMVAR(ParmVar, VarDecl)
+#undef PARMVAR
+
+#ifndef VARTEMPLATESPECIALIZATION
+#  define VARTEMPLATESPECIALIZATION(Type, Base) VAR(Type, Base)
+#endif
+VARTEMPLATESPECIALIZATION(VarTemplateSpecialization, VarDecl)
+#ifndef VARTEMPLATEPARTIALSPECIALIZATION
+#  define VARTEMPLATEPARTIALSPECIALIZATION(Type, Base) VARTEMPLATESPECIALIZATION(Type, Base)
+#endif
+VARTEMPLATEPARTIALSPECIALIZATION(VarTemplatePartialSpecialization, VarTemplateSpecializationDecl)
+#undef VARTEMPLATEPARTIALSPECIALIZATION
+
+DECL_RANGE(VarTemplateSpecialization, VarTemplateSpecialization, VarTemplatePartialSpecialization)
+
+#undef VARTEMPLATESPECIALIZATION
+
+DECL_RANGE(Var, Var, VarTemplatePartialSpecialization)
+
+#undef VAR
+
+DECL_RANGE(Declarator, Field, VarTemplatePartialSpecialization)
+
+#undef DECLARATOR
+
+#ifndef ENUMCONSTANT
+#  define ENUMCONSTANT(Type, Base) VALUE(Type, Base)
+#endif
+ENUMCONSTANT(EnumConstant, ValueDecl)
+#undef ENUMCONSTANT
+
+#ifndef INDIRECTFIELD
+#  define INDIRECTFIELD(Type, Base) VALUE(Type, Base)
+#endif
+INDIRECTFIELD(IndirectField, ValueDecl)
+#undef INDIRECTFIELD
+
+#ifndef OMPDECLAREREDUCTION
+#  define OMPDECLAREREDUCTION(Type, Base) VALUE(Type, Base)
+#endif
+OMPDECLAREREDUCTION(OMPDeclareReduction, ValueDecl)
+#undef OMPDECLAREREDUCTION
+
+#ifndef UNRESOLVEDUSINGVALUE
+#  define UNRESOLVEDUSINGVALUE(Type, Base) VALUE(Type, Base)
+#endif
+UNRESOLVEDUSINGVALUE(UnresolvedUsingValue, ValueDecl)
+#undef UNRESOLVEDUSINGVALUE
+
+DECL_RANGE(Value, Binding, UnresolvedUsingValue)
+
+#undef VALUE
+
+DECL_RANGE(Named, Label, UnresolvedUsingValue)
+
+#undef NAMED
+
+#ifndef OMPTHREADPRIVATE
+#  define OMPTHREADPRIVATE(Type, Base) DECL(Type, Base)
+#endif
+OMPTHREADPRIVATE(OMPThreadPrivate, Decl)
+#undef OMPTHREADPRIVATE
+
+#ifndef OBJCPROPERTYIMPL
+#  define OBJCPROPERTYIMPL(Type, Base) DECL(Type, Base)
+#endif
+OBJCPROPERTYIMPL(ObjCPropertyImpl, Decl)
+#undef OBJCPROPERTYIMPL
+
+#ifndef PRAGMACOMMENT
+#  define PRAGMACOMMENT(Type, Base) DECL(Type, Base)
+#endif
+PRAGMACOMMENT(PragmaComment, Decl)
+#undef PRAGMACOMMENT
+
+#ifndef PRAGMADETECTMISMATCH
+#  define PRAGMADETECTMISMATCH(Type, Base) DECL(Type, Base)
+#endif
+PRAGMADETECTMISMATCH(PragmaDetectMismatch, Decl)
+#undef PRAGMADETECTMISMATCH
+
+#ifndef STATICASSERT
+#  define STATICASSERT(Type, Base) DECL(Type, Base)
+#endif
+STATICASSERT(StaticAssert, Decl)
+#undef STATICASSERT
+
+#ifndef TRANSLATIONUNIT
+#  define TRANSLATIONUNIT(Type, Base) DECL(Type, Base)
+#endif
+TRANSLATIONUNIT(TranslationUnit, Decl)
+#undef TRANSLATIONUNIT
+
+LAST_DECL_RANGE(Decl, AccessSpec, TranslationUnit)
+
+#undef DECL
+#undef DECL_RANGE
+#undef LAST_DECL_RANGE
+#undef ABSTRACT_DECL
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* List of AST Decl nodes                                                     *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef DECL_CONTEXT
+#  define DECL_CONTEXT(DECL)
+#endif
+#ifndef DECL_CONTEXT_BASE
+#  define DECL_CONTEXT_BASE(DECL) DECL_CONTEXT(DECL)
+#endif
+DECL_CONTEXT_BASE(Function)
+DECL_CONTEXT_BASE(Tag)
+DECL_CONTEXT_BASE(ObjCContainer)
+DECL_CONTEXT(Block)
+DECL_CONTEXT(Captured)
+DECL_CONTEXT(Export)
+DECL_CONTEXT(ExternCContext)
+DECL_CONTEXT(LinkageSpec)
+DECL_CONTEXT(Namespace)
+DECL_CONTEXT(OMPDeclareReduction)
+DECL_CONTEXT(ObjCMethod)
+DECL_CONTEXT(TranslationUnit)
+#undef DECL_CONTEXT
+#undef DECL_CONTEXT_BASE
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/AST/StmtNodes.inc b/clang-4053586/prebuilt_include/clang/include/clang/AST/StmtNodes.inc
new file mode 100644
index 0000000..1ffd5f0
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/AST/StmtNodes.inc
@@ -0,0 +1,1283 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* List of AST nodes of a particular kind                                     *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef ABSTRACT_STMT
+#  define ABSTRACT_STMT(Type) Type
+#endif
+#ifndef STMT_RANGE
+#  define STMT_RANGE(Base, First, Last)
+#endif
+
+#ifndef LAST_STMT_RANGE
+#  define LAST_STMT_RANGE(Base, First, Last) STMT_RANGE(Base, First, Last)
+#endif
+
+#ifndef ASMSTMT
+#  define ASMSTMT(Type, Base) STMT(Type, Base)
+#endif
+ABSTRACT_STMT(ASMSTMT(AsmStmt, Stmt))
+#ifndef GCCASMSTMT
+#  define GCCASMSTMT(Type, Base) ASMSTMT(Type, Base)
+#endif
+GCCASMSTMT(GCCAsmStmt, AsmStmt)
+#undef GCCASMSTMT
+
+#ifndef MSASMSTMT
+#  define MSASMSTMT(Type, Base) ASMSTMT(Type, Base)
+#endif
+MSASMSTMT(MSAsmStmt, AsmStmt)
+#undef MSASMSTMT
+
+STMT_RANGE(AsmStmt, GCCAsmStmt, MSAsmStmt)
+
+#undef ASMSTMT
+
+#ifndef ATTRIBUTEDSTMT
+#  define ATTRIBUTEDSTMT(Type, Base) STMT(Type, Base)
+#endif
+ATTRIBUTEDSTMT(AttributedStmt, Stmt)
+#undef ATTRIBUTEDSTMT
+
+#ifndef BREAKSTMT
+#  define BREAKSTMT(Type, Base) STMT(Type, Base)
+#endif
+BREAKSTMT(BreakStmt, Stmt)
+#undef BREAKSTMT
+
+#ifndef CXXCATCHSTMT
+#  define CXXCATCHSTMT(Type, Base) STMT(Type, Base)
+#endif
+CXXCATCHSTMT(CXXCatchStmt, Stmt)
+#undef CXXCATCHSTMT
+
+#ifndef CXXFORRANGESTMT
+#  define CXXFORRANGESTMT(Type, Base) STMT(Type, Base)
+#endif
+CXXFORRANGESTMT(CXXForRangeStmt, Stmt)
+#undef CXXFORRANGESTMT
+
+#ifndef CXXTRYSTMT
+#  define CXXTRYSTMT(Type, Base) STMT(Type, Base)
+#endif
+CXXTRYSTMT(CXXTryStmt, Stmt)
+#undef CXXTRYSTMT
+
+#ifndef CAPTUREDSTMT
+#  define CAPTUREDSTMT(Type, Base) STMT(Type, Base)
+#endif
+CAPTUREDSTMT(CapturedStmt, Stmt)
+#undef CAPTUREDSTMT
+
+#ifndef COMPOUNDSTMT
+#  define COMPOUNDSTMT(Type, Base) STMT(Type, Base)
+#endif
+COMPOUNDSTMT(CompoundStmt, Stmt)
+#undef COMPOUNDSTMT
+
+#ifndef CONTINUESTMT
+#  define CONTINUESTMT(Type, Base) STMT(Type, Base)
+#endif
+CONTINUESTMT(ContinueStmt, Stmt)
+#undef CONTINUESTMT
+
+#ifndef CORETURNSTMT
+#  define CORETURNSTMT(Type, Base) STMT(Type, Base)
+#endif
+CORETURNSTMT(CoreturnStmt, Stmt)
+#undef CORETURNSTMT
+
+#ifndef COROUTINEBODYSTMT
+#  define COROUTINEBODYSTMT(Type, Base) STMT(Type, Base)
+#endif
+COROUTINEBODYSTMT(CoroutineBodyStmt, Stmt)
+#undef COROUTINEBODYSTMT
+
+#ifndef DECLSTMT
+#  define DECLSTMT(Type, Base) STMT(Type, Base)
+#endif
+DECLSTMT(DeclStmt, Stmt)
+#undef DECLSTMT
+
+#ifndef DOSTMT
+#  define DOSTMT(Type, Base) STMT(Type, Base)
+#endif
+DOSTMT(DoStmt, Stmt)
+#undef DOSTMT
+
+#ifndef EXPR
+#  define EXPR(Type, Base) STMT(Type, Base)
+#endif
+ABSTRACT_STMT(EXPR(Expr, Stmt))
+#ifndef ABSTRACTCONDITIONALOPERATOR
+#  define ABSTRACTCONDITIONALOPERATOR(Type, Base) EXPR(Type, Base)
+#endif
+ABSTRACT_STMT(ABSTRACTCONDITIONALOPERATOR(AbstractConditionalOperator, Expr))
+#ifndef BINARYCONDITIONALOPERATOR
+#  define BINARYCONDITIONALOPERATOR(Type, Base) ABSTRACTCONDITIONALOPERATOR(Type, Base)
+#endif
+BINARYCONDITIONALOPERATOR(BinaryConditionalOperator, AbstractConditionalOperator)
+#undef BINARYCONDITIONALOPERATOR
+
+#ifndef CONDITIONALOPERATOR
+#  define CONDITIONALOPERATOR(Type, Base) ABSTRACTCONDITIONALOPERATOR(Type, Base)
+#endif
+CONDITIONALOPERATOR(ConditionalOperator, AbstractConditionalOperator)
+#undef CONDITIONALOPERATOR
+
+STMT_RANGE(AbstractConditionalOperator, BinaryConditionalOperator, ConditionalOperator)
+
+#undef ABSTRACTCONDITIONALOPERATOR
+
+#ifndef ADDRLABELEXPR
+#  define ADDRLABELEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ADDRLABELEXPR(AddrLabelExpr, Expr)
+#undef ADDRLABELEXPR
+
+#ifndef ARRAYINITINDEXEXPR
+#  define ARRAYINITINDEXEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ARRAYINITINDEXEXPR(ArrayInitIndexExpr, Expr)
+#undef ARRAYINITINDEXEXPR
+
+#ifndef ARRAYINITLOOPEXPR
+#  define ARRAYINITLOOPEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ARRAYINITLOOPEXPR(ArrayInitLoopExpr, Expr)
+#undef ARRAYINITLOOPEXPR
+
+#ifndef ARRAYSUBSCRIPTEXPR
+#  define ARRAYSUBSCRIPTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ARRAYSUBSCRIPTEXPR(ArraySubscriptExpr, Expr)
+#undef ARRAYSUBSCRIPTEXPR
+
+#ifndef ARRAYTYPETRAITEXPR
+#  define ARRAYTYPETRAITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ARRAYTYPETRAITEXPR(ArrayTypeTraitExpr, Expr)
+#undef ARRAYTYPETRAITEXPR
+
+#ifndef ASTYPEEXPR
+#  define ASTYPEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ASTYPEEXPR(AsTypeExpr, Expr)
+#undef ASTYPEEXPR
+
+#ifndef ATOMICEXPR
+#  define ATOMICEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ATOMICEXPR(AtomicExpr, Expr)
+#undef ATOMICEXPR
+
+#ifndef BINARYOPERATOR
+#  define BINARYOPERATOR(Type, Base) EXPR(Type, Base)
+#endif
+BINARYOPERATOR(BinaryOperator, Expr)
+#ifndef COMPOUNDASSIGNOPERATOR
+#  define COMPOUNDASSIGNOPERATOR(Type, Base) BINARYOPERATOR(Type, Base)
+#endif
+COMPOUNDASSIGNOPERATOR(CompoundAssignOperator, BinaryOperator)
+#undef COMPOUNDASSIGNOPERATOR
+
+STMT_RANGE(BinaryOperator, BinaryOperator, CompoundAssignOperator)
+
+#undef BINARYOPERATOR
+
+#ifndef BLOCKEXPR
+#  define BLOCKEXPR(Type, Base) EXPR(Type, Base)
+#endif
+BLOCKEXPR(BlockExpr, Expr)
+#undef BLOCKEXPR
+
+#ifndef CXXBINDTEMPORARYEXPR
+#  define CXXBINDTEMPORARYEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXBINDTEMPORARYEXPR(CXXBindTemporaryExpr, Expr)
+#undef CXXBINDTEMPORARYEXPR
+
+#ifndef CXXBOOLLITERALEXPR
+#  define CXXBOOLLITERALEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXBOOLLITERALEXPR(CXXBoolLiteralExpr, Expr)
+#undef CXXBOOLLITERALEXPR
+
+#ifndef CXXCONSTRUCTEXPR
+#  define CXXCONSTRUCTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXCONSTRUCTEXPR(CXXConstructExpr, Expr)
+#ifndef CXXTEMPORARYOBJECTEXPR
+#  define CXXTEMPORARYOBJECTEXPR(Type, Base) CXXCONSTRUCTEXPR(Type, Base)
+#endif
+CXXTEMPORARYOBJECTEXPR(CXXTemporaryObjectExpr, CXXConstructExpr)
+#undef CXXTEMPORARYOBJECTEXPR
+
+STMT_RANGE(CXXConstructExpr, CXXConstructExpr, CXXTemporaryObjectExpr)
+
+#undef CXXCONSTRUCTEXPR
+
+#ifndef CXXDEFAULTARGEXPR
+#  define CXXDEFAULTARGEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXDEFAULTARGEXPR(CXXDefaultArgExpr, Expr)
+#undef CXXDEFAULTARGEXPR
+
+#ifndef CXXDEFAULTINITEXPR
+#  define CXXDEFAULTINITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXDEFAULTINITEXPR(CXXDefaultInitExpr, Expr)
+#undef CXXDEFAULTINITEXPR
+
+#ifndef CXXDELETEEXPR
+#  define CXXDELETEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXDELETEEXPR(CXXDeleteExpr, Expr)
+#undef CXXDELETEEXPR
+
+#ifndef CXXDEPENDENTSCOPEMEMBEREXPR
+#  define CXXDEPENDENTSCOPEMEMBEREXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXDEPENDENTSCOPEMEMBEREXPR(CXXDependentScopeMemberExpr, Expr)
+#undef CXXDEPENDENTSCOPEMEMBEREXPR
+
+#ifndef CXXFOLDEXPR
+#  define CXXFOLDEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXFOLDEXPR(CXXFoldExpr, Expr)
+#undef CXXFOLDEXPR
+
+#ifndef CXXINHERITEDCTORINITEXPR
+#  define CXXINHERITEDCTORINITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXINHERITEDCTORINITEXPR(CXXInheritedCtorInitExpr, Expr)
+#undef CXXINHERITEDCTORINITEXPR
+
+#ifndef CXXNEWEXPR
+#  define CXXNEWEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXNEWEXPR(CXXNewExpr, Expr)
+#undef CXXNEWEXPR
+
+#ifndef CXXNOEXCEPTEXPR
+#  define CXXNOEXCEPTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXNOEXCEPTEXPR(CXXNoexceptExpr, Expr)
+#undef CXXNOEXCEPTEXPR
+
+#ifndef CXXNULLPTRLITERALEXPR
+#  define CXXNULLPTRLITERALEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXNULLPTRLITERALEXPR(CXXNullPtrLiteralExpr, Expr)
+#undef CXXNULLPTRLITERALEXPR
+
+#ifndef CXXPSEUDODESTRUCTOREXPR
+#  define CXXPSEUDODESTRUCTOREXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXPSEUDODESTRUCTOREXPR(CXXPseudoDestructorExpr, Expr)
+#undef CXXPSEUDODESTRUCTOREXPR
+
+#ifndef CXXSCALARVALUEINITEXPR
+#  define CXXSCALARVALUEINITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXSCALARVALUEINITEXPR(CXXScalarValueInitExpr, Expr)
+#undef CXXSCALARVALUEINITEXPR
+
+#ifndef CXXSTDINITIALIZERLISTEXPR
+#  define CXXSTDINITIALIZERLISTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXSTDINITIALIZERLISTEXPR(CXXStdInitializerListExpr, Expr)
+#undef CXXSTDINITIALIZERLISTEXPR
+
+#ifndef CXXTHISEXPR
+#  define CXXTHISEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXTHISEXPR(CXXThisExpr, Expr)
+#undef CXXTHISEXPR
+
+#ifndef CXXTHROWEXPR
+#  define CXXTHROWEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXTHROWEXPR(CXXThrowExpr, Expr)
+#undef CXXTHROWEXPR
+
+#ifndef CXXTYPEIDEXPR
+#  define CXXTYPEIDEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXTYPEIDEXPR(CXXTypeidExpr, Expr)
+#undef CXXTYPEIDEXPR
+
+#ifndef CXXUNRESOLVEDCONSTRUCTEXPR
+#  define CXXUNRESOLVEDCONSTRUCTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXUNRESOLVEDCONSTRUCTEXPR(CXXUnresolvedConstructExpr, Expr)
+#undef CXXUNRESOLVEDCONSTRUCTEXPR
+
+#ifndef CXXUUIDOFEXPR
+#  define CXXUUIDOFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CXXUUIDOFEXPR(CXXUuidofExpr, Expr)
+#undef CXXUUIDOFEXPR
+
+#ifndef CALLEXPR
+#  define CALLEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CALLEXPR(CallExpr, Expr)
+#ifndef CUDAKERNELCALLEXPR
+#  define CUDAKERNELCALLEXPR(Type, Base) CALLEXPR(Type, Base)
+#endif
+CUDAKERNELCALLEXPR(CUDAKernelCallExpr, CallExpr)
+#undef CUDAKERNELCALLEXPR
+
+#ifndef CXXMEMBERCALLEXPR
+#  define CXXMEMBERCALLEXPR(Type, Base) CALLEXPR(Type, Base)
+#endif
+CXXMEMBERCALLEXPR(CXXMemberCallExpr, CallExpr)
+#undef CXXMEMBERCALLEXPR
+
+#ifndef CXXOPERATORCALLEXPR
+#  define CXXOPERATORCALLEXPR(Type, Base) CALLEXPR(Type, Base)
+#endif
+CXXOPERATORCALLEXPR(CXXOperatorCallExpr, CallExpr)
+#undef CXXOPERATORCALLEXPR
+
+#ifndef USERDEFINEDLITERAL
+#  define USERDEFINEDLITERAL(Type, Base) CALLEXPR(Type, Base)
+#endif
+USERDEFINEDLITERAL(UserDefinedLiteral, CallExpr)
+#undef USERDEFINEDLITERAL
+
+STMT_RANGE(CallExpr, CallExpr, UserDefinedLiteral)
+
+#undef CALLEXPR
+
+#ifndef CASTEXPR
+#  define CASTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ABSTRACT_STMT(CASTEXPR(CastExpr, Expr))
+#ifndef EXPLICITCASTEXPR
+#  define EXPLICITCASTEXPR(Type, Base) CASTEXPR(Type, Base)
+#endif
+ABSTRACT_STMT(EXPLICITCASTEXPR(ExplicitCastExpr, CastExpr))
+#ifndef CSTYLECASTEXPR
+#  define CSTYLECASTEXPR(Type, Base) EXPLICITCASTEXPR(Type, Base)
+#endif
+CSTYLECASTEXPR(CStyleCastExpr, ExplicitCastExpr)
+#undef CSTYLECASTEXPR
+
+#ifndef CXXFUNCTIONALCASTEXPR
+#  define CXXFUNCTIONALCASTEXPR(Type, Base) EXPLICITCASTEXPR(Type, Base)
+#endif
+CXXFUNCTIONALCASTEXPR(CXXFunctionalCastExpr, ExplicitCastExpr)
+#undef CXXFUNCTIONALCASTEXPR
+
+#ifndef CXXNAMEDCASTEXPR
+#  define CXXNAMEDCASTEXPR(Type, Base) EXPLICITCASTEXPR(Type, Base)
+#endif
+ABSTRACT_STMT(CXXNAMEDCASTEXPR(CXXNamedCastExpr, ExplicitCastExpr))
+#ifndef CXXCONSTCASTEXPR
+#  define CXXCONSTCASTEXPR(Type, Base) CXXNAMEDCASTEXPR(Type, Base)
+#endif
+CXXCONSTCASTEXPR(CXXConstCastExpr, CXXNamedCastExpr)
+#undef CXXCONSTCASTEXPR
+
+#ifndef CXXDYNAMICCASTEXPR
+#  define CXXDYNAMICCASTEXPR(Type, Base) CXXNAMEDCASTEXPR(Type, Base)
+#endif
+CXXDYNAMICCASTEXPR(CXXDynamicCastExpr, CXXNamedCastExpr)
+#undef CXXDYNAMICCASTEXPR
+
+#ifndef CXXREINTERPRETCASTEXPR
+#  define CXXREINTERPRETCASTEXPR(Type, Base) CXXNAMEDCASTEXPR(Type, Base)
+#endif
+CXXREINTERPRETCASTEXPR(CXXReinterpretCastExpr, CXXNamedCastExpr)
+#undef CXXREINTERPRETCASTEXPR
+
+#ifndef CXXSTATICCASTEXPR
+#  define CXXSTATICCASTEXPR(Type, Base) CXXNAMEDCASTEXPR(Type, Base)
+#endif
+CXXSTATICCASTEXPR(CXXStaticCastExpr, CXXNamedCastExpr)
+#undef CXXSTATICCASTEXPR
+
+STMT_RANGE(CXXNamedCastExpr, CXXConstCastExpr, CXXStaticCastExpr)
+
+#undef CXXNAMEDCASTEXPR
+
+#ifndef OBJCBRIDGEDCASTEXPR
+#  define OBJCBRIDGEDCASTEXPR(Type, Base) EXPLICITCASTEXPR(Type, Base)
+#endif
+OBJCBRIDGEDCASTEXPR(ObjCBridgedCastExpr, ExplicitCastExpr)
+#undef OBJCBRIDGEDCASTEXPR
+
+STMT_RANGE(ExplicitCastExpr, CStyleCastExpr, ObjCBridgedCastExpr)
+
+#undef EXPLICITCASTEXPR
+
+#ifndef IMPLICITCASTEXPR
+#  define IMPLICITCASTEXPR(Type, Base) CASTEXPR(Type, Base)
+#endif
+IMPLICITCASTEXPR(ImplicitCastExpr, CastExpr)
+#undef IMPLICITCASTEXPR
+
+STMT_RANGE(CastExpr, CStyleCastExpr, ImplicitCastExpr)
+
+#undef CASTEXPR
+
+#ifndef CHARACTERLITERAL
+#  define CHARACTERLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+CHARACTERLITERAL(CharacterLiteral, Expr)
+#undef CHARACTERLITERAL
+
+#ifndef CHOOSEEXPR
+#  define CHOOSEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+CHOOSEEXPR(ChooseExpr, Expr)
+#undef CHOOSEEXPR
+
+#ifndef COMPOUNDLITERALEXPR
+#  define COMPOUNDLITERALEXPR(Type, Base) EXPR(Type, Base)
+#endif
+COMPOUNDLITERALEXPR(CompoundLiteralExpr, Expr)
+#undef COMPOUNDLITERALEXPR
+
+#ifndef CONVERTVECTOREXPR
+#  define CONVERTVECTOREXPR(Type, Base) EXPR(Type, Base)
+#endif
+CONVERTVECTOREXPR(ConvertVectorExpr, Expr)
+#undef CONVERTVECTOREXPR
+
+#ifndef COROUTINESUSPENDEXPR
+#  define COROUTINESUSPENDEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ABSTRACT_STMT(COROUTINESUSPENDEXPR(CoroutineSuspendExpr, Expr))
+#ifndef COAWAITEXPR
+#  define COAWAITEXPR(Type, Base) COROUTINESUSPENDEXPR(Type, Base)
+#endif
+COAWAITEXPR(CoawaitExpr, CoroutineSuspendExpr)
+#undef COAWAITEXPR
+
+#ifndef COYIELDEXPR
+#  define COYIELDEXPR(Type, Base) COROUTINESUSPENDEXPR(Type, Base)
+#endif
+COYIELDEXPR(CoyieldExpr, CoroutineSuspendExpr)
+#undef COYIELDEXPR
+
+STMT_RANGE(CoroutineSuspendExpr, CoawaitExpr, CoyieldExpr)
+
+#undef COROUTINESUSPENDEXPR
+
+#ifndef DECLREFEXPR
+#  define DECLREFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+DECLREFEXPR(DeclRefExpr, Expr)
+#undef DECLREFEXPR
+
+#ifndef DEPENDENTCOAWAITEXPR
+#  define DEPENDENTCOAWAITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+DEPENDENTCOAWAITEXPR(DependentCoawaitExpr, Expr)
+#undef DEPENDENTCOAWAITEXPR
+
+#ifndef DEPENDENTSCOPEDECLREFEXPR
+#  define DEPENDENTSCOPEDECLREFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+DEPENDENTSCOPEDECLREFEXPR(DependentScopeDeclRefExpr, Expr)
+#undef DEPENDENTSCOPEDECLREFEXPR
+
+#ifndef DESIGNATEDINITEXPR
+#  define DESIGNATEDINITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+DESIGNATEDINITEXPR(DesignatedInitExpr, Expr)
+#undef DESIGNATEDINITEXPR
+
+#ifndef DESIGNATEDINITUPDATEEXPR
+#  define DESIGNATEDINITUPDATEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+DESIGNATEDINITUPDATEEXPR(DesignatedInitUpdateExpr, Expr)
+#undef DESIGNATEDINITUPDATEEXPR
+
+#ifndef EXPRWITHCLEANUPS
+#  define EXPRWITHCLEANUPS(Type, Base) EXPR(Type, Base)
+#endif
+EXPRWITHCLEANUPS(ExprWithCleanups, Expr)
+#undef EXPRWITHCLEANUPS
+
+#ifndef EXPRESSIONTRAITEXPR
+#  define EXPRESSIONTRAITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+EXPRESSIONTRAITEXPR(ExpressionTraitExpr, Expr)
+#undef EXPRESSIONTRAITEXPR
+
+#ifndef EXTVECTORELEMENTEXPR
+#  define EXTVECTORELEMENTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+EXTVECTORELEMENTEXPR(ExtVectorElementExpr, Expr)
+#undef EXTVECTORELEMENTEXPR
+
+#ifndef FLOATINGLITERAL
+#  define FLOATINGLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+FLOATINGLITERAL(FloatingLiteral, Expr)
+#undef FLOATINGLITERAL
+
+#ifndef FUNCTIONPARMPACKEXPR
+#  define FUNCTIONPARMPACKEXPR(Type, Base) EXPR(Type, Base)
+#endif
+FUNCTIONPARMPACKEXPR(FunctionParmPackExpr, Expr)
+#undef FUNCTIONPARMPACKEXPR
+
+#ifndef GNUNULLEXPR
+#  define GNUNULLEXPR(Type, Base) EXPR(Type, Base)
+#endif
+GNUNULLEXPR(GNUNullExpr, Expr)
+#undef GNUNULLEXPR
+
+#ifndef GENERICSELECTIONEXPR
+#  define GENERICSELECTIONEXPR(Type, Base) EXPR(Type, Base)
+#endif
+GENERICSELECTIONEXPR(GenericSelectionExpr, Expr)
+#undef GENERICSELECTIONEXPR
+
+#ifndef IMAGINARYLITERAL
+#  define IMAGINARYLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+IMAGINARYLITERAL(ImaginaryLiteral, Expr)
+#undef IMAGINARYLITERAL
+
+#ifndef IMPLICITVALUEINITEXPR
+#  define IMPLICITVALUEINITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+IMPLICITVALUEINITEXPR(ImplicitValueInitExpr, Expr)
+#undef IMPLICITVALUEINITEXPR
+
+#ifndef INITLISTEXPR
+#  define INITLISTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+INITLISTEXPR(InitListExpr, Expr)
+#undef INITLISTEXPR
+
+#ifndef INTEGERLITERAL
+#  define INTEGERLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+INTEGERLITERAL(IntegerLiteral, Expr)
+#undef INTEGERLITERAL
+
+#ifndef LAMBDAEXPR
+#  define LAMBDAEXPR(Type, Base) EXPR(Type, Base)
+#endif
+LAMBDAEXPR(LambdaExpr, Expr)
+#undef LAMBDAEXPR
+
+#ifndef MSPROPERTYREFEXPR
+#  define MSPROPERTYREFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+MSPROPERTYREFEXPR(MSPropertyRefExpr, Expr)
+#undef MSPROPERTYREFEXPR
+
+#ifndef MSPROPERTYSUBSCRIPTEXPR
+#  define MSPROPERTYSUBSCRIPTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+MSPROPERTYSUBSCRIPTEXPR(MSPropertySubscriptExpr, Expr)
+#undef MSPROPERTYSUBSCRIPTEXPR
+
+#ifndef MATERIALIZETEMPORARYEXPR
+#  define MATERIALIZETEMPORARYEXPR(Type, Base) EXPR(Type, Base)
+#endif
+MATERIALIZETEMPORARYEXPR(MaterializeTemporaryExpr, Expr)
+#undef MATERIALIZETEMPORARYEXPR
+
+#ifndef MEMBEREXPR
+#  define MEMBEREXPR(Type, Base) EXPR(Type, Base)
+#endif
+MEMBEREXPR(MemberExpr, Expr)
+#undef MEMBEREXPR
+
+#ifndef NOINITEXPR
+#  define NOINITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+NOINITEXPR(NoInitExpr, Expr)
+#undef NOINITEXPR
+
+#ifndef OMPARRAYSECTIONEXPR
+#  define OMPARRAYSECTIONEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OMPARRAYSECTIONEXPR(OMPArraySectionExpr, Expr)
+#undef OMPARRAYSECTIONEXPR
+
+#ifndef OBJCARRAYLITERAL
+#  define OBJCARRAYLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+OBJCARRAYLITERAL(ObjCArrayLiteral, Expr)
+#undef OBJCARRAYLITERAL
+
+#ifndef OBJCAVAILABILITYCHECKEXPR
+#  define OBJCAVAILABILITYCHECKEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCAVAILABILITYCHECKEXPR(ObjCAvailabilityCheckExpr, Expr)
+#undef OBJCAVAILABILITYCHECKEXPR
+
+#ifndef OBJCBOOLLITERALEXPR
+#  define OBJCBOOLLITERALEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCBOOLLITERALEXPR(ObjCBoolLiteralExpr, Expr)
+#undef OBJCBOOLLITERALEXPR
+
+#ifndef OBJCBOXEDEXPR
+#  define OBJCBOXEDEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCBOXEDEXPR(ObjCBoxedExpr, Expr)
+#undef OBJCBOXEDEXPR
+
+#ifndef OBJCDICTIONARYLITERAL
+#  define OBJCDICTIONARYLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+OBJCDICTIONARYLITERAL(ObjCDictionaryLiteral, Expr)
+#undef OBJCDICTIONARYLITERAL
+
+#ifndef OBJCENCODEEXPR
+#  define OBJCENCODEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCENCODEEXPR(ObjCEncodeExpr, Expr)
+#undef OBJCENCODEEXPR
+
+#ifndef OBJCINDIRECTCOPYRESTOREEXPR
+#  define OBJCINDIRECTCOPYRESTOREEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCINDIRECTCOPYRESTOREEXPR(ObjCIndirectCopyRestoreExpr, Expr)
+#undef OBJCINDIRECTCOPYRESTOREEXPR
+
+#ifndef OBJCISAEXPR
+#  define OBJCISAEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCISAEXPR(ObjCIsaExpr, Expr)
+#undef OBJCISAEXPR
+
+#ifndef OBJCIVARREFEXPR
+#  define OBJCIVARREFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCIVARREFEXPR(ObjCIvarRefExpr, Expr)
+#undef OBJCIVARREFEXPR
+
+#ifndef OBJCMESSAGEEXPR
+#  define OBJCMESSAGEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCMESSAGEEXPR(ObjCMessageExpr, Expr)
+#undef OBJCMESSAGEEXPR
+
+#ifndef OBJCPROPERTYREFEXPR
+#  define OBJCPROPERTYREFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCPROPERTYREFEXPR(ObjCPropertyRefExpr, Expr)
+#undef OBJCPROPERTYREFEXPR
+
+#ifndef OBJCPROTOCOLEXPR
+#  define OBJCPROTOCOLEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCPROTOCOLEXPR(ObjCProtocolExpr, Expr)
+#undef OBJCPROTOCOLEXPR
+
+#ifndef OBJCSELECTOREXPR
+#  define OBJCSELECTOREXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCSELECTOREXPR(ObjCSelectorExpr, Expr)
+#undef OBJCSELECTOREXPR
+
+#ifndef OBJCSTRINGLITERAL
+#  define OBJCSTRINGLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+OBJCSTRINGLITERAL(ObjCStringLiteral, Expr)
+#undef OBJCSTRINGLITERAL
+
+#ifndef OBJCSUBSCRIPTREFEXPR
+#  define OBJCSUBSCRIPTREFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OBJCSUBSCRIPTREFEXPR(ObjCSubscriptRefExpr, Expr)
+#undef OBJCSUBSCRIPTREFEXPR
+
+#ifndef OFFSETOFEXPR
+#  define OFFSETOFEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OFFSETOFEXPR(OffsetOfExpr, Expr)
+#undef OFFSETOFEXPR
+
+#ifndef OPAQUEVALUEEXPR
+#  define OPAQUEVALUEEXPR(Type, Base) EXPR(Type, Base)
+#endif
+OPAQUEVALUEEXPR(OpaqueValueExpr, Expr)
+#undef OPAQUEVALUEEXPR
+
+#ifndef OVERLOADEXPR
+#  define OVERLOADEXPR(Type, Base) EXPR(Type, Base)
+#endif
+ABSTRACT_STMT(OVERLOADEXPR(OverloadExpr, Expr))
+#ifndef UNRESOLVEDLOOKUPEXPR
+#  define UNRESOLVEDLOOKUPEXPR(Type, Base) OVERLOADEXPR(Type, Base)
+#endif
+UNRESOLVEDLOOKUPEXPR(UnresolvedLookupExpr, OverloadExpr)
+#undef UNRESOLVEDLOOKUPEXPR
+
+#ifndef UNRESOLVEDMEMBEREXPR
+#  define UNRESOLVEDMEMBEREXPR(Type, Base) OVERLOADEXPR(Type, Base)
+#endif
+UNRESOLVEDMEMBEREXPR(UnresolvedMemberExpr, OverloadExpr)
+#undef UNRESOLVEDMEMBEREXPR
+
+STMT_RANGE(OverloadExpr, UnresolvedLookupExpr, UnresolvedMemberExpr)
+
+#undef OVERLOADEXPR
+
+#ifndef PACKEXPANSIONEXPR
+#  define PACKEXPANSIONEXPR(Type, Base) EXPR(Type, Base)
+#endif
+PACKEXPANSIONEXPR(PackExpansionExpr, Expr)
+#undef PACKEXPANSIONEXPR
+
+#ifndef PARENEXPR
+#  define PARENEXPR(Type, Base) EXPR(Type, Base)
+#endif
+PARENEXPR(ParenExpr, Expr)
+#undef PARENEXPR
+
+#ifndef PARENLISTEXPR
+#  define PARENLISTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+PARENLISTEXPR(ParenListExpr, Expr)
+#undef PARENLISTEXPR
+
+#ifndef PREDEFINEDEXPR
+#  define PREDEFINEDEXPR(Type, Base) EXPR(Type, Base)
+#endif
+PREDEFINEDEXPR(PredefinedExpr, Expr)
+#undef PREDEFINEDEXPR
+
+#ifndef PSEUDOOBJECTEXPR
+#  define PSEUDOOBJECTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+PSEUDOOBJECTEXPR(PseudoObjectExpr, Expr)
+#undef PSEUDOOBJECTEXPR
+
+#ifndef SHUFFLEVECTOREXPR
+#  define SHUFFLEVECTOREXPR(Type, Base) EXPR(Type, Base)
+#endif
+SHUFFLEVECTOREXPR(ShuffleVectorExpr, Expr)
+#undef SHUFFLEVECTOREXPR
+
+#ifndef SIZEOFPACKEXPR
+#  define SIZEOFPACKEXPR(Type, Base) EXPR(Type, Base)
+#endif
+SIZEOFPACKEXPR(SizeOfPackExpr, Expr)
+#undef SIZEOFPACKEXPR
+
+#ifndef STMTEXPR
+#  define STMTEXPR(Type, Base) EXPR(Type, Base)
+#endif
+STMTEXPR(StmtExpr, Expr)
+#undef STMTEXPR
+
+#ifndef STRINGLITERAL
+#  define STRINGLITERAL(Type, Base) EXPR(Type, Base)
+#endif
+STRINGLITERAL(StringLiteral, Expr)
+#undef STRINGLITERAL
+
+#ifndef SUBSTNONTYPETEMPLATEPARMEXPR
+#  define SUBSTNONTYPETEMPLATEPARMEXPR(Type, Base) EXPR(Type, Base)
+#endif
+SUBSTNONTYPETEMPLATEPARMEXPR(SubstNonTypeTemplateParmExpr, Expr)
+#undef SUBSTNONTYPETEMPLATEPARMEXPR
+
+#ifndef SUBSTNONTYPETEMPLATEPARMPACKEXPR
+#  define SUBSTNONTYPETEMPLATEPARMPACKEXPR(Type, Base) EXPR(Type, Base)
+#endif
+SUBSTNONTYPETEMPLATEPARMPACKEXPR(SubstNonTypeTemplateParmPackExpr, Expr)
+#undef SUBSTNONTYPETEMPLATEPARMPACKEXPR
+
+#ifndef TYPETRAITEXPR
+#  define TYPETRAITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+TYPETRAITEXPR(TypeTraitExpr, Expr)
+#undef TYPETRAITEXPR
+
+#ifndef TYPOEXPR
+#  define TYPOEXPR(Type, Base) EXPR(Type, Base)
+#endif
+TYPOEXPR(TypoExpr, Expr)
+#undef TYPOEXPR
+
+#ifndef UNARYEXPRORTYPETRAITEXPR
+#  define UNARYEXPRORTYPETRAITEXPR(Type, Base) EXPR(Type, Base)
+#endif
+UNARYEXPRORTYPETRAITEXPR(UnaryExprOrTypeTraitExpr, Expr)
+#undef UNARYEXPRORTYPETRAITEXPR
+
+#ifndef UNARYOPERATOR
+#  define UNARYOPERATOR(Type, Base) EXPR(Type, Base)
+#endif
+UNARYOPERATOR(UnaryOperator, Expr)
+#undef UNARYOPERATOR
+
+#ifndef VAARGEXPR
+#  define VAARGEXPR(Type, Base) EXPR(Type, Base)
+#endif
+VAARGEXPR(VAArgExpr, Expr)
+#undef VAARGEXPR
+
+STMT_RANGE(Expr, BinaryConditionalOperator, VAArgExpr)
+
+#undef EXPR
+
+#ifndef FORSTMT
+#  define FORSTMT(Type, Base) STMT(Type, Base)
+#endif
+FORSTMT(ForStmt, Stmt)
+#undef FORSTMT
+
+#ifndef GOTOSTMT
+#  define GOTOSTMT(Type, Base) STMT(Type, Base)
+#endif
+GOTOSTMT(GotoStmt, Stmt)
+#undef GOTOSTMT
+
+#ifndef IFSTMT
+#  define IFSTMT(Type, Base) STMT(Type, Base)
+#endif
+IFSTMT(IfStmt, Stmt)
+#undef IFSTMT
+
+#ifndef INDIRECTGOTOSTMT
+#  define INDIRECTGOTOSTMT(Type, Base) STMT(Type, Base)
+#endif
+INDIRECTGOTOSTMT(IndirectGotoStmt, Stmt)
+#undef INDIRECTGOTOSTMT
+
+#ifndef LABELSTMT
+#  define LABELSTMT(Type, Base) STMT(Type, Base)
+#endif
+LABELSTMT(LabelStmt, Stmt)
+#undef LABELSTMT
+
+#ifndef MSDEPENDENTEXISTSSTMT
+#  define MSDEPENDENTEXISTSSTMT(Type, Base) STMT(Type, Base)
+#endif
+MSDEPENDENTEXISTSSTMT(MSDependentExistsStmt, Stmt)
+#undef MSDEPENDENTEXISTSSTMT
+
+#ifndef NULLSTMT
+#  define NULLSTMT(Type, Base) STMT(Type, Base)
+#endif
+NULLSTMT(NullStmt, Stmt)
+#undef NULLSTMT
+
+#ifndef OMPEXECUTABLEDIRECTIVE
+#  define OMPEXECUTABLEDIRECTIVE(Type, Base) STMT(Type, Base)
+#endif
+ABSTRACT_STMT(OMPEXECUTABLEDIRECTIVE(OMPExecutableDirective, Stmt))
+#ifndef OMPATOMICDIRECTIVE
+#  define OMPATOMICDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPATOMICDIRECTIVE(OMPAtomicDirective, OMPExecutableDirective)
+#undef OMPATOMICDIRECTIVE
+
+#ifndef OMPBARRIERDIRECTIVE
+#  define OMPBARRIERDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPBARRIERDIRECTIVE(OMPBarrierDirective, OMPExecutableDirective)
+#undef OMPBARRIERDIRECTIVE
+
+#ifndef OMPCANCELDIRECTIVE
+#  define OMPCANCELDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPCANCELDIRECTIVE(OMPCancelDirective, OMPExecutableDirective)
+#undef OMPCANCELDIRECTIVE
+
+#ifndef OMPCANCELLATIONPOINTDIRECTIVE
+#  define OMPCANCELLATIONPOINTDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPCANCELLATIONPOINTDIRECTIVE(OMPCancellationPointDirective, OMPExecutableDirective)
+#undef OMPCANCELLATIONPOINTDIRECTIVE
+
+#ifndef OMPCRITICALDIRECTIVE
+#  define OMPCRITICALDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPCRITICALDIRECTIVE(OMPCriticalDirective, OMPExecutableDirective)
+#undef OMPCRITICALDIRECTIVE
+
+#ifndef OMPFLUSHDIRECTIVE
+#  define OMPFLUSHDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPFLUSHDIRECTIVE(OMPFlushDirective, OMPExecutableDirective)
+#undef OMPFLUSHDIRECTIVE
+
+#ifndef OMPLOOPDIRECTIVE
+#  define OMPLOOPDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+ABSTRACT_STMT(OMPLOOPDIRECTIVE(OMPLoopDirective, OMPExecutableDirective))
+#ifndef OMPDISTRIBUTEDIRECTIVE
+#  define OMPDISTRIBUTEDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPDISTRIBUTEDIRECTIVE(OMPDistributeDirective, OMPLoopDirective)
+#undef OMPDISTRIBUTEDIRECTIVE
+
+#ifndef OMPDISTRIBUTEPARALLELFORDIRECTIVE
+#  define OMPDISTRIBUTEPARALLELFORDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPDISTRIBUTEPARALLELFORDIRECTIVE(OMPDistributeParallelForDirective, OMPLoopDirective)
+#undef OMPDISTRIBUTEPARALLELFORDIRECTIVE
+
+#ifndef OMPDISTRIBUTEPARALLELFORSIMDDIRECTIVE
+#  define OMPDISTRIBUTEPARALLELFORSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPDISTRIBUTEPARALLELFORSIMDDIRECTIVE(OMPDistributeParallelForSimdDirective, OMPLoopDirective)
+#undef OMPDISTRIBUTEPARALLELFORSIMDDIRECTIVE
+
+#ifndef OMPDISTRIBUTESIMDDIRECTIVE
+#  define OMPDISTRIBUTESIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPDISTRIBUTESIMDDIRECTIVE(OMPDistributeSimdDirective, OMPLoopDirective)
+#undef OMPDISTRIBUTESIMDDIRECTIVE
+
+#ifndef OMPFORDIRECTIVE
+#  define OMPFORDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPFORDIRECTIVE(OMPForDirective, OMPLoopDirective)
+#undef OMPFORDIRECTIVE
+
+#ifndef OMPFORSIMDDIRECTIVE
+#  define OMPFORSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPFORSIMDDIRECTIVE(OMPForSimdDirective, OMPLoopDirective)
+#undef OMPFORSIMDDIRECTIVE
+
+#ifndef OMPPARALLELFORDIRECTIVE
+#  define OMPPARALLELFORDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPPARALLELFORDIRECTIVE(OMPParallelForDirective, OMPLoopDirective)
+#undef OMPPARALLELFORDIRECTIVE
+
+#ifndef OMPPARALLELFORSIMDDIRECTIVE
+#  define OMPPARALLELFORSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPPARALLELFORSIMDDIRECTIVE(OMPParallelForSimdDirective, OMPLoopDirective)
+#undef OMPPARALLELFORSIMDDIRECTIVE
+
+#ifndef OMPSIMDDIRECTIVE
+#  define OMPSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPSIMDDIRECTIVE(OMPSimdDirective, OMPLoopDirective)
+#undef OMPSIMDDIRECTIVE
+
+#ifndef OMPTARGETPARALLELFORSIMDDIRECTIVE
+#  define OMPTARGETPARALLELFORSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTARGETPARALLELFORSIMDDIRECTIVE(OMPTargetParallelForSimdDirective, OMPLoopDirective)
+#undef OMPTARGETPARALLELFORSIMDDIRECTIVE
+
+#ifndef OMPTARGETSIMDDIRECTIVE
+#  define OMPTARGETSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTARGETSIMDDIRECTIVE(OMPTargetSimdDirective, OMPLoopDirective)
+#undef OMPTARGETSIMDDIRECTIVE
+
+#ifndef OMPTARGETTEAMSDISTRIBUTEDIRECTIVE
+#  define OMPTARGETTEAMSDISTRIBUTEDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTARGETTEAMSDISTRIBUTEDIRECTIVE(OMPTargetTeamsDistributeDirective, OMPLoopDirective)
+#undef OMPTARGETTEAMSDISTRIBUTEDIRECTIVE
+
+#ifndef OMPTARGETTEAMSDISTRIBUTEPARALLELFORDIRECTIVE
+#  define OMPTARGETTEAMSDISTRIBUTEPARALLELFORDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTARGETTEAMSDISTRIBUTEPARALLELFORDIRECTIVE(OMPTargetTeamsDistributeParallelForDirective, OMPLoopDirective)
+#undef OMPTARGETTEAMSDISTRIBUTEPARALLELFORDIRECTIVE
+
+#ifndef OMPTARGETTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE
+#  define OMPTARGETTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTARGETTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE(OMPTargetTeamsDistributeParallelForSimdDirective, OMPLoopDirective)
+#undef OMPTARGETTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE
+
+#ifndef OMPTARGETTEAMSDISTRIBUTESIMDDIRECTIVE
+#  define OMPTARGETTEAMSDISTRIBUTESIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTARGETTEAMSDISTRIBUTESIMDDIRECTIVE(OMPTargetTeamsDistributeSimdDirective, OMPLoopDirective)
+#undef OMPTARGETTEAMSDISTRIBUTESIMDDIRECTIVE
+
+#ifndef OMPTASKLOOPDIRECTIVE
+#  define OMPTASKLOOPDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTASKLOOPDIRECTIVE(OMPTaskLoopDirective, OMPLoopDirective)
+#undef OMPTASKLOOPDIRECTIVE
+
+#ifndef OMPTASKLOOPSIMDDIRECTIVE
+#  define OMPTASKLOOPSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTASKLOOPSIMDDIRECTIVE(OMPTaskLoopSimdDirective, OMPLoopDirective)
+#undef OMPTASKLOOPSIMDDIRECTIVE
+
+#ifndef OMPTEAMSDISTRIBUTEDIRECTIVE
+#  define OMPTEAMSDISTRIBUTEDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTEAMSDISTRIBUTEDIRECTIVE(OMPTeamsDistributeDirective, OMPLoopDirective)
+#undef OMPTEAMSDISTRIBUTEDIRECTIVE
+
+#ifndef OMPTEAMSDISTRIBUTEPARALLELFORDIRECTIVE
+#  define OMPTEAMSDISTRIBUTEPARALLELFORDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTEAMSDISTRIBUTEPARALLELFORDIRECTIVE(OMPTeamsDistributeParallelForDirective, OMPLoopDirective)
+#undef OMPTEAMSDISTRIBUTEPARALLELFORDIRECTIVE
+
+#ifndef OMPTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE
+#  define OMPTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE(OMPTeamsDistributeParallelForSimdDirective, OMPLoopDirective)
+#undef OMPTEAMSDISTRIBUTEPARALLELFORSIMDDIRECTIVE
+
+#ifndef OMPTEAMSDISTRIBUTESIMDDIRECTIVE
+#  define OMPTEAMSDISTRIBUTESIMDDIRECTIVE(Type, Base) OMPLOOPDIRECTIVE(Type, Base)
+#endif
+OMPTEAMSDISTRIBUTESIMDDIRECTIVE(OMPTeamsDistributeSimdDirective, OMPLoopDirective)
+#undef OMPTEAMSDISTRIBUTESIMDDIRECTIVE
+
+STMT_RANGE(OMPLoopDirective, OMPDistributeDirective, OMPTeamsDistributeSimdDirective)
+
+#undef OMPLOOPDIRECTIVE
+
+#ifndef OMPMASTERDIRECTIVE
+#  define OMPMASTERDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPMASTERDIRECTIVE(OMPMasterDirective, OMPExecutableDirective)
+#undef OMPMASTERDIRECTIVE
+
+#ifndef OMPORDEREDDIRECTIVE
+#  define OMPORDEREDDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPORDEREDDIRECTIVE(OMPOrderedDirective, OMPExecutableDirective)
+#undef OMPORDEREDDIRECTIVE
+
+#ifndef OMPPARALLELDIRECTIVE
+#  define OMPPARALLELDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPPARALLELDIRECTIVE(OMPParallelDirective, OMPExecutableDirective)
+#undef OMPPARALLELDIRECTIVE
+
+#ifndef OMPPARALLELSECTIONSDIRECTIVE
+#  define OMPPARALLELSECTIONSDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPPARALLELSECTIONSDIRECTIVE(OMPParallelSectionsDirective, OMPExecutableDirective)
+#undef OMPPARALLELSECTIONSDIRECTIVE
+
+#ifndef OMPSECTIONDIRECTIVE
+#  define OMPSECTIONDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPSECTIONDIRECTIVE(OMPSectionDirective, OMPExecutableDirective)
+#undef OMPSECTIONDIRECTIVE
+
+#ifndef OMPSECTIONSDIRECTIVE
+#  define OMPSECTIONSDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPSECTIONSDIRECTIVE(OMPSectionsDirective, OMPExecutableDirective)
+#undef OMPSECTIONSDIRECTIVE
+
+#ifndef OMPSINGLEDIRECTIVE
+#  define OMPSINGLEDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPSINGLEDIRECTIVE(OMPSingleDirective, OMPExecutableDirective)
+#undef OMPSINGLEDIRECTIVE
+
+#ifndef OMPTARGETDATADIRECTIVE
+#  define OMPTARGETDATADIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETDATADIRECTIVE(OMPTargetDataDirective, OMPExecutableDirective)
+#undef OMPTARGETDATADIRECTIVE
+
+#ifndef OMPTARGETDIRECTIVE
+#  define OMPTARGETDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETDIRECTIVE(OMPTargetDirective, OMPExecutableDirective)
+#undef OMPTARGETDIRECTIVE
+
+#ifndef OMPTARGETENTERDATADIRECTIVE
+#  define OMPTARGETENTERDATADIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETENTERDATADIRECTIVE(OMPTargetEnterDataDirective, OMPExecutableDirective)
+#undef OMPTARGETENTERDATADIRECTIVE
+
+#ifndef OMPTARGETEXITDATADIRECTIVE
+#  define OMPTARGETEXITDATADIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETEXITDATADIRECTIVE(OMPTargetExitDataDirective, OMPExecutableDirective)
+#undef OMPTARGETEXITDATADIRECTIVE
+
+#ifndef OMPTARGETPARALLELDIRECTIVE
+#  define OMPTARGETPARALLELDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETPARALLELDIRECTIVE(OMPTargetParallelDirective, OMPExecutableDirective)
+#undef OMPTARGETPARALLELDIRECTIVE
+
+#ifndef OMPTARGETPARALLELFORDIRECTIVE
+#  define OMPTARGETPARALLELFORDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETPARALLELFORDIRECTIVE(OMPTargetParallelForDirective, OMPExecutableDirective)
+#undef OMPTARGETPARALLELFORDIRECTIVE
+
+#ifndef OMPTARGETTEAMSDIRECTIVE
+#  define OMPTARGETTEAMSDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETTEAMSDIRECTIVE(OMPTargetTeamsDirective, OMPExecutableDirective)
+#undef OMPTARGETTEAMSDIRECTIVE
+
+#ifndef OMPTARGETUPDATEDIRECTIVE
+#  define OMPTARGETUPDATEDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTARGETUPDATEDIRECTIVE(OMPTargetUpdateDirective, OMPExecutableDirective)
+#undef OMPTARGETUPDATEDIRECTIVE
+
+#ifndef OMPTASKDIRECTIVE
+#  define OMPTASKDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTASKDIRECTIVE(OMPTaskDirective, OMPExecutableDirective)
+#undef OMPTASKDIRECTIVE
+
+#ifndef OMPTASKGROUPDIRECTIVE
+#  define OMPTASKGROUPDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTASKGROUPDIRECTIVE(OMPTaskgroupDirective, OMPExecutableDirective)
+#undef OMPTASKGROUPDIRECTIVE
+
+#ifndef OMPTASKWAITDIRECTIVE
+#  define OMPTASKWAITDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTASKWAITDIRECTIVE(OMPTaskwaitDirective, OMPExecutableDirective)
+#undef OMPTASKWAITDIRECTIVE
+
+#ifndef OMPTASKYIELDDIRECTIVE
+#  define OMPTASKYIELDDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTASKYIELDDIRECTIVE(OMPTaskyieldDirective, OMPExecutableDirective)
+#undef OMPTASKYIELDDIRECTIVE
+
+#ifndef OMPTEAMSDIRECTIVE
+#  define OMPTEAMSDIRECTIVE(Type, Base) OMPEXECUTABLEDIRECTIVE(Type, Base)
+#endif
+OMPTEAMSDIRECTIVE(OMPTeamsDirective, OMPExecutableDirective)
+#undef OMPTEAMSDIRECTIVE
+
+STMT_RANGE(OMPExecutableDirective, OMPAtomicDirective, OMPTeamsDirective)
+
+#undef OMPEXECUTABLEDIRECTIVE
+
+#ifndef OBJCATCATCHSTMT
+#  define OBJCATCATCHSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCATCATCHSTMT(ObjCAtCatchStmt, Stmt)
+#undef OBJCATCATCHSTMT
+
+#ifndef OBJCATFINALLYSTMT
+#  define OBJCATFINALLYSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCATFINALLYSTMT(ObjCAtFinallyStmt, Stmt)
+#undef OBJCATFINALLYSTMT
+
+#ifndef OBJCATSYNCHRONIZEDSTMT
+#  define OBJCATSYNCHRONIZEDSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCATSYNCHRONIZEDSTMT(ObjCAtSynchronizedStmt, Stmt)
+#undef OBJCATSYNCHRONIZEDSTMT
+
+#ifndef OBJCATTHROWSTMT
+#  define OBJCATTHROWSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCATTHROWSTMT(ObjCAtThrowStmt, Stmt)
+#undef OBJCATTHROWSTMT
+
+#ifndef OBJCATTRYSTMT
+#  define OBJCATTRYSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCATTRYSTMT(ObjCAtTryStmt, Stmt)
+#undef OBJCATTRYSTMT
+
+#ifndef OBJCAUTORELEASEPOOLSTMT
+#  define OBJCAUTORELEASEPOOLSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCAUTORELEASEPOOLSTMT(ObjCAutoreleasePoolStmt, Stmt)
+#undef OBJCAUTORELEASEPOOLSTMT
+
+#ifndef OBJCFORCOLLECTIONSTMT
+#  define OBJCFORCOLLECTIONSTMT(Type, Base) STMT(Type, Base)
+#endif
+OBJCFORCOLLECTIONSTMT(ObjCForCollectionStmt, Stmt)
+#undef OBJCFORCOLLECTIONSTMT
+
+#ifndef RETURNSTMT
+#  define RETURNSTMT(Type, Base) STMT(Type, Base)
+#endif
+RETURNSTMT(ReturnStmt, Stmt)
+#undef RETURNSTMT
+
+#ifndef SEHEXCEPTSTMT
+#  define SEHEXCEPTSTMT(Type, Base) STMT(Type, Base)
+#endif
+SEHEXCEPTSTMT(SEHExceptStmt, Stmt)
+#undef SEHEXCEPTSTMT
+
+#ifndef SEHFINALLYSTMT
+#  define SEHFINALLYSTMT(Type, Base) STMT(Type, Base)
+#endif
+SEHFINALLYSTMT(SEHFinallyStmt, Stmt)
+#undef SEHFINALLYSTMT
+
+#ifndef SEHLEAVESTMT
+#  define SEHLEAVESTMT(Type, Base) STMT(Type, Base)
+#endif
+SEHLEAVESTMT(SEHLeaveStmt, Stmt)
+#undef SEHLEAVESTMT
+
+#ifndef SEHTRYSTMT
+#  define SEHTRYSTMT(Type, Base) STMT(Type, Base)
+#endif
+SEHTRYSTMT(SEHTryStmt, Stmt)
+#undef SEHTRYSTMT
+
+#ifndef SWITCHCASE
+#  define SWITCHCASE(Type, Base) STMT(Type, Base)
+#endif
+ABSTRACT_STMT(SWITCHCASE(SwitchCase, Stmt))
+#ifndef CASESTMT
+#  define CASESTMT(Type, Base) SWITCHCASE(Type, Base)
+#endif
+CASESTMT(CaseStmt, SwitchCase)
+#undef CASESTMT
+
+#ifndef DEFAULTSTMT
+#  define DEFAULTSTMT(Type, Base) SWITCHCASE(Type, Base)
+#endif
+DEFAULTSTMT(DefaultStmt, SwitchCase)
+#undef DEFAULTSTMT
+
+STMT_RANGE(SwitchCase, CaseStmt, DefaultStmt)
+
+#undef SWITCHCASE
+
+#ifndef SWITCHSTMT
+#  define SWITCHSTMT(Type, Base) STMT(Type, Base)
+#endif
+SWITCHSTMT(SwitchStmt, Stmt)
+#undef SWITCHSTMT
+
+#ifndef WHILESTMT
+#  define WHILESTMT(Type, Base) STMT(Type, Base)
+#endif
+WHILESTMT(WhileStmt, Stmt)
+#undef WHILESTMT
+
+LAST_STMT_RANGE(Stmt, GCCAsmStmt, WhileStmt)
+
+#undef STMT
+#undef STMT_RANGE
+#undef LAST_STMT_RANGE
+#undef ABSTRACT_STMT
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/AttrHasAttributeImpl.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/AttrHasAttributeImpl.inc
new file mode 100644
index 0000000..764a0c0
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/AttrHasAttributeImpl.inc
@@ -0,0 +1,504 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Code to implement the __has_attribute logic                                *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+const llvm::Triple &T = Target.getTriple();
+switch (Syntax) {
+case AttrSyntax::GNU:
+  return llvm::StringSwitch<int>(Name)
+    .Case("amdgpu_flat_work_group_size", 1)
+    .Case("amdgpu_num_sgpr", 1)
+    .Case("amdgpu_num_vgpr", 1)
+    .Case("amdgpu_waves_per_eu", 1)
+    .Case("interrupt", (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0)
+    .Case("interrupt", (T.getArch() == llvm::Triple::avr) ? 1 : 0)
+    .Case("signal", (T.getArch() == llvm::Triple::avr) ? 1 : 0)
+    .Case("abi_tag", 1)
+    .Case("acquire_capability", 1)
+    .Case("acquire_shared_capability", 1)
+    .Case("exclusive_lock_function", 1)
+    .Case("shared_lock_function", 1)
+    .Case("acquire_capability", 1)
+    .Case("acquire_shared_capability", 1)
+    .Case("exclusive_lock_function", 1)
+    .Case("shared_lock_function", 1)
+    .Case("acquire_capability", 1)
+    .Case("acquire_shared_capability", 1)
+    .Case("exclusive_lock_function", 1)
+    .Case("shared_lock_function", 1)
+    .Case("acquire_capability", 1)
+    .Case("acquire_shared_capability", 1)
+    .Case("exclusive_lock_function", 1)
+    .Case("shared_lock_function", 1)
+    .Case("acquired_after", 1)
+    .Case("acquired_before", 1)
+    .Case("address_space", 1)
+    .Case("alias", 1)
+    .Case("align_value", 1)
+    .Case("aligned", 1)
+    .Case("alloc_align", 1)
+    .Case("alloc_size", 1)
+    .Case("always_inline", 1)
+    .Case("analyzer_noreturn", 1)
+    .Case("annotate", 1)
+    .Case("interrupt", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
+    .Case("objc_arc_weak_reference_unavailable", 1)
+    .Case("argument_with_type_tag", 1)
+    .Case("pointer_with_type_tag", 1)
+    .Case("argument_with_type_tag", 1)
+    .Case("pointer_with_type_tag", 1)
+    .Case("assert_capability", 1)
+    .Case("assert_shared_capability", 1)
+    .Case("assert_capability", 1)
+    .Case("assert_shared_capability", 1)
+    .Case("assert_exclusive_lock", 1)
+    .Case("assert_shared_lock", 1)
+    .Case("assume_aligned", 1)
+    .Case("availability", 1)
+    .Case("blocks", 1)
+    .Case("bounded", 1)
+    .Case("cdecl", 1)
+    .Case("cf_audited_transfer", 1)
+    .Case("cf_consumed", 1)
+    .Case("cf_returns_not_retained", 1)
+    .Case("cf_returns_retained", 1)
+    .Case("cf_unknown_transfer", 1)
+    .Case("constant", 1)
+    .Case("cudart_builtin", 1)
+    .Case("device", 1)
+    .Case("device_builtin", 1)
+    .Case("device_builtin_surface_type", 1)
+    .Case("device_builtin_texture_type", 1)
+    .Case("global", 1)
+    .Case("host", 1)
+    .Case("launch_bounds", 1)
+    .Case("shared", 1)
+    .Case("callable_when", 1)
+    .Case("capability", 1)
+    .Case("shared_capability", 1)
+    .Case("capability", 1)
+    .Case("shared_capability", 1)
+    .Case("carries_dependency", 1)
+    .Case("cleanup", 1)
+    .Case("cold", 1)
+    .Case("common", 1)
+    .Case("const", 1)
+    .Case("__const", 1)
+    .Case("const", 1)
+    .Case("__const", 1)
+    .Case("constructor", 1)
+    .Case("consumable", 1)
+    .Case("consumable_auto_cast_state", 1)
+    .Case("consumable_set_state_on_read", 1)
+    .Case("convergent", 1)
+    .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
+    .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
+    .Case("deprecated", 1)
+    .Case("destructor", 1)
+    .Case("diagnose_if", 1)
+    .Case("disable_tail_calls", 1)
+    .Case("enable_if", 1)
+    .Case("enum_extensibility", 1)
+    .Case("exclusive_trylock_function", 1)
+    .Case("ext_vector_type", 1)
+    .Case("external_source_symbol", 1)
+    .Case("fastcall", 1)
+    .Case("flag_enum", 1)
+    .Case("flatten", 1)
+    .Case("format", 1)
+    .Case("format_arg", 1)
+    .Case("gnu_inline", 1)
+    .Case("guarded_by", 1)
+    .Case("guarded_var", 1)
+    .Case("hot", 1)
+    .Case("ibaction", 1)
+    .Case("iboutlet", 1)
+    .Case("iboutletcollection", 1)
+    .Case("ifunc", 1)
+    .Case("init_priority", 1)
+    .Case("intel_ocl_bicc", 1)
+    .Case("internal_linkage", 1)
+    .Case("lock_returned", 1)
+    .Case("lockable", 1)
+    .Case("locks_excluded", 1)
+    .Case("ms_abi", 1)
+    .Case("interrupt", (T.getArch() == llvm::Triple::msp430) ? 1 : 0)
+    .Case("ms_struct", 1)
+    .Case("may_alias", 1)
+    .Case("minsize", 1)
+    .Case("mips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
+    .Case("interrupt", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
+    .Case("mode", 1)
+    .Case("ns_consumed", 1)
+    .Case("ns_consumes_self", 1)
+    .Case("ns_returns_autoreleased", 1)
+    .Case("ns_returns_not_retained", 1)
+    .Case("ns_returns_retained", 1)
+    .Case("naked", 1)
+    .Case("neon_polyvector_type", 1)
+    .Case("neon_vector_type", 1)
+    .Case("nocommon", 1)
+    .Case("nodebug", 1)
+    .Case("noduplicate", 1)
+    .Case("noinline", 1)
+    .Case("no_instrument_function", 1)
+    .Case("nomips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
+    .Case("noreturn", 1)
+    .Case("no_sanitize", 1)
+    .Case("no_address_safety_analysis", 1)
+    .Case("no_sanitize_address", 1)
+    .Case("no_sanitize_thread", 1)
+    .Case("no_sanitize_memory", 1)
+    .Case("no_address_safety_analysis", 1)
+    .Case("no_sanitize_address", 1)
+    .Case("no_sanitize_thread", 1)
+    .Case("no_sanitize_memory", 1)
+    .Case("no_address_safety_analysis", 1)
+    .Case("no_sanitize_address", 1)
+    .Case("no_sanitize_thread", 1)
+    .Case("no_sanitize_memory", 1)
+    .Case("no_address_safety_analysis", 1)
+    .Case("no_sanitize_address", 1)
+    .Case("no_sanitize_thread", 1)
+    .Case("no_sanitize_memory", 1)
+    .Case("no_split_stack", 1)
+    .Case("no_thread_safety_analysis", 1)
+    .Case("nothrow", 1)
+    .Case("nonnull", 1)
+    .Case("not_tail_called", 1)
+    .Case("nv_weak", 1)
+    .Case("objc_boxable", 1)
+    .Case("objc_bridge", 1)
+    .Case("objc_bridge_mutable", 1)
+    .Case("objc_bridge_related", 1)
+    .Case("objc_designated_initializer", 1)
+    .Case("objc_exception", 1)
+    .Case("objc_protocol_requires_explicit_implementation", 1)
+    .Case("objc_gc", 1)
+    .Case("objc_independent_class", 1)
+    .Case("objc_method_family", 1)
+    .Case("NSObject", 1)
+    .Case("objc_ownership", 1)
+    .Case("objc_precise_lifetime", 1)
+    .Case("objc_requires_property_definitions", 1)
+    .Case("objc_requires_super", 1)
+    .Case("objc_returns_inner_pointer", 1)
+    .Case("objc_root_class", 1)
+    .Case("objc_runtime_name", 1)
+    .Case("objc_runtime_visible", 1)
+    .Case("objc_subclassing_restricted", 1)
+    .Case("nosvm", 1)
+    .Case("opencl_unroll_hint", 1)
+    .Case("optnone", 1)
+    .Case("overloadable", 1)
+    .Case("ownership_holds", 1)
+    .Case("ownership_returns", 1)
+    .Case("ownership_takes", 1)
+    .Case("ownership_holds", 1)
+    .Case("ownership_returns", 1)
+    .Case("ownership_takes", 1)
+    .Case("ownership_holds", 1)
+    .Case("ownership_returns", 1)
+    .Case("ownership_takes", 1)
+    .Case("packed", 1)
+    .Case("param_typestate", 1)
+    .Case("pascal", 1)
+    .Case("pass_object_size", 1)
+    .Case("pcs", 1)
+    .Case("preserve_all", 1)
+    .Case("preserve_most", 1)
+    .Case("pt_guarded_by", 1)
+    .Case("pt_guarded_var", 1)
+    .Case("pure", 1)
+    .Case("regcall", 1)
+    .Case("regparm", 1)
+    .Case("release_capability", 1)
+    .Case("release_shared_capability", 1)
+    .Case("release_generic_capability", 1)
+    .Case("unlock_function", 1)
+    .Case("release_capability", 1)
+    .Case("release_shared_capability", 1)
+    .Case("release_generic_capability", 1)
+    .Case("unlock_function", 1)
+    .Case("release_capability", 1)
+    .Case("release_shared_capability", 1)
+    .Case("release_generic_capability", 1)
+    .Case("unlock_function", 1)
+    .Case("release_capability", 1)
+    .Case("release_shared_capability", 1)
+    .Case("release_generic_capability", 1)
+    .Case("unlock_function", 1)
+    .Case("kernel", 1)
+    .Case("reqd_work_group_size", 1)
+    .Case("require_constant_initialization", 1)
+    .Case("requires_capability", 1)
+    .Case("exclusive_locks_required", 1)
+    .Case("requires_shared_capability", 1)
+    .Case("shared_locks_required", 1)
+    .Case("requires_capability", 1)
+    .Case("exclusive_locks_required", 1)
+    .Case("requires_shared_capability", 1)
+    .Case("shared_locks_required", 1)
+    .Case("requires_capability", 1)
+    .Case("exclusive_locks_required", 1)
+    .Case("requires_shared_capability", 1)
+    .Case("shared_locks_required", 1)
+    .Case("requires_capability", 1)
+    .Case("exclusive_locks_required", 1)
+    .Case("requires_shared_capability", 1)
+    .Case("shared_locks_required", 1)
+    .Case("malloc", 1)
+    .Case("return_typestate", 1)
+    .Case("returns_nonnull", 1)
+    .Case("returns_twice", 1)
+    .Case("scoped_lockable", 1)
+    .Case("section", 1)
+    .Case("sentinel", 1)
+    .Case("set_typestate", 1)
+    .Case("shared_trylock_function", 1)
+    .Case("stdcall", 1)
+    .Case("swiftcall", 1)
+    .Case("swift_context", 1)
+    .Case("swift_error_result", 1)
+    .Case("swift_indirect_result", 1)
+    .Case("sysv_abi", 1)
+    .Case("tls_model", 1)
+    .Case("target", 1)
+    .Case("test_typestate", 1)
+    .Case("thiscall", 1)
+    .Case("transparent_union", 1)
+    .Case("try_acquire_capability", 1)
+    .Case("try_acquire_shared_capability", 1)
+    .Case("try_acquire_capability", 1)
+    .Case("try_acquire_shared_capability", 1)
+    .Case("type_tag_for_datatype", 1)
+    .Case("type_visibility", 1)
+    .Case("unavailable", 1)
+    .Case("unused", 1)
+    .Case("used", 1)
+    .Case("vecreturn", 1)
+    .Case("vec_type_hint", 1)
+    .Case("vectorcall", 1)
+    .Case("vector_size", 1)
+    .Case("visibility", 1)
+    .Case("warn_unused", 1)
+    .Case("warn_unused_result", 1)
+    .Case("weak", 1)
+    .Case("weak_import", 1)
+    .Case("weakref", 1)
+    .Case("work_group_size_hint", 1)
+    .Case("force_align_arg_pointer", (T.getArch() == llvm::Triple::x86) ? 1 : 0)
+    .Case("xray_always_instrument", 1)
+    .Case("xray_never_instrument", 1)
+    .Case("xray_always_instrument", 1)
+    .Case("xray_never_instrument", 1)
+    .Case("xray_log_args", 1)
+    .Default(0);
+case AttrSyntax::Declspec:
+  return llvm::StringSwitch<int>(Name)
+    .Case("align", 1)
+    .Case("__constant__", 1)
+    .Case("__cudart_builtin__", 1)
+    .Case("__device__", 1)
+    .Case("__device_builtin__", 1)
+    .Case("__device_builtin_surface_type__", 1)
+    .Case("__device_builtin_texture_type__", 1)
+    .Case("__global__", 1)
+    .Case("__host__", 1)
+    .Case("__launch_bounds__", 1)
+    .Case("__shared__", 1)
+    .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
+    .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
+    .Case("deprecated", 1)
+    .Case("empty_bases", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
+    .Case("layout_version", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
+    .Case("novtable", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
+    .Case("naked", 1)
+    .Case("noalias", 1)
+    .Case("noinline", 1)
+    .Case("noreturn", 1)
+    .Case("nothrow", 1)
+    .Case("restrict", 1)
+    .Case("allocate", 1)
+    .Case("selectany", 1)
+    .Case("thread", 1)
+    .Case("uuid", 1)
+    .Case("property", 1)
+    .Default(0);
+case AttrSyntax::Microsoft:
+  return llvm::StringSwitch<int>(Name)
+    .Case("uuid", 1)
+    .Default(0);
+case AttrSyntax::Pragma:
+  return llvm::StringSwitch<int>(Name)
+    .Case("init_seg", 1)
+    .Case("loop", 1)
+    .Case("unroll", 1)
+    .Case("nounroll", 1)
+    .Case("loop", 1)
+    .Case("unroll", 1)
+    .Case("nounroll", 1)
+    .Case("loop", 1)
+    .Case("unroll", 1)
+    .Case("nounroll", 1)
+    .Case("declare simd", 1)
+    .Case("declare target", 1)
+    .Default(0);
+case AttrSyntax::CXX: {
+if (!Scope || Scope->getName() == "") {
+  return llvm::StringSwitch<int>(Name)
+    .Case("noreturn", LangOpts.CPlusPlus11 ? 200809 : 0)
+    .Case("carries_dependency", LangOpts.CPlusPlus11 ? 200809 : 0)
+    .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
+    .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
+    .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("maybe_unused", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("nodiscard", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Default(0);
+} else if (Scope->getName() == "clang") {
+  return llvm::StringSwitch<int>(Name)
+    .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("convergent", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("disable_tail_calls", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("enum_extensibility", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("external_source_symbol", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("internal_linkage", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("lto_visibility_public", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("noduplicate", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("not_tail_called", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("optnone", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("require_constant_initialization", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("type_visibility", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("xray_log_args", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Default(0);
+} else if (Scope->getName() == "gnu") {
+  return llvm::StringSwitch<int>(Name)
+    .Case("abi_tag", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("alias", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("aligned", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("alloc_align", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("alloc_size", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("always_inline", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("assume_aligned", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("cdecl", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("cleanup", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("cold", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("common", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("constructor", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
+    .Case("destructor", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("fastcall", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("flatten", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("format", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("format_arg", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("gnu_inline", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("hot", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("ifunc", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("ms_abi", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("ms_struct", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("may_alias", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("mips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("mode", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("naked", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("nocommon", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("nodebug", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("noinline", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_instrument_function", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("nomips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("noreturn", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("no_split_stack", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("nothrow", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("packed", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("pcs", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("pure", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("regcall", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("regparm", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("malloc", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("returns_nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("returns_twice", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("section", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("sentinel", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("stdcall", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("swiftcall", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("swift_context", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("swift_error_result", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("swift_indirect_result", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("sysv_abi", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("tls_model", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("target", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("thiscall", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("transparent_union", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("used", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("vector_size", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("visibility", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
+    .Case("weak", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Case("weakref", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Default(0);
+} else if (Scope->getName() == "gsl") {
+  return llvm::StringSwitch<int>(Name)
+    .Case("suppress", LangOpts.CPlusPlus11 ? 1 : 0)
+    .Default(0);
+}
+}
+}
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/AttrList.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/AttrList.inc
new file mode 100644
index 0000000..f1bcf5e
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/AttrList.inc
@@ -0,0 +1,259 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* List of all attributes that Clang recognizes                               *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef STMT_ATTR
+#define STMT_ATTR(NAME) ATTR(NAME)
+#endif
+
+#ifndef INHERITABLE_ATTR
+#define INHERITABLE_ATTR(NAME) ATTR(NAME)
+#endif
+
+#ifndef INHERITABLE_PARAM_ATTR
+#define INHERITABLE_PARAM_ATTR(NAME) INHERITABLE_ATTR(NAME)
+#endif
+
+#ifndef PARAMETER_ABI_ATTR
+#define PARAMETER_ABI_ATTR(NAME) INHERITABLE_PARAM_ATTR(NAME)
+#endif
+
+#ifndef PRAGMA_SPELLING_ATTR
+#define PRAGMA_SPELLING_ATTR(NAME) 
+#endif
+
+STMT_ATTR(FallThrough)
+STMT_ATTR(Suppress)
+PARAMETER_ABI_ATTR(SwiftContext)
+PARAMETER_ABI_ATTR(SwiftErrorResult)
+PARAMETER_ABI_ATTR(SwiftIndirectResult)
+INHERITABLE_PARAM_ATTR(Annotate)
+INHERITABLE_PARAM_ATTR(CFConsumed)
+INHERITABLE_PARAM_ATTR(CarriesDependency)
+INHERITABLE_PARAM_ATTR(NSConsumed)
+INHERITABLE_PARAM_ATTR(NonNull)
+INHERITABLE_PARAM_ATTR(PassObjectSize)
+INHERITABLE_ATTR(AMDGPUFlatWorkGroupSize)
+INHERITABLE_ATTR(AMDGPUNumSGPR)
+INHERITABLE_ATTR(AMDGPUNumVGPR)
+INHERITABLE_ATTR(AMDGPUWavesPerEU)
+INHERITABLE_ATTR(ARMInterrupt)
+INHERITABLE_ATTR(AVRInterrupt)
+INHERITABLE_ATTR(AVRSignal)
+INHERITABLE_ATTR(AcquireCapability)
+INHERITABLE_ATTR(AcquiredAfter)
+INHERITABLE_ATTR(AcquiredBefore)
+INHERITABLE_ATTR(AlignMac68k)
+INHERITABLE_ATTR(Aligned)
+INHERITABLE_ATTR(AllocAlign)
+INHERITABLE_ATTR(AllocSize)
+INHERITABLE_ATTR(AlwaysInline)
+INHERITABLE_ATTR(AnalyzerNoReturn)
+INHERITABLE_ATTR(AnyX86Interrupt)
+INHERITABLE_ATTR(ArcWeakrefUnavailable)
+INHERITABLE_ATTR(ArgumentWithTypeTag)
+INHERITABLE_ATTR(AsmLabel)
+INHERITABLE_ATTR(AssertCapability)
+INHERITABLE_ATTR(AssertExclusiveLock)
+INHERITABLE_ATTR(AssertSharedLock)
+INHERITABLE_ATTR(AssumeAligned)
+INHERITABLE_ATTR(Availability)
+INHERITABLE_ATTR(Blocks)
+INHERITABLE_ATTR(C11NoReturn)
+INHERITABLE_ATTR(CDecl)
+INHERITABLE_ATTR(CFAuditedTransfer)
+INHERITABLE_ATTR(CFReturnsNotRetained)
+INHERITABLE_ATTR(CFReturnsRetained)
+INHERITABLE_ATTR(CFUnknownTransfer)
+INHERITABLE_ATTR(CUDAConstant)
+INHERITABLE_ATTR(CUDADevice)
+INHERITABLE_ATTR(CUDAGlobal)
+INHERITABLE_ATTR(CUDAHost)
+INHERITABLE_ATTR(CUDAInvalidTarget)
+INHERITABLE_ATTR(CUDALaunchBounds)
+INHERITABLE_ATTR(CUDAShared)
+INHERITABLE_ATTR(CXX11NoReturn)
+INHERITABLE_ATTR(CallableWhen)
+INHERITABLE_ATTR(Capability)
+INHERITABLE_ATTR(CapturedRecord)
+INHERITABLE_ATTR(Cleanup)
+INHERITABLE_ATTR(Cold)
+INHERITABLE_ATTR(Common)
+INHERITABLE_ATTR(Const)
+INHERITABLE_ATTR(Constructor)
+INHERITABLE_ATTR(Consumable)
+INHERITABLE_ATTR(ConsumableAutoCast)
+INHERITABLE_ATTR(ConsumableSetOnRead)
+INHERITABLE_ATTR(Convergent)
+INHERITABLE_ATTR(DLLExport)
+INHERITABLE_ATTR(DLLImport)
+INHERITABLE_ATTR(Deprecated)
+INHERITABLE_ATTR(Destructor)
+INHERITABLE_ATTR(DiagnoseIf)
+INHERITABLE_ATTR(DisableTailCalls)
+INHERITABLE_ATTR(EmptyBases)
+INHERITABLE_ATTR(EnableIf)
+INHERITABLE_ATTR(EnumExtensibility)
+INHERITABLE_ATTR(ExclusiveTrylockFunction)
+INHERITABLE_ATTR(ExternalSourceSymbol)
+INHERITABLE_ATTR(FastCall)
+INHERITABLE_ATTR(Final)
+INHERITABLE_ATTR(FlagEnum)
+INHERITABLE_ATTR(Flatten)
+INHERITABLE_ATTR(Format)
+INHERITABLE_ATTR(FormatArg)
+INHERITABLE_ATTR(GNUInline)
+INHERITABLE_ATTR(GuardedBy)
+INHERITABLE_ATTR(GuardedVar)
+INHERITABLE_ATTR(Hot)
+INHERITABLE_ATTR(IBAction)
+INHERITABLE_ATTR(IBOutlet)
+INHERITABLE_ATTR(IBOutletCollection)
+INHERITABLE_ATTR(InitPriority)
+INHERITABLE_ATTR(IntelOclBicc)
+INHERITABLE_ATTR(InternalLinkage)
+INHERITABLE_ATTR(LTOVisibilityPublic)
+INHERITABLE_ATTR(LayoutVersion)
+INHERITABLE_ATTR(LockReturned)
+INHERITABLE_ATTR(LocksExcluded)
+INHERITABLE_ATTR(MSABI)
+INHERITABLE_ATTR(MSInheritance)
+INHERITABLE_ATTR(MSNoVTable)
+INHERITABLE_ATTR(MSP430Interrupt)
+INHERITABLE_ATTR(MSStruct)
+INHERITABLE_ATTR(MSVtorDisp)
+INHERITABLE_ATTR(MaxFieldAlignment)
+INHERITABLE_ATTR(MayAlias)
+INHERITABLE_ATTR(MinSize)
+INHERITABLE_ATTR(Mips16)
+INHERITABLE_ATTR(MipsInterrupt)
+INHERITABLE_ATTR(NSConsumesSelf)
+INHERITABLE_ATTR(NSReturnsAutoreleased)
+INHERITABLE_ATTR(NSReturnsNotRetained)
+INHERITABLE_ATTR(NSReturnsRetained)
+INHERITABLE_ATTR(Naked)
+INHERITABLE_ATTR(NoAlias)
+INHERITABLE_ATTR(NoCommon)
+INHERITABLE_ATTR(NoDebug)
+INHERITABLE_ATTR(NoDuplicate)
+INHERITABLE_ATTR(NoInline)
+INHERITABLE_ATTR(NoInstrumentFunction)
+INHERITABLE_ATTR(NoMips16)
+INHERITABLE_ATTR(NoReturn)
+INHERITABLE_ATTR(NoSanitize)
+INHERITABLE_ATTR(NoSplitStack)
+INHERITABLE_ATTR(NoThreadSafetyAnalysis)
+INHERITABLE_ATTR(NoThrow)
+INHERITABLE_ATTR(NotTailCalled)
+INHERITABLE_ATTR(OMPCaptureNoInit)
+INHERITABLE_ATTR(OMPThreadPrivateDecl)
+INHERITABLE_ATTR(ObjCBridge)
+INHERITABLE_ATTR(ObjCBridgeMutable)
+INHERITABLE_ATTR(ObjCBridgeRelated)
+INHERITABLE_ATTR(ObjCException)
+INHERITABLE_ATTR(ObjCExplicitProtocolImpl)
+INHERITABLE_ATTR(ObjCIndependentClass)
+INHERITABLE_ATTR(ObjCMethodFamily)
+INHERITABLE_ATTR(ObjCNSObject)
+INHERITABLE_ATTR(ObjCPreciseLifetime)
+INHERITABLE_ATTR(ObjCRequiresPropertyDefs)
+INHERITABLE_ATTR(ObjCRequiresSuper)
+INHERITABLE_ATTR(ObjCReturnsInnerPointer)
+INHERITABLE_ATTR(ObjCRootClass)
+INHERITABLE_ATTR(ObjCSubclassingRestricted)
+INHERITABLE_ATTR(OpenCLKernel)
+INHERITABLE_ATTR(OpenCLUnrollHint)
+INHERITABLE_ATTR(OptimizeNone)
+INHERITABLE_ATTR(Override)
+INHERITABLE_ATTR(Ownership)
+INHERITABLE_ATTR(Packed)
+INHERITABLE_ATTR(ParamTypestate)
+INHERITABLE_ATTR(Pascal)
+INHERITABLE_ATTR(Pcs)
+INHERITABLE_ATTR(PreserveAll)
+INHERITABLE_ATTR(PreserveMost)
+INHERITABLE_ATTR(PtGuardedBy)
+INHERITABLE_ATTR(PtGuardedVar)
+INHERITABLE_ATTR(Pure)
+INHERITABLE_ATTR(RegCall)
+INHERITABLE_ATTR(ReleaseCapability)
+INHERITABLE_ATTR(ReqdWorkGroupSize)
+INHERITABLE_ATTR(RequireConstantInit)
+INHERITABLE_ATTR(RequiresCapability)
+INHERITABLE_ATTR(Restrict)
+INHERITABLE_ATTR(ReturnTypestate)
+INHERITABLE_ATTR(ReturnsNonNull)
+INHERITABLE_ATTR(ReturnsTwice)
+INHERITABLE_ATTR(ScopedLockable)
+INHERITABLE_ATTR(Section)
+INHERITABLE_ATTR(SelectAny)
+INHERITABLE_ATTR(Sentinel)
+INHERITABLE_ATTR(SetTypestate)
+INHERITABLE_ATTR(SharedTrylockFunction)
+INHERITABLE_ATTR(StdCall)
+INHERITABLE_ATTR(SwiftCall)
+INHERITABLE_ATTR(SysVABI)
+INHERITABLE_ATTR(TLSModel)
+INHERITABLE_ATTR(Target)
+INHERITABLE_ATTR(TestTypestate)
+INHERITABLE_ATTR(ThisCall)
+INHERITABLE_ATTR(TransparentUnion)
+INHERITABLE_ATTR(TryAcquireCapability)
+INHERITABLE_ATTR(TypeTagForDatatype)
+INHERITABLE_ATTR(TypeVisibility)
+INHERITABLE_ATTR(Unavailable)
+INHERITABLE_ATTR(Unused)
+INHERITABLE_ATTR(Used)
+INHERITABLE_ATTR(Uuid)
+INHERITABLE_ATTR(VecReturn)
+INHERITABLE_ATTR(VecTypeHint)
+INHERITABLE_ATTR(VectorCall)
+INHERITABLE_ATTR(Visibility)
+INHERITABLE_ATTR(WarnUnused)
+INHERITABLE_ATTR(WarnUnusedResult)
+INHERITABLE_ATTR(Weak)
+INHERITABLE_ATTR(WeakImport)
+INHERITABLE_ATTR(WeakRef)
+INHERITABLE_ATTR(WorkGroupSizeHint)
+INHERITABLE_ATTR(X86ForceAlignArgPointer)
+INHERITABLE_ATTR(XRayInstrument)
+INHERITABLE_ATTR(XRayLogArgs)
+ATTR(AbiTag)
+ATTR(Alias)
+ATTR(AlignValue)
+ATTR(IFunc)
+ATTR(InitSeg)
+ATTR(LoopHint)
+ATTR(Mode)
+ATTR(OMPDeclareSimdDecl)
+ATTR(OMPDeclareTargetDecl)
+ATTR(ObjCBoxable)
+ATTR(ObjCDesignatedInitializer)
+ATTR(ObjCRuntimeName)
+ATTR(ObjCRuntimeVisible)
+ATTR(OpenCLAccess)
+ATTR(Overloadable)
+ATTR(RenderScriptKernel)
+ATTR(Thread)
+PRAGMA_SPELLING_ATTR(InitSeg)
+PRAGMA_SPELLING_ATTR(LoopHint)
+PRAGMA_SPELLING_ATTR(OMPDeclareSimdDecl)
+PRAGMA_SPELLING_ATTR(OMPDeclareTargetDecl)
+#ifdef ATTR_RANGE
+ATTR_RANGE(Attr, FallThrough, Thread)
+ATTR_RANGE(StmtAttr, FallThrough, Suppress)
+ATTR_RANGE(InheritableAttr, SwiftContext, XRayLogArgs)
+ATTR_RANGE(InheritableParamAttr, SwiftContext, PassObjectSize)
+ATTR_RANGE(ParameterABIAttr, SwiftContext, SwiftIndirectResult)
+#undef ATTR_RANGE
+#endif
+#undef ATTR
+#undef STMT_ATTR
+#undef INHERITABLE_ATTR
+#undef INHERITABLE_PARAM_ATTR
+#undef PARAMETER_ABI_ATTR
+#undef PRAGMA_SPELLING_ATTR
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticASTKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticASTKinds.inc
new file mode 100644
index 0000000..3173485
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticASTKinds.inc
@@ -0,0 +1,110 @@
+#ifdef ASTSTART
+__ASTSTART = DIAG_START_AST,
+#undef ASTSTART
+#endif
+
+DIAG(err_asm_empty_symbolic_operand_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "empty symbolic operand name in inline assembly string", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_escape, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid %% escape in inline assembly string", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_operand_number, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid operand number in inline asm string", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_unknown_symbolic_operand_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown symbolic operand name in inline assembly string", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_unterminated_symbolic_operand_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "unterminated symbolic operand name in inline assembly string", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_odr_different_num_template_parameters, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter lists have a different number of parameters (%0 vs %1)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_different_template_parameter_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter has different kinds in different translation units", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_field_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "field %0 declared with incompatible types in different translation units (%1 vs. %2)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_function_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "external function %0 declared with incompatible types in different translation units (%1 vs. %2)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_ivar_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable %0 declared with incompatible types in different translation units (%1 vs. %2)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_non_type_parameter_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template parameter declared with incompatible types in different translation units (%0 vs. %1)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_method_num_params_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class|instance}0 method %1 has a different number of parameters in different translation units (%2 vs. %3)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_method_param_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class|instance}0 method %1 has a parameter with a different types in different translation units (%2 vs. %3)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_method_result_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class|instance}0 method %1 has incompatible result types in different translation units (%2 vs. %3)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_method_variadic_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class|instance}0 method %1 is variadic in one translation unit and not variadic in another", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_property_impl_kind_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 is implemented with %select{@synthesize|@dynamic}1 in one translation but %select{@dynamic|@synthesize}1 in another translation unit", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_property_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 declared with incompatible types in different translation units (%1 vs. %2)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_superclass_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "class %0 has incompatible superclasses", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_objc_synthesize_ivar_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 is synthesized to different ivars in different translation units (%1 vs. %2)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_parameter_pack_non_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter kind mismatch; parameter is %select{not a|a}0 parameter pack", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_variable_multiple_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "external variable %0 defined in multiple translation units", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_odr_variable_type_inconsistent, CLASS_ERROR, (unsigned)diag::Severity::Error, "external variable %0 declared with incompatible types in different translation units (%1 vs. %2)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_unsupported_ast_node, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot import unsupported AST node %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_vftable_ambiguous_component, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous vftable component for %0 introduced via covariant thunks; this is an inherent limitation of the ABI", 0, SFINAE_SubstitutionFailure, false, true, 21)
+DIAG(note_constexpr_access_inactive_union_member, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 member %1 of union with %select{active member %3|no active member}2 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_access_null, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 dereferenced null pointer is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_access_past_end, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 dereferenced one-past-the-end pointer is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_access_static_temporary, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 temporary is not allowed in a constant expression outside the expression that created the temporary", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_access_uninit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 object outside its lifetime is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_access_volatile_obj, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 volatile %select{temporary|object %2|member %2}1 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_access_volatile_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 volatile-qualified type %1 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_array_index, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot refer to element %0 of %select{array of %2 element%plural{1:|:s}2|non-array object}1 in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_baa_insufficient_alignment, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{alignment of|offset of the aligned pointer from}0 the base pointee object (%1 %plural{1:byte|:bytes}1) is %select{less than|not a multiple of}0 the asserted %2 %plural{1:byte|:bytes}2", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_baa_value_insufficient_alignment, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "value of the aligned pointer (%0) is not a multiple of the asserted %1 %plural{1:byte|:bytes}1", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_call_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in call to '%0'", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_call_limit_exceeded, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constexpr evaluation hit maximum call limit", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_calls_suppressed, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "(skipping %0 call%s0 in backtrace; use -fconstexpr-backtrace-limit=0 to see all)", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_compare_virtual_mem_ptr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "comparison of pointer to virtual member function %0 has unspecified value", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_conditional_never_const, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "both arms of conditional operator are unable to produce a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_depth_limit_exceeded, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constexpr evaluation exceeded maximum depth of %0 calls", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_float_arithmetic, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "floating point arithmetic produces %select{an infinity|a NaN}0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_inherited_ctor_call_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in implicit initialization for inherited constructor of %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_invalid_cast, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{reinterpret_cast|dynamic_cast|cast that performs the conversions of a reinterpret_cast|cast from %1}0 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_invalid_downcast, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot cast object of dynamic type %0 to type %1", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_invalid_function, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{non-constexpr|undefined}0 %select{function|constructor}1 %2 cannot be used in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_invalid_inhctor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constructor inherited from base class %0 cannot be used in a constant expression; derived class cannot be implicitly initialized", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_large_shift, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "shift count %0 >= width of type %1 (%2 bit%s2)", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_lifetime_ended, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{read of|assignment to|increment of|decrement of}0 %select{temporary|variable}1 whose lifetime has ended", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_lshift_discards, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "signed left shift discards bits", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_lshift_of_negative, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "left shift of negative value %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_ltor_mutable, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "read of mutable member %0 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_ltor_non_const_int, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "read of non-const variable %0 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_ltor_non_constexpr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "read of non-constexpr variable %0 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_modify_const_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "modification of object of const-qualified type %0 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_modify_global, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "a constant expression cannot modify an object that is visible outside that expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_negative_shift, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "negative shift count %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_no_return, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "control reached end of constexpr function", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_non_global, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{pointer|reference}0 to %select{|subobject of }1%select{temporary|%3}2 is not a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_nonliteral, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "non-literal type %0 cannot be used in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_null_subobject, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot %select{access base class of|access derived class of|access field of|access array element of|perform pointer arithmetic on|call member function on|access real component of|access imaginary component of}0 null pointer", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_overflow, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "value %0 is outside the range of representable values of type %1", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_past_end, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "dereferenced pointer past the end of %select{|subobject of }0%select{temporary|%2}1 is not a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_past_end_subobject, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot %select{access base class of|access derived class of|access field of|access array element of|ERROR|call member function on|access real component of|access imaginary component of}0 pointer past the end of object", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_pointer_comparison_base_classes, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "comparison of addresses of subobjects of different base classes has unspecified value", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_pointer_comparison_base_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "comparison of address of base class subobject %0 of class %1 to field %2 has unspecified value", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_pointer_comparison_differing_access, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "comparison of address of fields %0 and %2 of %4 with differing access specifiers (%1 vs %3) has unspecified value", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_pointer_subtraction_not_same_array, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "subtracted pointers are not elements of the same array", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_pointer_subtraction_zero_size, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "subtraction of pointers to type %0 of zero size", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_step_limit_exceeded, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constexpr evaluation hit maximum step limit; possible infinite loop?", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_stmt_expr_unsupported, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "this use of statement expressions is not supported in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_temporary_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "temporary created here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_this, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{|implicit }0use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_typeid_polymorphic, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "typeid applied to expression of polymorphic type %0 is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_uninitialized, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{|sub}0object of type %1 is not initialized", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_use_uninit_reference, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use of reference outside its lifetime is not allowed in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_var_init_non_constant, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "initializer of %0 is not a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_virtual_base, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot construct object of type %0 with virtual base class in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_virtual_call, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot evaluate virtual function call in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_constexpr_void_comparison, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "comparison between unequal pointers to void has unspecified result", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_covariant_thunk, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "covariant thunk required by %0", 0, SFINAE_Suppress, false, false, 21)
+DIAG(note_expr_divide_by_zero, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "division by zero", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_base, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class has base type %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_bit_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "bit-field %0 with type %1 and length %2 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_defined_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "also defined here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_enumerator, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "enumerator %0 with value %1 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "field %0 has type %1 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_missing_base, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "no corresponding base class here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_missing_enumerator, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "no corresponding enumerator here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_missing_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "no corresponding field here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_not_bit_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "field %0 is not a bit-field", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_number_of_bases, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class has %0 base %plural{1:class|:classes}0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_objc_method_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{class|instance}0 method %1 also declared here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_objc_missing_superclass, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "no corresponding superclass here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_objc_property_impl_kind, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "property %0 is implemented with %select{@synthesize|@dynamic}1 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_objc_superclass, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "inherits from superclass %0 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_objc_synthesize_ivar_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "property is synthesized to ivar %0 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_parameter_pack_non_pack, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{parameter|parameter pack}0 declared here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_tag_kind_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is a %select{struct|interface|union|class|enum}1 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_template_parameter_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template parameter declared here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_template_parameter_list, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template parameter list also declared here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_value_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared here with type %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_odr_virtual_base, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{non-virtual|virtual}0 derivation here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_unimplemented_constexpr_lambda_feature_ast, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "unimplemented constexpr lambda feature: %0 (coming soon!)", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_integer_constant_overflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "overflow in expression; result is %0 with type %1", 294, SFINAE_Suppress, false, false, 0)
+DIAG(warn_odr_tag_type_inconsistent, CLASS_WARNING, (unsigned)diag::Severity::Warning, "type %0 has incompatible definitions in different translation units", 444, SFINAE_Suppress, false, false, 0)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc
new file mode 100644
index 0000000..a6ff0e2
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc
@@ -0,0 +1,5 @@
+#ifdef ANALYSISSTART
+__ANALYSISSTART = DIAG_START_ANALYSIS,
+#undef ANALYSISSTART
+#endif
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticCommentKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticCommentKinds.inc
new file mode 100644
index 0000000..996baaf
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticCommentKinds.inc
@@ -0,0 +1,39 @@
+#ifdef COMMENTSTART
+__COMMENTSTART = DIAG_START_COMMENT,
+#undef COMMENTSTART
+#endif
+
+DIAG(note_add_deprecation_attr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add a deprecation attribute to the declaration to silence this warning", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_block_command_previous, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous command '%select{\\|@}0%1' here", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_block_command_previous_alias, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous command '%select{\\|@}0%1' (an alias of '\\%2') here", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_html_end_tag, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "end tag", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_html_tag_started_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "HTML tag started here", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_param_name_suggestion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean '%0'?", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_param_previous, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous documentation", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_tparam_name_suggestion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean '%0'?", 0, SFINAE_Suppress, false, false, 23)
+DIAG(note_doc_tparam_previous, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous documentation", 0, SFINAE_Suppress, false, false, 23)
+DIAG(warn_correct_comment_command_name, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unknown command tag name '%0'; did you mean '%1'?", 161, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_api_container_decl_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0%select{class|interface|protocol|struct|union}1' command should not be used in a comment attached to a non-%select{class|interface|protocol|struct|union}2 declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_block_command_duplicate, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "duplicated command '%select{\\|@}0%1'", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_block_command_empty_paragraph, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "empty paragraph passed to '%select{\\|@}0%1' command", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_container_decl_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0%select{classdesign|coclass|dependency|helper|helperclass|helps|instancesize|ownership|performance|security|superclass}1' command should not be used in a comment attached to a non-container declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_deprecated_not_sync, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration is marked with '\\deprecated' command but does not have a deprecation attribute", 158, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_function_method_decl_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0%select{function|functiongroup|method|methodgroup|callback}1' command should be used in a comment attached to %select{a function|a function|an Objective-C method|an Objective-C method|a pointer to function}2 declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_html_end_forbidden, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "HTML end tag '%0' is forbidden", 159, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_html_end_unbalanced, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "HTML end tag does not match any start tag", 159, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_html_missing_end_tag, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "HTML tag '%0' requires an end tag", 159, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_html_start_end_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "HTML start tag '%0' closed by '%1'", 159, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_html_start_tag_expected_ident_or_greater, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "HTML start tag prematurely ended, expected attribute name or '>'", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_html_start_tag_expected_quoted_string, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "expected quoted string after equals sign", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_param_duplicate, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "parameter '%0' is already documented", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_param_invalid_direction, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unrecognized parameter passing direction, valid directions are '[in]', '[out]' and '[in,out]'", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_param_not_attached_to_a_function_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0param' command used in a comment that is not attached to a function declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_param_not_found, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "parameter '%0' not found in the function declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_param_spaces_in_direction, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "whitespace is not allowed in parameter passing direction", 160, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_returns_attached_to_a_void_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0%1' command used in a comment that is attached to a %select{function returning void|constructor|destructor|method returning void}2", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_returns_not_attached_to_a_function_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0%1' command used in a comment that is not attached to a function or method declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_tparam_duplicate, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "template parameter '%0' is already documented", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_tparam_not_attached_to_a_template_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0tparam' command used in a comment that is not attached to a template declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_doc_tparam_not_found, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "template parameter '%0' not found in the template declaration", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_unknown_comment_command_name, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unknown command tag name", 161, SFINAE_Suppress, false, false, 23)
+DIAG(warn_verbatim_block_end_without_start, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%select{\\|@}0%1' command does not terminate a verbatim text block", 157, SFINAE_Suppress, false, false, 23)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticCommonKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticCommonKinds.inc
new file mode 100644
index 0000000..e9dbcb4
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticCommonKinds.inc
@@ -0,0 +1,89 @@
+#ifdef COMMONSTART
+__COMMONSTART = DIAG_START_COMMON,
+#undef COMMONSTART
+#endif
+
+DIAG(err_arcmt_nsinvocation_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "NSInvocation's %0 is not safe to be used with an object with ownership other than __unsafe_unretained", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_attribute_not_type_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to types", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_cannot_open_file, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "cannot open file '%0': %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_default_special_members, CLASS_ERROR, (unsigned)diag::Severity::Error, "only special member functions may be defaulted", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_deleted_non_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "only functions can have deleted definitions", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_enum_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumeration cannot be a template", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_after, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %1 after %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_colon_after_setter_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "method name referenced in property setter attribute must end with ':'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_expected_either, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %0 or %1", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_namespace_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected namespace name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_string_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected string literal %select{in %1|for diagnostic message in static_assert|for optional message in 'availability' attribute|for %select{language|source container}1 name in 'external_source_symbol' attribute}0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_file_modified, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%0' modified since it was first processed", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_integer_literal_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "integer literal is too large to be represented in any %select{signed |}0integer type", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_invalid_character_udl, CLASS_ERROR, (unsigned)diag::Severity::Error, "character literal with user-defined suffix cannot be used here", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_numeric_udl, CLASS_ERROR, (unsigned)diag::Severity::Error, "numeric literal with user-defined suffix cannot be used here", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_storage_class_in_func_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid storage class specifier in function declarator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_invalid_string_udl, CLASS_ERROR, (unsigned)diag::Severity::Error, "string literal with user-defined suffix cannot be used here", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_module_build_disabled, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' is needed but has not been provided, and implicit use of module files is disabled", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_cycle, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "cyclic dependency in module '%0': %1", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_format_unhandled, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "no handler registered for module format '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_module_header_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|umbrella }0header '%1' not found", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_not_built, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "could not build module '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' not found", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_prebuilt, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "error in loading module '%0' from prebuilt module path", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_unavailable, CLASS_ERROR, (unsigned)diag::Severity::Error, "module '%0' %select{is incompatible with|requires}1 feature '%2'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_mt_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "[rewriter] %0", 0, SFINAE_SubstitutionFailure, false, false, 0)
+DIAG(err_nullability_conflicting, CLASS_ERROR, (unsigned)diag::Severity::Error, "nullability specifier %0 conflicts with existing specifier %1", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_omp_more_one_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "directive '#pragma omp %0' cannot contain more than one '%1' clause%select{| with '%3' name modifier| with 'source' dependence}2", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_opt_not_valid_with_opt, CLASS_ERROR, (unsigned)diag::Severity::Error, "option '%0' cannot be specified with '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_param_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of parameter %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_seh___except_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 only allowed in __except block or filter expression", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_seh___except_filter, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 only allowed in __except filter expression", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_seh___finally_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 only allowed in __finally block", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_seh_expected_handler, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '__except' or '__finally' block", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unknown_abi, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown target ABI '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unknown_cpu, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown target CPU '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unknown_fpmath, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown FP unit '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unknown_triple, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown target triple '%0', please use -triple or -arch", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unsupported_abi, CLASS_ERROR, (unsigned)diag::Severity::Error, "ABI '%0' is not supported on CPU '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unsupported_abi_for_triple, CLASS_ERROR, (unsigned)diag::Severity::Error, "ABI '%0' is not supported for '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unsupported_execute_only, CLASS_ERROR, (unsigned)diag::Severity::Error, "execute only is not supported for the %0 sub-architecture", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unsupported_fpmath, CLASS_ERROR, (unsigned)diag::Severity::Error, "the '%0' unit is not supported with this instruction set", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unsupported_unaligned, CLASS_ERROR, (unsigned)diag::Severity::Error, "the %0 sub-architecture does not support unaligned accesses", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_unable_to_make_temp, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to make temporary file: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_unable_to_rename_temp, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to rename temporary '%0' to output file '%1': '%2'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_unsupported_bom, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "%0 byte order mark detected in '%1', but encoding is not supported", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(ext_c99_longlong, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'long long' is an extension when C99 mode is not enabled", 319, SFINAE_Suppress, false, false, 0)
+DIAG(ext_clang_diagnose_if, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'diagnose_if' is a clang extension", 215, SFINAE_Suppress, false, false, 0)
+DIAG(ext_clang_enable_if, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'enable_if' is a clang extension", 215, SFINAE_Suppress, false, false, 0)
+DIAG(ext_cxx11_longlong, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'long long' is a C++11 extension", 77, SFINAE_Suppress, false, false, 0)
+DIAG(ext_integer_literal_too_large_for_signed, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "integer literal is too large to be represented in a signed integer type, interpreting as unsigned", 261, SFINAE_Suppress, false, false, 0)
+DIAG(ext_old_implicitly_unsigned_long_cxx, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards", 70, SFINAE_Suppress, false, false, 0)
+DIAG(ext_variadic_templates, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "variadic templates are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(fatal_too_many_errors, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "too many errors emitted, stopping now", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(note_also_found, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "also found", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_decl_hiding_tag_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%1 %0 is hidden by a non-type declaration of %0 here", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_declared_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_duplicate_case_prev, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous case defined here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_forward_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "forward declaration of %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_invalid_subexpr_in_const_expr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "subexpression not valid in a constant expression", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_matching, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "to match this %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_mt_message, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "[rewriter] %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_possibility, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "one possibility", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_pragma_entered_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "#pragma entered here", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_previous_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous declaration is here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_previous_definition, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous definition is here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_previous_implicit_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous implicit declaration is here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_previous_use, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous use is here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_type_being_defined, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "definition of %0 is not complete until the closing '}'", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_using, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "using", 0, SFINAE_Suppress, false, false, 0)
+DIAG(remark_module_lock_failure, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "could not acquire lock file for module '%0': %1", 374, SFINAE_Suppress, false, false, 4)
+DIAG(remark_module_lock_timeout, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "timed out waiting to acquire lock file for module '%0'", 374, SFINAE_Suppress, false, false, 4)
+DIAG(warn_arcmt_nsalloc_realloc, CLASS_WARNING, (unsigned)diag::Severity::Warning, "[rewriter] call returns pointer to GC managed memory; it will become unmanaged in ARC", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_conflicting_nullability_attr_overriding_param_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting nullability specifier on parameter types, %0 conflicts with existing specifier %1", 407, SFINAE_Suppress, false, false, 18)
+DIAG(warn_conflicting_nullability_attr_overriding_ret_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting nullability specifier on return types, %0 conflicts with existing specifier %1", 407, SFINAE_Suppress, false, false, 18)
+DIAG(warn_cxx98_compat_longlong, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'long long' is incompatible with C++98", 93, SFINAE_Suppress, false, false, 0)
+DIAG(warn_cxx98_compat_variadic_templates, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variadic templates are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_method_param_declaration, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "redeclaration of method parameter %0", 166, SFINAE_Suppress, false, false, 4)
+DIAG(warn_method_param_redefinition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "redefinition of method parameter %0", 0, SFINAE_Suppress, false, false, 4)
+DIAG(warn_mt_message, CLASS_WARNING, (unsigned)diag::Severity::Warning, "[rewriter] %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_nullability_duplicate, CLASS_WARNING, (unsigned)diag::Severity::Warning, "duplicate nullability specifier %0", 407, SFINAE_Suppress, false, false, 18)
+DIAG(warn_old_implicitly_unsigned_long, CLASS_WARNING, (unsigned)diag::Severity::Warning, "integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will %select{have type 'long long'|be ill-formed}0 in C99 onwards", 96, SFINAE_Suppress, false, false, 0)
+DIAG(warn_old_implicitly_unsigned_long_cxx, CLASS_WARNING, (unsigned)diag::Severity::Warning, "integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will %select{have type 'long long'|be ill-formed}0 in C++11 onwards", 70, SFINAE_Suppress, false, false, 0)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticDriverKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticDriverKinds.inc
new file mode 100644
index 0000000..749d64d
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticDriverKinds.inc
@@ -0,0 +1,130 @@
+#ifdef DRIVERSTART
+__DRIVERSTART = DIAG_START_DRIVER,
+#undef DRIVERSTART
+#endif
+
+DIAG(err_analyzer_config_multiple_values, CLASS_ERROR, (unsigned)diag::Severity::Error, "analyzer-config option '%0' should contain only one '='", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_analyzer_config_no_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "analyzer-config option '%0' has a key but no value", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_arc_unsupported_on_runtime, CLASS_ERROR, (unsigned)diag::Severity::Error, "-fobjc-arc is not supported on platforms using the legacy runtime", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_arc_unsupported_on_toolchain, CLASS_ERROR, (unsigned)diag::Severity::Error, "-fobjc-arc is not supported on versions of OS X prior to 10.6", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_I_dash_not_supported, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' not supported, please use -iquote instead", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_argument_not_allowed_with, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument '%0' not allowed with '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_argument_only_allowed_with, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument '%0' only allowed with '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_bitcode_unsupported_on_toolchain, CLASS_ERROR, (unsigned)diag::Severity::Error, "-fembed-bitcode is not supported on versions of iOS prior to 6.0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_cc_print_options_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to open CC_PRINT_OPTIONS file: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_clang_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "the clang compiler does not support '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_clang_unsupported_opt_cxx_darwin_i386, CLASS_ERROR, (unsigned)diag::Severity::Error, "the clang compiler does not support '%0' for C++ on Darwin/i386", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_clang_unsupported_opt_faltivec, CLASS_ERROR, (unsigned)diag::Severity::Error, "the clang compiler does not support '%0', %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_command_failed, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 command failed with exit code %1 (use -v to see invocation)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_command_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to execute command: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_command_signalled, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 command failed due to signal (use -v to see invocation)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_compilationdatabase, CLASS_ERROR, (unsigned)diag::Severity::Error, "compilation database '%0' could not be opened: %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_conflicting_deployment_targets, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting deployment targets, both '%0' and '%1' are present in environment", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_cuda_bad_gpu_arch, CLASS_ERROR, (unsigned)diag::Severity::Error, "Unsupported CUDA gpu architecture: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_cuda_nvptx_host, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported use of NVPTX for host compilation.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_cuda_version_too_low, CLASS_ERROR, (unsigned)diag::Severity::Error, "GPU arch %1 requires CUDA version at least %3, but installation at %0 is %2. Use --cuda-path to specify a different CUDA install, or pass --no-cuda-version-check.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_defsym_invalid_format, CLASS_ERROR, (unsigned)diag::Severity::Error, "defsym must be of the form: sym=value: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_defsym_invalid_symval, CLASS_ERROR, (unsigned)diag::Severity::Error, "Value is not an integer: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_emit_llvm_link, CLASS_ERROR, (unsigned)diag::Severity::Error, "-emit-llvm cannot be used when linking", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_expecting_fopenmp_with_fopenmp_targets, CLASS_ERROR, (unsigned)diag::Severity::Error, "The option -fopenmp-targets must be used in conjunction with a -fopenmp option compatible with offloading, please use -fopenmp=libomp or -fopenmp=libiomp5.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_force_crash, CLASS_ERROR, (unsigned)diag::Severity::Error, "failing because environment variable '%0' is set", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_Xarch_argument_isdriver, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid Xarch argument: '%0', cannot change driver behavior inside Xarch argument", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_Xarch_argument_with_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid Xarch argument: '%0', options requiring arguments are unsupported", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_arch_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid arch name '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_argument_to_fdebug_prefix_map, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument '%0' to -fdebug-prefix-map", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_darwin_version, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid Darwin version number: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_gcc_output_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid output type '%0' for use with gcc tool", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_int_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid integral value '%1' in '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_libcxx_deployment, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid deployment target for -stdlib=libc++ (requires %0 or later)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_linker_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid linker name in argument '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_mfloat_abi, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid float ABI '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_omp_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "OpenMP target is invalid: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_output_with_multiple_archs, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use '%0' output with multiple -arch options", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_pgo_instrumentor, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid PGO instrumentor in argument '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_remap_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid option '%0' not of the form <from-file>;<to-file>", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_rtlib_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid runtime library name in argument '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_stdlib_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid library name in argument '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_thread_model_for_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid thread model '%0' in '%1' for this target", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid value '%1' in '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_invalid_version_number, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid version number in '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_lto_without_lld, CLASS_ERROR, (unsigned)diag::Severity::Error, "LTO requires -fuse-ld=lld", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_malformed_sanitizer_blacklist, CLASS_ERROR, (unsigned)diag::Severity::Error, "malformed sanitizer blacklist: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_mg_requires_m_or_mm, CLASS_ERROR, (unsigned)diag::Severity::Error, "option '-MG' requires '-M' or '-MM'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_missing_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument to '%0' is missing (expected %1 value%s1)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_modules_validate_once_requires_timestamp, CLASS_ERROR, (unsigned)diag::Severity::Error, "option '-fmodules-validate-once-per-build-session' requires '-fbuild-session-timestamp=<seconds since Epoch>' or '-fbuild-session-file=<file>'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_ast_support, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0': unable to use AST files with this tool", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_cuda_installation, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find CUDA installation.  Provide its path via --cuda-path, or pass -nocudainc to build without CUDA includes.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_cuda_libdevice, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find libdevice for %0. Provide path to different CUDA installation via --cuda-path, or pass -nocudalib to build without linking with libdevice.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_input_files, CLASS_ERROR, (unsigned)diag::Severity::Error, "no input files", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_linker_llvm_support, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0': unable to pass LLVM bit-code files to linker", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_module_support, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0': unable to use module files with this tool", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_neon_modifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "[no]neon is not accepted as modifier, please use [no]simd instead", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_no_such_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "no such file or directory: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_omp_host_ir_file_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "The provided host compiler IR file '%0' is required to generate code for OpenMP target regions but cannot be found.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_omp_host_target_not_supported, CLASS_ERROR, (unsigned)diag::Severity::Error, "The target '%0' is not a supported OpenMP host target.", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_optimization_remark_pattern, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 in '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_out_file_argument_with_multiple_sources, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specify '%0%1' when compiling multiple source files", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_output_argument_with_multiple_files, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specify -o when generating multiple output files", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_preamble_format, CLASS_ERROR, (unsigned)diag::Severity::Error, "incorrect format for -preamble-bytes=N,END", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_ropi_incompatible_with_cxx, CLASS_ERROR, (unsigned)diag::Severity::Error, "ROPI is not compatible with c++", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_ropi_rwpi_incompatible_with_pic, CLASS_ERROR, (unsigned)diag::Severity::Error, "embedded and GOT-based position independence are incompatible", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unable_to_remove_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to remove file: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unknown_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown argument: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unknown_language, CLASS_ERROR, (unsigned)diag::Severity::Error, "language not recognized: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unknown_objc_runtime, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown or ill-formed Objective-C runtime '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unknown_stdin_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "-E or -x required when input is from standard input", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unknown_stdin_type_clang_cl, CLASS_ERROR, (unsigned)diag::Severity::Error, "use /Tc or /Tp to set input type for standard input", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unsupported_linker, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported value '%0' for -linker option", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unsupported_opt, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported option '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unsupported_opt_for_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported option '%0' for target '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unsupported_option_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported argument '%1' to option '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_unsupported_rtlib_for_platform, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported runtime library '%0' for platform '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_drv_use_of_Z_option, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported use of internal gcc -Z option '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_no_external_assembler, CLASS_ERROR, (unsigned)diag::Severity::Error, "there is no external assembler that can be used on this platform", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_objc_weak_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "-fobjc-weak is not supported on the current deployment target", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_objc_weak_with_gc, CLASS_ERROR, (unsigned)diag::Severity::Error, "-fobjc-weak is not supported in Objective-C garbage collection", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_target_unsupported_arch, CLASS_ERROR, (unsigned)diag::Severity::Error, "the target architecture '%0' is not supported by the target '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_test_module_file_extension_format, CLASS_ERROR, (unsigned)diag::Severity::Error, "-ftest-module-file-extension argument '%0' is not of the required form 'blockname:major:minor:hashed:user info'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(note_drv_address_sanitizer_debug_runtime, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "AddressSanitizer doesn't support linking with debug runtime libraries yet", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_drv_command_failed_diag_msg, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "diagnostic msg: %0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_drv_t_option_is_global, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "The last /TC or /TP option takes precedence over earlier instances", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_drv_use_standard, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '%0' for '%1' standard", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_use_dashdash, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "Use '--' to treat subsequent arguments as filenames", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_O4_is_O3, CLASS_WARNING, (unsigned)diag::Severity::Warning, "-O4 is equivalent to -O3", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_c_kext, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring -fapple-kext which is valid for C++ and Objective-C++ only", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_debug_compression_unavailable, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot compress debug sections (zlib not installed)", 131, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_assuming_mfloat_abi_is, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown platform, assuming -mfloat-abi=%0", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_clang_unsupported, CLASS_WARNING, (unsigned)diag::Severity::Warning, "the clang compiler does not support '%0'", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_deprecated_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "argument '%0' is deprecated, use '%1' instead", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_drv_disabling_vptr_no_rtti_default, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicitly disabling vptr sanitizer because rtti wasn't enabled", 45, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_empty_joined_argument, CLASS_WARNING, (unsigned)diag::Severity::Warning, "joined argument expects additional value: '%0'", 638, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_enabling_rtti_with_exceptions, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicitly enabling rtti for exception handling", 512, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_fdiagnostics_show_hotness_requires_pgo, CLASS_WARNING, (unsigned)diag::Severity::Warning, "argument '-fdiagnostics-show-hotness' requires profile-guided optimization information", 638, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_input_file_unused, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0: '%1' input unused%select{ when '%3' is present|}2", 638, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_input_file_unused_by_cpp, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0: '%1' input unused in cpp mode", 638, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_invoking_fallback, CLASS_WARNING, (unsigned)diag::Severity::Warning, "falling back to %0", 193, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_msvc_not_found, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unable to find a Visual Studio installation; try running Clang from a developer command prompt", 384, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_omp_offload_target_duplicate, CLASS_WARNING, (unsigned)diag::Severity::Warning, "The OpenMP offloading target '%0' is similar to target '%1' already specified - will be ignored.", 450, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_optimization_value, CLASS_WARNING, (unsigned)diag::Severity::Warning, "optimization level '%0' is not supported; using '%1%2' instead", 295, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_overriding_flag_option, CLASS_WARNING, (unsigned)diag::Severity::Warning, "overriding '%0' option with '%1'", 460, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_pch_not_first_include, CLASS_WARNING, (unsigned)diag::Severity::Warning, "precompiled header '%0' was ignored because '%1' is not first '-include'", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_preprocessed_input_file_unused, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0: previously preprocessed input%select{ unused when '%2' is present|}1", 638, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_ps4_force_pic, CLASS_WARNING, (unsigned)diag::Severity::Warning, "option '%0' was ignored by the PS4 toolchain, using '-fPIC'", 451, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_ps4_sdk_dir, CLASS_WARNING, (unsigned)diag::Severity::Warning, "environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or nonexistent directory '%0'", 301, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_treating_input_as_cxx, CLASS_WARNING, (unsigned)diag::Severity::Warning, "treating '%0' input as '%1' when in C++ mode, this behavior is deprecated", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_drv_unable_to_find_directory_expected, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unable to find %0 directory, expected to be in '%1'", 301, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_unknown_argument_clang_cl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown argument ignored in clang-cl: '%0'", 615, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_unsupported_opt_for_target, CLASS_WARNING, (unsigned)diag::Severity::Warning, "optimization flag '%0' is not supported for target '%1'", 248, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_unused_argument, CLASS_WARNING, (unsigned)diag::Severity::Warning, "argument unused during compilation: '%0'", 638, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_yc_multiple_inputs_clang_cl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "support for '/Yc' with more than one source file not implemented yet; flag ignored", 104, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_ycyu_different_arg_clang_cl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored", 104, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_ycyu_no_arg_clang_cl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "support for '%0' without a filename not implemented yet; flag ignored", 104, SFINAE_Suppress, false, false, 0)
+DIAG(warn_drv_ycyu_no_fi_arg_clang_cl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "support for '%0' without a corresponding /FI flag not implemented yet; flag ignored", 104, SFINAE_Suppress, false, false, 0)
+DIAG(warn_ignored_gcc_optimization, CLASS_WARNING, (unsigned)diag::Severity::Warning, "optimization flag '%0' is not supported", 248, SFINAE_Suppress, false, false, 0)
+DIAG(warn_ignoring_ftabstop_value, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring invalid -ftabstop value '%0', using default value %1", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_incompatible_sysroot, CLASS_WARNING, (unsigned)diag::Severity::Warning, "using sysroot for '%0' but targeting '%1'", 274, SFINAE_Suppress, false, false, 0)
+DIAG(warn_missing_sysroot, CLASS_WARNING, (unsigned)diag::Severity::Warning, "no such sysroot directory: '%0'", 372, SFINAE_Suppress, false, false, 0)
+DIAG(warn_slash_u_filename, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'/U%0' treated as the '/U' option", 545, SFINAE_Suppress, false, false, 0)
+DIAG(warn_target_unsupported_compact_branches, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring '-mcompact-branches=' option because the '%0' architecture does not support it", 630, SFINAE_Suppress, false, false, 0)
+DIAG(warn_target_unsupported_nan2008, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring '-mnan=2008' option because the '%0' architecture does not support it", 633, SFINAE_Suppress, false, false, 0)
+DIAG(warn_target_unsupported_nanlegacy, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring '-mnan=legacy' option because the '%0' architecture does not support it", 633, SFINAE_Suppress, false, false, 0)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticFrontendKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticFrontendKinds.inc
new file mode 100644
index 0000000..76dd52b
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticFrontendKinds.inc
@@ -0,0 +1,96 @@
+#ifdef FRONTENDSTART
+__FRONTENDSTART = DIAG_START_FRONTEND,
+#undef FRONTENDSTART
+#endif
+
+DIAG(err_fe_action_not_available, CLASS_ERROR, (unsigned)diag::Severity::Error, "action %0 not compiled in", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_backend_frame_larger_than, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 16)
+DIAG(err_fe_backend_plugin, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 16)
+DIAG(err_fe_backend_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 16)
+DIAG(err_fe_cannot_link_module, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "cannot link module '%0': %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_dependency_file_requires_MT, CLASS_ERROR, (unsigned)diag::Severity::Error, "-dependency-file requires at least one -MT or -MQ option", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_error_backend, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "error in backend: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_error_opening, CLASS_ERROR, (unsigned)diag::Severity::Error, "error opening '%0': %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_error_reading, CLASS_ERROR, (unsigned)diag::Severity::Error, "error reading '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_error_reading_stdin, CLASS_ERROR, (unsigned)diag::Severity::Error, "error reading stdin: %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_expected_clang_command, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a clang compiler command", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_expected_compiler_job, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to handle compilation, expected exactly one compiler job in '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_inline_asm, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_fe_invalid_alignment, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid value '%1' in '%0'; alignment must be a power of 2", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_invalid_code_complete_file, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "cannot locate code-completion file %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_invalid_plugin_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to find plugin '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_no_pch_in_dir, CLASS_ERROR, (unsigned)diag::Severity::Error, "no suitable precompiled header file found in directory '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_pth_file_has_no_source_header, CLASS_ERROR, (unsigned)diag::Severity::Error, "PTH file '%0' does not designate an original source header file for -include-pth", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_remap_missing_from_file, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "could not remap from missing file '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_remap_missing_to_file, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "could not remap file '%0' to the contents of file '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_stdout_binary, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "unable to change standard output to binary", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_unable_to_create_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to create target: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_unable_to_interface_with_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to interface with target machine", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_unable_to_load_pch, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to load PCH file", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_unable_to_load_plugin, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to load plugin '%0': '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_fe_unable_to_open_output, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to open output file '%0': '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_invalid_vfs_overlay, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "invalid virtual filesystem overlay file '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_missing_module, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "no module named '%0' declared in module map file '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_missing_module_name, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "no module name provided; specify one with -fmodule-name=", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_missing_vfs_overlay_file, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "virtual filesystem overlay file '%0' not found", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_module_cannot_create_includes, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot create includes file for module %0: %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_module_interface_requires_modules_ts, CLASS_ERROR, (unsigned)diag::Severity::Error, "module interface compilation requires '-fmodules-ts'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_module_map_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module map file '%0' not found", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_modules_embed_file_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%0' specified by '-fmodules-embed-file=' not found", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_no_submodule, CLASS_ERROR, (unsigned)diag::Severity::Error, "no submodule named %0 in module '%1'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_no_submodule_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no submodule named %0 in module '%1'; did you mean '%2'?", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_relocatable_without_isysroot, CLASS_ERROR, (unsigned)diag::Severity::Error, "must specify system root with -isysroot when building a relocatable PCH file", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_test_module_file_extension_version, CLASS_ERROR, (unsigned)diag::Severity::Error, "test module file extension '%0' has different version (%1.%2) than expected (%3.%4)", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_unknown_analyzer_checker, CLASS_ERROR, (unsigned)diag::Severity::Error, "no analyzer checkers are associated with '%0'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_inconsistent_diags, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' diagnostics %select{expected|seen}1 but not %select{seen|expected}1: %2", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_invalid_content, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid expected %0: %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_invalid_no_diags, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{expected|'expected-no-diagnostics'}0 directive cannot follow %select{'expected-no-diagnostics' directive|other expected directives}0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_invalid_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid range following '-' in expected %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_missing_end, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find end ('}}') of expected %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_missing_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "file '%0' could not be located in expected %1", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_missing_line, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing or invalid line number following '@' in expected %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_missing_regex, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find start of regex ('{{') in %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_missing_start, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find start ('{{') of expected %0", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_verify_no_directives, CLASS_ERROR, (unsigned)diag::Severity::Error, "no expected directives found: consider use of 'expected-no-diagnostics'", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(note_fe_backend_frame_larger_than, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0", 0, SFINAE_Suppress, false, true, 16)
+DIAG(note_fe_backend_invalid_loc, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "could not determine the original source location for %0:%1:%2", 0, SFINAE_Suppress, false, true, 16)
+DIAG(note_fe_backend_plugin, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0", 0, SFINAE_Suppress, false, true, 16)
+DIAG(note_fe_inline_asm, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0", 0, SFINAE_Suppress, false, false, 12)
+DIAG(note_fe_inline_asm_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "instantiated into assembly here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_fixit_applied, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "FIX-IT applied suggested code changes", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_fixit_failed, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "FIX-IT unable to apply suggested code changes", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_fixit_in_macro, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "FIX-IT unable to apply suggested code changes in a macro", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_fixit_unfixed_error, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "FIX-IT detected an error it cannot fix", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_incompatible_analyzer_plugin_api, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "current API version is '%0', but plugin was compiled with version '%1'", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_module_def_undef_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "macro was %select{defined|#undef'd}0 here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_suggest_disabling_all_checkers, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use -analyzer-disable-all-checks to disable all static analyzer checkers", 0, SFINAE_Suppress, false, false, 0)
+DIAG(remark_fe_backend_optimization_remark, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "%0", 466, SFINAE_Suppress, false, true, 16)
+DIAG(remark_fe_backend_optimization_remark_analysis, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "%0", 467, SFINAE_Suppress, false, true, 16)
+DIAG(remark_fe_backend_optimization_remark_analysis_aliasing, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "%0; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume_safety)' before the loop or provide the '__restrict__' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!", 467, SFINAE_Suppress, false, true, 16)
+DIAG(remark_fe_backend_optimization_remark_analysis_fpcommute, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "%0; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.", 467, SFINAE_Suppress, false, true, 16)
+DIAG(remark_fe_backend_optimization_remark_missed, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "%0", 469, SFINAE_Suppress, false, true, 16)
+DIAG(remark_fe_backend_plugin, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "%0", 503, SFINAE_Suppress, false, true, 16)
+DIAG(remark_module_build, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "building module '%0' as '%1'", 374, SFINAE_Suppress, false, false, 0)
+DIAG(remark_module_build_done, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "finished building module '%0'", 374, SFINAE_Suppress, false, false, 0)
+DIAG(remark_sanitize_address_insert_extra_padding_accepted, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "-fsanitize-address-field-padding applied to %0", 513, SFINAE_Suppress, false, true, 0)
+DIAG(remark_sanitize_address_insert_extra_padding_rejected, CLASS_REMARK, (unsigned)diag::Severity::Ignored, "-fsanitize-address-field-padding ignored for %0 because it %select{is not C++|is packed|is a union|is trivially copyable|has trivial destructor|is standard layout|is in a blacklisted file|is blacklisted}1", 513, SFINAE_Suppress, false, true, 0)
+DIAG(warn_fe_backend_frame_larger_than, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 212, SFINAE_Suppress, false, true, 16)
+DIAG(warn_fe_backend_optimization_failure, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 468, SFINAE_Suppress, false, true, 16)
+DIAG(warn_fe_backend_plugin, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 50, SFINAE_Suppress, false, true, 16)
+DIAG(warn_fe_cc_log_diagnostics_failure, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unable to open CC_LOG_DIAGNOSTICS file: %0 (using stderr)", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fe_cc_print_header_failure, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unable to open CC_PRINT_HEADERS file: %0 (using stderr)", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fe_frame_larger_than, CLASS_WARNING, (unsigned)diag::Severity::Warning, "stack frame size of %0 bytes in %q1", 212, SFINAE_Suppress, false, true, 16)
+DIAG(warn_fe_inline_asm, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 287, SFINAE_Suppress, false, false, 12)
+DIAG(warn_fe_macro_contains_embedded_newline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "macro '%0' contains embedded newline; text after the newline is ignored", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fe_override_module, CLASS_WARNING, (unsigned)diag::Severity::Warning, "overriding the module target triple with %0", 458, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fe_serialized_diag_failure, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unable to open file %0 for serializing diagnostics (%1)", 523, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fe_serialized_diag_merge_failure, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unable to merge a subprocess's serialized diagnostics", 523, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fe_unable_to_open_stats_file, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unable to open statistics output file '%0': '%1'", 600, SFINAE_Suppress, false, false, 0)
+DIAG(warn_fixit_no_changes, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "FIX-IT detected errors it could not fix; no output will be generated", 0, SFINAE_Suppress, false, false, 0)
+DIAG(warn_incompatible_analyzer_plugin_api, CLASS_WARNING, (unsigned)diag::Severity::Warning, "checker plugin '%0' is not compatible with this version of the analyzer", 22, SFINAE_Suppress, false, false, 0)
+DIAG(warn_missing_submodule, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing submodule '%0'", 277, SFINAE_Suppress, false, false, 0)
+DIAG(warn_module_config_macro_undef, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{definition|#undef}0 of configuration macro '%1' has no effect on the import of '%2'; pass '%select{-D%1=...|-U%1}0' on the command line to configure the module", 113, SFINAE_Suppress, false, false, 0)
+DIAG(warn_module_config_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Error, "module file %0 cannot be loaded due to a configuration mismatch with the current compilation", 376, SFINAE_Suppress, false, false, 0)
+DIAG(warn_option_invalid_ocl_version, CLASS_WARNING, (unsigned)diag::Severity::Warning, "OpenCL version %0 does not support the option '%1'", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_unknown_diag_option, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown %select{warning|remark}0 option '%1'%select{|; did you mean '%3'?}2", 620, SFINAE_Suppress, false, false, 0)
+DIAG(warn_unknown_warning_specifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown %0 warning specifier: '%1'", 620, SFINAE_Suppress, false, false, 0)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticGroups.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticGroups.inc
new file mode 100644
index 0000000..3a2b7ed
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticGroups.inc
@@ -0,0 +1,1642 @@
+
+#ifdef GET_DIAG_ARRAYS
+static const int16_t DiagArrays[] = {
+  /* Empty */ -1,
+  /* DiagArray1 */ diag::warn_pragma_message, -1,
+  /* DiagArray2 */ diag::pp_hash_warning, -1,
+  /* DiagArray3 */ diag::warn_cfstring_truncated, -1,
+  /* DiagArray5 */ diag::warn_independentclass_attribute, diag::warn_ptr_independentclass_attribute, -1,
+  /* DiagArray6 */ diag::warn_nsobject_attribute, -1,
+  /* DiagArray8 */ diag::warn_abs_too_small, diag::warn_pointer_abs, diag::warn_unsigned_abs, diag::warn_wrong_absolute_value_type, -1,
+  /* DiagArray9 */ diag::warn_abstract_final_class, -1,
+  /* DiagArray10 */ diag::warn_abstract_vbase_init_ignored, -1,
+  /* DiagArray12 */ diag::warn_temporary_array_to_pointer_decay, -1,
+  /* DiagArray13 */ diag::warn_taking_address_of_packed_member, -1,
+  /* DiagArray14 */ diag::ext_typecheck_addrof_temporary, -1,
+  /* DiagArray17 */ diag::warn_alloca_align_alignof, -1,
+  /* DiagArray18 */ diag::warn_ambiguous_suitable_delete_function_found, -1,
+  /* DiagArray19 */ diag::warn_misplaced_ellipsis_vararg, -1,
+  /* DiagArray20 */ diag::warn_pp_ambiguous_macro, -1,
+  /* DiagArray21 */ diag::ext_nested_name_member_ref_lookup_ambiguous, -1,
+  /* DiagArray22 */ diag::warn_incompatible_analyzer_plugin_api, -1,
+  /* DiagArray23 */ diag::ext_abstract_pack_declarator_parens, -1,
+  /* DiagArray25 */ diag::warn_arc_bridge_cast_nonarc, -1,
+  /* DiagArray26 */ diag::warn_arc_possible_repeated_use_of_weak, -1,
+  /* DiagArray27 */ diag::warn_arc_object_memaccess, -1,
+  /* DiagArray28 */ diag::warn_arc_perform_selector_leaks, -1,
+  /* DiagArray29 */ diag::warn_arc_repeated_use_of_weak, -1,
+  /* DiagArray30 */ diag::warn_arc_retain_cycle, -1,
+  /* DiagArray31 */ diag::warn_arc_literal_assign, diag::warn_arc_retained_assign, diag::warn_arc_retained_property_assign, -1,
+  /* DiagArray32 */ diag::warn_array_index_exceeds_bounds, diag::warn_array_index_precedes_bounds, diag::warn_static_array_too_small, diag::warn_typecheck_zero_static_array_size, -1,
+  /* DiagArray33 */ diag::warn_ptr_arith_exceeds_bounds, diag::warn_ptr_arith_precedes_bounds, -1,
+  /* DiagArray35 */ diag::warn_asm_qualifier_ignored, diag::warn_file_asm_volatile, -1,
+  /* DiagArray36 */ diag::warn_asm_mismatched_size_modifier, -1,
+  /* DiagArray37 */ diag::warn_not_in_enum_assignment, -1,
+  /* DiagArray38 */ diag::warn_assume_side_effects, -1,
+  /* DiagArray39 */ diag::warn_atprotocol_protocol, -1,
+  /* DiagArray40 */ diag::warn_atomic_op_has_invalid_memory_order, -1,
+  /* DiagArray42 */ diag::warn_atomic_property_rule, -1,
+  /* DiagArray43 */ diag::warn_attribute_packed_for_bitfield, -1,
+  /* DiagArray45 */ diag::warn_drv_disabling_vptr_no_rtti_default, -1,
+  /* DiagArray46 */ diag::warn_auto_module_import, -1,
+  /* DiagArray47 */ diag::ext_auto_storage_class, -1,
+  /* DiagArray48 */ diag::warn_auto_var_is_id, -1,
+  /* DiagArray49 */ diag::warn_availability_and_unavailable, diag::warn_availability_unknown_platform, diag::warn_availability_version_ordering, diag::warn_expected_consistent_version_separator, diag::warn_mismatched_availability, diag::warn_mismatched_availability_override, diag::warn_mismatched_availability_override_unavail, -1,
+  /* DiagArray50 */ diag::warn_fe_backend_plugin, -1,
+  /* DiagArray51 */ diag::backslash_newline_space, -1,
+  /* DiagArray52 */ diag::warn_bad_function_cast, -1,
+  /* DiagArray53 */ diag::ext_rvalue_to_reference_access_ctor, diag::ext_rvalue_to_reference_temp_copy_no_viable, -1,
+  /* DiagArray54 */ diag::warn_impcast_bitfield_precision_constant, -1,
+  /* DiagArray55 */ diag::warn_bitfield_too_small_for_enum, diag::warn_signed_bitfield_enum_conversion, diag::warn_unsigned_bitfield_assigned_signed_enum, -1,
+  /* DiagArray56 */ diag::warn_anon_bitfield_width_exceeds_type_width, diag::warn_bitfield_width_exceeds_type_width, -1,
+  /* DiagArray57 */ diag::warn_bitwise_op_in_bitwise_op, -1,
+  /* DiagArray58 */ diag::warn_block_capture_autoreleasing, -1,
+  /* DiagArray59 */ diag::warn_impcast_bool_to_null_pointer, -1,
+  /* DiagArray61 */ diag::warn_braces_around_scalar_init, -1,
+  /* DiagArray62 */ diag::warn_objc_invalid_bridge, diag::warn_objc_invalid_bridge_to_cf, -1,
+  /* DiagArray63 */ diag::ext_pp_redef_builtin_macro, diag::ext_pp_undef_builtin_macro, -1,
+  /* DiagArray64 */ diag::warn_memcpy_chk_overflow, -1,
+  /* DiagArray65 */ diag::warn_implicit_decl_requires_sysheader, -1,
+  /* DiagArray66 */ diag::warn_zero_size_struct_union_compat, -1,
+  /* DiagArray70 */ diag::ext_old_implicitly_unsigned_long_cxx, diag::warn_auto_storage_class, diag::warn_cxx11_compat_user_defined_literal, diag::warn_cxx11_keyword, diag::warn_cxx11_right_shift_in_template_arg, diag::warn_explicit_instantiation_inline_0x, diag::warn_explicit_instantiation_must_be_global_0x, diag::warn_explicit_instantiation_out_of_scope_0x, diag::warn_explicit_instantiation_unqualified_wrong_namespace_0x, diag::warn_old_implicitly_unsigned_long_cxx, -1,
+  /* DiagArray71 */ diag::warn_deprecated_string_literal_conversion, -1,
+  /* DiagArray73 */ diag::warn_cxx11_compat_reserved_user_defined_literal, -1,
+  /* DiagArray74 */ diag::ext_alias_declaration, diag::ext_array_size_conversion, diag::ext_auto_type_specifier, diag::ext_cxx11_enum_fixed_underlying_type, diag::ext_defaulted_deleted_function, diag::ext_enum_friend, diag::ext_enumerator_list_comma_cxx, diag::ext_explicit_conversion_functions, diag::ext_extern_template, diag::ext_for_range, diag::ext_generalized_initializer_lists, diag::ext_nested_name_spec_is_enum, diag::ext_nonclass_type_friend, diag::ext_nonstatic_member_init, diag::ext_override_control_keyword, diag::ext_ref_qualifier, diag::ext_rvalue_reference, diag::ext_scoped_enum, diag::ext_static_data_member_in_union, diag::ext_template_arg_object_internal, diag::ext_template_outside_of_template, diag::ext_template_parameter_default_in_function_template, diag::ext_template_spec_decl_out_of_scope, diag::ext_typename_outside_of_template, diag::ext_unelaborated_friend_type, diag::ext_variadic_templates, -1,
+  /* DiagArray75 */ diag::ext_extra_semi_cxx11, -1,
+  /* DiagArray76 */ diag::ext_inline_namespace, -1,
+  /* DiagArray77 */ diag::ext_cxx11_longlong, -1,
+  /* DiagArray78 */ diag::ext_cce_narrowing, diag::ext_init_list_constant_narrowing, diag::ext_init_list_type_narrowing, diag::ext_init_list_variable_narrowing, diag::warn_init_list_constant_narrowing, diag::warn_init_list_type_narrowing, diag::warn_init_list_variable_narrowing, -1,
+  /* DiagArray79 */ diag::ext_binary_literal_cxx14, -1,
+  /* DiagArray82 */ diag::ext_constexpr_body_invalid_stmt, diag::ext_constexpr_body_multiple_return, diag::ext_constexpr_local_var, diag::ext_constexpr_type_definition, diag::ext_cxx14_attr, diag::ext_decltype_auto_type_specifier, diag::ext_init_capture, diag::ext_variable_template, -1,
+  /* DiagArray84 */ diag::warn_cxx1z_compat_exception_spec_in_signature, -1,
+  /* DiagArray85 */ diag::ext_constexpr_if, diag::ext_constexpr_on_lambda_cxx1z, diag::ext_cxx1z_attr, diag::ext_decomp_decl, diag::ext_fold_expression, diag::ext_for_range_begin_end_types_differ, diag::ext_hex_literal_invalid, diag::ext_init_statement, diag::ext_inline_variable, diag::ext_multi_using_declaration, diag::ext_nested_namespace_definition, diag::ext_star_this_lambda_capture_cxx1z, diag::ext_static_assert_no_message, diag::ext_template_template_param_typename, diag::ext_using_attribute_ns, diag::ext_using_declaration_pack, -1,
+  /* DiagArray86 */ diag::warn_cxx14_compat_attribute, diag::warn_cxx14_compat_constexpr_if, diag::warn_cxx14_compat_constexpr_on_lambda, diag::warn_cxx14_compat_decomp_decl, diag::warn_cxx14_compat_fold_expression, diag::warn_cxx14_compat_init_statement, diag::warn_cxx14_compat_inline_variable, diag::warn_cxx14_compat_nested_namespace_definition, diag::warn_cxx14_compat_star_this_lambda_capture, diag::warn_cxx14_compat_static_assert_no_message, diag::warn_cxx14_compat_template_nontype_parm_auto_type, diag::warn_cxx14_compat_template_template_param_typename, diag::warn_cxx14_compat_u8_character_literal, diag::warn_cxx14_compat_using_attribute_ns, diag::warn_cxx1z_compat_multi_using_declaration, diag::warn_cxx1z_compat_using_declaration_pack, diag::warn_for_range_begin_end_types_differ, -1,
+  /* DiagArray87 */ diag::warn_cxx1z_hex_literal, -1,
+  /* DiagArray88 */ diag::warn_cxx11_compat_constexpr_body_invalid_stmt, diag::warn_cxx11_compat_constexpr_body_multiple_return, diag::warn_cxx11_compat_constexpr_body_no_return, diag::warn_cxx11_compat_constexpr_local_var, diag::warn_cxx11_compat_constexpr_type_definition, diag::warn_cxx11_compat_decltype_auto_type_specifier, diag::warn_cxx11_compat_digit_separator, diag::warn_cxx11_compat_init_capture, diag::warn_cxx11_compat_variable_template, -1,
+  /* DiagArray89 */ diag::warn_cxx11_compat_binary_literal, -1,
+  /* DiagArray90 */ diag::warn_cxx98_compat_alias_declaration, diag::warn_cxx98_compat_alignas, diag::warn_cxx98_compat_alignof, diag::warn_cxx98_compat_attribute, diag::warn_cxx98_compat_auto_type_specifier, diag::warn_cxx98_compat_constexpr, diag::warn_cxx98_compat_ctor_list_init, diag::warn_cxx98_compat_decltype, diag::warn_cxx98_compat_defaulted_deleted_function, diag::warn_cxx98_compat_delegating_ctor, diag::warn_cxx98_compat_empty_scalar_initializer, diag::warn_cxx98_compat_enum_fixed_underlying_type, diag::warn_cxx98_compat_enum_friend, diag::warn_cxx98_compat_enum_nested_name_spec, diag::warn_cxx98_compat_explicit_conversion_functions, diag::warn_cxx98_compat_for_range, diag::warn_cxx98_compat_friend_is_member, diag::warn_cxx98_compat_generalized_initializer_lists, diag::warn_cxx98_compat_goto_into_protected_scope, diag::warn_cxx98_compat_indirect_goto_in_protected_scope, diag::warn_cxx98_compat_initializer_list_init, diag::warn_cxx98_compat_inline_namespace, diag::warn_cxx98_compat_lambda, diag::warn_cxx98_compat_less_colon_colon, diag::warn_cxx98_compat_literal_operator, diag::warn_cxx98_compat_literal_ucn_control_character, diag::warn_cxx98_compat_literal_ucn_escape_basic_scs, diag::warn_cxx98_compat_noexcept_decl, diag::warn_cxx98_compat_noexcept_expr, diag::warn_cxx98_compat_non_static_member_use, diag::warn_cxx98_compat_nonclass_type_friend, diag::warn_cxx98_compat_nonstatic_member_init, diag::warn_cxx98_compat_nontrivial_union_or_anon_struct_member, diag::warn_cxx98_compat_nullptr, diag::warn_cxx98_compat_override_control_keyword, diag::warn_cxx98_compat_pass_non_pod_arg_to_vararg, diag::warn_cxx98_compat_raw_string_literal, diag::warn_cxx98_compat_ref_qualifier, diag::warn_cxx98_compat_reference_list_init, diag::warn_cxx98_compat_rvalue_reference, diag::warn_cxx98_compat_scoped_enum, diag::warn_cxx98_compat_sfinae_access_control, diag::warn_cxx98_compat_static_assert, diag::warn_cxx98_compat_static_data_member_in_union, diag::warn_cxx98_compat_switch_into_protected_scope, diag::warn_cxx98_compat_template_arg_extra_parens, diag::warn_cxx98_compat_template_arg_null, diag::warn_cxx98_compat_template_arg_object_internal, diag::warn_cxx98_compat_template_outside_of_template, diag::warn_cxx98_compat_template_parameter_default_in_function_template, diag::warn_cxx98_compat_template_spec_decl_out_of_scope, diag::warn_cxx98_compat_trailing_return_type, diag::warn_cxx98_compat_two_right_angle_brackets, diag::warn_cxx98_compat_typename_outside_of_template, diag::warn_cxx98_compat_unelaborated_friend_type, diag::warn_cxx98_compat_unicode_id, diag::warn_cxx98_compat_unicode_literal, diag::warn_cxx98_compat_unicode_type, diag::warn_cxx98_compat_using_decl_constructor, diag::warn_cxx98_compat_variadic_templates, -1,
+  /* DiagArray91 */ diag::warn_cxx98_compat_temp_copy, -1,
+  /* DiagArray92 */ diag::warn_cxx98_compat_template_arg_local_type, -1,
+  /* DiagArray93 */ diag::warn_cxx98_compat_array_size_conversion, diag::warn_cxx98_compat_cast_fn_obj, diag::warn_cxx98_compat_empty_fnmacro_arg, diag::warn_cxx98_compat_enumerator_list_comma, diag::warn_cxx98_compat_extern_template, diag::warn_cxx98_compat_longlong, diag::warn_cxx98_compat_no_newline_eof, diag::warn_cxx98_compat_pp_line_too_big, diag::warn_cxx98_compat_top_level_semi, diag::warn_cxx98_compat_variadic_macro, -1,
+  /* DiagArray94 */ diag::warn_cxx98_compat_template_arg_unnamed_type, -1,
+  /* DiagArray95 */ diag::ext_anonymous_union, diag::ext_c11_alignment, diag::ext_c11_anonymous_struct, diag::ext_c11_generic_selection, diag::ext_c11_noreturn, diag::ext_c11_static_assert, -1,
+  /* DiagArray96 */ diag::warn_c99_compat_unicode_id, diag::warn_c99_compat_unicode_literal, diag::warn_old_implicitly_unsigned_long, -1,
+  /* DiagArray97 */ diag::ext_aggregate_init_not_constant, diag::ext_c99_array_usage, diag::ext_c99_compound_literal, diag::ext_c99_flexible_array_member, diag::ext_c99_variable_decl_in_for_loop, diag::ext_c99_whitespace_required_after_macro_name, diag::ext_designated_init, diag::ext_empty_fnmacro_arg, diag::ext_enumerator_list_comma_c, diag::ext_hex_constant_invalid, -1,
+  /* DiagArray98 */ diag::warn_cast_align, -1,
+  /* DiagArray99 */ diag::warn_cast_calling_conv, -1,
+  /* DiagArray100 */ diag::warn_cast_pointer_from_sel, -1,
+  /* DiagArray101 */ diag::warn_cast_qual, diag::warn_cast_qual2, -1,
+  /* DiagArray103 */ diag::warn_omp_section_is_char, diag::warn_subscript_is_char, -1,
+  /* DiagArray104 */ diag::warn_drv_yc_multiple_inputs_clang_cl, diag::warn_drv_ycyu_different_arg_clang_cl, diag::warn_drv_ycyu_no_arg_clang_cl, diag::warn_drv_ycyu_no_fi_arg_clang_cl, -1,
+  /* DiagArray105 */ diag::warn_pass_class_arg_to_vararg, -1,
+  /* DiagArray106 */ diag::warn_comma_operator, -1,
+  /* DiagArray107 */ diag::escaped_newline_block_comment_end, diag::ext_line_comment, diag::ext_multi_line_line_comment, diag::warn_nested_block_comment, -1,
+  /* DiagArray109 */ diag::ext_typecheck_comparison_of_distinct_pointers, -1,
+  /* DiagArray110 */ diag::ext_complex_component_init, -1,
+  /* DiagArray111 */ diag::ext_typecheck_cond_pointer_integer_mismatch, -1,
+  /* DiagArray112 */ diag::warn_maybe_uninit_var, -1,
+  /* DiagArray113 */ diag::warn_module_config_macro_undef, -1,
+  /* DiagArray114 */ diag::warn_impcast_integer_precision_constant, -1,
+  /* DiagArray115 */ diag::warn_logical_instead_of_bitwise, -1,
+  /* DiagArray116 */ diag::warn_cxx14_compat_constexpr_not_const, -1,
+  /* DiagArray117 */ diag::warn_attr_on_unconsumable_class, diag::warn_loop_state_mismatch, diag::warn_param_return_typestate_mismatch, diag::warn_param_typestate_mismatch, diag::warn_return_typestate_for_unconsumable_type, diag::warn_return_typestate_mismatch, diag::warn_use_in_invalid_state, diag::warn_use_of_temp_in_invalid_state, -1,
+  /* DiagArray118 */ diag::warn_impcast_complex_scalar, diag::warn_impcast_float_precision, diag::warn_impcast_integer_precision, diag::warn_impcast_vector_scalar, diag::warn_template_arg_negative, diag::warn_template_arg_too_large, -1,
+  /* DiagArray120 */ diag::warn_coroutine_promise_unhandled_exception_required_with_exceptions, -1,
+  /* DiagArray121 */ diag::warn_unreachable_default, -1,
+  /* DiagArray122 */ diag::warn_objc_cdirective_format_string, -1,
+  /* DiagArray124 */ diag::warn_attribute_argument_n_negative, diag::warn_cuda_attr_lambda_position, diag::warn_kern_is_inline, diag::warn_kern_is_method, diag::warn_pragma_unroll_cuda_value_in_parens, -1,
+  /* DiagArray125 */ diag::warn_default_atomic_custom_getter_setter, -1,
+  /* DiagArray126 */ diag::warn_dangling_else, -1,
+  /* DiagArray127 */ diag::warn_bind_ref_member_to_parameter, diag::warn_bind_ref_member_to_temporary, diag::warn_init_ptr_member_to_parameter_addr, -1,
+  /* DiagArray128 */ diag::warn_dangling_std_initializer_list, -1,
+  /* DiagArray129 */ diag::warn_pp_date_time, -1,
+  /* DiagArray130 */ diag::warn_dealloc_in_category, -1,
+  /* DiagArray131 */ diag::warn_debug_compression_unavailable, -1,
+  /* DiagArray132 */ diag::ext_mixed_decls_code, -1,
+  /* DiagArray133 */ diag::warn_delegating_ctor_cycle, -1,
+  /* DiagArray134 */ diag::ext_delete_void_ptr_operand, diag::warn_delete_incomplete, -1,
+  /* DiagArray135 */ diag::warn_delete_abstract_non_virtual_dtor, diag::warn_delete_non_virtual_dtor, -1,
+  /* DiagArray136 */ diag::warn_O4_is_O3, diag::warn_access_decl_deprecated, diag::warn_deprecated_copy_operation, diag::warn_deprecated_redundant_constexpr_static_def, diag::warn_drv_deprecated_arg, diag::warn_drv_treating_input_as_cxx, diag::warn_option_invalid_ocl_version, diag::warn_vector_long_decl_spec_combination, -1,
+  /* DiagArray137 */ diag::warn_vector_mode_deprecated, -1,
+  /* DiagArray138 */ diag::warn_cstyle_param, diag::warn_deprecated, diag::warn_deprecated_fwdclass_message, diag::warn_deprecated_message, diag::warn_property_method_deprecated, -1,
+  /* DiagArray139 */ diag::warn_exception_spec_deprecated, -1,
+  /* DiagArray140 */ diag::warn_deprecated_def, -1,
+  /* DiagArray141 */ diag::warn_increment_bool, -1,
+  /* DiagArray142 */ diag::warn_objc_isa_assign, diag::warn_objc_isa_use, -1,
+  /* DiagArray143 */ diag::warn_objc_pointer_masking, -1,
+  /* DiagArray144 */ diag::warn_objc_pointer_masking_performSelector, -1,
+  /* DiagArray145 */ diag::warn_deprecated_register, -1,
+  /* DiagArray147 */ diag::warn_direct_ivar_access, -1,
+  /* DiagArray148 */ diag::pp_disabled_macro_expansion, -1,
+  /* DiagArray151 */ diag::warn_conflicting_param_modifiers, diag::warn_conflicting_ret_type_modifiers, -1,
+  /* DiagArray153 */ diag::warn_remainder_division_by_zero, -1,
+  /* DiagArray154 */ diag::warn_attribute_dll_redeclaration, -1,
+  /* DiagArray155 */ diag::warn_attribute_dllexport_explicit_instantiation_decl, -1,
+  /* DiagArray156 */ diag::warn_attribute_dllimport_static_field_definition, -1,
+  /* DiagArray157 */ diag::warn_doc_api_container_decl_mismatch, diag::warn_doc_block_command_duplicate, diag::warn_doc_block_command_empty_paragraph, diag::warn_doc_container_decl_mismatch, diag::warn_doc_function_method_decl_mismatch, diag::warn_doc_html_start_tag_expected_ident_or_greater, diag::warn_doc_html_start_tag_expected_quoted_string, diag::warn_doc_param_duplicate, diag::warn_doc_param_invalid_direction, diag::warn_doc_param_not_attached_to_a_function_decl, diag::warn_doc_param_not_found, diag::warn_doc_returns_attached_to_a_void_function, diag::warn_doc_returns_not_attached_to_a_function_decl, diag::warn_doc_tparam_duplicate, diag::warn_doc_tparam_not_attached_to_a_template_decl, diag::warn_doc_tparam_not_found, diag::warn_not_a_doxygen_trailing_member_comment, diag::warn_verbatim_block_end_without_start, -1,
+  /* DiagArray158 */ diag::warn_doc_deprecated_not_sync, -1,
+  /* DiagArray159 */ diag::warn_doc_html_end_forbidden, diag::warn_doc_html_end_unbalanced, diag::warn_doc_html_missing_end_tag, diag::warn_doc_html_start_end_mismatch, -1,
+  /* DiagArray160 */ diag::warn_doc_param_spaces_in_direction, -1,
+  /* DiagArray161 */ diag::warn_correct_comment_command_name, diag::warn_unknown_comment_command_name, -1,
+  /* DiagArray162 */ diag::ext_dollar_in_identifier, -1,
+  /* DiagArray163 */ diag::warn_impcast_double_promotion, -1,
+  /* DiagArray164 */ diag::ext_duplicate_declspec, diag::warn_duplicate_declspec, -1,
+  /* DiagArray165 */ diag::warn_duplicate_enum_values, -1,
+  /* DiagArray166 */ diag::warn_method_param_declaration, -1,
+  /* DiagArray167 */ diag::warn_duplicate_method_decl, -1,
+  /* DiagArray168 */ diag::warn_duplicate_protocol_def, -1,
+  /* DiagArray169 */ diag::warn_dyn_class_memaccess, -1,
+  /* DiagArray170 */ diag::ext_dynamic_exception_spec, -1,
+  /* DiagArray172 */ diag::ext_embedded_directive, -1,
+  /* DiagArray173 */ diag::warn_empty_for_body, diag::warn_empty_if_body, diag::warn_empty_range_based_for_body, diag::warn_empty_switch_body, diag::warn_empty_while_body, -1,
+  /* DiagArray174 */ diag::ext_decomp_decl_empty, -1,
+  /* DiagArray175 */ diag::ext_empty_translation_unit, -1,
+  /* DiagArray176 */ diag::warn_incomplete_encoded_type, -1,
+  /* DiagArray178 */ diag::warn_comparison_of_mixed_enum_types, -1,
+  /* DiagArray179 */ diag::warn_impcast_different_enum_types, -1,
+  /* DiagArray180 */ diag::ext_enum_too_large, diag::ext_enumerator_increment_too_large, -1,
+  /* DiagArray181 */ diag::warn_cdtor_function_try_handler_mem_expr, diag::warn_exception_caught_by_earlier_handler, -1,
+  /* DiagArray182 */ diag::warn_exit_time_destructor, -1,
+  /* DiagArray183 */ diag::warn_defined_in_function_type_macro, diag::warn_defined_in_object_type_macro, -1,
+  /* DiagArray184 */ diag::warn_direct_initialize_call, diag::warn_direct_super_initialize_call, -1,
+  /* DiagArray185 */ diag::warn_arc_strong_pointer_objc_pointer, -1,
+  /* DiagArray186 */ diag::ext_offsetof_extended_field_designator, -1,
+  /* DiagArray187 */ diag::warn_zero_size_struct_union_in_extern_c, -1,
+  /* DiagArray188 */ diag::warn_extern_init, -1,
+  /* DiagArray189 */ diag::warn_arm_interrupt_calling_convention, -1,
+  /* DiagArray190 */ diag::warn_namespace_member_extra_qualification, -1,
+  /* DiagArray191 */ diag::ext_extra_semi, diag::warn_extra_semi_after_mem_fn_def, -1,
+  /* DiagArray192 */ diag::ext_pp_extra_tokens_at_eol, diag::warn_omp_extra_tokens_at_eol, -1,
+  /* DiagArray193 */ diag::warn_drv_invoking_fallback, -1,
+  /* DiagArray194 */ diag::warn_flag_enum_constant_out_of_range, -1,
+  /* DiagArray195 */ diag::ext_flexible_array_in_array, diag::ext_flexible_array_in_struct, -1,
+  /* DiagArray196 */ diag::warn_impcast_float_integer, -1,
+  /* DiagArray197 */ diag::warn_floatingpoint_eq, -1,
+  /* DiagArray198 */ diag::warn_impcast_float_to_integer, -1,
+  /* DiagArray199 */ diag::warn_impcast_float_to_integer_zero, -1,
+  /* DiagArray200 */ diag::warn_redundant_loop_iteration, diag::warn_variables_not_in_loop_body, -1,
+  /* DiagArray201 */ diag::warn_format_P_no_precision, diag::warn_format_argument_needs_cast, diag::warn_format_conversion_argument_type_mismatch, diag::warn_format_invalid_annotation, diag::warn_format_invalid_positional_specifier, diag::warn_format_mix_positional_nonpositional_args, diag::warn_format_nonsensical_length, diag::warn_format_string_is_wide_literal, diag::warn_format_zero_positional_specifier, diag::warn_missing_format_string, diag::warn_printf_ObjCflags_without_ObjCConversion, diag::warn_printf_asterisk_missing_arg, diag::warn_printf_asterisk_wrong_type, diag::warn_printf_empty_objc_flag, diag::warn_printf_format_string_contains_null_char, diag::warn_printf_format_string_not_null_terminated, diag::warn_printf_ignored_flag, diag::warn_printf_incomplete_specifier, diag::warn_printf_insufficient_data_args, diag::warn_printf_invalid_objc_flag, diag::warn_printf_nonsensical_flag, diag::warn_printf_nonsensical_optional_amount, diag::warn_printf_positional_arg_exceeds_data_args, diag::warn_scanf_nonzero_width, diag::warn_scanf_scanlist_incomplete, -1,
+  /* DiagArray202 */ diag::warn_printf_data_arg_not_used, -1,
+  /* DiagArray203 */ diag::warn_format_invalid_conversion, -1,
+  /* DiagArray204 */ diag::warn_format_non_standard, diag::warn_format_non_standard_conversion_spec, diag::warn_format_non_standard_positional_arg, -1,
+  /* DiagArray205 */ diag::warn_format_nonliteral, -1,
+  /* DiagArray206 */ diag::warn_format_conversion_argument_type_mismatch_pedantic, -1,
+  /* DiagArray207 */ diag::warn_format_nonliteral_noargs, -1,
+  /* DiagArray209 */ diag::warn_empty_format_string, -1,
+  /* DiagArray211 */ diag::ext_four_char_character_literal, -1,
+  /* DiagArray212 */ diag::warn_fe_backend_frame_larger_than, diag::warn_fe_frame_larger_than, -1,
+  /* DiagArray213 */ diag::warn_function_def_in_objc_container, -1,
+  /* DiagArray215 */ diag::ext_clang_diagnose_if, diag::ext_clang_enable_if, diag::ext_warn_gnu_final, diag::warn_attribute_on_function_definition, diag::warn_break_binds_to_switch, diag::warn_cleanup_ext, diag::warn_gcc_attribute_location, diag::warn_loop_ctrl_binds_to_inner, -1,
+  /* DiagArray216 */ diag::warn_global_constructor, diag::warn_global_destructor, -1,
+  /* DiagArray218 */ diag::ext_alignof_expr, -1,
+  /* DiagArray219 */ diag::ext_gnu_anonymous_struct, -1,
+  /* DiagArray220 */ diag::ext_array_init_parens, -1,
+  /* DiagArray221 */ diag::ext_auto_type, -1,
+  /* DiagArray222 */ diag::ext_binary_literal, -1,
+  /* DiagArray223 */ diag::ext_gnu_case_range, -1,
+  /* DiagArray224 */ diag::ext_integer_complex, -1,
+  /* DiagArray225 */ diag::ext_array_init_copy, -1,
+  /* DiagArray226 */ diag::ext_gnu_conditional_expr, -1,
+  /* DiagArray227 */ diag::ext_gnu_array_range, diag::ext_gnu_missing_equal_designator, diag::ext_gnu_old_style_field_designator, -1,
+  /* DiagArray228 */ diag::ext_gnu_empty_initializer, -1,
+  /* DiagArray229 */ diag::ext_empty_struct_union, diag::ext_flexible_array_empty_aggregate_gnu, diag::ext_no_named_members_in_struct_union, -1,
+  /* DiagArray230 */ diag::ext_flexible_array_init, -1,
+  /* DiagArray231 */ diag::ext_flexible_array_union_gnu, -1,
+  /* DiagArray232 */ diag::ext_expr_not_ice, diag::ext_in_class_initializer_non_constant, diag::ext_vla_folded_to_constant, -1,
+  /* DiagArray233 */ diag::ext_imaginary_constant, -1,
+  /* DiagArray234 */ diag::ext_pp_include_next_directive, -1,
+  /* DiagArray235 */ diag::ext_gnu_address_of_label, diag::ext_gnu_indirect_goto, -1,
+  /* DiagArray236 */ diag::ext_forward_ref_enum_def, -1,
+  /* DiagArray237 */ diag::ext_gnu_statement_expr, -1,
+  /* DiagArray238 */ diag::ext_in_class_initializer_float_type, -1,
+  /* DiagArray239 */ diag::ext_string_literal_operator_template, -1,
+  /* DiagArray240 */ diag::ext_typecheck_cast_to_union, -1,
+  /* DiagArray241 */ diag::ext_variable_sized_type_in_struct, -1,
+  /* DiagArray242 */ diag::ext_pp_line_zero, -1,
+  /* DiagArray243 */ diag::ext_missing_varargs_arg, diag::ext_paste_comma, -1,
+  /* DiagArray244 */ diag::warn_header_guard, -1,
+  /* DiagArray245 */ diag::warn_using_directive_in_header, -1,
+  /* DiagArray246 */ diag::warn_condition_is_idiomatic_assignment, -1,
+  /* DiagArray247 */ diag::warn_alias_to_weak_alias, diag::warn_alias_with_section, diag::warn_attr_abi_tag_namespace, diag::warn_attribute_after_definition_ignored, diag::warn_attribute_iboutlet, diag::warn_attribute_ignored, diag::warn_attribute_ignored_on_inline, diag::warn_attribute_invalid_on_definition, diag::warn_attribute_no_decl, diag::warn_attribute_nonnull_no_pointers, diag::warn_attribute_nonnull_parm_no_args, diag::warn_attribute_not_on_decl, diag::warn_attribute_pointer_or_reference_only, diag::warn_attribute_pointers_only, diag::warn_attribute_precede_definition, diag::warn_attribute_return_pointers_only, diag::warn_attribute_return_pointers_refs_only, diag::warn_attribute_sentinel_named_arguments, diag::warn_attribute_sentinel_not_variadic, diag::warn_attribute_type_not_supported, diag::warn_attribute_unknown_visibility, diag::warn_attribute_void_function_method, diag::warn_attribute_weak_on_field, diag::warn_attribute_weak_on_local, diag::warn_attribute_wrong_decl_type, diag::warn_block_literal_attributes_on_omitted_return_type, diag::warn_cconv_ignored, diag::warn_cconv_structors, diag::warn_cconv_varargs, diag::warn_cxx11_gnu_attribute_on_type, diag::warn_declspec_attribute_ignored, diag::warn_deprecated_anonymous_namespace, diag::warn_dllimport_dropped_from_inline_function, diag::warn_duplicate_attribute, diag::warn_duplicate_attribute_exact, diag::warn_gc_attribute_weak_on_local, diag::warn_gnu_inline_attribute_requires_inline, diag::warn_ignored_ms_inheritance, diag::warn_internal_linkage_local_storage, diag::warn_microsoft_qualifiers_ignored, diag::warn_mips_interrupt_attribute, diag::warn_mmap_unknown_attribute, diag::warn_ns_attribute_wrong_parameter_type, diag::warn_ns_attribute_wrong_return_type, diag::warn_opencl_attr_deprecated_ignored, diag::warn_transparent_union_attribute_field_size_align, diag::warn_transparent_union_attribute_floating, diag::warn_transparent_union_attribute_not_definition, diag::warn_transparent_union_attribute_zero_fields, diag::warn_type_attribute_wrong_type, diag::warn_unhandled_ms_attribute_ignored, diag::warn_unsupported_target_attribute, -1,
+  /* DiagArray248 */ diag::warn_drv_unsupported_opt_for_target, diag::warn_ignored_gcc_optimization, -1,
+  /* DiagArray249 */ diag::warn_pragma_intrinsic_builtin, -1,
+  /* DiagArray250 */ diag::warn_pragma_align_expected_equal, diag::warn_pragma_align_invalid_option, diag::warn_pragma_begin_end_mismatch, diag::warn_pragma_comment_ignored, diag::warn_pragma_debug_missing_argument, diag::warn_pragma_debug_unexpected_command, diag::warn_pragma_expected_action_or_r_paren, diag::warn_pragma_expected_colon, diag::warn_pragma_expected_colon_r_paren, diag::warn_pragma_expected_identifier, diag::warn_pragma_expected_init_seg, diag::warn_pragma_expected_integer, diag::warn_pragma_expected_lparen, diag::warn_pragma_expected_non_wide_string, diag::warn_pragma_expected_predicate, diag::warn_pragma_expected_punc, diag::warn_pragma_expected_rparen, diag::warn_pragma_expected_section_label_or_name, diag::warn_pragma_expected_section_name, diag::warn_pragma_expected_section_push_pop_or_name, diag::warn_pragma_extra_tokens_at_eol, diag::warn_pragma_force_cuda_host_device_bad_arg, diag::warn_pragma_init_seg_unsupported_target, diag::warn_pragma_invalid_action, diag::warn_pragma_invalid_specific_action, diag::warn_pragma_ms_struct, diag::warn_pragma_options_align_reset_failed, diag::warn_pragma_options_expected_align, diag::warn_pragma_pack_invalid_alignment, diag::warn_pragma_pack_malformed, diag::warn_pragma_pop_failed, diag::warn_pragma_pop_macro_no_push, diag::warn_pragma_unknown_extension, diag::warn_pragma_unsupported_action, diag::warn_pragma_unsupported_extension, diag::warn_pragma_unused_expected_var, diag::warn_pragma_unused_expected_var_arg, diag::warn_pragma_unused_undeclared_var, -1,
+  /* DiagArray251 */ diag::warn_arc_lifetime_result_type, diag::warn_block_literal_qualifiers_on_omitted_return_type, diag::warn_qual_return_type, diag::warn_typecheck_function_qualifiers_ignored, diag::warn_typecheck_reference_qualifiers, -1,
+  /* DiagArray253 */ diag::warn_auto_implicit_atomic_property, diag::warn_implicit_atomic_property, -1,
+  /* DiagArray254 */ diag::warn_impcast_floating_point_to_bool, -1,
+  /* DiagArray255 */ diag::ext_implicit_exception_spec_mismatch, -1,
+  /* DiagArray256 */ diag::warn_fallthrough_attr_unreachable, diag::warn_unannotated_fallthrough, -1,
+  /* DiagArray257 */ diag::warn_unannotated_fallthrough_per_function, -1,
+  /* DiagArray258 */ diag::ext_implicit_function_decl, diag::ext_implicit_lib_function_decl, diag::warn_builtin_unknown, diag::warn_implicit_function_decl, -1,
+  /* DiagArray259 */ diag::ext_missing_type_specifier, -1,
+  /* DiagArray260 */ diag::warn_implicitly_retains_self, -1,
+  /* DiagArray261 */ diag::ext_integer_literal_too_large_for_signed, -1,
+  /* DiagArray263 */ diag::ext_pp_import_directive, -1,
+  /* DiagArray264 */ diag::warn_inaccessible_base_class, -1,
+  /* DiagArray265 */ diag::pp_include_next_absolute_path, -1,
+  /* DiagArray266 */ diag::pp_include_next_in_primary, -1,
+  /* DiagArray267 */ diag::warn_deep_exception_specs_differ, diag::warn_incompatible_exception_specs, -1,
+  /* DiagArray268 */ diag::ext_typecheck_convert_incompatible_function_pointer, -1,
+  /* DiagArray269 */ diag::warn_redecl_library_builtin, -1,
+  /* DiagArray270 */ diag::warn_cxx_ms_struct, -1,
+  /* DiagArray271 */ diag::ext_typecheck_convert_incompatible_pointer, -1,
+  /* DiagArray272 */ diag::ext_nested_pointer_qualifier_mismatch, diag::ext_typecheck_convert_discards_qualifiers, -1,
+  /* DiagArray273 */ diag::warn_property_types_are_incompatible, -1,
+  /* DiagArray274 */ diag::warn_incompatible_sysroot, -1,
+  /* DiagArray275 */ diag::warn_undef_method_impl, -1,
+  /* DiagArray277 */ diag::warn_missing_submodule, diag::warn_uncovered_module_header, -1,
+  /* DiagArray278 */ diag::warn_redeclaration_without_attribute_prev_attribute_ignored, diag::warn_redeclaration_without_import_attribute, -1,
+  /* DiagArray279 */ diag::warn_destructor_marked_not_override_overriding, -1,
+  /* DiagArray280 */ diag::warn_function_marked_not_override_overriding, -1,
+  /* DiagArray281 */ diag::ext_increment_bool, -1,
+  /* DiagArray282 */ diag::warn_infinite_recursive_function, -1,
+  /* DiagArray284 */ diag::warn_initializer_overrides, diag::warn_subobject_initializer_overrides, -1,
+  /* DiagArray285 */ diag::ext_out_of_line_qualified_id_type_names_constructor, -1,
+  /* DiagArray287 */ diag::warn_fe_inline_asm, -1,
+  /* DiagArray288 */ diag::ext_operator_new_delete_declared_inline, -1,
+  /* DiagArray289 */ diag::warn_explicit_instantiation_after_specialization, -1,
+  /* DiagArray290 */ diag::ext_typecheck_convert_int_pointer, diag::ext_typecheck_convert_pointer_int, -1,
+  /* DiagArray292 */ diag::warn_int_to_pointer_cast, -1,
+  /* DiagArray293 */ diag::warn_int_to_void_pointer_cast, -1,
+  /* DiagArray294 */ diag::warn_integer_constant_overflow, -1,
+  /* DiagArray295 */ diag::warn_drv_optimization_value, -1,
+  /* DiagArray296 */ diag::ext_constexpr_function_never_constant_expr, -1,
+  /* DiagArray297 */ diag::warn_iboutlet_object_type, diag::warn_iboutletcollection_property_assign, -1,
+  /* DiagArray298 */ diag::warn_invalid_initializer_from_system_header, -1,
+  /* DiagArray299 */ diag::warn_falloff_noreturn_function, diag::warn_noreturn_function_has_return_expr, -1,
+  /* DiagArray300 */ diag::ext_offsetof_non_pod_type, diag::ext_offsetof_non_standardlayout_type, -1,
+  /* DiagArray301 */ diag::warn_drv_ps4_sdk_dir, diag::warn_drv_unable_to_find_directory_expected, -1,
+  /* DiagArray302 */ diag::ext_partial_spec_not_more_specialized_than_primary, -1,
+  /* DiagArray304 */ diag::ext_empty_character, diag::ext_unterminated_char_or_string, -1,
+  /* DiagArray305 */ diag::warn_bad_character_encoding, diag::warn_bad_string_encoding, -1,
+  /* DiagArray306 */ diag::ext_pp_bad_paste_ms, -1,
+  /* DiagArray307 */ diag::warn_jump_out_of_seh_finally, -1,
+  /* DiagArray308 */ diag::ext_keyword_as_ident, -1,
+  /* DiagArray309 */ diag::warn_pp_macro_hides_keyword, -1,
+  /* DiagArray310 */ diag::ext_param_promoted_not_compatible_with_prototype, -1,
+  /* DiagArray311 */ diag::ext_token_used, -1,
+  /* DiagArray312 */ diag::warn_parameter_size, diag::warn_return_value_size, -1,
+  /* DiagArray314 */ diag::warn_impcast_literal_float_to_integer, -1,
+  /* DiagArray315 */ diag::warn_float_overflow, diag::warn_float_underflow, -1,
+  /* DiagArray316 */ diag::ext_template_arg_local_type, -1,
+  /* DiagArray317 */ diag::warn_logical_not_on_lhs_of_check, -1,
+  /* DiagArray318 */ diag::warn_logical_and_in_logical_or, -1,
+  /* DiagArray319 */ diag::ext_c99_longlong, -1,
+  /* DiagArray321 */ diag::ext_pp_macro_redef, -1,
+  /* DiagArray322 */ diag::ext_main_used, diag::ext_noreturn_main, diag::ext_variadic_main, diag::warn_main_one_arg, diag::warn_main_redefined, diag::warn_main_returns_bool_literal, diag::warn_static_main, -1,
+  /* DiagArray323 */ diag::ext_main_returns_nonint, -1,
+  /* DiagArray324 */ diag::warn_has_warning_invalid_option, -1,
+  /* DiagArray325 */ diag::ext_many_braces_around_scalar_init, -1,
+  /* DiagArray326 */ diag::warn_max_unsigned_zero, -1,
+  /* DiagArray327 */ diag::warn_memsize_comparison, -1,
+  /* DiagArray328 */ diag::warn_non_contravariant_param_types, diag::warn_non_covariant_ret_types, -1,
+  /* DiagArray330 */ diag::ext_anonymous_record_with_type, diag::ext_ms_anonymous_record, -1,
+  /* DiagArray331 */ diag::ext_ms_cast_fn_obj, diag::ext_ms_impcast_fn_obj, -1,
+  /* DiagArray332 */ diag::ext_charize_microsoft, -1,
+  /* DiagArray333 */ diag::ext_comment_paste_microsoft, -1,
+  /* DiagArray334 */ diag::ext_default_init_const, -1,
+  /* DiagArray335 */ diag::ext_pp_operator_used_as_macro_name, -1,
+  /* DiagArray336 */ diag::ext_param_default_argument_redefinition, -1,
+  /* DiagArray337 */ diag::ext_ctrl_z_eof_microsoft, -1,
+  /* DiagArray338 */ diag::ext_ms_forward_ref_enum, -1,
+  /* DiagArray339 */ diag::ext_enumerator_too_large, -1,
+  /* DiagArray340 */ diag::ext_ellipsis_exception_spec, diag::ext_incomplete_in_exception_spec, diag::ext_mismatched_exception_spec, diag::ext_mismatched_exception_spec_explicit_instantiation, diag::ext_ms_missing_exception_specification, diag::ext_override_exception_spec, -1,
+  /* DiagArray341 */ diag::warn_microsoft_dependent_exists, -1,
+  /* DiagArray342 */ diag::ext_ms_explicit_constructor_call, -1,
+  /* DiagArray343 */ diag::warn_member_extra_qualification, -1,
+  /* DiagArray344 */ diag::ext_c_enum_fixed_underlying_type, -1,
+  /* DiagArray345 */ diag::ext_flexible_array_empty_aggregate_ms, diag::ext_flexible_array_union_ms, -1,
+  /* DiagArray346 */ diag::ext_goto_into_protected_scope, -1,
+  /* DiagArray347 */ diag::ext_pp_include_search_ms, -1,
+  /* DiagArray348 */ diag::ext_mutable_reference, -1,
+  /* DiagArray349 */ diag::ext_pure_function_definition, -1,
+  /* DiagArray350 */ diag::ext_static_non_static, -1,
+  /* DiagArray351 */ diag::ext_ms_sealed_keyword, -1,
+  /* DiagArray352 */ diag::ext_explicit_instantiation_duplicate, diag::ext_found_via_dependent_bases_lookup, diag::ext_function_specialization_in_class, diag::ext_ms_delayed_template_argument, diag::ext_ms_deref_template_argument, diag::ext_ms_template_spec_redecl_out_of_scope, diag::ext_ms_template_type_arg_missing_typename, diag::ext_undeclared_unqual_id_with_dependent_base, -1,
+  /* DiagArray353 */ diag::ext_union_member_of_reference_type, -1,
+  /* DiagArray354 */ diag::ext_friend_tag_redecl_outside_namespace, -1,
+  /* DiagArray355 */ diag::ext_ms_using_declaration_inaccessible, -1,
+  /* DiagArray356 */ diag::ext_pseudo_dtor_on_void, -1,
+  /* DiagArray357 */ diag::warn_mismatched_delete_new, -1,
+  /* DiagArray358 */ diag::warn_conflicting_param_types, -1,
+  /* DiagArray359 */ diag::warn_conflicting_ret_types, -1,
+  /* DiagArray360 */ diag::warn_struct_class_previous_tag_mismatch, diag::warn_struct_class_tag_mismatch, -1,
+  /* DiagArray361 */ diag::warn_missing_braces, -1,
+  /* DiagArray362 */ diag::ext_no_declarators, diag::ext_standalone_specifier, diag::ext_typedef_without_a_name, diag::warn_standalone_specifier, -1,
+  /* DiagArray363 */ diag::ext_missing_exception_specification, -1,
+  /* DiagArray364 */ diag::warn_missing_field_initializers, -1,
+  /* DiagArray367 */ diag::warn_missing_method_return_type, -1,
+  /* DiagArray368 */ diag::warn_suggest_noreturn_block, diag::warn_suggest_noreturn_function, -1,
+  /* DiagArray369 */ diag::warn_cconv_knr, -1,
+  /* DiagArray370 */ diag::warn_missing_prototype, -1,
+  /* DiagArray371 */ diag::warn_missing_selector_name, -1,
+  /* DiagArray372 */ diag::warn_missing_sysroot, -1,
+  /* DiagArray373 */ diag::warn_missing_variable_declarations, -1,
+  /* DiagArray374 */ diag::remark_module_build, diag::remark_module_build_done, diag::remark_module_lock_failure, diag::remark_module_lock_timeout, -1,
+  /* DiagArray375 */ diag::warn_module_conflict, diag::warn_module_system_bit_conflict, -1,
+  /* DiagArray376 */ diag::warn_module_config_mismatch, -1,
+  /* DiagArray377 */ diag::warn_duplicate_module_file_extension, -1,
+  /* DiagArray378 */ diag::ext_module_import_in_extern_c, -1,
+  /* DiagArray379 */ diag::ext_equivalent_internal_linkage_decl_in_modules, -1,
+  /* DiagArray380 */ diag::ext_module_import_not_at_top_level_noop, -1,
+  /* DiagArray384 */ diag::warn_drv_msvc_not_found, -1,
+  /* DiagArray385 */ diag::ext_multichar_character_literal, -1,
+  /* DiagArray386 */ diag::warn_vbase_moved_multiple_times, -1,
+  /* DiagArray388 */ diag::ext_anonymous_record_with_anonymous_type, -1,
+  /* DiagArray390 */ diag::warn_operator_new_returns_null, -1,
+  /* DiagArray391 */ diag::ext_no_newline_eof, diag::warn_no_newline_eof, -1,
+  /* DiagArray393 */ diag::warn_non_literal_null_pointer, -1,
+  /* DiagArray394 */ diag::warn_non_modular_include_in_framework_module, -1,
+  /* DiagArray395 */ diag::warn_non_modular_include_in_module, -1,
+  /* DiagArray396 */ diag::warn_cannot_pass_non_pod_arg_to_vararg, diag::warn_non_pod_vararg_with_format_string, diag::warn_second_parameter_to_va_arg_not_pod, diag::warn_second_parameter_to_va_arg_ownership_qualified, -1,
+  /* DiagArray397 */ diag::warn_non_virtual_dtor, -1,
+  /* DiagArray398 */ diag::warn_null_arg, diag::warn_null_ret, -1,
+  /* DiagArray400 */ diag::pp_nonportable_path, -1,
+  /* DiagArray401 */ diag::pp_nonportable_system_path, -1,
+  /* DiagArray402 */ diag::warn_neon_vector_initializer_non_portable, -1,
+  /* DiagArray403 */ diag::warn_null_in_arithmetic_operation, diag::warn_null_in_comparison_operation, -1,
+  /* DiagArray404 */ diag::null_in_char_or_string, diag::null_in_file, -1,
+  /* DiagArray405 */ diag::warn_impcast_null_pointer_to_integer, -1,
+  /* DiagArray406 */ diag::warn_binding_null_to_reference, diag::warn_indirection_through_null, -1,
+  /* DiagArray407 */ diag::warn_conflicting_nullability_attr_overriding_param_types, diag::warn_conflicting_nullability_attr_overriding_ret_types, diag::warn_mismatched_nullability_attr, diag::warn_null_resettable_setter, diag::warn_nullability_duplicate, -1,
+  /* DiagArray408 */ diag::warn_nullability_missing, -1,
+  /* DiagArray409 */ diag::warn_nullability_missing_array, -1,
+  /* DiagArray410 */ diag::warn_nullability_declspec, -1,
+  /* DiagArray411 */ diag::ext_nullability, -1,
+  /* DiagArray412 */ diag::warn_nullability_inferred_on_nested_type, -1,
+  /* DiagArray413 */ diag::warn_nullability_lost, -1,
+  /* DiagArray414 */ diag::warn_autosynthesis_property_ivar_match, -1,
+  /* DiagArray415 */ diag::warn_objc_circular_container, -1,
+  /* DiagArray417 */ diag::warn_objc_designated_init_missing_super_call, diag::warn_objc_designated_init_non_designated_init_call, diag::warn_objc_designated_init_non_super_designated_init_call, diag::warn_objc_implementation_missing_designated_init_override, diag::warn_objc_secondary_init_missing_init_call, diag::warn_objc_secondary_init_super_init_call, -1,
+  /* DiagArray418 */ diag::warn_forward_class_redefinition, -1,
+  /* DiagArray419 */ diag::warn_ivars_in_interface, -1,
+  /* DiagArray420 */ diag::warn_objc_literal_comparison, -1,
+  /* DiagArray421 */ diag::warn_impcast_objective_c_literal_to_bool, diag::warn_objc_collection_literal_element, -1,
+  /* DiagArray422 */ diag::warn_pp_objc_macro_redef_ignored, -1,
+  /* DiagArray423 */ diag::warn_class_method_not_found, diag::warn_class_method_not_found_with_typo, diag::warn_inst_method_not_found, diag::warn_instance_method_not_found_with_typo, diag::warn_instance_method_on_class_found, diag::warn_root_inst_method_not_found, -1,
+  /* DiagArray424 */ diag::warn_missing_explicit_synthesis, -1,
+  /* DiagArray425 */ diag::warn_objc_missing_super_call, -1,
+  /* DiagArray426 */ diag::warn_multiple_method_decl, -1,
+  /* DiagArray427 */ diag::warn_objc_property_retain_of_block, -1,
+  /* DiagArray428 */ diag::warn_objc_pointer_cxx_catch_fragile, -1,
+  /* DiagArray429 */ diag::warn_impl_required_for_class_property, diag::warn_impl_required_in_category_for_class_property, diag::warn_setter_getter_impl_required, diag::warn_setter_getter_impl_required_in_category, -1,
+  /* DiagArray430 */ diag::warn_property_implicitly_mismatched, -1,
+  /* DiagArray431 */ diag::warn_cocoa_naming_owned_rule, -1,
+  /* DiagArray432 */ diag::warn_objc_property_default_assign_on_object, diag::warn_objc_property_no_assignment_attribute, -1,
+  /* DiagArray433 */ diag::warn_autosynthesis_property_in_superclass, diag::warn_no_autosynthesis_property, diag::warn_no_autosynthesis_shared_ivar_property, -1,
+  /* DiagArray434 */ diag::warn_category_method_impl_match, -1,
+  /* DiagArray435 */ diag::warn_auto_synthesizing_protocol_property, -1,
+  /* DiagArray436 */ diag::warn_objc_redundant_qualified_class_type, -1,
+  /* DiagArray437 */ diag::warn_objc_readonly_property_has_setter, -1,
+  /* DiagArray439 */ diag::warn_objc_redundant_literal_use, -1,
+  /* DiagArray440 */ diag::warn_objc_root_class_missing, -1,
+  /* DiagArray441 */ diag::warn_objc_string_literal_comparison, -1,
+  /* DiagArray442 */ diag::warn_concatenated_nsarray_literal, -1,
+  /* DiagArray443 */ diag::warn_objc_unsafe_perform_selector, -1,
+  /* DiagArray444 */ diag::warn_odr_tag_type_inconsistent, -1,
+  /* DiagArray445 */ diag::warn_old_style_cast, -1,
+  /* DiagArray447 */ diag::ext_opencl_ext_vector_type_rgba_selector, -1,
+  /* DiagArray448 */ diag::warn_omp_alignment_not_power_of_two, diag::warn_omp_linear_step_zero, -1,
+  /* DiagArray449 */ diag::ext_omp_loop_not_canonical_init, diag::warn_omp_loop_64_bit_var, -1,
+  /* DiagArray450 */ diag::warn_drv_omp_offload_target_duplicate, diag::warn_omp_not_in_target_context, -1,
+  /* DiagArray451 */ diag::warn_drv_ps4_force_pic, -1,
+  /* DiagArray452 */ diag::ext_out_of_line_declaration, -1,
+  /* DiagArray453 */ diag::warn_overaligned_type, -1,
+  /* DiagArray455 */ diag::ext_string_too_long, -1,
+  /* DiagArray456 */ diag::warn_overloaded_shift_in_comparison, -1,
+  /* DiagArray457 */ diag::warn_overloaded_virtual, -1,
+  /* DiagArray458 */ diag::warn_fe_override_module, -1,
+  /* DiagArray459 */ diag::warn_conflicting_overriding_param_modifiers, diag::warn_conflicting_overriding_param_types, diag::warn_conflicting_overriding_ret_type_modifiers, diag::warn_conflicting_overriding_ret_types, diag::warn_conflicting_overriding_variadic, diag::warn_non_contravariant_overriding_param_types, diag::warn_non_covariant_overriding_ret_types, -1,
+  /* DiagArray460 */ diag::warn_drv_overriding_flag_option, -1,
+  /* DiagArray461 */ diag::warn_unnecessary_packed, -1,
+  /* DiagArray462 */ diag::warn_padded_struct_anon_field, diag::warn_padded_struct_field, diag::warn_padded_struct_size, -1,
+  /* DiagArray463 */ diag::warn_condition_is_assignment, diag::warn_precedence_bitwise_rel, diag::warn_precedence_conditional, -1,
+  /* DiagArray464 */ diag::warn_equality_with_extra_parens, -1,
+  /* DiagArray466 */ diag::remark_fe_backend_optimization_remark, -1,
+  /* DiagArray467 */ diag::remark_fe_backend_optimization_remark_analysis, diag::remark_fe_backend_optimization_remark_analysis_aliasing, diag::remark_fe_backend_optimization_remark_analysis_fpcommute, -1,
+  /* DiagArray468 */ diag::warn_fe_backend_optimization_failure, -1,
+  /* DiagArray469 */ diag::remark_fe_backend_optimization_remark_missed, -1,
+  /* DiagArray470 */ diag::warn_module_uses_date_time, -1,
+  /* DiagArray471 */ diag::ext_aggregate_init_not_constant, diag::ext_anonymous_record_with_type, diag::ext_anonymous_struct_union_qualified, diag::ext_array_size_conversion, diag::ext_c99_array_usage, diag::ext_c99_compound_literal, diag::ext_c99_flexible_array_member, diag::ext_c99_variable_decl_in_for_loop, diag::ext_cast_fn_obj, diag::ext_clang_diagnose_if, diag::ext_clang_enable_if, diag::ext_cxx11_enum_fixed_underlying_type, diag::ext_cxx14_attr, diag::ext_cxx1z_attr, diag::ext_designated_init, diag::ext_ellipsis_exception_spec, diag::ext_empty_fnmacro_arg, diag::ext_enum_value_not_int, diag::ext_enumerator_list_comma_c, diag::ext_enumerator_list_comma_cxx, diag::ext_explicit_instantiation_without_qualified_id, diag::ext_extern_template, diag::ext_extra_semi, diag::ext_forward_ref_enum, diag::ext_freestanding_complex, diag::ext_gnu_array_range, diag::ext_gnu_ptr_func_arith, diag::ext_gnu_subscript_void_type, diag::ext_gnu_void_ptr, diag::ext_hex_constant_invalid, diag::ext_hex_literal_invalid, diag::ext_ident_list_in_param, diag::ext_integer_complement_complex, diag::ext_integer_increment_complex, diag::ext_internal_in_extern_inline_quiet, diag::ext_invalid_sign_spec, diag::ext_line_comment, diag::ext_main_used, diag::ext_multi_line_line_comment, diag::ext_no_newline_eof, diag::ext_nonstandard_escape, diag::ext_param_not_declared, diag::ext_pp_bad_vaargs_use, diag::ext_pp_comma_expr, diag::ext_pp_ident_directive, diag::ext_pp_line_too_big, diag::ext_pp_warning_directive, diag::ext_return_has_void_expr, diag::ext_rvalue_to_reference_access_ctor, diag::ext_rvalue_to_reference_temp_copy_no_viable, diag::ext_sizeof_alignof_function_type, diag::ext_sizeof_alignof_void_type, diag::ext_subscript_non_lvalue, diag::ext_thread_before, diag::ext_typecheck_addrof_void, diag::ext_typecheck_cast_nonscalar, diag::ext_typecheck_comparison_of_fptr_to_void, diag::ext_typecheck_cond_one_void, diag::ext_typecheck_convert_pointer_void_func, diag::ext_typecheck_ordered_comparison_of_pointer_and_zero, diag::warn_defined_in_function_type_macro, diag::warn_illegal_constant_array_size, diag::warn_kern_is_method, -1,
+  /* DiagArray472 */ diag::warn_pragma_extension_is_core, -1,
+  /* DiagArray473 */ diag::warn_pessimizing_move_on_initialization, diag::warn_pessimizing_move_on_return, -1,
+  /* DiagArray474 */ diag::ext_gnu_ptr_func_arith, diag::ext_gnu_subscript_void_type, diag::ext_gnu_void_ptr, diag::ext_sizeof_alignof_function_type, diag::ext_sizeof_alignof_void_type, diag::warn_sub_ptr_zero_size_types, -1,
+  /* DiagArray475 */ diag::warn_cast_nonnull_to_bool, diag::warn_impcast_pointer_to_bool, -1,
+  /* DiagArray476 */ diag::ext_typecheck_convert_incompatible_pointer_sign, -1,
+  /* DiagArray478 */ diag::ext_typecheck_cond_incompatible_pointers, -1,
+  /* DiagArray479 */ diag::warn_side_effects_typeid, -1,
+  /* DiagArray480 */ diag::pp_pragma_once_in_main_file, -1,
+  /* DiagArray481 */ diag::pp_pragma_sysheader_in_main_file, -1,
+  /* DiagArray482 */ diag::warn_redefine_extname_not_applied, -1,
+  /* DiagArray483 */ diag::ext_predef_outside_function, -1,
+  /* DiagArray484 */ diag::warn_private_extern, -1,
+  /* DiagArray485 */ diag::warn_use_of_private_header_outside_module, -1,
+  /* DiagArray486 */ diag::warn_mmap_mismatched_top_level_private, -1,
+  /* DiagArray487 */ diag::warn_profile_data_out_of_date, -1,
+  /* DiagArray488 */ diag::warn_profile_data_unprofiled, -1,
+  /* DiagArray489 */ diag::warn_property_access_suggest, -1,
+  /* DiagArray490 */ diag::warn_property_attr_mismatch, diag::warn_property_attribute, diag::warn_property_redecl_getter_mismatch, diag::warn_readonly_property, -1,
+  /* DiagArray491 */ diag::warn_unimplemented_protocol_method, -1,
+  /* DiagArray492 */ diag::warn_protocol_property_mismatch, -1,
+  /* DiagArray493 */ diag::err_func_returning_qualified_void, -1,
+  /* DiagArray494 */ diag::warn_for_range_const_reference_copy, diag::warn_for_range_copy, diag::warn_for_range_variable_always_copy, -1,
+  /* DiagArray495 */ diag::warn_auto_readonly_iboutlet_property, -1,
+  /* DiagArray496 */ diag::warn_bad_receiver_type, -1,
+  /* DiagArray497 */ diag::warn_receiver_forward_class, diag::warn_receiver_forward_instance, -1,
+  /* DiagArray498 */ diag::ext_member_redeclared, -1,
+  /* DiagArray500 */ diag::warn_redundant_move_on_return, -1,
+  /* DiagArray501 */ diag::ext_register_storage_class, -1,
+  /* DiagArray502 */ diag::warn_reinterpret_different_from_static, -1,
+  /* DiagArray503 */ diag::remark_fe_backend_plugin, -1,
+  /* DiagArray504 */ diag::warn_initializer_out_of_order, -1,
+  /* DiagArray505 */ diag::warn_objc_requires_super_protocol, -1,
+  /* DiagArray506 */ diag::warn_pp_macro_is_reserved_id, -1,
+  /* DiagArray507 */ diag::ext_ms_reserved_user_defined_literal, diag::ext_reserved_user_defined_literal, -1,
+  /* DiagArray508 */ diag::ext_retained_language_linkage, -1,
+  /* DiagArray509 */ diag::warn_ret_addr_label, diag::warn_ret_local_temp_addr_ref, diag::warn_ret_stack_addr_ref, -1,
+  /* DiagArray510 */ diag::ext_return_has_expr, diag::ext_return_missing_expr, diag::warn_falloff_nonvoid_coroutine, diag::warn_falloff_nonvoid_function, diag::warn_falloff_nonvoid_lambda, diag::warn_maybe_falloff_nonvoid_coroutine, diag::warn_maybe_falloff_nonvoid_function, diag::warn_maybe_falloff_nonvoid_lambda, diag::warn_return_missing_expr, -1,
+  /* DiagArray511 */ diag::warn_return_value_udt, diag::warn_return_value_udt_incomplete, -1,
+  /* DiagArray512 */ diag::warn_drv_enabling_rtti_with_exceptions, -1,
+  /* DiagArray513 */ diag::remark_sanitize_address_insert_extra_padding_accepted, diag::remark_sanitize_address_insert_extra_padding_rejected, -1,
+  /* DiagArray514 */ diag::warn_mismatched_section, -1,
+  /* DiagArray515 */ diag::warn_unimplemented_selector, -1,
+  /* DiagArray516 */ diag::warn_multiple_selectors, -1,
+  /* DiagArray517 */ diag::warn_self_assignment, -1,
+  /* DiagArray518 */ diag::warn_identity_field_assign, -1,
+  /* DiagArray519 */ diag::warn_self_move, -1,
+  /* DiagArray520 */ diag::warn_semicolon_before_method_body, -1,
+  /* DiagArray521 */ diag::warn_missing_sentinel, diag::warn_not_enough_argument, -1,
+  /* DiagArray523 */ diag::warn_fe_serialized_diag_failure, diag::warn_fe_serialized_diag_merge_failure, -1,
+  /* DiagArray524 */ diag::warn_decl_shadow, -1,
+  /* DiagArray526 */ diag::warn_shadow_field, -1,
+  /* DiagArray527 */ diag::warn_ctor_parm_shadows_field, -1,
+  /* DiagArray528 */ diag::warn_modifying_shadowing_decl, -1,
+  /* DiagArray529 */ diag::warn_ivar_use_hidden, -1,
+  /* DiagArray530 */ diag::warn_decl_shadow_uncaptured_local, -1,
+  /* DiagArray531 */ diag::warn_shift_negative, -1,
+  /* DiagArray532 */ diag::warn_shift_gt_typewidth, -1,
+  /* DiagArray533 */ diag::warn_shift_lhs_negative, -1,
+  /* DiagArray534 */ diag::warn_addition_in_bitshift, -1,
+  /* DiagArray535 */ diag::warn_shift_result_gt_typewidth, -1,
+  /* DiagArray536 */ diag::warn_shift_result_sets_sign_bit, -1,
+  /* DiagArray537 */ diag::warn_impcast_integer_64_32, -1,
+  /* DiagArray538 */ diag::warn_mixed_sign_comparison, -1,
+  /* DiagArray539 */ diag::warn_impcast_integer_sign, diag::warn_impcast_integer_sign_conditional, -1,
+  /* DiagArray541 */ diag::warn_no_underlying_type_specified_for_enum_bitfield, -1,
+  /* DiagArray542 */ diag::warn_sizeof_array_param, -1,
+  /* DiagArray543 */ diag::warn_sizeof_array_decay, -1,
+  /* DiagArray544 */ diag::warn_sizeof_pointer_expr_memaccess, diag::warn_sizeof_pointer_type_memaccess, -1,
+  /* DiagArray545 */ diag::warn_slash_u_filename, -1,
+  /* DiagArray546 */ diag::warn_sometimes_uninit_var, -1,
+  /* DiagArray547 */ diag::warn_omp_nesting_simd, diag::warn_pragma_omp_ignored, -1,
+  /* DiagArray548 */ diag::warn_sampler_initializer_invalid_bits, -1,
+  /* DiagArray550 */ diag::ext_in_class_initializer_float_type_cxx11, -1,
+  /* DiagArray551 */ diag::ext_internal_in_extern_inline, diag::ext_internal_in_extern_inline_quiet, -1,
+  /* DiagArray552 */ diag::warn_static_inline_explicit_inst_ignored, -1,
+  /* DiagArray553 */ diag::warn_static_local_in_extern_inline, -1,
+  /* DiagArray554 */ diag::warn_static_self_reference_in_init, -1,
+  /* DiagArray566 */ diag::warn_strict_prototypes, -1,
+  /* DiagArray567 */ diag::warn_strict_multiple_method_decl, -1,
+  /* DiagArray568 */ diag::warn_stringcompare, -1,
+  /* DiagArray569 */ diag::warn_impcast_string_literal_to_bool, -1,
+  /* DiagArray570 */ diag::warn_string_plus_char, -1,
+  /* DiagArray571 */ diag::warn_string_plus_int, -1,
+  /* DiagArray572 */ diag::warn_strlcpycat_wrong_size, -1,
+  /* DiagArray573 */ diag::warn_strncat_large_size, diag::warn_strncat_src_size, diag::warn_strncat_wrong_size, -1,
+  /* DiagArray574 */ diag::ext_typecheck_base_super, -1,
+  /* DiagArray575 */ diag::warn_case_value_overflow, diag::warn_missing_case, diag::warn_not_in_enum, -1,
+  /* DiagArray576 */ diag::warn_bool_switch_condition, -1,
+  /* DiagArray578 */ diag::warn_def_missing_case, -1,
+  /* DiagArray579 */ diag::warn_sync_fetch_and_nand_semantics_change, -1,
+  /* DiagArray581 */ diag::warn_comparison_always, diag::warn_comparison_bitwise_always, diag::warn_lunsigned_always_true_comparison, diag::warn_runsigned_always_true_comparison, -1,
+  /* DiagArray582 */ diag::warn_out_of_range_compare, -1,
+  /* DiagArray583 */ diag::warn_tautological_overlap_comparison, -1,
+  /* DiagArray584 */ diag::warn_nonnull_expr_compare, diag::warn_null_pointer_compare, -1,
+  /* DiagArray585 */ diag::warn_address_of_reference_null_compare, diag::warn_this_null_compare, -1,
+  /* DiagArray586 */ diag::ext_typecheck_decl_incomplete_type, -1,
+  /* DiagArray588 */ diag::warn_acquired_before, diag::warn_acquired_before_after_cycle, diag::warn_cannot_resolve_lock, diag::warn_double_lock, diag::warn_expecting_lock_held_on_loop, diag::warn_expecting_locked, diag::warn_fun_excludes_mutex, diag::warn_fun_requires_lock, diag::warn_lock_exclusive_and_shared, diag::warn_lock_some_predecessors, diag::warn_no_unlock, diag::warn_unlock_but_no_lock, diag::warn_unlock_kind_mismatch, diag::warn_var_deref_requires_any_lock, diag::warn_var_deref_requires_lock, diag::warn_variable_requires_any_lock, diag::warn_variable_requires_lock, -1,
+  /* DiagArray589 */ diag::warn_invalid_capability_name, diag::warn_thread_attribute_argument_not_lockable, diag::warn_thread_attribute_decl_not_lockable, diag::warn_thread_attribute_decl_not_pointer, diag::warn_thread_attribute_ignored, -1,
+  /* DiagArray590 */ diag::warn_thread_safety_beta, -1,
+  /* DiagArray591 */ diag::warn_acquire_requires_negative_cap, -1,
+  /* DiagArray592 */ diag::warn_fun_requires_lock_precise, diag::warn_var_deref_requires_lock_precise, diag::warn_variable_requires_lock_precise, -1,
+  /* DiagArray593 */ diag::warn_guarded_pass_by_reference, diag::warn_pt_guarded_pass_by_reference, -1,
+  /* DiagArray594 */ diag::warn_thread_safety_verbose, -1,
+  /* DiagArray595 */ diag::trigraph_converted, diag::trigraph_ends_block_comment, diag::trigraph_ignored, diag::trigraph_ignored_block_comment, -1,
+  /* DiagArray597 */ diag::warn_type_safety_null_pointer_required, diag::warn_type_safety_type_mismatch, diag::warn_type_tag_for_datatype_wrong_kind, -1,
+  /* DiagArray598 */ diag::ext_redefinition_of_typedef, -1,
+  /* DiagArray599 */ diag::ext_typename_missing, -1,
+  /* DiagArray600 */ diag::warn_fe_unable_to_open_stats_file, -1,
+  /* DiagArray601 */ diag::warn_unavailable_fwdclass_message, -1,
+  /* DiagArray602 */ diag::warn_undeclared_selector, diag::warn_undeclared_selector_with_typo, -1,
+  /* DiagArray603 */ diag::warn_pp_undef_identifier, -1,
+  /* DiagArray604 */ diag::warn_address_of_reference_bool_conversion, diag::warn_this_bool_conversion, -1,
+  /* DiagArray605 */ diag::warn_func_template_missing, -1,
+  /* DiagArray606 */ diag::warn_undefined_inline, -1,
+  /* DiagArray607 */ diag::warn_undefined_internal, -1,
+  /* DiagArray608 */ diag::warn_pointer_indirection_from_incompatible_type, diag::warn_undefined_reinterpret_cast, -1,
+  /* DiagArray609 */ diag::warn_var_template_missing, -1,
+  /* DiagArray610 */ diag::warn_side_effects_unevaluated_context, -1,
+  /* DiagArray611 */ diag::warn_partial_availability, diag::warn_partial_fwdclass_message, diag::warn_partial_message, diag::warn_unguarded_availability, -1,
+  /* DiagArray612 */ diag::warn_ucn_escape_incomplete, diag::warn_ucn_escape_no_digits, diag::warn_ucn_escape_surrogate, diag::warn_ucn_not_valid_in_c89, diag::warn_ucn_not_valid_in_c89_literal, -1,
+  /* DiagArray613 */ diag::ext_unicode_whitespace, -1,
+  /* DiagArray614 */ diag::warn_base_class_is_uninit, diag::warn_field_is_uninit, diag::warn_reference_field_is_uninit, diag::warn_uninit_byref_blockvar_captured_by_block, diag::warn_uninit_self_reference_in_init, diag::warn_uninit_self_reference_in_reference_init, diag::warn_uninit_var, -1,
+  /* DiagArray615 */ diag::warn_drv_unknown_argument_clang_cl, -1,
+  /* DiagArray616 */ diag::warn_unknown_attribute_ignored, -1,
+  /* DiagArray617 */ diag::ext_unknown_escape, -1,
+  /* DiagArray618 */ diag::ext_on_off_switch_syntax, diag::ext_pragma_syntax_eod, diag::ext_stdc_pragma_ignored, diag::warn_pragma_diagnostic_cannot_pop, diag::warn_pragma_diagnostic_invalid, diag::warn_pragma_diagnostic_invalid_option, diag::warn_pragma_diagnostic_invalid_token, diag::warn_pragma_diagnostic_unknown_warning, diag::warn_pragma_ignored, diag::warn_pragma_include_alias_expected, diag::warn_pragma_include_alias_expected_filename, diag::warn_pragma_include_alias_mismatch_angle, diag::warn_pragma_include_alias_mismatch_quote, diag::warn_pragma_warning_expected, diag::warn_pragma_warning_expected_number, diag::warn_pragma_warning_push_level, diag::warn_pragma_warning_spec_invalid, diag::warn_stdc_fenv_access_not_supported, -1,
+  /* DiagArray619 */ diag::warn_unknown_sanitizer_ignored, -1,
+  /* DiagArray620 */ diag::warn_unknown_diag_option, diag::warn_unknown_warning_specifier, -1,
+  /* DiagArray621 */ diag::ext_template_arg_unnamed_type, -1,
+  /* DiagArray622 */ diag::warn_unneeded_internal_decl, diag::warn_unneeded_static_internal_decl, -1,
+  /* DiagArray623 */ diag::warn_unneeded_member_function, -1,
+  /* DiagArray624 */ diag::warn_unreachable, -1,
+  /* DiagArray626 */ diag::warn_unreachable_break, -1,
+  /* DiagArray627 */ diag::warn_unreachable_loop_increment, -1,
+  /* DiagArray628 */ diag::warn_unreachable_return, -1,
+  /* DiagArray629 */ diag::warn_unsequenced_mod_mod, diag::warn_unsequenced_mod_use, -1,
+  /* DiagArray630 */ diag::warn_target_unsupported_compact_branches, -1,
+  /* DiagArray631 */ diag::warn_attribute_dll_instantiated_base_class, -1,
+  /* DiagArray632 */ diag::warn_template_qualified_friend_ignored, diag::warn_template_qualified_friend_unsupported, -1,
+  /* DiagArray633 */ diag::warn_target_unsupported_nan2008, diag::warn_target_unsupported_nanlegacy, -1,
+  /* DiagArray634 */ diag::warn_attribute_protected_visibility, -1,
+  /* DiagArray635 */ diag::ext_partial_specs_not_deducible, -1,
+  /* DiagArray638 */ diag::warn_drv_empty_joined_argument, diag::warn_drv_fdiagnostics_show_hotness_requires_pgo, diag::warn_drv_input_file_unused, diag::warn_drv_input_file_unused_by_cpp, diag::warn_drv_preprocessed_input_file_unused, diag::warn_drv_unused_argument, -1,
+  /* DiagArray639 */ diag::warn_unused_comparison, -1,
+  /* DiagArray640 */ diag::warn_unused_const_variable, -1,
+  /* DiagArray641 */ diag::warn_unused_exception_param, -1,
+  /* DiagArray642 */ diag::warn_unused_function, -1,
+  /* DiagArray643 */ diag::warn_unused_property_expr, -1,
+  /* DiagArray644 */ diag::warn_unused_label, -1,
+  /* DiagArray645 */ diag::warn_unused_lambda_capture, -1,
+  /* DiagArray646 */ diag::warn_unused_local_typedef, -1,
+  /* DiagArray648 */ diag::pp_macro_not_used, -1,
+  /* DiagArray649 */ diag::warn_unused_member_function, -1,
+  /* DiagArray650 */ diag::warn_unused_parameter, -1,
+  /* DiagArray651 */ diag::warn_unused_private_field, -1,
+  /* DiagArray652 */ diag::warn_unused_property_backing_ivar, -1,
+  /* DiagArray653 */ diag::warn_unused_result, -1,
+  /* DiagArray654 */ diag::warn_unused_call, diag::warn_unused_container_subscript_expr, diag::warn_unused_expr, diag::warn_unused_voidptr, -1,
+  /* DiagArray655 */ diag::warn_unused_variable, -1,
+  /* DiagArray656 */ diag::warn_unused_volatile, -1,
+  /* DiagArray657 */ diag::warn_used_but_marked_unused, -1,
+  /* DiagArray658 */ diag::warn_user_literal_reserved, -1,
+  /* DiagArray659 */ diag::warn_diagnose_if_succeeded, -1,
+  /* DiagArray660 */ diag::warn_second_arg_of_va_start_not_last_named_param, diag::warn_second_parameter_to_va_arg_never_compatible, diag::warn_va_start_type_is_undefined, -1,
+  /* DiagArray661 */ diag::ext_named_variadic_macro, diag::ext_variadic_macro, -1,
+  /* DiagArray662 */ diag::warn_typecheck_vector_element_sizes_not_equal, -1,
+  /* DiagArray663 */ diag::warn_incompatible_vectors, -1,
+  /* DiagArray665 */ diag::warn_empty_parens_are_function_decl, diag::warn_parens_disambiguated_as_function_declaration, -1,
+  /* DiagArray666 */ diag::warn_decl_in_param_list, diag::warn_redefinition_in_param_list, -1,
+  /* DiagArray667 */ diag::warn_vla_used, -1,
+  /* DiagArray668 */ diag::ext_vla, -1,
+  /* DiagArray669 */ diag::ext_typecheck_indirection_through_void_pointer, -1,
+  /* DiagArray671 */ diag::warn_weak_template_vtable, -1,
+  /* DiagArray672 */ diag::warn_weak_vtable, -1,
+  /* DiagArray673 */ diag::ext_deprecated_string_literal_conversion, -1,
+  /* DiagArray675 */ diag::ext_typecheck_zero_array_size, -1,
+};
+
+static const int16_t DiagSubGroups[] = {
+  /* Empty */ -1,
+  /* DiagSubGroup0 */ 189, -1,
+  /* DiagSubGroup4 */ 16, 189, -1,
+  /* DiagSubGroup11 */ 475, 568, 584, -1,
+  /* DiagSubGroup16 */ 381, 463, 575, 576, -1,
+  /* DiagSubGroup24 */ 31, 30, 27, -1,
+  /* DiagSubGroup29 */ 26, -1,
+  /* DiagSubGroup34 */ 36, 35, -1,
+  /* DiagSubGroup41 */ 253, 125, -1,
+  /* DiagSubGroup44 */ 616, 247, -1,
+  /* DiagSubGroup53 */ 91, -1,
+  /* DiagSubGroup59 */ 475, 604, -1,
+  /* DiagSubGroup60 */ 59, -1,
+  /* DiagSubGroup67 */ 70, -1,
+  /* DiagSubGroup68 */ 74, -1,
+  /* DiagSubGroup69 */ 78, -1,
+  /* DiagSubGroup70 */ 78, 73, 71, 88, 86, -1,
+  /* DiagSubGroup72 */ 89, 87, -1,
+  /* DiagSubGroup74 */ 75, 76, 77, -1,
+  /* DiagSubGroup80 */ 86, -1,
+  /* DiagSubGroup81 */ 87, -1,
+  /* DiagSubGroup82 */ 79, -1,
+  /* DiagSubGroup83 */ 82, -1,
+  /* DiagSubGroup84 */ 145, 141, -1,
+  /* DiagSubGroup87 */ 86, -1,
+  /* DiagSubGroup89 */ 88, -1,
+  /* DiagSubGroup90 */ 92, 94, 88, 86, -1,
+  /* DiagSubGroup93 */ 90, 91, 89, 87, -1,
+  /* DiagSubGroup105 */ 396, -1,
+  /* DiagSubGroup108 */ 107, -1,
+  /* DiagSubGroup114 */ 54, -1,
+  /* DiagSubGroup118 */ 59, 114, 179, 55, 196, 537, 290, 314, 393, 405, 421, 539, 569, -1,
+  /* DiagSubGroup119 */ 405, -1,
+  /* DiagSubGroup136 */ 137, 138, 139, 141, 145, 146, -1,
+  /* DiagSubGroup143 */ 144, -1,
+  /* DiagSubGroup146 */ 71, -1,
+  /* DiagSubGroup152 */ 153, -1,
+  /* DiagSubGroup157 */ 159, 158, -1,
+  /* DiagSubGroup160 */ 161, -1,
+  /* DiagSubGroup170 */ 139, -1,
+  /* DiagSubGroup171 */ 397, -1,
+  /* DiagSubGroup177 */ 192, -1,
+  /* DiagSubGroup189 */ 364, 251, 284, 520, 367, 538, 650, -1,
+  /* DiagSubGroup191 */ 75, -1,
+  /* DiagSubGroup196 */ 198, 199, -1,
+  /* DiagSubGroup201 */ 202, 209, 398, 207, 208, 203, -1,
+  /* DiagSubGroup210 */ 205, 207, 208, -1,
+  /* DiagSubGroup217 */ 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 668, 230, 231, 232, 233, 234, 235, 498, 236, 237, 238, 239, 240, 241, 675, 242, 243, -1,
+  /* DiagSubGroup250 */ 249, -1,
+  /* DiagSubGroup252 */ 258, 259, -1,
+  /* DiagSubGroup256 */ 257, -1,
+  /* DiagSubGroup271 */ 272, 268, -1,
+  /* DiagSubGroup276 */ 277, 395, -1,
+  /* DiagSubGroup281 */ 141, -1,
+  /* DiagSubGroup291 */ 290, -1,
+  /* DiagSubGroup292 */ 293, -1,
+  /* DiagSubGroup295 */ 248, -1,
+  /* DiagSubGroup316 */ 92, -1,
+  /* DiagSubGroup319 */ 77, -1,
+  /* DiagSubGroup320 */ 200, 494, -1,
+  /* DiagSubGroup329 */ 332, 347, 335, 344, 351, 354, 340, 355, 348, 349, 353, 342, 339, 336, 352, 350, 338, 346, 345, 343, 331, 334, 356, 330, 333, 337, 278, -1,
+  /* DiagSubGroup381 */ 103, 107, 135, 200, 201, 252, 282, 360, 361, 382, 385, 504, 510, 517, 519, 542, 543, 571, 595, 614, 618, 636, 670, 425, 417, 457, 484, 100, 187, 659, -1,
+  /* DiagSubGroup382 */ 473, 500, 519, -1,
+  /* DiagSubGroup383 */ 347, -1,
+  /* DiagSubGroup387 */ 78, -1,
+  /* DiagSubGroup392 */ 538, 118, 315, -1,
+  /* DiagSubGroup395 */ 394, -1,
+  /* DiagSubGroup408 */ 409, -1,
+  /* DiagSubGroup416 */ 438, -1,
+  /* DiagSubGroup420 */ 441, -1,
+  /* DiagSubGroup438 */ 439, -1,
+  /* DiagSubGroup463 */ 318, 317, 57, 534, 456, 464, 126, -1,
+  /* DiagSubGroup465 */ 611, -1,
+  /* DiagSubGroup471 */ 95, 75, 77, 79, 195, 206, 211, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 240, 242, 243, 309, 319, 332, 333, 335, 337, 338, 344, 345, 350, 455, 668, 661, 675, 508, 110, 186, 388, 132, 162, 311, 263, 172, 175, 411, -1,
+  /* DiagSubGroup482 */ 618, 250, -1,
+  /* DiagSubGroup501 */ 145, -1,
+  /* DiagSubGroup507 */ 73, -1,
+  /* DiagSubGroup510 */ 511, -1,
+  /* DiagSubGroup515 */ 516, -1,
+  /* DiagSubGroup517 */ 518, -1,
+  /* DiagSubGroup522 */ 629, -1,
+  /* DiagSubGroup524 */ 528, 529, -1,
+  /* DiagSubGroup525 */ 524, 527, 530, 526, -1,
+  /* DiagSubGroup527 */ 528, -1,
+  /* DiagSubGroup550 */ 238, -1,
+  /* DiagSubGroup581 */ 582, 584, 583, 585, -1,
+  /* DiagSubGroup587 */ 589, 588, 592, 593, -1,
+  /* DiagSubGroup610 */ 479, -1,
+  /* DiagSubGroup614 */ 546, 554, -1,
+  /* DiagSubGroup621 */ 94, -1,
+  /* DiagSubGroup624 */ 627, -1,
+  /* DiagSubGroup625 */ 624, 626, 628, -1,
+  /* DiagSubGroup636 */ 637, 642, 644, 651, 645, 646, 654, 655, 652, -1,
+  /* DiagSubGroup642 */ 622, -1,
+  /* DiagSubGroup647 */ 646, -1,
+  /* DiagSubGroup649 */ 623, -1,
+  /* DiagSubGroup654 */ 639, 653, 610, -1,
+  /* DiagSubGroup655 */ 640, -1,
+  /* DiagSubGroup664 */ 663, -1,
+  /* DiagSubGroup673 */ 146, -1,
+  /* DiagSubGroup674 */ 673, -1,
+};
+
+static const char DiagGroupNames[] = {
+    "\000\020#pragma-messages\t#warnings\020CFString-literal\003CL4\032Indep"
+    "endentClass-attribute\022NSObject-attribute\003abi\016absolute-value\024"
+    "abstract-final-class\023abstract-vbase-init\007address\032address-of-ar"
+    "ray-temporary\030address-of-packed-member\024address-of-temporary\020ag"
+    "gregate-return\003all\031alloca-with-align-alignof\020ambiguous-delete\022"
+    "ambiguous-ellipsis\017ambiguous-macro\031ambiguous-member-template\034a"
+    "nalyzer-incompatible-plugin\025anonymous-pack-parens\003arc%arc-bridge-"
+    "casts-disallowed-in-nonarc\036arc-maybe-repeated-use-of-weak\025arc-non"
+    "-pod-memaccess\031arc-performSelector-leaks\030arc-repeated-use-of-weak"
+    "\021arc-retain-cycles\032arc-unsafe-retained-assign\014array-bounds\037"
+    "array-bounds-pointer-arithmetic\003asm\025asm-ignored-qualifier\022asm-"
+    "operand-widths\013assign-enum\006assume\013at-protocol\026atomic-memory"
+    "-ordering\021atomic-properties*atomic-property-with-user-defined-access"
+    "or\035attribute-packed-for-bitfield\nattributes\033auto-disable-vptr-sa"
+    "nitizer\013auto-import\022auto-storage-class\013auto-var-id\014availabi"
+    "lity\016backend-plugin\030backslash-newline-escape\021bad-function-cast"
+    "\026bind-to-temporary-copy\034bitfield-constant-conversion\030bitfield-"
+    "enum-conversion\016bitfield-width\026bitwise-op-parentheses\033block-ca"
+    "pture-autoreleasing\017bool-conversion\020bool-conversions\022braced-sc"
+    "alar-init\013bridge-cast\027builtin-macro-redefined\027builtin-memcpy-c"
+    "hk-size\027builtin-requires-header\nc++-compat\014c++0x-compat\020c++0x"
+    "-extensions\017c++0x-narrowing\014c++11-compat(c++11-compat-deprecated-"
+    "writable-strings\025c++11-compat-pedantic*c++11-compat-reserved-user-de"
+    "fined-literal\020c++11-extensions\020c++11-extra-semi\026c++11-inline-n"
+    "amespace\017c++11-long-long\017c++11-narrowing\024c++14-binary-literal\014"
+    "c++14-compat\025c++14-compat-pedantic\020c++14-extensions\020c++1y-exte"
+    "nsions\014c++1z-compat\020c++1z-extensions\030c++98-c++11-c++14-compat!"
+    "c++98-c++11-c++14-compat-pedantic\022c++98-c++11-compat\033c++98-c++11-"
+    "compat-pedantic\014c++98-compat#c++98-compat-bind-to-temporary-copy%c++"
+    "98-compat-local-type-template-args\025c++98-compat-pedantic'c++98-compa"
+    "t-unnamed-type-template-args\016c11-extensions\nc99-compat\016c99-exten"
+    "sions\ncast-align\027cast-calling-convention\020cast-of-sel-type\tcast-"
+    "qual\nchar-align\017char-subscripts\014clang-cl-pch\015class-varargs\005"
+    "comma\007comment\010comments\036compare-distinct-pointer-types\026compl"
+    "ex-component-init\031conditional-type-mismatch\031conditional-uninitial"
+    "ized\015config-macros\023constant-conversion\030constant-logical-operan"
+    "d\023constexpr-not-const\010consumed\nconversion\017conversion-null\tco"
+    "routine\026covered-switch-default\030cstring-format-directive\021ctor-d"
+    "tor-privacy\013cuda-compat\030custom-atomic-properties\015dangling-else"
+    "\016dangling-field\031dangling-initializer-list\tdate-time\023dealloc-i"
+    "n-category\035debug-compression-unavailable\033declaration-after-statem"
+    "ent\026delegating-ctor-cycles\021delete-incomplete\027delete-non-virtua"
+    "l-dtor\ndeprecated\025deprecated-attributes\027deprecated-declarations!"
+    "deprecated-dynamic-exception-spec\032deprecated-implementations\031depr"
+    "ecated-increment-bool\031deprecated-objc-isa-usage%deprecated-objc-poin"
+    "ter-introspection5deprecated-objc-pointer-introspection-performSelector"
+    "\023deprecated-register\033deprecated-writable-strings\022direct-ivar-a"
+    "ccess\030disabled-macro-expansion\025disabled-optimization\014discard-q"
+    "ual\034distributed-object-modifiers\013div-by-zero\020division-by-zero\036"
+    "dll-attribute-on-redeclaration%dllexport-explicit-instantiation-decl\032"
+    "dllimport-static-field-def\015documentation\035documentation-deprecated"
+    "-sync\022documentation-html\026documentation-pedantic\035documentation-"
+    "unknown-command\036dollar-in-identifier-extension\020double-promotion\030"
+    "duplicate-decl-specifier\016duplicate-enum\024duplicate-method-arg\026d"
+    "uplicate-method-match\022duplicate-protocol\027dynamic-class-memaccess\026"
+    "dynamic-exception-spec\006effc++\022embedded-directive\nempty-body\023e"
+    "mpty-decomposition\026empty-translation-unit\013encode-type\014endif-la"
+    "bels\014enum-compare\017enum-conversion\016enum-too-large\nexceptions\025"
+    "exit-time-destructors\024expansion-to-defined\030explicit-initialize-ca"
+    "ll\027explicit-ownership-type\021extended-offsetof\017extern-c-compat\022"
+    "extern-initializer\005extra\023extra-qualification\nextra-semi\014extra"
+    "-tokens\010fallback\tflag-enum\031flexible-array-extensions\020float-co"
+    "nversion\013float-equal\031float-overflow-conversion\025float-zero-conv"
+    "ersion\021for-loop-analysis\006format\021format-extra-args\030format-in"
+    "valid-specifier\016format-non-iso\021format-nonliteral\017format-pedant"
+    "ic\017format-security\nformat-y2k\022format-zero-length\010format=2\023"
+    "four-char-constants\022frame-larger-than=\036function-def-in-objc-conta"
+    "iner\015future-compat\ngcc-compat\023global-constructors\003gnu\026gnu-"
+    "alignof-expression\024gnu-anonymous-struct\033gnu-array-member-paren-in"
+    "it\015gnu-auto-type\022gnu-binary-literal\016gnu-case-range\023gnu-comp"
+    "lex-integer gnu-compound-literal-initializer\037gnu-conditional-omitted"
+    "-operand\016gnu-designator\025gnu-empty-initializer\020gnu-empty-struct"
+    "\036gnu-flexible-array-initializer\037gnu-flexible-array-union-member\024"
+    "gnu-folding-constant\026gnu-imaginary-constant\020gnu-include-next\022g"
+    "nu-label-as-value\023gnu-redeclared-enum\030gnu-statement-expression\025"
+    "gnu-static-float-init$gnu-string-literal-operator-template\016gnu-union"
+    "-cast\"gnu-variable-sized-type-not-at-end\027gnu-zero-line-directive!gn"
+    "u-zero-variadic-macro-arguments\014header-guard\016header-hygiene\025id"
+    "iomatic-parentheses\022ignored-attributes\035ignored-optimization-argum"
+    "ent\030ignored-pragma-intrinsic\017ignored-pragmas\022ignored-qualifier"
+    "s\010implicit\032implicit-atomic-properties*implicit-conversion-floatin"
+    "g-point-to-bool implicit-exception-spec-mismatch\024implicit-fallthroug"
+    "h!implicit-fallthrough-per-function\035implicit-function-declaration\014"
+    "implicit-int\024implicit-retain-self\033implicitly-unsigned-literal\006"
+    "import&import-preprocessor-directive-pedantic\021inaccessible-base\032i"
+    "nclude-next-absolute-path\033include-next-outside-header\033incompatibl"
+    "e-exception-spec#incompatible-function-pointer-types\"incompatible-libr"
+    "ary-redeclaration\026incompatible-ms-struct\032incompatible-pointer-typ"
+    "es.incompatible-pointer-types-discards-qualifiers\032incompatible-prope"
+    "rty-type\024incompatible-sysroot\031incomplete-implementation\021incomp"
+    "lete-module\023incomplete-umbrella\026inconsistent-dllimport(inconsiste"
+    "nt-missing-destructor-override\035inconsistent-missing-override\016incr"
+    "ement-bool\022infinite-recursion\tinit-self\025initializer-overrides\023"
+    "injected-class-name\006inline\ninline-asm\021inline-new-delete\"instant"
+    "iation-after-specialization\016int-conversion\017int-conversions\023int"
+    "-to-pointer-cast\030int-to-void-pointer-cast\020integer-overflow\035inv"
+    "alid-command-line-argument\021invalid-constexpr\020invalid-iboutlet&inv"
+    "alid-initializer-from-system-header\020invalid-noreturn\020invalid-offs"
+    "etof invalid-or-nonexistent-directory\036invalid-partial-specialization"
+    "\013invalid-pch\020invalid-pp-token\027invalid-source-encoding\023inval"
+    "id-token-paste\020jump-seh-finally\016keyword-compat\015keyword-macro\026"
+    "knr-promoted-parameter\030language-extension-token\023large-by-value-co"
+    "py\006liblto\022literal-conversion\015literal-range\030local-type-templ"
+    "ate-args\027logical-not-parentheses\026logical-op-parentheses\tlong-lon"
+    "g\015loop-analysis\017macro-redefined\004main\020main-return-type\027ma"
+    "lformed-warning-check\036many-braces-around-scalar-init\021max-unsigned"
+    "-zero\022memsize-comparison\021method-signatures\tmicrosoft\022microsof"
+    "t-anon-tag\016microsoft-cast\021microsoft-charize\027microsoft-comment-"
+    "paste\024microsoft-const-init\023microsoft-cpp-macro\"microsoft-default"
+    "-arg-redefinition\025microsoft-end-of-file microsoft-enum-forward-refer"
+    "ence\024microsoft-enum-value\030microsoft-exception-spec\020microsoft-e"
+    "xists#microsoft-explicit-constructor-call\035microsoft-extra-qualificat"
+    "ion\024microsoft-fixed-enum\030microsoft-flexible-array\016microsoft-go"
+    "to\021microsoft-include\033microsoft-mutable-reference\031microsoft-pur"
+    "e-definition\032microsoft-redeclare-static\020microsoft-sealed\022micro"
+    "soft-template microsoft-union-member-reference\034microsoft-unqualified"
+    "-friend\024microsoft-using-decl\032microsoft-void-pseudo-dtor\025mismat"
+    "ched-new-delete\032mismatched-parameter-types\027mismatched-return-type"
+    "s\017mismatched-tags\016missing-braces\024missing-declarations\026missi"
+    "ng-exception-spec\032missing-field-initializers\030missing-format-attri"
+    "bute\024missing-include-dirs\032missing-method-return-type\020missing-n"
+    "oreturn\030missing-prototype-for-cc\022missing-prototypes\025missing-se"
+    "lector-name\017missing-sysroot\035missing-variable-declarations\014modu"
+    "le-build\017module-conflict\033module-file-config-mismatch\025module-fi"
+    "le-extension\031module-import-in-extern-c\"modules-ambiguous-internal-l"
+    "inkage\037modules-import-nested-redundant\004most\004move\014msvc-inclu"
+    "de\016msvc-not-found\tmultichar\023multiple-move-vbase\tnarrowing\021ne"
+    "sted-anon-types\016nested-externs\020new-returns-null\013newline-eof\007"
+    "non-gcc\033non-literal-null-conversion'non-modular-include-in-framework"
+    "-module\035non-modular-include-in-module\017non-pod-varargs\020non-virt"
+    "ual-dtor\007nonnull\025nonportable-cfstrings\030nonportable-include-pat"
+    "h\037nonportable-system-include-path!nonportable-vector-initialization\017"
+    "null-arithmetic\016null-character\017null-conversion\020null-dereferenc"
+    "e\013nullability\030nullability-completeness\"nullability-completeness-"
+    "on-arrays\024nullability-declspec\025nullability-extension#nullability-"
+    "inferred-on-nested-type\036nullable-to-nonnull-conversion+objc-autosynt"
+    "hesis-property-ivar-name-match\027objc-circular-container\016objc-cocoa"
+    "-api\034objc-designated-initializers\037objc-forward-class-redefinition"
+    "\024objc-interface-ivars\024objc-literal-compare\027objc-literal-conver"
+    "sion\027objc-macro-redefinition\022objc-method-access\037objc-missing-p"
+    "roperty-synthesis\030objc-missing-super-calls\032objc-multiple-method-n"
+    "ames\"objc-noncopy-retain-block-property\032objc-nonunified-exceptions\034"
+    "objc-property-implementation\037objc-property-implicit-mismatch*objc-pr"
+    "operty-matches-cocoa-ownership-rule\032objc-property-no-attribute\027ob"
+    "jc-property-synthesis#objc-protocol-method-implementation objc-protocol"
+    "-property-synthesis\030objc-protocol-qualifiers\"objc-readonly-with-set"
+    "ter-property\026objc-redundant-api-use\032objc-redundant-literal-use\017"
+    "objc-root-class\023objc-string-compare\031objc-string-concatenation\034"
+    "objc-unsafe-perform-selector\003odr\016old-style-cast\024old-style-defi"
+    "nition\027opencl-unsupported-rgba\016openmp-clauses\020openmp-loop-form"
+    "\015openmp-target\016option-ignored\027out-of-line-declaration\014over-"
+    "aligned\010overflow\022overlength-strings\037overloaded-shift-op-parent"
+    "heses\022overloaded-virtual\017override-module\032overriding-method-mis"
+    "match\023overriding-t-option\006packed\006padded\013parentheses\024pare"
+    "ntheses-equality\024partial-availability\004pass\015pass-analysis\013pa"
+    "ss-failed\013pass-missed\015pch-date-time\010pedantic\026pedantic-core-"
+    "features\020pessimizing-move\015pointer-arith\027pointer-bool-conversio"
+    "n\014pointer-sign\023pointer-to-int-cast\025pointer-type-mismatch poten"
+    "tially-evaluated-expression\032pragma-once-outside-header#pragma-system"
+    "-header-outside-header\007pragmas&predefined-identifier-outside-functio"
+    "n\016private-extern\016private-header\016private-module\031profile-inst"
+    "r-out-of-date\030profile-instr-unprofiled\032property-access-dot-syntax"
+    "\033property-attribute-mismatch\010protocol%protocol-property-synthesis"
+    "-ambiguity\032qualified-void-return-type\023range-loop-analysis\032read"
+    "only-iboutlet-property\015receiver-expr\026receiver-forward-class\027re"
+    "declared-class-member\017redundant-decls\016redundant-move\010register\026"
+    "reinterpret-base-class\025remark-backend-plugin\007reorder\030requires-"
+    "super-attribute\021reserved-id-macro\035reserved-user-defined-literal\031"
+    "retained-language-linkage\024return-stack-address\013return-type\025ret"
+    "urn-type-c-linkage\023rtti-for-exceptions\020sanitize-address\007sectio"
+    "n\010selector\026selector-type-mismatch\013self-assign\021self-assign-f"
+    "ield\tself-move\034semicolon-before-method-body\010sentinel\016sequence"
+    "-point\026serialized-diagnostics\006shadow\nshadow-all\014shadow-field\033"
+    "shadow-field-in-constructor$shadow-field-in-constructor-modified\013sha"
+    "dow-ivar\027shadow-uncaptured-local\024shift-count-negative\024shift-co"
+    "unt-overflow\024shift-negative-value\024shift-op-parentheses\016shift-o"
+    "verflow\023shift-sign-overflow\020shorten-64-to-32\014sign-compare\017s"
+    "ign-conversion\nsign-promo\024signed-enum-bitfield\025sizeof-array-argu"
+    "ment\022sizeof-array-decay\030sizeof-pointer-memaccess\020slash-u-filen"
+    "ame\027sometimes-uninitialized\022source-uses-openmp\013spir-compat\017"
+    "stack-protector\021static-float-init\020static-in-inline$static-inline-"
+    "explicit-instantiation\026static-local-in-inline\020static-self-init\017"
+    "strict-aliasing\021strict-aliasing=0\021strict-aliasing=1\021strict-ali"
+    "asing=2\017strict-overflow\021strict-overflow=0\021strict-overflow=1\021"
+    "strict-overflow=2\021strict-overflow=3\021strict-overflow=4\021strict-o"
+    "verflow=5\021strict-prototypes\025strict-selector-match\016string-compa"
+    "re\021string-conversion\020string-plus-char\017string-plus-int\024strlc"
+    "py-strlcat-size\014strncat-size\033super-class-method-mismatch\006switc"
+    "h\013switch-bool\016switch-default\013switch-enum%sync-fetch-and-nand-s"
+    "emantics-changed\005synth\024tautological-compare*tautological-constant"
+    "-out-of-range-compare\034tautological-overlap-compare\034tautological-p"
+    "ointer-compare\036tautological-undefined-compare$tentative-definition-i"
+    "ncomplete-type\015thread-safety\026thread-safety-analysis\030thread-saf"
+    "ety-attributes\022thread-safety-beta\026thread-safety-negative\025threa"
+    "d-safety-precise\027thread-safety-reference\025thread-safety-verbose\tt"
+    "rigraphs\013type-limits\013type-safety\024typedef-redefinition\020typen"
+    "ame-missing\031unable-to-open-stats-file\030unavailable-declarations\023"
+    "undeclared-selector\005undef\031undefined-bool-conversion\027undefined-"
+    "func-template\020undefined-inline\022undefined-internal\032undefined-re"
+    "interpret-cast\026undefined-var-template\026unevaluated-expression\026u"
+    "nguarded-availability\007unicode\022unicode-whitespace\015uninitialized"
+    "\020unknown-argument\022unknown-attributes\027unknown-escape-sequence\017"
+    "unknown-pragmas\022unknown-sanitizers\026unknown-warning-option\032unna"
+    "med-type-template-args\035unneeded-internal-declaration\030unneeded-mem"
+    "ber-function\020unreachable-code\033unreachable-code-aggressive\026unre"
+    "achable-code-break\037unreachable-code-loop-increment\027unreachable-co"
+    "de-return\013unsequenced\016unsupported-cb#unsupported-dll-base-class-t"
+    "emplate\022unsupported-friend\017unsupported-nan\026unsupported-visibil"
+    "ity\037unusable-partial-specialization\006unused\017unused-argument\034"
+    "unused-command-line-argument\021unused-comparison\025unused-const-varia"
+    "ble\032unused-exception-parameter\017unused-function\032unused-getter-r"
+    "eturn-value\014unused-label\025unused-lambda-capture\024unused-local-ty"
+    "pedef\025unused-local-typedefs\015unused-macros\026unused-member-functi"
+    "on\020unused-parameter\024unused-private-field\024unused-property-ivar\015"
+    "unused-result\014unused-value\017unused-variable\026unused-volatile-lva"
+    "lue\026used-but-marked-unused\025user-defined-literals\025user-defined-"
+    "warnings\007varargs\017variadic-macros\015vec-elem-size\021vector-conve"
+    "rsion\022vector-conversions\014vexing-parse\nvisibility\003vla\015vla-e"
+    "xtension\024void-ptr-dereference\025volatile-register-var\025weak-templ"
+    "ate-vtables\014weak-vtables\020writable-strings\015write-strings\021zer"
+    "o-length-array"};
+
+#endif // GET_DIAG_ARRAYS
+
+
+#ifdef GET_DIAG_TABLE
+  { /*  */                                                      0, /* Empty */     0, /* DiagSubGroup0 */ 1 },
+  { /* #pragma-messages */                                      1, /* DiagArray1 */ 1, /* Empty */         0 },
+  { /* #warnings */                                             18, /* DiagArray2 */ 3, /* Empty */         0 },
+  { /* CFString-literal */                                      28, /* DiagArray3 */ 5, /* Empty */         0 },
+  { /* CL4 */                                                   45, /* Empty */     0, /* DiagSubGroup4 */ 3 },
+  { /* IndependentClass-attribute */                            49, /* DiagArray5 */ 7, /* Empty */         0 },
+  { /* NSObject-attribute */                                    76, /* DiagArray6 */ 10, /* Empty */         0 },
+  { /* abi */                                                   95, /* Empty */     0, /* Empty */         0 },
+  { /* absolute-value */                                        99, /* DiagArray8 */ 12, /* Empty */         0 },
+  { /* abstract-final-class */                                  114, /* DiagArray9 */ 17, /* Empty */         0 },
+  { /* abstract-vbase-init */                                   135, /* DiagArray10 */ 19, /* Empty */         0 },
+  { /* address */                                               155, /* Empty */     0, /* DiagSubGroup11 */ 6 },
+  { /* address-of-array-temporary */                            163, /* DiagArray12 */ 21, /* Empty */         0 },
+  { /* address-of-packed-member */                              190, /* DiagArray13 */ 23, /* Empty */         0 },
+  { /* address-of-temporary */                                  215, /* DiagArray14 */ 25, /* Empty */         0 },
+  { /* aggregate-return */                                      236, /* Empty */     0, /* Empty */         0 },
+  { /* all */                                                   253, /* Empty */     0, /* DiagSubGroup16 */ 10 },
+  { /* alloca-with-align-alignof */                             257, /* DiagArray17 */ 27, /* Empty */         0 },
+  { /* ambiguous-delete */                                      283, /* DiagArray18 */ 29, /* Empty */         0 },
+  { /* ambiguous-ellipsis */                                    300, /* DiagArray19 */ 31, /* Empty */         0 },
+  { /* ambiguous-macro */                                       319, /* DiagArray20 */ 33, /* Empty */         0 },
+  { /* ambiguous-member-template */                             335, /* DiagArray21 */ 35, /* Empty */         0 },
+  { /* analyzer-incompatible-plugin */                          361, /* DiagArray22 */ 37, /* Empty */         0 },
+  { /* anonymous-pack-parens */                                 390, /* DiagArray23 */ 39, /* Empty */         0 },
+  { /* arc */                                                   412, /* Empty */     0, /* DiagSubGroup24 */ 15 },
+  { /* arc-bridge-casts-disallowed-in-nonarc */                 416, /* DiagArray25 */ 41, /* Empty */         0 },
+  { /* arc-maybe-repeated-use-of-weak */                        454, /* DiagArray26 */ 43, /* Empty */         0 },
+  { /* arc-non-pod-memaccess */                                 485, /* DiagArray27 */ 45, /* Empty */         0 },
+  { /* arc-performSelector-leaks */                             507, /* DiagArray28 */ 47, /* Empty */         0 },
+  { /* arc-repeated-use-of-weak */                              533, /* DiagArray29 */ 49, /* DiagSubGroup29 */ 19 },
+  { /* arc-retain-cycles */                                     558, /* DiagArray30 */ 51, /* Empty */         0 },
+  { /* arc-unsafe-retained-assign */                            576, /* DiagArray31 */ 53, /* Empty */         0 },
+  { /* array-bounds */                                          603, /* DiagArray32 */ 57, /* Empty */         0 },
+  { /* array-bounds-pointer-arithmetic */                       616, /* DiagArray33 */ 62, /* Empty */         0 },
+  { /* asm */                                                   648, /* Empty */     0, /* DiagSubGroup34 */ 21 },
+  { /* asm-ignored-qualifier */                                 652, /* DiagArray35 */ 65, /* Empty */         0 },
+  { /* asm-operand-widths */                                    674, /* DiagArray36 */ 68, /* Empty */         0 },
+  { /* assign-enum */                                           693, /* DiagArray37 */ 70, /* Empty */         0 },
+  { /* assume */                                                705, /* DiagArray38 */ 72, /* Empty */         0 },
+  { /* at-protocol */                                           712, /* DiagArray39 */ 74, /* Empty */         0 },
+  { /* atomic-memory-ordering */                                724, /* DiagArray40 */ 76, /* Empty */         0 },
+  { /* atomic-properties */                                     747, /* Empty */     0, /* DiagSubGroup41 */ 24 },
+  { /* atomic-property-with-user-defined-accessor */            765, /* DiagArray42 */ 78, /* Empty */         0 },
+  { /* attribute-packed-for-bitfield */                         808, /* DiagArray43 */ 80, /* Empty */         0 },
+  { /* attributes */                                            838, /* Empty */     0, /* DiagSubGroup44 */ 27 },
+  { /* auto-disable-vptr-sanitizer */                           849, /* DiagArray45 */ 82, /* Empty */         0 },
+  { /* auto-import */                                           877, /* DiagArray46 */ 84, /* Empty */         0 },
+  { /* auto-storage-class */                                    889, /* DiagArray47 */ 86, /* Empty */         0 },
+  { /* auto-var-id */                                           908, /* DiagArray48 */ 88, /* Empty */         0 },
+  { /* availability */                                          920, /* DiagArray49 */ 90, /* Empty */         0 },
+  { /* backend-plugin */                                        933, /* DiagArray50 */ 98, /* Empty */         0 },
+  { /* backslash-newline-escape */                              948, /* DiagArray51 */ 100, /* Empty */         0 },
+  { /* bad-function-cast */                                     973, /* DiagArray52 */ 102, /* Empty */         0 },
+  { /* bind-to-temporary-copy */                                991, /* DiagArray53 */ 104, /* DiagSubGroup53 */ 30 },
+  { /* bitfield-constant-conversion */                          1014, /* DiagArray54 */ 107, /* Empty */         0 },
+  { /* bitfield-enum-conversion */                              1043, /* DiagArray55 */ 109, /* Empty */         0 },
+  { /* bitfield-width */                                        1068, /* DiagArray56 */ 113, /* Empty */         0 },
+  { /* bitwise-op-parentheses */                                1083, /* DiagArray57 */ 116, /* Empty */         0 },
+  { /* block-capture-autoreleasing */                           1106, /* DiagArray58 */ 118, /* Empty */         0 },
+  { /* bool-conversion */                                       1134, /* DiagArray59 */ 120, /* DiagSubGroup59 */ 32 },
+  { /* bool-conversions */                                      1150, /* Empty */     0, /* DiagSubGroup60 */ 35 },
+  { /* braced-scalar-init */                                    1167, /* DiagArray61 */ 122, /* Empty */         0 },
+  { /* bridge-cast */                                           1186, /* DiagArray62 */ 124, /* Empty */         0 },
+  { /* builtin-macro-redefined */                               1198, /* DiagArray63 */ 127, /* Empty */         0 },
+  { /* builtin-memcpy-chk-size */                               1222, /* DiagArray64 */ 130, /* Empty */         0 },
+  { /* builtin-requires-header */                               1246, /* DiagArray65 */ 132, /* Empty */         0 },
+  { /* c++-compat */                                            1270, /* DiagArray66 */ 134, /* Empty */         0 },
+  { /* c++0x-compat */                                          1281, /* Empty */     0, /* DiagSubGroup67 */ 37 },
+  { /* c++0x-extensions */                                      1294, /* Empty */     0, /* DiagSubGroup68 */ 39 },
+  { /* c++0x-narrowing */                                       1311, /* Empty */     0, /* DiagSubGroup69 */ 41 },
+  { /* c++11-compat */                                          1327, /* DiagArray70 */ 136, /* DiagSubGroup70 */ 43 },
+  { /* c++11-compat-deprecated-writable-strings */              1340, /* DiagArray71 */ 147, /* Empty */         0 },
+  { /* c++11-compat-pedantic */                                 1381, /* Empty */     0, /* DiagSubGroup72 */ 49 },
+  { /* c++11-compat-reserved-user-defined-literal */            1403, /* DiagArray73 */ 149, /* Empty */         0 },
+  { /* c++11-extensions */                                      1446, /* DiagArray74 */ 151, /* DiagSubGroup74 */ 52 },
+  { /* c++11-extra-semi */                                      1463, /* DiagArray75 */ 178, /* Empty */         0 },
+  { /* c++11-inline-namespace */                                1480, /* DiagArray76 */ 180, /* Empty */         0 },
+  { /* c++11-long-long */                                       1503, /* DiagArray77 */ 182, /* Empty */         0 },
+  { /* c++11-narrowing */                                       1519, /* DiagArray78 */ 184, /* Empty */         0 },
+  { /* c++14-binary-literal */                                  1535, /* DiagArray79 */ 192, /* Empty */         0 },
+  { /* c++14-compat */                                          1556, /* Empty */     0, /* DiagSubGroup80 */ 56 },
+  { /* c++14-compat-pedantic */                                 1569, /* Empty */     0, /* DiagSubGroup81 */ 58 },
+  { /* c++14-extensions */                                      1591, /* DiagArray82 */ 194, /* DiagSubGroup82 */ 60 },
+  { /* c++1y-extensions */                                      1608, /* Empty */     0, /* DiagSubGroup83 */ 62 },
+  { /* c++1z-compat */                                          1625, /* DiagArray84 */ 203, /* DiagSubGroup84 */ 64 },
+  { /* c++1z-extensions */                                      1638, /* DiagArray85 */ 205, /* Empty */         0 },
+  { /* c++98-c++11-c++14-compat */                              1655, /* DiagArray86 */ 222, /* Empty */         0 },
+  { /* c++98-c++11-c++14-compat-pedantic */                     1680, /* DiagArray87 */ 240, /* DiagSubGroup87 */ 67 },
+  { /* c++98-c++11-compat */                                    1714, /* DiagArray88 */ 242, /* Empty */         0 },
+  { /* c++98-c++11-compat-pedantic */                           1733, /* DiagArray89 */ 252, /* DiagSubGroup89 */ 69 },
+  { /* c++98-compat */                                          1761, /* DiagArray90 */ 254, /* DiagSubGroup90 */ 71 },
+  { /* c++98-compat-bind-to-temporary-copy */                   1774, /* DiagArray91 */ 315, /* Empty */         0 },
+  { /* c++98-compat-local-type-template-args */                 1810, /* DiagArray92 */ 317, /* Empty */         0 },
+  { /* c++98-compat-pedantic */                                 1848, /* DiagArray93 */ 319, /* DiagSubGroup93 */ 76 },
+  { /* c++98-compat-unnamed-type-template-args */               1870, /* DiagArray94 */ 330, /* Empty */         0 },
+  { /* c11-extensions */                                        1910, /* DiagArray95 */ 332, /* Empty */         0 },
+  { /* c99-compat */                                            1925, /* DiagArray96 */ 339, /* Empty */         0 },
+  { /* c99-extensions */                                        1936, /* DiagArray97 */ 343, /* Empty */         0 },
+  { /* cast-align */                                            1951, /* DiagArray98 */ 354, /* Empty */         0 },
+  { /* cast-calling-convention */                               1962, /* DiagArray99 */ 356, /* Empty */         0 },
+  { /* cast-of-sel-type */                                      1986, /* DiagArray100 */ 358, /* Empty */         0 },
+  { /* cast-qual */                                             2003, /* DiagArray101 */ 360, /* Empty */         0 },
+  { /* char-align */                                            2013, /* Empty */     0, /* Empty */         0 },
+  { /* char-subscripts */                                       2024, /* DiagArray103 */ 363, /* Empty */         0 },
+  { /* clang-cl-pch */                                          2040, /* DiagArray104 */ 366, /* Empty */         0 },
+  { /* class-varargs */                                         2053, /* DiagArray105 */ 371, /* DiagSubGroup105 */ 81 },
+  { /* comma */                                                 2067, /* DiagArray106 */ 373, /* Empty */         0 },
+  { /* comment */                                               2073, /* DiagArray107 */ 375, /* Empty */         0 },
+  { /* comments */                                              2081, /* Empty */     0, /* DiagSubGroup108 */ 83 },
+  { /* compare-distinct-pointer-types */                        2090, /* DiagArray109 */ 380, /* Empty */         0 },
+  { /* complex-component-init */                                2121, /* DiagArray110 */ 382, /* Empty */         0 },
+  { /* conditional-type-mismatch */                             2144, /* DiagArray111 */ 384, /* Empty */         0 },
+  { /* conditional-uninitialized */                             2170, /* DiagArray112 */ 386, /* Empty */         0 },
+  { /* config-macros */                                         2196, /* DiagArray113 */ 388, /* Empty */         0 },
+  { /* constant-conversion */                                   2210, /* DiagArray114 */ 390, /* DiagSubGroup114 */ 85 },
+  { /* constant-logical-operand */                              2230, /* DiagArray115 */ 392, /* Empty */         0 },
+  { /* constexpr-not-const */                                   2255, /* DiagArray116 */ 394, /* Empty */         0 },
+  { /* consumed */                                              2275, /* DiagArray117 */ 396, /* Empty */         0 },
+  { /* conversion */                                            2284, /* DiagArray118 */ 405, /* DiagSubGroup118 */ 87 },
+  { /* conversion-null */                                       2295, /* Empty */     0, /* DiagSubGroup119 */ 101 },
+  { /* coroutine */                                             2311, /* DiagArray120 */ 412, /* Empty */         0 },
+  { /* covered-switch-default */                                2321, /* DiagArray121 */ 414, /* Empty */         0 },
+  { /* cstring-format-directive */                              2344, /* DiagArray122 */ 416, /* Empty */         0 },
+  { /* ctor-dtor-privacy */                                     2369, /* Empty */     0, /* Empty */         0 },
+  { /* cuda-compat */                                           2387, /* DiagArray124 */ 418, /* Empty */         0 },
+  { /* custom-atomic-properties */                              2399, /* DiagArray125 */ 424, /* Empty */         0 },
+  { /* dangling-else */                                         2424, /* DiagArray126 */ 426, /* Empty */         0 },
+  { /* dangling-field */                                        2438, /* DiagArray127 */ 428, /* Empty */         0 },
+  { /* dangling-initializer-list */                             2453, /* DiagArray128 */ 432, /* Empty */         0 },
+  { /* date-time */                                             2479, /* DiagArray129 */ 434, /* Empty */         0 },
+  { /* dealloc-in-category */                                   2489, /* DiagArray130 */ 436, /* Empty */         0 },
+  { /* debug-compression-unavailable */                         2509, /* DiagArray131 */ 438, /* Empty */         0 },
+  { /* declaration-after-statement */                           2539, /* DiagArray132 */ 440, /* Empty */         0 },
+  { /* delegating-ctor-cycles */                                2567, /* DiagArray133 */ 442, /* Empty */         0 },
+  { /* delete-incomplete */                                     2590, /* DiagArray134 */ 444, /* Empty */         0 },
+  { /* delete-non-virtual-dtor */                               2608, /* DiagArray135 */ 447, /* Empty */         0 },
+  { /* deprecated */                                            2632, /* DiagArray136 */ 450, /* DiagSubGroup136 */ 103 },
+  { /* deprecated-attributes */                                 2643, /* DiagArray137 */ 459, /* Empty */         0 },
+  { /* deprecated-declarations */                               2665, /* DiagArray138 */ 461, /* Empty */         0 },
+  { /* deprecated-dynamic-exception-spec */                     2689, /* DiagArray139 */ 467, /* Empty */         0 },
+  { /* deprecated-implementations */                            2723, /* DiagArray140 */ 469, /* Empty */         0 },
+  { /* deprecated-increment-bool */                             2750, /* DiagArray141 */ 471, /* Empty */         0 },
+  { /* deprecated-objc-isa-usage */                             2776, /* DiagArray142 */ 473, /* Empty */         0 },
+  { /* deprecated-objc-pointer-introspection */                 2802, /* DiagArray143 */ 476, /* DiagSubGroup143 */ 110 },
+  { /* deprecated-objc-pointer-introspection-performSelector */ 2840, /* DiagArray144 */ 478, /* Empty */         0 },
+  { /* deprecated-register */                                   2894, /* DiagArray145 */ 480, /* Empty */         0 },
+  { /* deprecated-writable-strings */                           2914, /* Empty */     0, /* DiagSubGroup146 */ 112 },
+  { /* direct-ivar-access */                                    2942, /* DiagArray147 */ 482, /* Empty */         0 },
+  { /* disabled-macro-expansion */                              2961, /* DiagArray148 */ 484, /* Empty */         0 },
+  { /* disabled-optimization */                                 2986, /* Empty */     0, /* Empty */         0 },
+  { /* discard-qual */                                          3008, /* Empty */     0, /* Empty */         0 },
+  { /* distributed-object-modifiers */                          3021, /* DiagArray151 */ 486, /* Empty */         0 },
+  { /* div-by-zero */                                           3050, /* Empty */     0, /* DiagSubGroup152 */ 114 },
+  { /* division-by-zero */                                      3062, /* DiagArray153 */ 489, /* Empty */         0 },
+  { /* dll-attribute-on-redeclaration */                        3079, /* DiagArray154 */ 491, /* Empty */         0 },
+  { /* dllexport-explicit-instantiation-decl */                 3110, /* DiagArray155 */ 493, /* Empty */         0 },
+  { /* dllimport-static-field-def */                            3148, /* DiagArray156 */ 495, /* Empty */         0 },
+  { /* documentation */                                         3175, /* DiagArray157 */ 497, /* DiagSubGroup157 */ 116 },
+  { /* documentation-deprecated-sync */                         3189, /* DiagArray158 */ 516, /* Empty */         0 },
+  { /* documentation-html */                                    3219, /* DiagArray159 */ 518, /* Empty */         0 },
+  { /* documentation-pedantic */                                3238, /* DiagArray160 */ 523, /* DiagSubGroup160 */ 119 },
+  { /* documentation-unknown-command */                         3261, /* DiagArray161 */ 525, /* Empty */         0 },
+  { /* dollar-in-identifier-extension */                        3291, /* DiagArray162 */ 528, /* Empty */         0 },
+  { /* double-promotion */                                      3322, /* DiagArray163 */ 530, /* Empty */         0 },
+  { /* duplicate-decl-specifier */                              3339, /* DiagArray164 */ 532, /* Empty */         0 },
+  { /* duplicate-enum */                                        3364, /* DiagArray165 */ 535, /* Empty */         0 },
+  { /* duplicate-method-arg */                                  3379, /* DiagArray166 */ 537, /* Empty */         0 },
+  { /* duplicate-method-match */                                3400, /* DiagArray167 */ 539, /* Empty */         0 },
+  { /* duplicate-protocol */                                    3423, /* DiagArray168 */ 541, /* Empty */         0 },
+  { /* dynamic-class-memaccess */                               3442, /* DiagArray169 */ 543, /* Empty */         0 },
+  { /* dynamic-exception-spec */                                3466, /* DiagArray170 */ 545, /* DiagSubGroup170 */ 121 },
+  { /* effc++ */                                                3489, /* Empty */     0, /* DiagSubGroup171 */ 123 },
+  { /* embedded-directive */                                    3496, /* DiagArray172 */ 547, /* Empty */         0 },
+  { /* empty-body */                                            3515, /* DiagArray173 */ 549, /* Empty */         0 },
+  { /* empty-decomposition */                                   3526, /* DiagArray174 */ 555, /* Empty */         0 },
+  { /* empty-translation-unit */                                3546, /* DiagArray175 */ 557, /* Empty */         0 },
+  { /* encode-type */                                           3569, /* DiagArray176 */ 559, /* Empty */         0 },
+  { /* endif-labels */                                          3581, /* Empty */     0, /* DiagSubGroup177 */ 125 },
+  { /* enum-compare */                                          3594, /* DiagArray178 */ 561, /* Empty */         0 },
+  { /* enum-conversion */                                       3607, /* DiagArray179 */ 563, /* Empty */         0 },
+  { /* enum-too-large */                                        3623, /* DiagArray180 */ 565, /* Empty */         0 },
+  { /* exceptions */                                            3638, /* DiagArray181 */ 568, /* Empty */         0 },
+  { /* exit-time-destructors */                                 3649, /* DiagArray182 */ 571, /* Empty */         0 },
+  { /* expansion-to-defined */                                  3671, /* DiagArray183 */ 573, /* Empty */         0 },
+  { /* explicit-initialize-call */                              3692, /* DiagArray184 */ 576, /* Empty */         0 },
+  { /* explicit-ownership-type */                               3717, /* DiagArray185 */ 579, /* Empty */         0 },
+  { /* extended-offsetof */                                     3741, /* DiagArray186 */ 581, /* Empty */         0 },
+  { /* extern-c-compat */                                       3759, /* DiagArray187 */ 583, /* Empty */         0 },
+  { /* extern-initializer */                                    3775, /* DiagArray188 */ 585, /* Empty */         0 },
+  { /* extra */                                                 3794, /* DiagArray189 */ 587, /* DiagSubGroup189 */ 127 },
+  { /* extra-qualification */                                   3800, /* DiagArray190 */ 589, /* Empty */         0 },
+  { /* extra-semi */                                            3820, /* DiagArray191 */ 591, /* DiagSubGroup191 */ 135 },
+  { /* extra-tokens */                                          3831, /* DiagArray192 */ 594, /* Empty */         0 },
+  { /* fallback */                                              3844, /* DiagArray193 */ 597, /* Empty */         0 },
+  { /* flag-enum */                                             3853, /* DiagArray194 */ 599, /* Empty */         0 },
+  { /* flexible-array-extensions */                             3863, /* DiagArray195 */ 601, /* Empty */         0 },
+  { /* float-conversion */                                      3889, /* DiagArray196 */ 604, /* DiagSubGroup196 */ 137 },
+  { /* float-equal */                                           3906, /* DiagArray197 */ 606, /* Empty */         0 },
+  { /* float-overflow-conversion */                             3918, /* DiagArray198 */ 608, /* Empty */         0 },
+  { /* float-zero-conversion */                                 3944, /* DiagArray199 */ 610, /* Empty */         0 },
+  { /* for-loop-analysis */                                     3966, /* DiagArray200 */ 612, /* Empty */         0 },
+  { /* format */                                                3984, /* DiagArray201 */ 615, /* DiagSubGroup201 */ 140 },
+  { /* format-extra-args */                                     3991, /* DiagArray202 */ 641, /* Empty */         0 },
+  { /* format-invalid-specifier */                              4009, /* DiagArray203 */ 643, /* Empty */         0 },
+  { /* format-non-iso */                                        4034, /* DiagArray204 */ 645, /* Empty */         0 },
+  { /* format-nonliteral */                                     4049, /* DiagArray205 */ 649, /* Empty */         0 },
+  { /* format-pedantic */                                       4067, /* DiagArray206 */ 651, /* Empty */         0 },
+  { /* format-security */                                       4083, /* DiagArray207 */ 653, /* Empty */         0 },
+  { /* format-y2k */                                            4099, /* Empty */     0, /* Empty */         0 },
+  { /* format-zero-length */                                    4110, /* DiagArray209 */ 655, /* Empty */         0 },
+  { /* format=2 */                                              4129, /* Empty */     0, /* DiagSubGroup210 */ 147 },
+  { /* four-char-constants */                                   4138, /* DiagArray211 */ 657, /* Empty */         0 },
+  { /* frame-larger-than= */                                    4158, /* DiagArray212 */ 659, /* Empty */         0 },
+  { /* function-def-in-objc-container */                        4177, /* DiagArray213 */ 662, /* Empty */         0 },
+  { /* future-compat */                                         4208, /* Empty */     0, /* Empty */         0 },
+  { /* gcc-compat */                                            4222, /* DiagArray215 */ 664, /* Empty */         0 },
+  { /* global-constructors */                                   4233, /* DiagArray216 */ 673, /* Empty */         0 },
+  { /* gnu */                                                   4253, /* Empty */     0, /* DiagSubGroup217 */ 151 },
+  { /* gnu-alignof-expression */                                4257, /* DiagArray218 */ 676, /* Empty */         0 },
+  { /* gnu-anonymous-struct */                                  4280, /* DiagArray219 */ 678, /* Empty */         0 },
+  { /* gnu-array-member-paren-init */                           4301, /* DiagArray220 */ 680, /* Empty */         0 },
+  { /* gnu-auto-type */                                         4329, /* DiagArray221 */ 682, /* Empty */         0 },
+  { /* gnu-binary-literal */                                    4343, /* DiagArray222 */ 684, /* Empty */         0 },
+  { /* gnu-case-range */                                        4362, /* DiagArray223 */ 686, /* Empty */         0 },
+  { /* gnu-complex-integer */                                   4377, /* DiagArray224 */ 688, /* Empty */         0 },
+  { /* gnu-compound-literal-initializer */                      4397, /* DiagArray225 */ 690, /* Empty */         0 },
+  { /* gnu-conditional-omitted-operand */                       4430, /* DiagArray226 */ 692, /* Empty */         0 },
+  { /* gnu-designator */                                        4462, /* DiagArray227 */ 694, /* Empty */         0 },
+  { /* gnu-empty-initializer */                                 4477, /* DiagArray228 */ 698, /* Empty */         0 },
+  { /* gnu-empty-struct */                                      4499, /* DiagArray229 */ 700, /* Empty */         0 },
+  { /* gnu-flexible-array-initializer */                        4516, /* DiagArray230 */ 704, /* Empty */         0 },
+  { /* gnu-flexible-array-union-member */                       4547, /* DiagArray231 */ 706, /* Empty */         0 },
+  { /* gnu-folding-constant */                                  4579, /* DiagArray232 */ 708, /* Empty */         0 },
+  { /* gnu-imaginary-constant */                                4600, /* DiagArray233 */ 712, /* Empty */         0 },
+  { /* gnu-include-next */                                      4623, /* DiagArray234 */ 714, /* Empty */         0 },
+  { /* gnu-label-as-value */                                    4640, /* DiagArray235 */ 716, /* Empty */         0 },
+  { /* gnu-redeclared-enum */                                   4659, /* DiagArray236 */ 719, /* Empty */         0 },
+  { /* gnu-statement-expression */                              4679, /* DiagArray237 */ 721, /* Empty */         0 },
+  { /* gnu-static-float-init */                                 4704, /* DiagArray238 */ 723, /* Empty */         0 },
+  { /* gnu-string-literal-operator-template */                  4726, /* DiagArray239 */ 725, /* Empty */         0 },
+  { /* gnu-union-cast */                                        4763, /* DiagArray240 */ 727, /* Empty */         0 },
+  { /* gnu-variable-sized-type-not-at-end */                    4778, /* DiagArray241 */ 729, /* Empty */         0 },
+  { /* gnu-zero-line-directive */                               4813, /* DiagArray242 */ 731, /* Empty */         0 },
+  { /* gnu-zero-variadic-macro-arguments */                     4837, /* DiagArray243 */ 733, /* Empty */         0 },
+  { /* header-guard */                                          4871, /* DiagArray244 */ 736, /* Empty */         0 },
+  { /* header-hygiene */                                        4884, /* DiagArray245 */ 738, /* Empty */         0 },
+  { /* idiomatic-parentheses */                                 4899, /* DiagArray246 */ 740, /* Empty */         0 },
+  { /* ignored-attributes */                                    4921, /* DiagArray247 */ 742, /* Empty */         0 },
+  { /* ignored-optimization-argument */                         4940, /* DiagArray248 */ 795, /* Empty */         0 },
+  { /* ignored-pragma-intrinsic */                              4970, /* DiagArray249 */ 798, /* Empty */         0 },
+  { /* ignored-pragmas */                                       4995, /* DiagArray250 */ 800, /* DiagSubGroup250 */ 180 },
+  { /* ignored-qualifiers */                                    5011, /* DiagArray251 */ 839, /* Empty */         0 },
+  { /* implicit */                                              5030, /* Empty */     0, /* DiagSubGroup252 */ 182 },
+  { /* implicit-atomic-properties */                            5039, /* DiagArray253 */ 845, /* Empty */         0 },
+  { /* implicit-conversion-floating-point-to-bool */            5066, /* DiagArray254 */ 848, /* Empty */         0 },
+  { /* implicit-exception-spec-mismatch */                      5109, /* DiagArray255 */ 850, /* Empty */         0 },
+  { /* implicit-fallthrough */                                  5142, /* DiagArray256 */ 852, /* DiagSubGroup256 */ 185 },
+  { /* implicit-fallthrough-per-function */                     5163, /* DiagArray257 */ 855, /* Empty */         0 },
+  { /* implicit-function-declaration */                         5197, /* DiagArray258 */ 857, /* Empty */         0 },
+  { /* implicit-int */                                          5227, /* DiagArray259 */ 862, /* Empty */         0 },
+  { /* implicit-retain-self */                                  5240, /* DiagArray260 */ 864, /* Empty */         0 },
+  { /* implicitly-unsigned-literal */                           5261, /* DiagArray261 */ 866, /* Empty */         0 },
+  { /* import */                                                5289, /* Empty */     0, /* Empty */         0 },
+  { /* import-preprocessor-directive-pedantic */                5296, /* DiagArray263 */ 868, /* Empty */         0 },
+  { /* inaccessible-base */                                     5335, /* DiagArray264 */ 870, /* Empty */         0 },
+  { /* include-next-absolute-path */                            5353, /* DiagArray265 */ 872, /* Empty */         0 },
+  { /* include-next-outside-header */                           5380, /* DiagArray266 */ 874, /* Empty */         0 },
+  { /* incompatible-exception-spec */                           5408, /* DiagArray267 */ 876, /* Empty */         0 },
+  { /* incompatible-function-pointer-types */                   5436, /* DiagArray268 */ 879, /* Empty */         0 },
+  { /* incompatible-library-redeclaration */                    5472, /* DiagArray269 */ 881, /* Empty */         0 },
+  { /* incompatible-ms-struct */                                5507, /* DiagArray270 */ 883, /* Empty */         0 },
+  { /* incompatible-pointer-types */                            5530, /* DiagArray271 */ 885, /* DiagSubGroup271 */ 187 },
+  { /* incompatible-pointer-types-discards-qualifiers */        5557, /* DiagArray272 */ 887, /* Empty */         0 },
+  { /* incompatible-property-type */                            5604, /* DiagArray273 */ 890, /* Empty */         0 },
+  { /* incompatible-sysroot */                                  5631, /* DiagArray274 */ 892, /* Empty */         0 },
+  { /* incomplete-implementation */                             5652, /* DiagArray275 */ 894, /* Empty */         0 },
+  { /* incomplete-module */                                     5678, /* Empty */     0, /* DiagSubGroup276 */ 190 },
+  { /* incomplete-umbrella */                                   5696, /* DiagArray277 */ 896, /* Empty */         0 },
+  { /* inconsistent-dllimport */                                5716, /* DiagArray278 */ 899, /* Empty */         0 },
+  { /* inconsistent-missing-destructor-override */              5739, /* DiagArray279 */ 902, /* Empty */         0 },
+  { /* inconsistent-missing-override */                         5780, /* DiagArray280 */ 904, /* Empty */         0 },
+  { /* increment-bool */                                        5810, /* DiagArray281 */ 906, /* DiagSubGroup281 */ 193 },
+  { /* infinite-recursion */                                    5825, /* DiagArray282 */ 908, /* Empty */         0 },
+  { /* init-self */                                             5844, /* Empty */     0, /* Empty */         0 },
+  { /* initializer-overrides */                                 5854, /* DiagArray284 */ 910, /* Empty */         0 },
+  { /* injected-class-name */                                   5876, /* DiagArray285 */ 913, /* Empty */         0 },
+  { /* inline */                                                5896, /* Empty */     0, /* Empty */         0 },
+  { /* inline-asm */                                            5903, /* DiagArray287 */ 915, /* Empty */         0 },
+  { /* inline-new-delete */                                     5914, /* DiagArray288 */ 917, /* Empty */         0 },
+  { /* instantiation-after-specialization */                    5932, /* DiagArray289 */ 919, /* Empty */         0 },
+  { /* int-conversion */                                        5967, /* DiagArray290 */ 921, /* Empty */         0 },
+  { /* int-conversions */                                       5982, /* Empty */     0, /* DiagSubGroup291 */ 195 },
+  { /* int-to-pointer-cast */                                   5998, /* DiagArray292 */ 924, /* DiagSubGroup292 */ 197 },
+  { /* int-to-void-pointer-cast */                              6018, /* DiagArray293 */ 926, /* Empty */         0 },
+  { /* integer-overflow */                                      6043, /* DiagArray294 */ 928, /* Empty */         0 },
+  { /* invalid-command-line-argument */                         6060, /* DiagArray295 */ 930, /* DiagSubGroup295 */ 199 },
+  { /* invalid-constexpr */                                     6090, /* DiagArray296 */ 932, /* Empty */         0 },
+  { /* invalid-iboutlet */                                      6108, /* DiagArray297 */ 934, /* Empty */         0 },
+  { /* invalid-initializer-from-system-header */                6125, /* DiagArray298 */ 937, /* Empty */         0 },
+  { /* invalid-noreturn */                                      6164, /* DiagArray299 */ 939, /* Empty */         0 },
+  { /* invalid-offsetof */                                      6181, /* DiagArray300 */ 942, /* Empty */         0 },
+  { /* invalid-or-nonexistent-directory */                      6198, /* DiagArray301 */ 945, /* Empty */         0 },
+  { /* invalid-partial-specialization */                        6231, /* DiagArray302 */ 948, /* Empty */         0 },
+  { /* invalid-pch */                                           6262, /* Empty */     0, /* Empty */         0 },
+  { /* invalid-pp-token */                                      6274, /* DiagArray304 */ 950, /* Empty */         0 },
+  { /* invalid-source-encoding */                               6291, /* DiagArray305 */ 953, /* Empty */         0 },
+  { /* invalid-token-paste */                                   6315, /* DiagArray306 */ 956, /* Empty */         0 },
+  { /* jump-seh-finally */                                      6335, /* DiagArray307 */ 958, /* Empty */         0 },
+  { /* keyword-compat */                                        6352, /* DiagArray308 */ 960, /* Empty */         0 },
+  { /* keyword-macro */                                         6367, /* DiagArray309 */ 962, /* Empty */         0 },
+  { /* knr-promoted-parameter */                                6381, /* DiagArray310 */ 964, /* Empty */         0 },
+  { /* language-extension-token */                              6404, /* DiagArray311 */ 966, /* Empty */         0 },
+  { /* large-by-value-copy */                                   6429, /* DiagArray312 */ 968, /* Empty */         0 },
+  { /* liblto */                                                6449, /* Empty */     0, /* Empty */         0 },
+  { /* literal-conversion */                                    6456, /* DiagArray314 */ 971, /* Empty */         0 },
+  { /* literal-range */                                         6475, /* DiagArray315 */ 973, /* Empty */         0 },
+  { /* local-type-template-args */                              6489, /* DiagArray316 */ 976, /* DiagSubGroup316 */ 201 },
+  { /* logical-not-parentheses */                               6514, /* DiagArray317 */ 978, /* Empty */         0 },
+  { /* logical-op-parentheses */                                6538, /* DiagArray318 */ 980, /* Empty */         0 },
+  { /* long-long */                                             6561, /* DiagArray319 */ 982, /* DiagSubGroup319 */ 203 },
+  { /* loop-analysis */                                         6571, /* Empty */     0, /* DiagSubGroup320 */ 205 },
+  { /* macro-redefined */                                       6585, /* DiagArray321 */ 984, /* Empty */         0 },
+  { /* main */                                                  6601, /* DiagArray322 */ 986, /* Empty */         0 },
+  { /* main-return-type */                                      6606, /* DiagArray323 */ 994, /* Empty */         0 },
+  { /* malformed-warning-check */                               6623, /* DiagArray324 */ 996, /* Empty */         0 },
+  { /* many-braces-around-scalar-init */                        6647, /* DiagArray325 */ 998, /* Empty */         0 },
+  { /* max-unsigned-zero */                                     6678, /* DiagArray326 */ 1000, /* Empty */         0 },
+  { /* memsize-comparison */                                    6696, /* DiagArray327 */ 1002, /* Empty */         0 },
+  { /* method-signatures */                                     6715, /* DiagArray328 */ 1004, /* Empty */         0 },
+  { /* microsoft */                                             6733, /* Empty */     0, /* DiagSubGroup329 */ 208 },
+  { /* microsoft-anon-tag */                                    6743, /* DiagArray330 */ 1007, /* Empty */         0 },
+  { /* microsoft-cast */                                        6762, /* DiagArray331 */ 1010, /* Empty */         0 },
+  { /* microsoft-charize */                                     6777, /* DiagArray332 */ 1013, /* Empty */         0 },
+  { /* microsoft-comment-paste */                               6795, /* DiagArray333 */ 1015, /* Empty */         0 },
+  { /* microsoft-const-init */                                  6819, /* DiagArray334 */ 1017, /* Empty */         0 },
+  { /* microsoft-cpp-macro */                                   6840, /* DiagArray335 */ 1019, /* Empty */         0 },
+  { /* microsoft-default-arg-redefinition */                    6860, /* DiagArray336 */ 1021, /* Empty */         0 },
+  { /* microsoft-end-of-file */                                 6895, /* DiagArray337 */ 1023, /* Empty */         0 },
+  { /* microsoft-enum-forward-reference */                      6917, /* DiagArray338 */ 1025, /* Empty */         0 },
+  { /* microsoft-enum-value */                                  6950, /* DiagArray339 */ 1027, /* Empty */         0 },
+  { /* microsoft-exception-spec */                              6971, /* DiagArray340 */ 1029, /* Empty */         0 },
+  { /* microsoft-exists */                                      6996, /* DiagArray341 */ 1036, /* Empty */         0 },
+  { /* microsoft-explicit-constructor-call */                   7013, /* DiagArray342 */ 1038, /* Empty */         0 },
+  { /* microsoft-extra-qualification */                         7049, /* DiagArray343 */ 1040, /* Empty */         0 },
+  { /* microsoft-fixed-enum */                                  7079, /* DiagArray344 */ 1042, /* Empty */         0 },
+  { /* microsoft-flexible-array */                              7100, /* DiagArray345 */ 1044, /* Empty */         0 },
+  { /* microsoft-goto */                                        7125, /* DiagArray346 */ 1047, /* Empty */         0 },
+  { /* microsoft-include */                                     7140, /* DiagArray347 */ 1049, /* Empty */         0 },
+  { /* microsoft-mutable-reference */                           7158, /* DiagArray348 */ 1051, /* Empty */         0 },
+  { /* microsoft-pure-definition */                             7186, /* DiagArray349 */ 1053, /* Empty */         0 },
+  { /* microsoft-redeclare-static */                            7212, /* DiagArray350 */ 1055, /* Empty */         0 },
+  { /* microsoft-sealed */                                      7239, /* DiagArray351 */ 1057, /* Empty */         0 },
+  { /* microsoft-template */                                    7256, /* DiagArray352 */ 1059, /* Empty */         0 },
+  { /* microsoft-union-member-reference */                      7275, /* DiagArray353 */ 1068, /* Empty */         0 },
+  { /* microsoft-unqualified-friend */                          7308, /* DiagArray354 */ 1070, /* Empty */         0 },
+  { /* microsoft-using-decl */                                  7337, /* DiagArray355 */ 1072, /* Empty */         0 },
+  { /* microsoft-void-pseudo-dtor */                            7358, /* DiagArray356 */ 1074, /* Empty */         0 },
+  { /* mismatched-new-delete */                                 7385, /* DiagArray357 */ 1076, /* Empty */         0 },
+  { /* mismatched-parameter-types */                            7407, /* DiagArray358 */ 1078, /* Empty */         0 },
+  { /* mismatched-return-types */                               7434, /* DiagArray359 */ 1080, /* Empty */         0 },
+  { /* mismatched-tags */                                       7458, /* DiagArray360 */ 1082, /* Empty */         0 },
+  { /* missing-braces */                                        7474, /* DiagArray361 */ 1085, /* Empty */         0 },
+  { /* missing-declarations */                                  7489, /* DiagArray362 */ 1087, /* Empty */         0 },
+  { /* missing-exception-spec */                                7510, /* DiagArray363 */ 1092, /* Empty */         0 },
+  { /* missing-field-initializers */                            7533, /* DiagArray364 */ 1094, /* Empty */         0 },
+  { /* missing-format-attribute */                              7560, /* Empty */     0, /* Empty */         0 },
+  { /* missing-include-dirs */                                  7585, /* Empty */     0, /* Empty */         0 },
+  { /* missing-method-return-type */                            7606, /* DiagArray367 */ 1096, /* Empty */         0 },
+  { /* missing-noreturn */                                      7633, /* DiagArray368 */ 1098, /* Empty */         0 },
+  { /* missing-prototype-for-cc */                              7650, /* DiagArray369 */ 1101, /* Empty */         0 },
+  { /* missing-prototypes */                                    7675, /* DiagArray370 */ 1103, /* Empty */         0 },
+  { /* missing-selector-name */                                 7694, /* DiagArray371 */ 1105, /* Empty */         0 },
+  { /* missing-sysroot */                                       7716, /* DiagArray372 */ 1107, /* Empty */         0 },
+  { /* missing-variable-declarations */                         7732, /* DiagArray373 */ 1109, /* Empty */         0 },
+  { /* module-build */                                          7762, /* DiagArray374 */ 1111, /* Empty */         0 },
+  { /* module-conflict */                                       7775, /* DiagArray375 */ 1116, /* Empty */         0 },
+  { /* module-file-config-mismatch */                           7791, /* DiagArray376 */ 1119, /* Empty */         0 },
+  { /* module-file-extension */                                 7819, /* DiagArray377 */ 1121, /* Empty */         0 },
+  { /* module-import-in-extern-c */                             7841, /* DiagArray378 */ 1123, /* Empty */         0 },
+  { /* modules-ambiguous-internal-linkage */                    7867, /* DiagArray379 */ 1125, /* Empty */         0 },
+  { /* modules-import-nested-redundant */                       7902, /* DiagArray380 */ 1127, /* Empty */         0 },
+  { /* most */                                                  7934, /* Empty */     0, /* DiagSubGroup381 */ 236 },
+  { /* move */                                                  7939, /* Empty */     0, /* DiagSubGroup382 */ 267 },
+  { /* msvc-include */                                          7944, /* Empty */     0, /* DiagSubGroup383 */ 271 },
+  { /* msvc-not-found */                                        7957, /* DiagArray384 */ 1129, /* Empty */         0 },
+  { /* multichar */                                             7972, /* DiagArray385 */ 1131, /* Empty */         0 },
+  { /* multiple-move-vbase */                                   7982, /* DiagArray386 */ 1133, /* Empty */         0 },
+  { /* narrowing */                                             8002, /* Empty */     0, /* DiagSubGroup387 */ 273 },
+  { /* nested-anon-types */                                     8012, /* DiagArray388 */ 1135, /* Empty */         0 },
+  { /* nested-externs */                                        8030, /* Empty */     0, /* Empty */         0 },
+  { /* new-returns-null */                                      8045, /* DiagArray390 */ 1137, /* Empty */         0 },
+  { /* newline-eof */                                           8062, /* DiagArray391 */ 1139, /* Empty */         0 },
+  { /* non-gcc */                                               8074, /* Empty */     0, /* DiagSubGroup392 */ 275 },
+  { /* non-literal-null-conversion */                           8082, /* DiagArray393 */ 1142, /* Empty */         0 },
+  { /* non-modular-include-in-framework-module */               8110, /* DiagArray394 */ 1144, /* Empty */         0 },
+  { /* non-modular-include-in-module */                         8150, /* DiagArray395 */ 1146, /* DiagSubGroup395 */ 279 },
+  { /* non-pod-varargs */                                       8180, /* DiagArray396 */ 1148, /* Empty */         0 },
+  { /* non-virtual-dtor */                                      8196, /* DiagArray397 */ 1153, /* Empty */         0 },
+  { /* nonnull */                                               8213, /* DiagArray398 */ 1155, /* Empty */         0 },
+  { /* nonportable-cfstrings */                                 8221, /* Empty */     0, /* Empty */         0 },
+  { /* nonportable-include-path */                              8243, /* DiagArray400 */ 1158, /* Empty */         0 },
+  { /* nonportable-system-include-path */                       8268, /* DiagArray401 */ 1160, /* Empty */         0 },
+  { /* nonportable-vector-initialization */                     8300, /* DiagArray402 */ 1162, /* Empty */         0 },
+  { /* null-arithmetic */                                       8334, /* DiagArray403 */ 1164, /* Empty */         0 },
+  { /* null-character */                                        8350, /* DiagArray404 */ 1167, /* Empty */         0 },
+  { /* null-conversion */                                       8365, /* DiagArray405 */ 1170, /* Empty */         0 },
+  { /* null-dereference */                                      8381, /* DiagArray406 */ 1172, /* Empty */         0 },
+  { /* nullability */                                           8398, /* DiagArray407 */ 1175, /* Empty */         0 },
+  { /* nullability-completeness */                              8410, /* DiagArray408 */ 1181, /* DiagSubGroup408 */ 281 },
+  { /* nullability-completeness-on-arrays */                    8435, /* DiagArray409 */ 1183, /* Empty */         0 },
+  { /* nullability-declspec */                                  8470, /* DiagArray410 */ 1185, /* Empty */         0 },
+  { /* nullability-extension */                                 8491, /* DiagArray411 */ 1187, /* Empty */         0 },
+  { /* nullability-inferred-on-nested-type */                   8513, /* DiagArray412 */ 1189, /* Empty */         0 },
+  { /* nullable-to-nonnull-conversion */                        8549, /* DiagArray413 */ 1191, /* Empty */         0 },
+  { /* objc-autosynthesis-property-ivar-name-match */           8580, /* DiagArray414 */ 1193, /* Empty */         0 },
+  { /* objc-circular-container */                               8624, /* DiagArray415 */ 1195, /* Empty */         0 },
+  { /* objc-cocoa-api */                                        8648, /* Empty */     0, /* DiagSubGroup416 */ 283 },
+  { /* objc-designated-initializers */                          8663, /* DiagArray417 */ 1197, /* Empty */         0 },
+  { /* objc-forward-class-redefinition */                       8692, /* DiagArray418 */ 1204, /* Empty */         0 },
+  { /* objc-interface-ivars */                                  8724, /* DiagArray419 */ 1206, /* Empty */         0 },
+  { /* objc-literal-compare */                                  8745, /* DiagArray420 */ 1208, /* DiagSubGroup420 */ 285 },
+  { /* objc-literal-conversion */                               8766, /* DiagArray421 */ 1210, /* Empty */         0 },
+  { /* objc-macro-redefinition */                               8790, /* DiagArray422 */ 1213, /* Empty */         0 },
+  { /* objc-method-access */                                    8814, /* DiagArray423 */ 1215, /* Empty */         0 },
+  { /* objc-missing-property-synthesis */                       8833, /* DiagArray424 */ 1222, /* Empty */         0 },
+  { /* objc-missing-super-calls */                              8865, /* DiagArray425 */ 1224, /* Empty */         0 },
+  { /* objc-multiple-method-names */                            8890, /* DiagArray426 */ 1226, /* Empty */         0 },
+  { /* objc-noncopy-retain-block-property */                    8917, /* DiagArray427 */ 1228, /* Empty */         0 },
+  { /* objc-nonunified-exceptions */                            8952, /* DiagArray428 */ 1230, /* Empty */         0 },
+  { /* objc-property-implementation */                          8979, /* DiagArray429 */ 1232, /* Empty */         0 },
+  { /* objc-property-implicit-mismatch */                       9008, /* DiagArray430 */ 1237, /* Empty */         0 },
+  { /* objc-property-matches-cocoa-ownership-rule */            9040, /* DiagArray431 */ 1239, /* Empty */         0 },
+  { /* objc-property-no-attribute */                            9083, /* DiagArray432 */ 1241, /* Empty */         0 },
+  { /* objc-property-synthesis */                               9110, /* DiagArray433 */ 1244, /* Empty */         0 },
+  { /* objc-protocol-method-implementation */                   9134, /* DiagArray434 */ 1248, /* Empty */         0 },
+  { /* objc-protocol-property-synthesis */                      9170, /* DiagArray435 */ 1250, /* Empty */         0 },
+  { /* objc-protocol-qualifiers */                              9203, /* DiagArray436 */ 1252, /* Empty */         0 },
+  { /* objc-readonly-with-setter-property */                    9228, /* DiagArray437 */ 1254, /* Empty */         0 },
+  { /* objc-redundant-api-use */                                9263, /* Empty */     0, /* DiagSubGroup438 */ 287 },
+  { /* objc-redundant-literal-use */                            9286, /* DiagArray439 */ 1256, /* Empty */         0 },
+  { /* objc-root-class */                                       9313, /* DiagArray440 */ 1258, /* Empty */         0 },
+  { /* objc-string-compare */                                   9329, /* DiagArray441 */ 1260, /* Empty */         0 },
+  { /* objc-string-concatenation */                             9349, /* DiagArray442 */ 1262, /* Empty */         0 },
+  { /* objc-unsafe-perform-selector */                          9375, /* DiagArray443 */ 1264, /* Empty */         0 },
+  { /* odr */                                                   9404, /* DiagArray444 */ 1266, /* Empty */         0 },
+  { /* old-style-cast */                                        9408, /* DiagArray445 */ 1268, /* Empty */         0 },
+  { /* old-style-definition */                                  9423, /* Empty */     0, /* Empty */         0 },
+  { /* opencl-unsupported-rgba */                               9444, /* DiagArray447 */ 1270, /* Empty */         0 },
+  { /* openmp-clauses */                                        9468, /* DiagArray448 */ 1272, /* Empty */         0 },
+  { /* openmp-loop-form */                                      9483, /* DiagArray449 */ 1275, /* Empty */         0 },
+  { /* openmp-target */                                         9500, /* DiagArray450 */ 1278, /* Empty */         0 },
+  { /* option-ignored */                                        9514, /* DiagArray451 */ 1281, /* Empty */         0 },
+  { /* out-of-line-declaration */                               9529, /* DiagArray452 */ 1283, /* Empty */         0 },
+  { /* over-aligned */                                          9553, /* DiagArray453 */ 1285, /* Empty */         0 },
+  { /* overflow */                                              9566, /* Empty */     0, /* Empty */         0 },
+  { /* overlength-strings */                                    9575, /* DiagArray455 */ 1287, /* Empty */         0 },
+  { /* overloaded-shift-op-parentheses */                       9594, /* DiagArray456 */ 1289, /* Empty */         0 },
+  { /* overloaded-virtual */                                    9626, /* DiagArray457 */ 1291, /* Empty */         0 },
+  { /* override-module */                                       9645, /* DiagArray458 */ 1293, /* Empty */         0 },
+  { /* overriding-method-mismatch */                            9661, /* DiagArray459 */ 1295, /* Empty */         0 },
+  { /* overriding-t-option */                                   9688, /* DiagArray460 */ 1303, /* Empty */         0 },
+  { /* packed */                                                9708, /* DiagArray461 */ 1305, /* Empty */         0 },
+  { /* padded */                                                9715, /* DiagArray462 */ 1307, /* Empty */         0 },
+  { /* parentheses */                                           9722, /* DiagArray463 */ 1311, /* DiagSubGroup463 */ 289 },
+  { /* parentheses-equality */                                  9734, /* DiagArray464 */ 1315, /* Empty */         0 },
+  { /* partial-availability */                                  9755, /* Empty */     0, /* DiagSubGroup465 */ 297 },
+  { /* pass */                                                  9776, /* DiagArray466 */ 1317, /* Empty */         0 },
+  { /* pass-analysis */                                         9781, /* DiagArray467 */ 1319, /* Empty */         0 },
+  { /* pass-failed */                                           9795, /* DiagArray468 */ 1323, /* Empty */         0 },
+  { /* pass-missed */                                           9807, /* DiagArray469 */ 1325, /* Empty */         0 },
+  { /* pch-date-time */                                         9819, /* DiagArray470 */ 1327, /* Empty */         0 },
+  { /* pedantic */                                              9833, /* DiagArray471 */ 1329, /* DiagSubGroup471 */ 299 },
+  { /* pedantic-core-features */                                9842, /* DiagArray472 */ 1393, /* Empty */         0 },
+  { /* pessimizing-move */                                      9865, /* DiagArray473 */ 1395, /* Empty */         0 },
+  { /* pointer-arith */                                         9882, /* DiagArray474 */ 1398, /* Empty */         0 },
+  { /* pointer-bool-conversion */                               9896, /* DiagArray475 */ 1405, /* Empty */         0 },
+  { /* pointer-sign */                                          9920, /* DiagArray476 */ 1408, /* Empty */         0 },
+  { /* pointer-to-int-cast */                                   9933, /* Empty */     0, /* Empty */         0 },
+  { /* pointer-type-mismatch */                                 9953, /* DiagArray478 */ 1410, /* Empty */         0 },
+  { /* potentially-evaluated-expression */                      9975, /* DiagArray479 */ 1412, /* Empty */         0 },
+  { /* pragma-once-outside-header */                            10008, /* DiagArray480 */ 1414, /* Empty */         0 },
+  { /* pragma-system-header-outside-header */                   10035, /* DiagArray481 */ 1416, /* Empty */         0 },
+  { /* pragmas */                                               10071, /* DiagArray482 */ 1418, /* DiagSubGroup482 */ 352 },
+  { /* predefined-identifier-outside-function */                10079, /* DiagArray483 */ 1420, /* Empty */         0 },
+  { /* private-extern */                                        10118, /* DiagArray484 */ 1422, /* Empty */         0 },
+  { /* private-header */                                        10133, /* DiagArray485 */ 1424, /* Empty */         0 },
+  { /* private-module */                                        10148, /* DiagArray486 */ 1426, /* Empty */         0 },
+  { /* profile-instr-out-of-date */                             10163, /* DiagArray487 */ 1428, /* Empty */         0 },
+  { /* profile-instr-unprofiled */                              10189, /* DiagArray488 */ 1430, /* Empty */         0 },
+  { /* property-access-dot-syntax */                            10214, /* DiagArray489 */ 1432, /* Empty */         0 },
+  { /* property-attribute-mismatch */                           10241, /* DiagArray490 */ 1434, /* Empty */         0 },
+  { /* protocol */                                              10269, /* DiagArray491 */ 1439, /* Empty */         0 },
+  { /* protocol-property-synthesis-ambiguity */                 10278, /* DiagArray492 */ 1441, /* Empty */         0 },
+  { /* qualified-void-return-type */                            10316, /* DiagArray493 */ 1443, /* Empty */         0 },
+  { /* range-loop-analysis */                                   10343, /* DiagArray494 */ 1445, /* Empty */         0 },
+  { /* readonly-iboutlet-property */                            10363, /* DiagArray495 */ 1449, /* Empty */         0 },
+  { /* receiver-expr */                                         10390, /* DiagArray496 */ 1451, /* Empty */         0 },
+  { /* receiver-forward-class */                                10404, /* DiagArray497 */ 1453, /* Empty */         0 },
+  { /* redeclared-class-member */                               10427, /* DiagArray498 */ 1456, /* Empty */         0 },
+  { /* redundant-decls */                                       10451, /* Empty */     0, /* Empty */         0 },
+  { /* redundant-move */                                        10467, /* DiagArray500 */ 1458, /* Empty */         0 },
+  { /* register */                                              10482, /* DiagArray501 */ 1460, /* DiagSubGroup501 */ 355 },
+  { /* reinterpret-base-class */                                10491, /* DiagArray502 */ 1462, /* Empty */         0 },
+  { /* remark-backend-plugin */                                 10514, /* DiagArray503 */ 1464, /* Empty */         0 },
+  { /* reorder */                                               10536, /* DiagArray504 */ 1466, /* Empty */         0 },
+  { /* requires-super-attribute */                              10544, /* DiagArray505 */ 1468, /* Empty */         0 },
+  { /* reserved-id-macro */                                     10569, /* DiagArray506 */ 1470, /* Empty */         0 },
+  { /* reserved-user-defined-literal */                         10587, /* DiagArray507 */ 1472, /* DiagSubGroup507 */ 357 },
+  { /* retained-language-linkage */                             10617, /* DiagArray508 */ 1475, /* Empty */         0 },
+  { /* return-stack-address */                                  10643, /* DiagArray509 */ 1477, /* Empty */         0 },
+  { /* return-type */                                           10664, /* DiagArray510 */ 1481, /* DiagSubGroup510 */ 359 },
+  { /* return-type-c-linkage */                                 10676, /* DiagArray511 */ 1491, /* Empty */         0 },
+  { /* rtti-for-exceptions */                                   10698, /* DiagArray512 */ 1494, /* Empty */         0 },
+  { /* sanitize-address */                                      10718, /* DiagArray513 */ 1496, /* Empty */         0 },
+  { /* section */                                               10735, /* DiagArray514 */ 1499, /* Empty */         0 },
+  { /* selector */                                              10743, /* DiagArray515 */ 1501, /* DiagSubGroup515 */ 361 },
+  { /* selector-type-mismatch */                                10752, /* DiagArray516 */ 1503, /* Empty */         0 },
+  { /* self-assign */                                           10775, /* DiagArray517 */ 1505, /* DiagSubGroup517 */ 363 },
+  { /* self-assign-field */                                     10787, /* DiagArray518 */ 1507, /* Empty */         0 },
+  { /* self-move */                                             10805, /* DiagArray519 */ 1509, /* Empty */         0 },
+  { /* semicolon-before-method-body */                          10815, /* DiagArray520 */ 1511, /* Empty */         0 },
+  { /* sentinel */                                              10844, /* DiagArray521 */ 1513, /* Empty */         0 },
+  { /* sequence-point */                                        10853, /* Empty */     0, /* DiagSubGroup522 */ 365 },
+  { /* serialized-diagnostics */                                10868, /* DiagArray523 */ 1516, /* Empty */         0 },
+  { /* shadow */                                                10891, /* DiagArray524 */ 1519, /* DiagSubGroup524 */ 367 },
+  { /* shadow-all */                                            10898, /* Empty */     0, /* DiagSubGroup525 */ 370 },
+  { /* shadow-field */                                          10909, /* DiagArray526 */ 1521, /* Empty */         0 },
+  { /* shadow-field-in-constructor */                           10922, /* DiagArray527 */ 1523, /* DiagSubGroup527 */ 375 },
+  { /* shadow-field-in-constructor-modified */                  10950, /* DiagArray528 */ 1525, /* Empty */         0 },
+  { /* shadow-ivar */                                           10987, /* DiagArray529 */ 1527, /* Empty */         0 },
+  { /* shadow-uncaptured-local */                               10999, /* DiagArray530 */ 1529, /* Empty */         0 },
+  { /* shift-count-negative */                                  11023, /* DiagArray531 */ 1531, /* Empty */         0 },
+  { /* shift-count-overflow */                                  11044, /* DiagArray532 */ 1533, /* Empty */         0 },
+  { /* shift-negative-value */                                  11065, /* DiagArray533 */ 1535, /* Empty */         0 },
+  { /* shift-op-parentheses */                                  11086, /* DiagArray534 */ 1537, /* Empty */         0 },
+  { /* shift-overflow */                                        11107, /* DiagArray535 */ 1539, /* Empty */         0 },
+  { /* shift-sign-overflow */                                   11122, /* DiagArray536 */ 1541, /* Empty */         0 },
+  { /* shorten-64-to-32 */                                      11142, /* DiagArray537 */ 1543, /* Empty */         0 },
+  { /* sign-compare */                                          11159, /* DiagArray538 */ 1545, /* Empty */         0 },
+  { /* sign-conversion */                                       11172, /* DiagArray539 */ 1547, /* Empty */         0 },
+  { /* sign-promo */                                            11188, /* Empty */     0, /* Empty */         0 },
+  { /* signed-enum-bitfield */                                  11199, /* DiagArray541 */ 1550, /* Empty */         0 },
+  { /* sizeof-array-argument */                                 11220, /* DiagArray542 */ 1552, /* Empty */         0 },
+  { /* sizeof-array-decay */                                    11242, /* DiagArray543 */ 1554, /* Empty */         0 },
+  { /* sizeof-pointer-memaccess */                              11261, /* DiagArray544 */ 1556, /* Empty */         0 },
+  { /* slash-u-filename */                                      11286, /* DiagArray545 */ 1559, /* Empty */         0 },
+  { /* sometimes-uninitialized */                               11303, /* DiagArray546 */ 1561, /* Empty */         0 },
+  { /* source-uses-openmp */                                    11327, /* DiagArray547 */ 1563, /* Empty */         0 },
+  { /* spir-compat */                                           11346, /* DiagArray548 */ 1566, /* Empty */         0 },
+  { /* stack-protector */                                       11358, /* Empty */     0, /* Empty */         0 },
+  { /* static-float-init */                                     11374, /* DiagArray550 */ 1568, /* DiagSubGroup550 */ 377 },
+  { /* static-in-inline */                                      11392, /* DiagArray551 */ 1570, /* Empty */         0 },
+  { /* static-inline-explicit-instantiation */                  11409, /* DiagArray552 */ 1573, /* Empty */         0 },
+  { /* static-local-in-inline */                                11446, /* DiagArray553 */ 1575, /* Empty */         0 },
+  { /* static-self-init */                                      11469, /* DiagArray554 */ 1577, /* Empty */         0 },
+  { /* strict-aliasing */                                       11486, /* Empty */     0, /* Empty */         0 },
+  { /* strict-aliasing=0 */                                     11502, /* Empty */     0, /* Empty */         0 },
+  { /* strict-aliasing=1 */                                     11520, /* Empty */     0, /* Empty */         0 },
+  { /* strict-aliasing=2 */                                     11538, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow */                                       11556, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=0 */                                     11572, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=1 */                                     11590, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=2 */                                     11608, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=3 */                                     11626, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=4 */                                     11644, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=5 */                                     11662, /* Empty */     0, /* Empty */         0 },
+  { /* strict-prototypes */                                     11680, /* DiagArray566 */ 1579, /* Empty */         0 },
+  { /* strict-selector-match */                                 11698, /* DiagArray567 */ 1581, /* Empty */         0 },
+  { /* string-compare */                                        11720, /* DiagArray568 */ 1583, /* Empty */         0 },
+  { /* string-conversion */                                     11735, /* DiagArray569 */ 1585, /* Empty */         0 },
+  { /* string-plus-char */                                      11753, /* DiagArray570 */ 1587, /* Empty */         0 },
+  { /* string-plus-int */                                       11770, /* DiagArray571 */ 1589, /* Empty */         0 },
+  { /* strlcpy-strlcat-size */                                  11786, /* DiagArray572 */ 1591, /* Empty */         0 },
+  { /* strncat-size */                                          11807, /* DiagArray573 */ 1593, /* Empty */         0 },
+  { /* super-class-method-mismatch */                           11820, /* DiagArray574 */ 1597, /* Empty */         0 },
+  { /* switch */                                                11848, /* DiagArray575 */ 1599, /* Empty */         0 },
+  { /* switch-bool */                                           11855, /* DiagArray576 */ 1603, /* Empty */         0 },
+  { /* switch-default */                                        11867, /* Empty */     0, /* Empty */         0 },
+  { /* switch-enum */                                           11882, /* DiagArray578 */ 1605, /* Empty */         0 },
+  { /* sync-fetch-and-nand-semantics-changed */                 11894, /* DiagArray579 */ 1607, /* Empty */         0 },
+  { /* synth */                                                 11932, /* Empty */     0, /* Empty */         0 },
+  { /* tautological-compare */                                  11938, /* DiagArray581 */ 1609, /* DiagSubGroup581 */ 379 },
+  { /* tautological-constant-out-of-range-compare */            11959, /* DiagArray582 */ 1614, /* Empty */         0 },
+  { /* tautological-overlap-compare */                          12002, /* DiagArray583 */ 1616, /* Empty */         0 },
+  { /* tautological-pointer-compare */                          12031, /* DiagArray584 */ 1618, /* Empty */         0 },
+  { /* tautological-undefined-compare */                        12060, /* DiagArray585 */ 1621, /* Empty */         0 },
+  { /* tentative-definition-incomplete-type */                  12091, /* DiagArray586 */ 1624, /* Empty */         0 },
+  { /* thread-safety */                                         12128, /* Empty */     0, /* DiagSubGroup587 */ 384 },
+  { /* thread-safety-analysis */                                12142, /* DiagArray588 */ 1626, /* Empty */         0 },
+  { /* thread-safety-attributes */                              12165, /* DiagArray589 */ 1644, /* Empty */         0 },
+  { /* thread-safety-beta */                                    12190, /* DiagArray590 */ 1650, /* Empty */         0 },
+  { /* thread-safety-negative */                                12209, /* DiagArray591 */ 1652, /* Empty */         0 },
+  { /* thread-safety-precise */                                 12232, /* DiagArray592 */ 1654, /* Empty */         0 },
+  { /* thread-safety-reference */                               12254, /* DiagArray593 */ 1658, /* Empty */         0 },
+  { /* thread-safety-verbose */                                 12278, /* DiagArray594 */ 1661, /* Empty */         0 },
+  { /* trigraphs */                                             12300, /* DiagArray595 */ 1663, /* Empty */         0 },
+  { /* type-limits */                                           12310, /* Empty */     0, /* Empty */         0 },
+  { /* type-safety */                                           12322, /* DiagArray597 */ 1668, /* Empty */         0 },
+  { /* typedef-redefinition */                                  12334, /* DiagArray598 */ 1672, /* Empty */         0 },
+  { /* typename-missing */                                      12355, /* DiagArray599 */ 1674, /* Empty */         0 },
+  { /* unable-to-open-stats-file */                             12372, /* DiagArray600 */ 1676, /* Empty */         0 },
+  { /* unavailable-declarations */                              12398, /* DiagArray601 */ 1678, /* Empty */         0 },
+  { /* undeclared-selector */                                   12423, /* DiagArray602 */ 1680, /* Empty */         0 },
+  { /* undef */                                                 12443, /* DiagArray603 */ 1683, /* Empty */         0 },
+  { /* undefined-bool-conversion */                             12449, /* DiagArray604 */ 1685, /* Empty */         0 },
+  { /* undefined-func-template */                               12475, /* DiagArray605 */ 1688, /* Empty */         0 },
+  { /* undefined-inline */                                      12499, /* DiagArray606 */ 1690, /* Empty */         0 },
+  { /* undefined-internal */                                    12516, /* DiagArray607 */ 1692, /* Empty */         0 },
+  { /* undefined-reinterpret-cast */                            12535, /* DiagArray608 */ 1694, /* Empty */         0 },
+  { /* undefined-var-template */                                12562, /* DiagArray609 */ 1697, /* Empty */         0 },
+  { /* unevaluated-expression */                                12585, /* DiagArray610 */ 1699, /* DiagSubGroup610 */ 389 },
+  { /* unguarded-availability */                                12608, /* DiagArray611 */ 1701, /* Empty */         0 },
+  { /* unicode */                                               12631, /* DiagArray612 */ 1706, /* Empty */         0 },
+  { /* unicode-whitespace */                                    12639, /* DiagArray613 */ 1712, /* Empty */         0 },
+  { /* uninitialized */                                         12658, /* DiagArray614 */ 1714, /* DiagSubGroup614 */ 391 },
+  { /* unknown-argument */                                      12672, /* DiagArray615 */ 1722, /* Empty */         0 },
+  { /* unknown-attributes */                                    12689, /* DiagArray616 */ 1724, /* Empty */         0 },
+  { /* unknown-escape-sequence */                               12708, /* DiagArray617 */ 1726, /* Empty */         0 },
+  { /* unknown-pragmas */                                       12732, /* DiagArray618 */ 1728, /* Empty */         0 },
+  { /* unknown-sanitizers */                                    12748, /* DiagArray619 */ 1747, /* Empty */         0 },
+  { /* unknown-warning-option */                                12767, /* DiagArray620 */ 1749, /* Empty */         0 },
+  { /* unnamed-type-template-args */                            12790, /* DiagArray621 */ 1752, /* DiagSubGroup621 */ 394 },
+  { /* unneeded-internal-declaration */                         12817, /* DiagArray622 */ 1754, /* Empty */         0 },
+  { /* unneeded-member-function */                              12847, /* DiagArray623 */ 1757, /* Empty */         0 },
+  { /* unreachable-code */                                      12872, /* DiagArray624 */ 1759, /* DiagSubGroup624 */ 396 },
+  { /* unreachable-code-aggressive */                           12889, /* Empty */     0, /* DiagSubGroup625 */ 398 },
+  { /* unreachable-code-break */                                12917, /* DiagArray626 */ 1761, /* Empty */         0 },
+  { /* unreachable-code-loop-increment */                       12940, /* DiagArray627 */ 1763, /* Empty */         0 },
+  { /* unreachable-code-return */                               12972, /* DiagArray628 */ 1765, /* Empty */         0 },
+  { /* unsequenced */                                           12996, /* DiagArray629 */ 1767, /* Empty */         0 },
+  { /* unsupported-cb */                                        13008, /* DiagArray630 */ 1770, /* Empty */         0 },
+  { /* unsupported-dll-base-class-template */                   13023, /* DiagArray631 */ 1772, /* Empty */         0 },
+  { /* unsupported-friend */                                    13059, /* DiagArray632 */ 1774, /* Empty */         0 },
+  { /* unsupported-nan */                                       13078, /* DiagArray633 */ 1777, /* Empty */         0 },
+  { /* unsupported-visibility */                                13094, /* DiagArray634 */ 1780, /* Empty */         0 },
+  { /* unusable-partial-specialization */                       13117, /* DiagArray635 */ 1782, /* Empty */         0 },
+  { /* unused */                                                13149, /* Empty */     0, /* DiagSubGroup636 */ 402 },
+  { /* unused-argument */                                       13156, /* Empty */     0, /* Empty */         0 },
+  { /* unused-command-line-argument */                          13172, /* DiagArray638 */ 1784, /* Empty */         0 },
+  { /* unused-comparison */                                     13201, /* DiagArray639 */ 1791, /* Empty */         0 },
+  { /* unused-const-variable */                                 13219, /* DiagArray640 */ 1793, /* Empty */         0 },
+  { /* unused-exception-parameter */                            13241, /* DiagArray641 */ 1795, /* Empty */         0 },
+  { /* unused-function */                                       13268, /* DiagArray642 */ 1797, /* DiagSubGroup642 */ 412 },
+  { /* unused-getter-return-value */                            13284, /* DiagArray643 */ 1799, /* Empty */         0 },
+  { /* unused-label */                                          13311, /* DiagArray644 */ 1801, /* Empty */         0 },
+  { /* unused-lambda-capture */                                 13324, /* DiagArray645 */ 1803, /* Empty */         0 },
+  { /* unused-local-typedef */                                  13346, /* DiagArray646 */ 1805, /* Empty */         0 },
+  { /* unused-local-typedefs */                                 13367, /* Empty */     0, /* DiagSubGroup647 */ 414 },
+  { /* unused-macros */                                         13389, /* DiagArray648 */ 1807, /* Empty */         0 },
+  { /* unused-member-function */                                13403, /* DiagArray649 */ 1809, /* DiagSubGroup649 */ 416 },
+  { /* unused-parameter */                                      13426, /* DiagArray650 */ 1811, /* Empty */         0 },
+  { /* unused-private-field */                                  13443, /* DiagArray651 */ 1813, /* Empty */         0 },
+  { /* unused-property-ivar */                                  13464, /* DiagArray652 */ 1815, /* Empty */         0 },
+  { /* unused-result */                                         13485, /* DiagArray653 */ 1817, /* Empty */         0 },
+  { /* unused-value */                                          13499, /* DiagArray654 */ 1819, /* DiagSubGroup654 */ 418 },
+  { /* unused-variable */                                       13512, /* DiagArray655 */ 1824, /* DiagSubGroup655 */ 422 },
+  { /* unused-volatile-lvalue */                                13528, /* DiagArray656 */ 1826, /* Empty */         0 },
+  { /* used-but-marked-unused */                                13551, /* DiagArray657 */ 1828, /* Empty */         0 },
+  { /* user-defined-literals */                                 13574, /* DiagArray658 */ 1830, /* Empty */         0 },
+  { /* user-defined-warnings */                                 13596, /* DiagArray659 */ 1832, /* Empty */         0 },
+  { /* varargs */                                               13618, /* DiagArray660 */ 1834, /* Empty */         0 },
+  { /* variadic-macros */                                       13626, /* DiagArray661 */ 1838, /* Empty */         0 },
+  { /* vec-elem-size */                                         13642, /* DiagArray662 */ 1841, /* Empty */         0 },
+  { /* vector-conversion */                                     13656, /* DiagArray663 */ 1843, /* Empty */         0 },
+  { /* vector-conversions */                                    13674, /* Empty */     0, /* DiagSubGroup664 */ 424 },
+  { /* vexing-parse */                                          13693, /* DiagArray665 */ 1845, /* Empty */         0 },
+  { /* visibility */                                            13706, /* DiagArray666 */ 1848, /* Empty */         0 },
+  { /* vla */                                                   13717, /* DiagArray667 */ 1851, /* Empty */         0 },
+  { /* vla-extension */                                         13721, /* DiagArray668 */ 1853, /* Empty */         0 },
+  { /* void-ptr-dereference */                                  13735, /* DiagArray669 */ 1855, /* Empty */         0 },
+  { /* volatile-register-var */                                 13756, /* Empty */     0, /* Empty */         0 },
+  { /* weak-template-vtables */                                 13778, /* DiagArray671 */ 1857, /* Empty */         0 },
+  { /* weak-vtables */                                          13800, /* DiagArray672 */ 1859, /* Empty */         0 },
+  { /* writable-strings */                                      13813, /* DiagArray673 */ 1861, /* DiagSubGroup673 */ 426 },
+  { /* write-strings */                                         13830, /* Empty */     0, /* DiagSubGroup674 */ 428 },
+  { /* zero-length-array */                                     13844, /* DiagArray675 */ 1863, /* Empty */         0 },
+#endif // GET_DIAG_TABLE
+
+
+#ifdef GET_CATEGORY_TABLE
+CATEGORY("", DiagCat_None)
+CATEGORY("Lexical or Preprocessor Issue", DiagCat_Lexical_or_Preprocessor_Issue)
+CATEGORY("Semantic Issue", DiagCat_Semantic_Issue)
+CATEGORY("Lambda Issue", DiagCat_Lambda_Issue)
+CATEGORY("Parse Issue", DiagCat_Parse_Issue)
+CATEGORY("ARC Semantic Issue", DiagCat_ARC_Semantic_Issue)
+CATEGORY("ARC and @properties", DiagCat_ARC_and__properties)
+CATEGORY("ARC Casting Rules", DiagCat_ARC_Casting_Rules)
+CATEGORY("ARC Parse Issue", DiagCat_ARC_Parse_Issue)
+CATEGORY("ARC Weak References", DiagCat_ARC_Weak_References)
+CATEGORY("ARC Restrictions", DiagCat_ARC_Restrictions)
+CATEGORY("OpenMP Issue", DiagCat_OpenMP_Issue)
+CATEGORY("Inline Assembly Issue", DiagCat_Inline_Assembly_Issue)
+CATEGORY("Modules Issue", DiagCat_Modules_Issue)
+CATEGORY("Coroutines Issue", DiagCat_Coroutines_Issue)
+CATEGORY("AST Deserialization Issue", DiagCat_AST_Deserialization_Issue)
+CATEGORY("Backend Issue", DiagCat_Backend_Issue)
+CATEGORY("Related Result Type Issue", DiagCat_Related_Result_Type_Issue)
+CATEGORY("Nullability Issue", DiagCat_Nullability_Issue)
+CATEGORY("Generics Issue", DiagCat_Generics_Issue)
+CATEGORY("User-Defined Issue", DiagCat_User_Defined_Issue)
+CATEGORY("VTable ABI Issue", DiagCat_VTable_ABI_Issue)
+CATEGORY("Value Conversion Issue", DiagCat_Value_Conversion_Issue)
+CATEGORY("Documentation Issue", DiagCat_Documentation_Issue)
+CATEGORY("ARC Retain Cycle", DiagCat_ARC_Retain_Cycle)
+CATEGORY("Deprecations", DiagCat_Deprecations)
+CATEGORY("Format String Issue", DiagCat_Format_String_Issue)
+CATEGORY("Cocoa API Issue", DiagCat_Cocoa_API_Issue)
+CATEGORY("#pragma message Directive", DiagCat__pragma_message_Directive)
+CATEGORY("Instrumentation Issue", DiagCat_Instrumentation_Issue)
+CATEGORY("Unused Entity Issue", DiagCat_Unused_Entity_Issue)
+#endif // GET_CATEGORY_TABLE
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticIndexName.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticIndexName.inc
new file mode 100644
index 0000000..3a2b7ed
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticIndexName.inc
@@ -0,0 +1,1642 @@
+
+#ifdef GET_DIAG_ARRAYS
+static const int16_t DiagArrays[] = {
+  /* Empty */ -1,
+  /* DiagArray1 */ diag::warn_pragma_message, -1,
+  /* DiagArray2 */ diag::pp_hash_warning, -1,
+  /* DiagArray3 */ diag::warn_cfstring_truncated, -1,
+  /* DiagArray5 */ diag::warn_independentclass_attribute, diag::warn_ptr_independentclass_attribute, -1,
+  /* DiagArray6 */ diag::warn_nsobject_attribute, -1,
+  /* DiagArray8 */ diag::warn_abs_too_small, diag::warn_pointer_abs, diag::warn_unsigned_abs, diag::warn_wrong_absolute_value_type, -1,
+  /* DiagArray9 */ diag::warn_abstract_final_class, -1,
+  /* DiagArray10 */ diag::warn_abstract_vbase_init_ignored, -1,
+  /* DiagArray12 */ diag::warn_temporary_array_to_pointer_decay, -1,
+  /* DiagArray13 */ diag::warn_taking_address_of_packed_member, -1,
+  /* DiagArray14 */ diag::ext_typecheck_addrof_temporary, -1,
+  /* DiagArray17 */ diag::warn_alloca_align_alignof, -1,
+  /* DiagArray18 */ diag::warn_ambiguous_suitable_delete_function_found, -1,
+  /* DiagArray19 */ diag::warn_misplaced_ellipsis_vararg, -1,
+  /* DiagArray20 */ diag::warn_pp_ambiguous_macro, -1,
+  /* DiagArray21 */ diag::ext_nested_name_member_ref_lookup_ambiguous, -1,
+  /* DiagArray22 */ diag::warn_incompatible_analyzer_plugin_api, -1,
+  /* DiagArray23 */ diag::ext_abstract_pack_declarator_parens, -1,
+  /* DiagArray25 */ diag::warn_arc_bridge_cast_nonarc, -1,
+  /* DiagArray26 */ diag::warn_arc_possible_repeated_use_of_weak, -1,
+  /* DiagArray27 */ diag::warn_arc_object_memaccess, -1,
+  /* DiagArray28 */ diag::warn_arc_perform_selector_leaks, -1,
+  /* DiagArray29 */ diag::warn_arc_repeated_use_of_weak, -1,
+  /* DiagArray30 */ diag::warn_arc_retain_cycle, -1,
+  /* DiagArray31 */ diag::warn_arc_literal_assign, diag::warn_arc_retained_assign, diag::warn_arc_retained_property_assign, -1,
+  /* DiagArray32 */ diag::warn_array_index_exceeds_bounds, diag::warn_array_index_precedes_bounds, diag::warn_static_array_too_small, diag::warn_typecheck_zero_static_array_size, -1,
+  /* DiagArray33 */ diag::warn_ptr_arith_exceeds_bounds, diag::warn_ptr_arith_precedes_bounds, -1,
+  /* DiagArray35 */ diag::warn_asm_qualifier_ignored, diag::warn_file_asm_volatile, -1,
+  /* DiagArray36 */ diag::warn_asm_mismatched_size_modifier, -1,
+  /* DiagArray37 */ diag::warn_not_in_enum_assignment, -1,
+  /* DiagArray38 */ diag::warn_assume_side_effects, -1,
+  /* DiagArray39 */ diag::warn_atprotocol_protocol, -1,
+  /* DiagArray40 */ diag::warn_atomic_op_has_invalid_memory_order, -1,
+  /* DiagArray42 */ diag::warn_atomic_property_rule, -1,
+  /* DiagArray43 */ diag::warn_attribute_packed_for_bitfield, -1,
+  /* DiagArray45 */ diag::warn_drv_disabling_vptr_no_rtti_default, -1,
+  /* DiagArray46 */ diag::warn_auto_module_import, -1,
+  /* DiagArray47 */ diag::ext_auto_storage_class, -1,
+  /* DiagArray48 */ diag::warn_auto_var_is_id, -1,
+  /* DiagArray49 */ diag::warn_availability_and_unavailable, diag::warn_availability_unknown_platform, diag::warn_availability_version_ordering, diag::warn_expected_consistent_version_separator, diag::warn_mismatched_availability, diag::warn_mismatched_availability_override, diag::warn_mismatched_availability_override_unavail, -1,
+  /* DiagArray50 */ diag::warn_fe_backend_plugin, -1,
+  /* DiagArray51 */ diag::backslash_newline_space, -1,
+  /* DiagArray52 */ diag::warn_bad_function_cast, -1,
+  /* DiagArray53 */ diag::ext_rvalue_to_reference_access_ctor, diag::ext_rvalue_to_reference_temp_copy_no_viable, -1,
+  /* DiagArray54 */ diag::warn_impcast_bitfield_precision_constant, -1,
+  /* DiagArray55 */ diag::warn_bitfield_too_small_for_enum, diag::warn_signed_bitfield_enum_conversion, diag::warn_unsigned_bitfield_assigned_signed_enum, -1,
+  /* DiagArray56 */ diag::warn_anon_bitfield_width_exceeds_type_width, diag::warn_bitfield_width_exceeds_type_width, -1,
+  /* DiagArray57 */ diag::warn_bitwise_op_in_bitwise_op, -1,
+  /* DiagArray58 */ diag::warn_block_capture_autoreleasing, -1,
+  /* DiagArray59 */ diag::warn_impcast_bool_to_null_pointer, -1,
+  /* DiagArray61 */ diag::warn_braces_around_scalar_init, -1,
+  /* DiagArray62 */ diag::warn_objc_invalid_bridge, diag::warn_objc_invalid_bridge_to_cf, -1,
+  /* DiagArray63 */ diag::ext_pp_redef_builtin_macro, diag::ext_pp_undef_builtin_macro, -1,
+  /* DiagArray64 */ diag::warn_memcpy_chk_overflow, -1,
+  /* DiagArray65 */ diag::warn_implicit_decl_requires_sysheader, -1,
+  /* DiagArray66 */ diag::warn_zero_size_struct_union_compat, -1,
+  /* DiagArray70 */ diag::ext_old_implicitly_unsigned_long_cxx, diag::warn_auto_storage_class, diag::warn_cxx11_compat_user_defined_literal, diag::warn_cxx11_keyword, diag::warn_cxx11_right_shift_in_template_arg, diag::warn_explicit_instantiation_inline_0x, diag::warn_explicit_instantiation_must_be_global_0x, diag::warn_explicit_instantiation_out_of_scope_0x, diag::warn_explicit_instantiation_unqualified_wrong_namespace_0x, diag::warn_old_implicitly_unsigned_long_cxx, -1,
+  /* DiagArray71 */ diag::warn_deprecated_string_literal_conversion, -1,
+  /* DiagArray73 */ diag::warn_cxx11_compat_reserved_user_defined_literal, -1,
+  /* DiagArray74 */ diag::ext_alias_declaration, diag::ext_array_size_conversion, diag::ext_auto_type_specifier, diag::ext_cxx11_enum_fixed_underlying_type, diag::ext_defaulted_deleted_function, diag::ext_enum_friend, diag::ext_enumerator_list_comma_cxx, diag::ext_explicit_conversion_functions, diag::ext_extern_template, diag::ext_for_range, diag::ext_generalized_initializer_lists, diag::ext_nested_name_spec_is_enum, diag::ext_nonclass_type_friend, diag::ext_nonstatic_member_init, diag::ext_override_control_keyword, diag::ext_ref_qualifier, diag::ext_rvalue_reference, diag::ext_scoped_enum, diag::ext_static_data_member_in_union, diag::ext_template_arg_object_internal, diag::ext_template_outside_of_template, diag::ext_template_parameter_default_in_function_template, diag::ext_template_spec_decl_out_of_scope, diag::ext_typename_outside_of_template, diag::ext_unelaborated_friend_type, diag::ext_variadic_templates, -1,
+  /* DiagArray75 */ diag::ext_extra_semi_cxx11, -1,
+  /* DiagArray76 */ diag::ext_inline_namespace, -1,
+  /* DiagArray77 */ diag::ext_cxx11_longlong, -1,
+  /* DiagArray78 */ diag::ext_cce_narrowing, diag::ext_init_list_constant_narrowing, diag::ext_init_list_type_narrowing, diag::ext_init_list_variable_narrowing, diag::warn_init_list_constant_narrowing, diag::warn_init_list_type_narrowing, diag::warn_init_list_variable_narrowing, -1,
+  /* DiagArray79 */ diag::ext_binary_literal_cxx14, -1,
+  /* DiagArray82 */ diag::ext_constexpr_body_invalid_stmt, diag::ext_constexpr_body_multiple_return, diag::ext_constexpr_local_var, diag::ext_constexpr_type_definition, diag::ext_cxx14_attr, diag::ext_decltype_auto_type_specifier, diag::ext_init_capture, diag::ext_variable_template, -1,
+  /* DiagArray84 */ diag::warn_cxx1z_compat_exception_spec_in_signature, -1,
+  /* DiagArray85 */ diag::ext_constexpr_if, diag::ext_constexpr_on_lambda_cxx1z, diag::ext_cxx1z_attr, diag::ext_decomp_decl, diag::ext_fold_expression, diag::ext_for_range_begin_end_types_differ, diag::ext_hex_literal_invalid, diag::ext_init_statement, diag::ext_inline_variable, diag::ext_multi_using_declaration, diag::ext_nested_namespace_definition, diag::ext_star_this_lambda_capture_cxx1z, diag::ext_static_assert_no_message, diag::ext_template_template_param_typename, diag::ext_using_attribute_ns, diag::ext_using_declaration_pack, -1,
+  /* DiagArray86 */ diag::warn_cxx14_compat_attribute, diag::warn_cxx14_compat_constexpr_if, diag::warn_cxx14_compat_constexpr_on_lambda, diag::warn_cxx14_compat_decomp_decl, diag::warn_cxx14_compat_fold_expression, diag::warn_cxx14_compat_init_statement, diag::warn_cxx14_compat_inline_variable, diag::warn_cxx14_compat_nested_namespace_definition, diag::warn_cxx14_compat_star_this_lambda_capture, diag::warn_cxx14_compat_static_assert_no_message, diag::warn_cxx14_compat_template_nontype_parm_auto_type, diag::warn_cxx14_compat_template_template_param_typename, diag::warn_cxx14_compat_u8_character_literal, diag::warn_cxx14_compat_using_attribute_ns, diag::warn_cxx1z_compat_multi_using_declaration, diag::warn_cxx1z_compat_using_declaration_pack, diag::warn_for_range_begin_end_types_differ, -1,
+  /* DiagArray87 */ diag::warn_cxx1z_hex_literal, -1,
+  /* DiagArray88 */ diag::warn_cxx11_compat_constexpr_body_invalid_stmt, diag::warn_cxx11_compat_constexpr_body_multiple_return, diag::warn_cxx11_compat_constexpr_body_no_return, diag::warn_cxx11_compat_constexpr_local_var, diag::warn_cxx11_compat_constexpr_type_definition, diag::warn_cxx11_compat_decltype_auto_type_specifier, diag::warn_cxx11_compat_digit_separator, diag::warn_cxx11_compat_init_capture, diag::warn_cxx11_compat_variable_template, -1,
+  /* DiagArray89 */ diag::warn_cxx11_compat_binary_literal, -1,
+  /* DiagArray90 */ diag::warn_cxx98_compat_alias_declaration, diag::warn_cxx98_compat_alignas, diag::warn_cxx98_compat_alignof, diag::warn_cxx98_compat_attribute, diag::warn_cxx98_compat_auto_type_specifier, diag::warn_cxx98_compat_constexpr, diag::warn_cxx98_compat_ctor_list_init, diag::warn_cxx98_compat_decltype, diag::warn_cxx98_compat_defaulted_deleted_function, diag::warn_cxx98_compat_delegating_ctor, diag::warn_cxx98_compat_empty_scalar_initializer, diag::warn_cxx98_compat_enum_fixed_underlying_type, diag::warn_cxx98_compat_enum_friend, diag::warn_cxx98_compat_enum_nested_name_spec, diag::warn_cxx98_compat_explicit_conversion_functions, diag::warn_cxx98_compat_for_range, diag::warn_cxx98_compat_friend_is_member, diag::warn_cxx98_compat_generalized_initializer_lists, diag::warn_cxx98_compat_goto_into_protected_scope, diag::warn_cxx98_compat_indirect_goto_in_protected_scope, diag::warn_cxx98_compat_initializer_list_init, diag::warn_cxx98_compat_inline_namespace, diag::warn_cxx98_compat_lambda, diag::warn_cxx98_compat_less_colon_colon, diag::warn_cxx98_compat_literal_operator, diag::warn_cxx98_compat_literal_ucn_control_character, diag::warn_cxx98_compat_literal_ucn_escape_basic_scs, diag::warn_cxx98_compat_noexcept_decl, diag::warn_cxx98_compat_noexcept_expr, diag::warn_cxx98_compat_non_static_member_use, diag::warn_cxx98_compat_nonclass_type_friend, diag::warn_cxx98_compat_nonstatic_member_init, diag::warn_cxx98_compat_nontrivial_union_or_anon_struct_member, diag::warn_cxx98_compat_nullptr, diag::warn_cxx98_compat_override_control_keyword, diag::warn_cxx98_compat_pass_non_pod_arg_to_vararg, diag::warn_cxx98_compat_raw_string_literal, diag::warn_cxx98_compat_ref_qualifier, diag::warn_cxx98_compat_reference_list_init, diag::warn_cxx98_compat_rvalue_reference, diag::warn_cxx98_compat_scoped_enum, diag::warn_cxx98_compat_sfinae_access_control, diag::warn_cxx98_compat_static_assert, diag::warn_cxx98_compat_static_data_member_in_union, diag::warn_cxx98_compat_switch_into_protected_scope, diag::warn_cxx98_compat_template_arg_extra_parens, diag::warn_cxx98_compat_template_arg_null, diag::warn_cxx98_compat_template_arg_object_internal, diag::warn_cxx98_compat_template_outside_of_template, diag::warn_cxx98_compat_template_parameter_default_in_function_template, diag::warn_cxx98_compat_template_spec_decl_out_of_scope, diag::warn_cxx98_compat_trailing_return_type, diag::warn_cxx98_compat_two_right_angle_brackets, diag::warn_cxx98_compat_typename_outside_of_template, diag::warn_cxx98_compat_unelaborated_friend_type, diag::warn_cxx98_compat_unicode_id, diag::warn_cxx98_compat_unicode_literal, diag::warn_cxx98_compat_unicode_type, diag::warn_cxx98_compat_using_decl_constructor, diag::warn_cxx98_compat_variadic_templates, -1,
+  /* DiagArray91 */ diag::warn_cxx98_compat_temp_copy, -1,
+  /* DiagArray92 */ diag::warn_cxx98_compat_template_arg_local_type, -1,
+  /* DiagArray93 */ diag::warn_cxx98_compat_array_size_conversion, diag::warn_cxx98_compat_cast_fn_obj, diag::warn_cxx98_compat_empty_fnmacro_arg, diag::warn_cxx98_compat_enumerator_list_comma, diag::warn_cxx98_compat_extern_template, diag::warn_cxx98_compat_longlong, diag::warn_cxx98_compat_no_newline_eof, diag::warn_cxx98_compat_pp_line_too_big, diag::warn_cxx98_compat_top_level_semi, diag::warn_cxx98_compat_variadic_macro, -1,
+  /* DiagArray94 */ diag::warn_cxx98_compat_template_arg_unnamed_type, -1,
+  /* DiagArray95 */ diag::ext_anonymous_union, diag::ext_c11_alignment, diag::ext_c11_anonymous_struct, diag::ext_c11_generic_selection, diag::ext_c11_noreturn, diag::ext_c11_static_assert, -1,
+  /* DiagArray96 */ diag::warn_c99_compat_unicode_id, diag::warn_c99_compat_unicode_literal, diag::warn_old_implicitly_unsigned_long, -1,
+  /* DiagArray97 */ diag::ext_aggregate_init_not_constant, diag::ext_c99_array_usage, diag::ext_c99_compound_literal, diag::ext_c99_flexible_array_member, diag::ext_c99_variable_decl_in_for_loop, diag::ext_c99_whitespace_required_after_macro_name, diag::ext_designated_init, diag::ext_empty_fnmacro_arg, diag::ext_enumerator_list_comma_c, diag::ext_hex_constant_invalid, -1,
+  /* DiagArray98 */ diag::warn_cast_align, -1,
+  /* DiagArray99 */ diag::warn_cast_calling_conv, -1,
+  /* DiagArray100 */ diag::warn_cast_pointer_from_sel, -1,
+  /* DiagArray101 */ diag::warn_cast_qual, diag::warn_cast_qual2, -1,
+  /* DiagArray103 */ diag::warn_omp_section_is_char, diag::warn_subscript_is_char, -1,
+  /* DiagArray104 */ diag::warn_drv_yc_multiple_inputs_clang_cl, diag::warn_drv_ycyu_different_arg_clang_cl, diag::warn_drv_ycyu_no_arg_clang_cl, diag::warn_drv_ycyu_no_fi_arg_clang_cl, -1,
+  /* DiagArray105 */ diag::warn_pass_class_arg_to_vararg, -1,
+  /* DiagArray106 */ diag::warn_comma_operator, -1,
+  /* DiagArray107 */ diag::escaped_newline_block_comment_end, diag::ext_line_comment, diag::ext_multi_line_line_comment, diag::warn_nested_block_comment, -1,
+  /* DiagArray109 */ diag::ext_typecheck_comparison_of_distinct_pointers, -1,
+  /* DiagArray110 */ diag::ext_complex_component_init, -1,
+  /* DiagArray111 */ diag::ext_typecheck_cond_pointer_integer_mismatch, -1,
+  /* DiagArray112 */ diag::warn_maybe_uninit_var, -1,
+  /* DiagArray113 */ diag::warn_module_config_macro_undef, -1,
+  /* DiagArray114 */ diag::warn_impcast_integer_precision_constant, -1,
+  /* DiagArray115 */ diag::warn_logical_instead_of_bitwise, -1,
+  /* DiagArray116 */ diag::warn_cxx14_compat_constexpr_not_const, -1,
+  /* DiagArray117 */ diag::warn_attr_on_unconsumable_class, diag::warn_loop_state_mismatch, diag::warn_param_return_typestate_mismatch, diag::warn_param_typestate_mismatch, diag::warn_return_typestate_for_unconsumable_type, diag::warn_return_typestate_mismatch, diag::warn_use_in_invalid_state, diag::warn_use_of_temp_in_invalid_state, -1,
+  /* DiagArray118 */ diag::warn_impcast_complex_scalar, diag::warn_impcast_float_precision, diag::warn_impcast_integer_precision, diag::warn_impcast_vector_scalar, diag::warn_template_arg_negative, diag::warn_template_arg_too_large, -1,
+  /* DiagArray120 */ diag::warn_coroutine_promise_unhandled_exception_required_with_exceptions, -1,
+  /* DiagArray121 */ diag::warn_unreachable_default, -1,
+  /* DiagArray122 */ diag::warn_objc_cdirective_format_string, -1,
+  /* DiagArray124 */ diag::warn_attribute_argument_n_negative, diag::warn_cuda_attr_lambda_position, diag::warn_kern_is_inline, diag::warn_kern_is_method, diag::warn_pragma_unroll_cuda_value_in_parens, -1,
+  /* DiagArray125 */ diag::warn_default_atomic_custom_getter_setter, -1,
+  /* DiagArray126 */ diag::warn_dangling_else, -1,
+  /* DiagArray127 */ diag::warn_bind_ref_member_to_parameter, diag::warn_bind_ref_member_to_temporary, diag::warn_init_ptr_member_to_parameter_addr, -1,
+  /* DiagArray128 */ diag::warn_dangling_std_initializer_list, -1,
+  /* DiagArray129 */ diag::warn_pp_date_time, -1,
+  /* DiagArray130 */ diag::warn_dealloc_in_category, -1,
+  /* DiagArray131 */ diag::warn_debug_compression_unavailable, -1,
+  /* DiagArray132 */ diag::ext_mixed_decls_code, -1,
+  /* DiagArray133 */ diag::warn_delegating_ctor_cycle, -1,
+  /* DiagArray134 */ diag::ext_delete_void_ptr_operand, diag::warn_delete_incomplete, -1,
+  /* DiagArray135 */ diag::warn_delete_abstract_non_virtual_dtor, diag::warn_delete_non_virtual_dtor, -1,
+  /* DiagArray136 */ diag::warn_O4_is_O3, diag::warn_access_decl_deprecated, diag::warn_deprecated_copy_operation, diag::warn_deprecated_redundant_constexpr_static_def, diag::warn_drv_deprecated_arg, diag::warn_drv_treating_input_as_cxx, diag::warn_option_invalid_ocl_version, diag::warn_vector_long_decl_spec_combination, -1,
+  /* DiagArray137 */ diag::warn_vector_mode_deprecated, -1,
+  /* DiagArray138 */ diag::warn_cstyle_param, diag::warn_deprecated, diag::warn_deprecated_fwdclass_message, diag::warn_deprecated_message, diag::warn_property_method_deprecated, -1,
+  /* DiagArray139 */ diag::warn_exception_spec_deprecated, -1,
+  /* DiagArray140 */ diag::warn_deprecated_def, -1,
+  /* DiagArray141 */ diag::warn_increment_bool, -1,
+  /* DiagArray142 */ diag::warn_objc_isa_assign, diag::warn_objc_isa_use, -1,
+  /* DiagArray143 */ diag::warn_objc_pointer_masking, -1,
+  /* DiagArray144 */ diag::warn_objc_pointer_masking_performSelector, -1,
+  /* DiagArray145 */ diag::warn_deprecated_register, -1,
+  /* DiagArray147 */ diag::warn_direct_ivar_access, -1,
+  /* DiagArray148 */ diag::pp_disabled_macro_expansion, -1,
+  /* DiagArray151 */ diag::warn_conflicting_param_modifiers, diag::warn_conflicting_ret_type_modifiers, -1,
+  /* DiagArray153 */ diag::warn_remainder_division_by_zero, -1,
+  /* DiagArray154 */ diag::warn_attribute_dll_redeclaration, -1,
+  /* DiagArray155 */ diag::warn_attribute_dllexport_explicit_instantiation_decl, -1,
+  /* DiagArray156 */ diag::warn_attribute_dllimport_static_field_definition, -1,
+  /* DiagArray157 */ diag::warn_doc_api_container_decl_mismatch, diag::warn_doc_block_command_duplicate, diag::warn_doc_block_command_empty_paragraph, diag::warn_doc_container_decl_mismatch, diag::warn_doc_function_method_decl_mismatch, diag::warn_doc_html_start_tag_expected_ident_or_greater, diag::warn_doc_html_start_tag_expected_quoted_string, diag::warn_doc_param_duplicate, diag::warn_doc_param_invalid_direction, diag::warn_doc_param_not_attached_to_a_function_decl, diag::warn_doc_param_not_found, diag::warn_doc_returns_attached_to_a_void_function, diag::warn_doc_returns_not_attached_to_a_function_decl, diag::warn_doc_tparam_duplicate, diag::warn_doc_tparam_not_attached_to_a_template_decl, diag::warn_doc_tparam_not_found, diag::warn_not_a_doxygen_trailing_member_comment, diag::warn_verbatim_block_end_without_start, -1,
+  /* DiagArray158 */ diag::warn_doc_deprecated_not_sync, -1,
+  /* DiagArray159 */ diag::warn_doc_html_end_forbidden, diag::warn_doc_html_end_unbalanced, diag::warn_doc_html_missing_end_tag, diag::warn_doc_html_start_end_mismatch, -1,
+  /* DiagArray160 */ diag::warn_doc_param_spaces_in_direction, -1,
+  /* DiagArray161 */ diag::warn_correct_comment_command_name, diag::warn_unknown_comment_command_name, -1,
+  /* DiagArray162 */ diag::ext_dollar_in_identifier, -1,
+  /* DiagArray163 */ diag::warn_impcast_double_promotion, -1,
+  /* DiagArray164 */ diag::ext_duplicate_declspec, diag::warn_duplicate_declspec, -1,
+  /* DiagArray165 */ diag::warn_duplicate_enum_values, -1,
+  /* DiagArray166 */ diag::warn_method_param_declaration, -1,
+  /* DiagArray167 */ diag::warn_duplicate_method_decl, -1,
+  /* DiagArray168 */ diag::warn_duplicate_protocol_def, -1,
+  /* DiagArray169 */ diag::warn_dyn_class_memaccess, -1,
+  /* DiagArray170 */ diag::ext_dynamic_exception_spec, -1,
+  /* DiagArray172 */ diag::ext_embedded_directive, -1,
+  /* DiagArray173 */ diag::warn_empty_for_body, diag::warn_empty_if_body, diag::warn_empty_range_based_for_body, diag::warn_empty_switch_body, diag::warn_empty_while_body, -1,
+  /* DiagArray174 */ diag::ext_decomp_decl_empty, -1,
+  /* DiagArray175 */ diag::ext_empty_translation_unit, -1,
+  /* DiagArray176 */ diag::warn_incomplete_encoded_type, -1,
+  /* DiagArray178 */ diag::warn_comparison_of_mixed_enum_types, -1,
+  /* DiagArray179 */ diag::warn_impcast_different_enum_types, -1,
+  /* DiagArray180 */ diag::ext_enum_too_large, diag::ext_enumerator_increment_too_large, -1,
+  /* DiagArray181 */ diag::warn_cdtor_function_try_handler_mem_expr, diag::warn_exception_caught_by_earlier_handler, -1,
+  /* DiagArray182 */ diag::warn_exit_time_destructor, -1,
+  /* DiagArray183 */ diag::warn_defined_in_function_type_macro, diag::warn_defined_in_object_type_macro, -1,
+  /* DiagArray184 */ diag::warn_direct_initialize_call, diag::warn_direct_super_initialize_call, -1,
+  /* DiagArray185 */ diag::warn_arc_strong_pointer_objc_pointer, -1,
+  /* DiagArray186 */ diag::ext_offsetof_extended_field_designator, -1,
+  /* DiagArray187 */ diag::warn_zero_size_struct_union_in_extern_c, -1,
+  /* DiagArray188 */ diag::warn_extern_init, -1,
+  /* DiagArray189 */ diag::warn_arm_interrupt_calling_convention, -1,
+  /* DiagArray190 */ diag::warn_namespace_member_extra_qualification, -1,
+  /* DiagArray191 */ diag::ext_extra_semi, diag::warn_extra_semi_after_mem_fn_def, -1,
+  /* DiagArray192 */ diag::ext_pp_extra_tokens_at_eol, diag::warn_omp_extra_tokens_at_eol, -1,
+  /* DiagArray193 */ diag::warn_drv_invoking_fallback, -1,
+  /* DiagArray194 */ diag::warn_flag_enum_constant_out_of_range, -1,
+  /* DiagArray195 */ diag::ext_flexible_array_in_array, diag::ext_flexible_array_in_struct, -1,
+  /* DiagArray196 */ diag::warn_impcast_float_integer, -1,
+  /* DiagArray197 */ diag::warn_floatingpoint_eq, -1,
+  /* DiagArray198 */ diag::warn_impcast_float_to_integer, -1,
+  /* DiagArray199 */ diag::warn_impcast_float_to_integer_zero, -1,
+  /* DiagArray200 */ diag::warn_redundant_loop_iteration, diag::warn_variables_not_in_loop_body, -1,
+  /* DiagArray201 */ diag::warn_format_P_no_precision, diag::warn_format_argument_needs_cast, diag::warn_format_conversion_argument_type_mismatch, diag::warn_format_invalid_annotation, diag::warn_format_invalid_positional_specifier, diag::warn_format_mix_positional_nonpositional_args, diag::warn_format_nonsensical_length, diag::warn_format_string_is_wide_literal, diag::warn_format_zero_positional_specifier, diag::warn_missing_format_string, diag::warn_printf_ObjCflags_without_ObjCConversion, diag::warn_printf_asterisk_missing_arg, diag::warn_printf_asterisk_wrong_type, diag::warn_printf_empty_objc_flag, diag::warn_printf_format_string_contains_null_char, diag::warn_printf_format_string_not_null_terminated, diag::warn_printf_ignored_flag, diag::warn_printf_incomplete_specifier, diag::warn_printf_insufficient_data_args, diag::warn_printf_invalid_objc_flag, diag::warn_printf_nonsensical_flag, diag::warn_printf_nonsensical_optional_amount, diag::warn_printf_positional_arg_exceeds_data_args, diag::warn_scanf_nonzero_width, diag::warn_scanf_scanlist_incomplete, -1,
+  /* DiagArray202 */ diag::warn_printf_data_arg_not_used, -1,
+  /* DiagArray203 */ diag::warn_format_invalid_conversion, -1,
+  /* DiagArray204 */ diag::warn_format_non_standard, diag::warn_format_non_standard_conversion_spec, diag::warn_format_non_standard_positional_arg, -1,
+  /* DiagArray205 */ diag::warn_format_nonliteral, -1,
+  /* DiagArray206 */ diag::warn_format_conversion_argument_type_mismatch_pedantic, -1,
+  /* DiagArray207 */ diag::warn_format_nonliteral_noargs, -1,
+  /* DiagArray209 */ diag::warn_empty_format_string, -1,
+  /* DiagArray211 */ diag::ext_four_char_character_literal, -1,
+  /* DiagArray212 */ diag::warn_fe_backend_frame_larger_than, diag::warn_fe_frame_larger_than, -1,
+  /* DiagArray213 */ diag::warn_function_def_in_objc_container, -1,
+  /* DiagArray215 */ diag::ext_clang_diagnose_if, diag::ext_clang_enable_if, diag::ext_warn_gnu_final, diag::warn_attribute_on_function_definition, diag::warn_break_binds_to_switch, diag::warn_cleanup_ext, diag::warn_gcc_attribute_location, diag::warn_loop_ctrl_binds_to_inner, -1,
+  /* DiagArray216 */ diag::warn_global_constructor, diag::warn_global_destructor, -1,
+  /* DiagArray218 */ diag::ext_alignof_expr, -1,
+  /* DiagArray219 */ diag::ext_gnu_anonymous_struct, -1,
+  /* DiagArray220 */ diag::ext_array_init_parens, -1,
+  /* DiagArray221 */ diag::ext_auto_type, -1,
+  /* DiagArray222 */ diag::ext_binary_literal, -1,
+  /* DiagArray223 */ diag::ext_gnu_case_range, -1,
+  /* DiagArray224 */ diag::ext_integer_complex, -1,
+  /* DiagArray225 */ diag::ext_array_init_copy, -1,
+  /* DiagArray226 */ diag::ext_gnu_conditional_expr, -1,
+  /* DiagArray227 */ diag::ext_gnu_array_range, diag::ext_gnu_missing_equal_designator, diag::ext_gnu_old_style_field_designator, -1,
+  /* DiagArray228 */ diag::ext_gnu_empty_initializer, -1,
+  /* DiagArray229 */ diag::ext_empty_struct_union, diag::ext_flexible_array_empty_aggregate_gnu, diag::ext_no_named_members_in_struct_union, -1,
+  /* DiagArray230 */ diag::ext_flexible_array_init, -1,
+  /* DiagArray231 */ diag::ext_flexible_array_union_gnu, -1,
+  /* DiagArray232 */ diag::ext_expr_not_ice, diag::ext_in_class_initializer_non_constant, diag::ext_vla_folded_to_constant, -1,
+  /* DiagArray233 */ diag::ext_imaginary_constant, -1,
+  /* DiagArray234 */ diag::ext_pp_include_next_directive, -1,
+  /* DiagArray235 */ diag::ext_gnu_address_of_label, diag::ext_gnu_indirect_goto, -1,
+  /* DiagArray236 */ diag::ext_forward_ref_enum_def, -1,
+  /* DiagArray237 */ diag::ext_gnu_statement_expr, -1,
+  /* DiagArray238 */ diag::ext_in_class_initializer_float_type, -1,
+  /* DiagArray239 */ diag::ext_string_literal_operator_template, -1,
+  /* DiagArray240 */ diag::ext_typecheck_cast_to_union, -1,
+  /* DiagArray241 */ diag::ext_variable_sized_type_in_struct, -1,
+  /* DiagArray242 */ diag::ext_pp_line_zero, -1,
+  /* DiagArray243 */ diag::ext_missing_varargs_arg, diag::ext_paste_comma, -1,
+  /* DiagArray244 */ diag::warn_header_guard, -1,
+  /* DiagArray245 */ diag::warn_using_directive_in_header, -1,
+  /* DiagArray246 */ diag::warn_condition_is_idiomatic_assignment, -1,
+  /* DiagArray247 */ diag::warn_alias_to_weak_alias, diag::warn_alias_with_section, diag::warn_attr_abi_tag_namespace, diag::warn_attribute_after_definition_ignored, diag::warn_attribute_iboutlet, diag::warn_attribute_ignored, diag::warn_attribute_ignored_on_inline, diag::warn_attribute_invalid_on_definition, diag::warn_attribute_no_decl, diag::warn_attribute_nonnull_no_pointers, diag::warn_attribute_nonnull_parm_no_args, diag::warn_attribute_not_on_decl, diag::warn_attribute_pointer_or_reference_only, diag::warn_attribute_pointers_only, diag::warn_attribute_precede_definition, diag::warn_attribute_return_pointers_only, diag::warn_attribute_return_pointers_refs_only, diag::warn_attribute_sentinel_named_arguments, diag::warn_attribute_sentinel_not_variadic, diag::warn_attribute_type_not_supported, diag::warn_attribute_unknown_visibility, diag::warn_attribute_void_function_method, diag::warn_attribute_weak_on_field, diag::warn_attribute_weak_on_local, diag::warn_attribute_wrong_decl_type, diag::warn_block_literal_attributes_on_omitted_return_type, diag::warn_cconv_ignored, diag::warn_cconv_structors, diag::warn_cconv_varargs, diag::warn_cxx11_gnu_attribute_on_type, diag::warn_declspec_attribute_ignored, diag::warn_deprecated_anonymous_namespace, diag::warn_dllimport_dropped_from_inline_function, diag::warn_duplicate_attribute, diag::warn_duplicate_attribute_exact, diag::warn_gc_attribute_weak_on_local, diag::warn_gnu_inline_attribute_requires_inline, diag::warn_ignored_ms_inheritance, diag::warn_internal_linkage_local_storage, diag::warn_microsoft_qualifiers_ignored, diag::warn_mips_interrupt_attribute, diag::warn_mmap_unknown_attribute, diag::warn_ns_attribute_wrong_parameter_type, diag::warn_ns_attribute_wrong_return_type, diag::warn_opencl_attr_deprecated_ignored, diag::warn_transparent_union_attribute_field_size_align, diag::warn_transparent_union_attribute_floating, diag::warn_transparent_union_attribute_not_definition, diag::warn_transparent_union_attribute_zero_fields, diag::warn_type_attribute_wrong_type, diag::warn_unhandled_ms_attribute_ignored, diag::warn_unsupported_target_attribute, -1,
+  /* DiagArray248 */ diag::warn_drv_unsupported_opt_for_target, diag::warn_ignored_gcc_optimization, -1,
+  /* DiagArray249 */ diag::warn_pragma_intrinsic_builtin, -1,
+  /* DiagArray250 */ diag::warn_pragma_align_expected_equal, diag::warn_pragma_align_invalid_option, diag::warn_pragma_begin_end_mismatch, diag::warn_pragma_comment_ignored, diag::warn_pragma_debug_missing_argument, diag::warn_pragma_debug_unexpected_command, diag::warn_pragma_expected_action_or_r_paren, diag::warn_pragma_expected_colon, diag::warn_pragma_expected_colon_r_paren, diag::warn_pragma_expected_identifier, diag::warn_pragma_expected_init_seg, diag::warn_pragma_expected_integer, diag::warn_pragma_expected_lparen, diag::warn_pragma_expected_non_wide_string, diag::warn_pragma_expected_predicate, diag::warn_pragma_expected_punc, diag::warn_pragma_expected_rparen, diag::warn_pragma_expected_section_label_or_name, diag::warn_pragma_expected_section_name, diag::warn_pragma_expected_section_push_pop_or_name, diag::warn_pragma_extra_tokens_at_eol, diag::warn_pragma_force_cuda_host_device_bad_arg, diag::warn_pragma_init_seg_unsupported_target, diag::warn_pragma_invalid_action, diag::warn_pragma_invalid_specific_action, diag::warn_pragma_ms_struct, diag::warn_pragma_options_align_reset_failed, diag::warn_pragma_options_expected_align, diag::warn_pragma_pack_invalid_alignment, diag::warn_pragma_pack_malformed, diag::warn_pragma_pop_failed, diag::warn_pragma_pop_macro_no_push, diag::warn_pragma_unknown_extension, diag::warn_pragma_unsupported_action, diag::warn_pragma_unsupported_extension, diag::warn_pragma_unused_expected_var, diag::warn_pragma_unused_expected_var_arg, diag::warn_pragma_unused_undeclared_var, -1,
+  /* DiagArray251 */ diag::warn_arc_lifetime_result_type, diag::warn_block_literal_qualifiers_on_omitted_return_type, diag::warn_qual_return_type, diag::warn_typecheck_function_qualifiers_ignored, diag::warn_typecheck_reference_qualifiers, -1,
+  /* DiagArray253 */ diag::warn_auto_implicit_atomic_property, diag::warn_implicit_atomic_property, -1,
+  /* DiagArray254 */ diag::warn_impcast_floating_point_to_bool, -1,
+  /* DiagArray255 */ diag::ext_implicit_exception_spec_mismatch, -1,
+  /* DiagArray256 */ diag::warn_fallthrough_attr_unreachable, diag::warn_unannotated_fallthrough, -1,
+  /* DiagArray257 */ diag::warn_unannotated_fallthrough_per_function, -1,
+  /* DiagArray258 */ diag::ext_implicit_function_decl, diag::ext_implicit_lib_function_decl, diag::warn_builtin_unknown, diag::warn_implicit_function_decl, -1,
+  /* DiagArray259 */ diag::ext_missing_type_specifier, -1,
+  /* DiagArray260 */ diag::warn_implicitly_retains_self, -1,
+  /* DiagArray261 */ diag::ext_integer_literal_too_large_for_signed, -1,
+  /* DiagArray263 */ diag::ext_pp_import_directive, -1,
+  /* DiagArray264 */ diag::warn_inaccessible_base_class, -1,
+  /* DiagArray265 */ diag::pp_include_next_absolute_path, -1,
+  /* DiagArray266 */ diag::pp_include_next_in_primary, -1,
+  /* DiagArray267 */ diag::warn_deep_exception_specs_differ, diag::warn_incompatible_exception_specs, -1,
+  /* DiagArray268 */ diag::ext_typecheck_convert_incompatible_function_pointer, -1,
+  /* DiagArray269 */ diag::warn_redecl_library_builtin, -1,
+  /* DiagArray270 */ diag::warn_cxx_ms_struct, -1,
+  /* DiagArray271 */ diag::ext_typecheck_convert_incompatible_pointer, -1,
+  /* DiagArray272 */ diag::ext_nested_pointer_qualifier_mismatch, diag::ext_typecheck_convert_discards_qualifiers, -1,
+  /* DiagArray273 */ diag::warn_property_types_are_incompatible, -1,
+  /* DiagArray274 */ diag::warn_incompatible_sysroot, -1,
+  /* DiagArray275 */ diag::warn_undef_method_impl, -1,
+  /* DiagArray277 */ diag::warn_missing_submodule, diag::warn_uncovered_module_header, -1,
+  /* DiagArray278 */ diag::warn_redeclaration_without_attribute_prev_attribute_ignored, diag::warn_redeclaration_without_import_attribute, -1,
+  /* DiagArray279 */ diag::warn_destructor_marked_not_override_overriding, -1,
+  /* DiagArray280 */ diag::warn_function_marked_not_override_overriding, -1,
+  /* DiagArray281 */ diag::ext_increment_bool, -1,
+  /* DiagArray282 */ diag::warn_infinite_recursive_function, -1,
+  /* DiagArray284 */ diag::warn_initializer_overrides, diag::warn_subobject_initializer_overrides, -1,
+  /* DiagArray285 */ diag::ext_out_of_line_qualified_id_type_names_constructor, -1,
+  /* DiagArray287 */ diag::warn_fe_inline_asm, -1,
+  /* DiagArray288 */ diag::ext_operator_new_delete_declared_inline, -1,
+  /* DiagArray289 */ diag::warn_explicit_instantiation_after_specialization, -1,
+  /* DiagArray290 */ diag::ext_typecheck_convert_int_pointer, diag::ext_typecheck_convert_pointer_int, -1,
+  /* DiagArray292 */ diag::warn_int_to_pointer_cast, -1,
+  /* DiagArray293 */ diag::warn_int_to_void_pointer_cast, -1,
+  /* DiagArray294 */ diag::warn_integer_constant_overflow, -1,
+  /* DiagArray295 */ diag::warn_drv_optimization_value, -1,
+  /* DiagArray296 */ diag::ext_constexpr_function_never_constant_expr, -1,
+  /* DiagArray297 */ diag::warn_iboutlet_object_type, diag::warn_iboutletcollection_property_assign, -1,
+  /* DiagArray298 */ diag::warn_invalid_initializer_from_system_header, -1,
+  /* DiagArray299 */ diag::warn_falloff_noreturn_function, diag::warn_noreturn_function_has_return_expr, -1,
+  /* DiagArray300 */ diag::ext_offsetof_non_pod_type, diag::ext_offsetof_non_standardlayout_type, -1,
+  /* DiagArray301 */ diag::warn_drv_ps4_sdk_dir, diag::warn_drv_unable_to_find_directory_expected, -1,
+  /* DiagArray302 */ diag::ext_partial_spec_not_more_specialized_than_primary, -1,
+  /* DiagArray304 */ diag::ext_empty_character, diag::ext_unterminated_char_or_string, -1,
+  /* DiagArray305 */ diag::warn_bad_character_encoding, diag::warn_bad_string_encoding, -1,
+  /* DiagArray306 */ diag::ext_pp_bad_paste_ms, -1,
+  /* DiagArray307 */ diag::warn_jump_out_of_seh_finally, -1,
+  /* DiagArray308 */ diag::ext_keyword_as_ident, -1,
+  /* DiagArray309 */ diag::warn_pp_macro_hides_keyword, -1,
+  /* DiagArray310 */ diag::ext_param_promoted_not_compatible_with_prototype, -1,
+  /* DiagArray311 */ diag::ext_token_used, -1,
+  /* DiagArray312 */ diag::warn_parameter_size, diag::warn_return_value_size, -1,
+  /* DiagArray314 */ diag::warn_impcast_literal_float_to_integer, -1,
+  /* DiagArray315 */ diag::warn_float_overflow, diag::warn_float_underflow, -1,
+  /* DiagArray316 */ diag::ext_template_arg_local_type, -1,
+  /* DiagArray317 */ diag::warn_logical_not_on_lhs_of_check, -1,
+  /* DiagArray318 */ diag::warn_logical_and_in_logical_or, -1,
+  /* DiagArray319 */ diag::ext_c99_longlong, -1,
+  /* DiagArray321 */ diag::ext_pp_macro_redef, -1,
+  /* DiagArray322 */ diag::ext_main_used, diag::ext_noreturn_main, diag::ext_variadic_main, diag::warn_main_one_arg, diag::warn_main_redefined, diag::warn_main_returns_bool_literal, diag::warn_static_main, -1,
+  /* DiagArray323 */ diag::ext_main_returns_nonint, -1,
+  /* DiagArray324 */ diag::warn_has_warning_invalid_option, -1,
+  /* DiagArray325 */ diag::ext_many_braces_around_scalar_init, -1,
+  /* DiagArray326 */ diag::warn_max_unsigned_zero, -1,
+  /* DiagArray327 */ diag::warn_memsize_comparison, -1,
+  /* DiagArray328 */ diag::warn_non_contravariant_param_types, diag::warn_non_covariant_ret_types, -1,
+  /* DiagArray330 */ diag::ext_anonymous_record_with_type, diag::ext_ms_anonymous_record, -1,
+  /* DiagArray331 */ diag::ext_ms_cast_fn_obj, diag::ext_ms_impcast_fn_obj, -1,
+  /* DiagArray332 */ diag::ext_charize_microsoft, -1,
+  /* DiagArray333 */ diag::ext_comment_paste_microsoft, -1,
+  /* DiagArray334 */ diag::ext_default_init_const, -1,
+  /* DiagArray335 */ diag::ext_pp_operator_used_as_macro_name, -1,
+  /* DiagArray336 */ diag::ext_param_default_argument_redefinition, -1,
+  /* DiagArray337 */ diag::ext_ctrl_z_eof_microsoft, -1,
+  /* DiagArray338 */ diag::ext_ms_forward_ref_enum, -1,
+  /* DiagArray339 */ diag::ext_enumerator_too_large, -1,
+  /* DiagArray340 */ diag::ext_ellipsis_exception_spec, diag::ext_incomplete_in_exception_spec, diag::ext_mismatched_exception_spec, diag::ext_mismatched_exception_spec_explicit_instantiation, diag::ext_ms_missing_exception_specification, diag::ext_override_exception_spec, -1,
+  /* DiagArray341 */ diag::warn_microsoft_dependent_exists, -1,
+  /* DiagArray342 */ diag::ext_ms_explicit_constructor_call, -1,
+  /* DiagArray343 */ diag::warn_member_extra_qualification, -1,
+  /* DiagArray344 */ diag::ext_c_enum_fixed_underlying_type, -1,
+  /* DiagArray345 */ diag::ext_flexible_array_empty_aggregate_ms, diag::ext_flexible_array_union_ms, -1,
+  /* DiagArray346 */ diag::ext_goto_into_protected_scope, -1,
+  /* DiagArray347 */ diag::ext_pp_include_search_ms, -1,
+  /* DiagArray348 */ diag::ext_mutable_reference, -1,
+  /* DiagArray349 */ diag::ext_pure_function_definition, -1,
+  /* DiagArray350 */ diag::ext_static_non_static, -1,
+  /* DiagArray351 */ diag::ext_ms_sealed_keyword, -1,
+  /* DiagArray352 */ diag::ext_explicit_instantiation_duplicate, diag::ext_found_via_dependent_bases_lookup, diag::ext_function_specialization_in_class, diag::ext_ms_delayed_template_argument, diag::ext_ms_deref_template_argument, diag::ext_ms_template_spec_redecl_out_of_scope, diag::ext_ms_template_type_arg_missing_typename, diag::ext_undeclared_unqual_id_with_dependent_base, -1,
+  /* DiagArray353 */ diag::ext_union_member_of_reference_type, -1,
+  /* DiagArray354 */ diag::ext_friend_tag_redecl_outside_namespace, -1,
+  /* DiagArray355 */ diag::ext_ms_using_declaration_inaccessible, -1,
+  /* DiagArray356 */ diag::ext_pseudo_dtor_on_void, -1,
+  /* DiagArray357 */ diag::warn_mismatched_delete_new, -1,
+  /* DiagArray358 */ diag::warn_conflicting_param_types, -1,
+  /* DiagArray359 */ diag::warn_conflicting_ret_types, -1,
+  /* DiagArray360 */ diag::warn_struct_class_previous_tag_mismatch, diag::warn_struct_class_tag_mismatch, -1,
+  /* DiagArray361 */ diag::warn_missing_braces, -1,
+  /* DiagArray362 */ diag::ext_no_declarators, diag::ext_standalone_specifier, diag::ext_typedef_without_a_name, diag::warn_standalone_specifier, -1,
+  /* DiagArray363 */ diag::ext_missing_exception_specification, -1,
+  /* DiagArray364 */ diag::warn_missing_field_initializers, -1,
+  /* DiagArray367 */ diag::warn_missing_method_return_type, -1,
+  /* DiagArray368 */ diag::warn_suggest_noreturn_block, diag::warn_suggest_noreturn_function, -1,
+  /* DiagArray369 */ diag::warn_cconv_knr, -1,
+  /* DiagArray370 */ diag::warn_missing_prototype, -1,
+  /* DiagArray371 */ diag::warn_missing_selector_name, -1,
+  /* DiagArray372 */ diag::warn_missing_sysroot, -1,
+  /* DiagArray373 */ diag::warn_missing_variable_declarations, -1,
+  /* DiagArray374 */ diag::remark_module_build, diag::remark_module_build_done, diag::remark_module_lock_failure, diag::remark_module_lock_timeout, -1,
+  /* DiagArray375 */ diag::warn_module_conflict, diag::warn_module_system_bit_conflict, -1,
+  /* DiagArray376 */ diag::warn_module_config_mismatch, -1,
+  /* DiagArray377 */ diag::warn_duplicate_module_file_extension, -1,
+  /* DiagArray378 */ diag::ext_module_import_in_extern_c, -1,
+  /* DiagArray379 */ diag::ext_equivalent_internal_linkage_decl_in_modules, -1,
+  /* DiagArray380 */ diag::ext_module_import_not_at_top_level_noop, -1,
+  /* DiagArray384 */ diag::warn_drv_msvc_not_found, -1,
+  /* DiagArray385 */ diag::ext_multichar_character_literal, -1,
+  /* DiagArray386 */ diag::warn_vbase_moved_multiple_times, -1,
+  /* DiagArray388 */ diag::ext_anonymous_record_with_anonymous_type, -1,
+  /* DiagArray390 */ diag::warn_operator_new_returns_null, -1,
+  /* DiagArray391 */ diag::ext_no_newline_eof, diag::warn_no_newline_eof, -1,
+  /* DiagArray393 */ diag::warn_non_literal_null_pointer, -1,
+  /* DiagArray394 */ diag::warn_non_modular_include_in_framework_module, -1,
+  /* DiagArray395 */ diag::warn_non_modular_include_in_module, -1,
+  /* DiagArray396 */ diag::warn_cannot_pass_non_pod_arg_to_vararg, diag::warn_non_pod_vararg_with_format_string, diag::warn_second_parameter_to_va_arg_not_pod, diag::warn_second_parameter_to_va_arg_ownership_qualified, -1,
+  /* DiagArray397 */ diag::warn_non_virtual_dtor, -1,
+  /* DiagArray398 */ diag::warn_null_arg, diag::warn_null_ret, -1,
+  /* DiagArray400 */ diag::pp_nonportable_path, -1,
+  /* DiagArray401 */ diag::pp_nonportable_system_path, -1,
+  /* DiagArray402 */ diag::warn_neon_vector_initializer_non_portable, -1,
+  /* DiagArray403 */ diag::warn_null_in_arithmetic_operation, diag::warn_null_in_comparison_operation, -1,
+  /* DiagArray404 */ diag::null_in_char_or_string, diag::null_in_file, -1,
+  /* DiagArray405 */ diag::warn_impcast_null_pointer_to_integer, -1,
+  /* DiagArray406 */ diag::warn_binding_null_to_reference, diag::warn_indirection_through_null, -1,
+  /* DiagArray407 */ diag::warn_conflicting_nullability_attr_overriding_param_types, diag::warn_conflicting_nullability_attr_overriding_ret_types, diag::warn_mismatched_nullability_attr, diag::warn_null_resettable_setter, diag::warn_nullability_duplicate, -1,
+  /* DiagArray408 */ diag::warn_nullability_missing, -1,
+  /* DiagArray409 */ diag::warn_nullability_missing_array, -1,
+  /* DiagArray410 */ diag::warn_nullability_declspec, -1,
+  /* DiagArray411 */ diag::ext_nullability, -1,
+  /* DiagArray412 */ diag::warn_nullability_inferred_on_nested_type, -1,
+  /* DiagArray413 */ diag::warn_nullability_lost, -1,
+  /* DiagArray414 */ diag::warn_autosynthesis_property_ivar_match, -1,
+  /* DiagArray415 */ diag::warn_objc_circular_container, -1,
+  /* DiagArray417 */ diag::warn_objc_designated_init_missing_super_call, diag::warn_objc_designated_init_non_designated_init_call, diag::warn_objc_designated_init_non_super_designated_init_call, diag::warn_objc_implementation_missing_designated_init_override, diag::warn_objc_secondary_init_missing_init_call, diag::warn_objc_secondary_init_super_init_call, -1,
+  /* DiagArray418 */ diag::warn_forward_class_redefinition, -1,
+  /* DiagArray419 */ diag::warn_ivars_in_interface, -1,
+  /* DiagArray420 */ diag::warn_objc_literal_comparison, -1,
+  /* DiagArray421 */ diag::warn_impcast_objective_c_literal_to_bool, diag::warn_objc_collection_literal_element, -1,
+  /* DiagArray422 */ diag::warn_pp_objc_macro_redef_ignored, -1,
+  /* DiagArray423 */ diag::warn_class_method_not_found, diag::warn_class_method_not_found_with_typo, diag::warn_inst_method_not_found, diag::warn_instance_method_not_found_with_typo, diag::warn_instance_method_on_class_found, diag::warn_root_inst_method_not_found, -1,
+  /* DiagArray424 */ diag::warn_missing_explicit_synthesis, -1,
+  /* DiagArray425 */ diag::warn_objc_missing_super_call, -1,
+  /* DiagArray426 */ diag::warn_multiple_method_decl, -1,
+  /* DiagArray427 */ diag::warn_objc_property_retain_of_block, -1,
+  /* DiagArray428 */ diag::warn_objc_pointer_cxx_catch_fragile, -1,
+  /* DiagArray429 */ diag::warn_impl_required_for_class_property, diag::warn_impl_required_in_category_for_class_property, diag::warn_setter_getter_impl_required, diag::warn_setter_getter_impl_required_in_category, -1,
+  /* DiagArray430 */ diag::warn_property_implicitly_mismatched, -1,
+  /* DiagArray431 */ diag::warn_cocoa_naming_owned_rule, -1,
+  /* DiagArray432 */ diag::warn_objc_property_default_assign_on_object, diag::warn_objc_property_no_assignment_attribute, -1,
+  /* DiagArray433 */ diag::warn_autosynthesis_property_in_superclass, diag::warn_no_autosynthesis_property, diag::warn_no_autosynthesis_shared_ivar_property, -1,
+  /* DiagArray434 */ diag::warn_category_method_impl_match, -1,
+  /* DiagArray435 */ diag::warn_auto_synthesizing_protocol_property, -1,
+  /* DiagArray436 */ diag::warn_objc_redundant_qualified_class_type, -1,
+  /* DiagArray437 */ diag::warn_objc_readonly_property_has_setter, -1,
+  /* DiagArray439 */ diag::warn_objc_redundant_literal_use, -1,
+  /* DiagArray440 */ diag::warn_objc_root_class_missing, -1,
+  /* DiagArray441 */ diag::warn_objc_string_literal_comparison, -1,
+  /* DiagArray442 */ diag::warn_concatenated_nsarray_literal, -1,
+  /* DiagArray443 */ diag::warn_objc_unsafe_perform_selector, -1,
+  /* DiagArray444 */ diag::warn_odr_tag_type_inconsistent, -1,
+  /* DiagArray445 */ diag::warn_old_style_cast, -1,
+  /* DiagArray447 */ diag::ext_opencl_ext_vector_type_rgba_selector, -1,
+  /* DiagArray448 */ diag::warn_omp_alignment_not_power_of_two, diag::warn_omp_linear_step_zero, -1,
+  /* DiagArray449 */ diag::ext_omp_loop_not_canonical_init, diag::warn_omp_loop_64_bit_var, -1,
+  /* DiagArray450 */ diag::warn_drv_omp_offload_target_duplicate, diag::warn_omp_not_in_target_context, -1,
+  /* DiagArray451 */ diag::warn_drv_ps4_force_pic, -1,
+  /* DiagArray452 */ diag::ext_out_of_line_declaration, -1,
+  /* DiagArray453 */ diag::warn_overaligned_type, -1,
+  /* DiagArray455 */ diag::ext_string_too_long, -1,
+  /* DiagArray456 */ diag::warn_overloaded_shift_in_comparison, -1,
+  /* DiagArray457 */ diag::warn_overloaded_virtual, -1,
+  /* DiagArray458 */ diag::warn_fe_override_module, -1,
+  /* DiagArray459 */ diag::warn_conflicting_overriding_param_modifiers, diag::warn_conflicting_overriding_param_types, diag::warn_conflicting_overriding_ret_type_modifiers, diag::warn_conflicting_overriding_ret_types, diag::warn_conflicting_overriding_variadic, diag::warn_non_contravariant_overriding_param_types, diag::warn_non_covariant_overriding_ret_types, -1,
+  /* DiagArray460 */ diag::warn_drv_overriding_flag_option, -1,
+  /* DiagArray461 */ diag::warn_unnecessary_packed, -1,
+  /* DiagArray462 */ diag::warn_padded_struct_anon_field, diag::warn_padded_struct_field, diag::warn_padded_struct_size, -1,
+  /* DiagArray463 */ diag::warn_condition_is_assignment, diag::warn_precedence_bitwise_rel, diag::warn_precedence_conditional, -1,
+  /* DiagArray464 */ diag::warn_equality_with_extra_parens, -1,
+  /* DiagArray466 */ diag::remark_fe_backend_optimization_remark, -1,
+  /* DiagArray467 */ diag::remark_fe_backend_optimization_remark_analysis, diag::remark_fe_backend_optimization_remark_analysis_aliasing, diag::remark_fe_backend_optimization_remark_analysis_fpcommute, -1,
+  /* DiagArray468 */ diag::warn_fe_backend_optimization_failure, -1,
+  /* DiagArray469 */ diag::remark_fe_backend_optimization_remark_missed, -1,
+  /* DiagArray470 */ diag::warn_module_uses_date_time, -1,
+  /* DiagArray471 */ diag::ext_aggregate_init_not_constant, diag::ext_anonymous_record_with_type, diag::ext_anonymous_struct_union_qualified, diag::ext_array_size_conversion, diag::ext_c99_array_usage, diag::ext_c99_compound_literal, diag::ext_c99_flexible_array_member, diag::ext_c99_variable_decl_in_for_loop, diag::ext_cast_fn_obj, diag::ext_clang_diagnose_if, diag::ext_clang_enable_if, diag::ext_cxx11_enum_fixed_underlying_type, diag::ext_cxx14_attr, diag::ext_cxx1z_attr, diag::ext_designated_init, diag::ext_ellipsis_exception_spec, diag::ext_empty_fnmacro_arg, diag::ext_enum_value_not_int, diag::ext_enumerator_list_comma_c, diag::ext_enumerator_list_comma_cxx, diag::ext_explicit_instantiation_without_qualified_id, diag::ext_extern_template, diag::ext_extra_semi, diag::ext_forward_ref_enum, diag::ext_freestanding_complex, diag::ext_gnu_array_range, diag::ext_gnu_ptr_func_arith, diag::ext_gnu_subscript_void_type, diag::ext_gnu_void_ptr, diag::ext_hex_constant_invalid, diag::ext_hex_literal_invalid, diag::ext_ident_list_in_param, diag::ext_integer_complement_complex, diag::ext_integer_increment_complex, diag::ext_internal_in_extern_inline_quiet, diag::ext_invalid_sign_spec, diag::ext_line_comment, diag::ext_main_used, diag::ext_multi_line_line_comment, diag::ext_no_newline_eof, diag::ext_nonstandard_escape, diag::ext_param_not_declared, diag::ext_pp_bad_vaargs_use, diag::ext_pp_comma_expr, diag::ext_pp_ident_directive, diag::ext_pp_line_too_big, diag::ext_pp_warning_directive, diag::ext_return_has_void_expr, diag::ext_rvalue_to_reference_access_ctor, diag::ext_rvalue_to_reference_temp_copy_no_viable, diag::ext_sizeof_alignof_function_type, diag::ext_sizeof_alignof_void_type, diag::ext_subscript_non_lvalue, diag::ext_thread_before, diag::ext_typecheck_addrof_void, diag::ext_typecheck_cast_nonscalar, diag::ext_typecheck_comparison_of_fptr_to_void, diag::ext_typecheck_cond_one_void, diag::ext_typecheck_convert_pointer_void_func, diag::ext_typecheck_ordered_comparison_of_pointer_and_zero, diag::warn_defined_in_function_type_macro, diag::warn_illegal_constant_array_size, diag::warn_kern_is_method, -1,
+  /* DiagArray472 */ diag::warn_pragma_extension_is_core, -1,
+  /* DiagArray473 */ diag::warn_pessimizing_move_on_initialization, diag::warn_pessimizing_move_on_return, -1,
+  /* DiagArray474 */ diag::ext_gnu_ptr_func_arith, diag::ext_gnu_subscript_void_type, diag::ext_gnu_void_ptr, diag::ext_sizeof_alignof_function_type, diag::ext_sizeof_alignof_void_type, diag::warn_sub_ptr_zero_size_types, -1,
+  /* DiagArray475 */ diag::warn_cast_nonnull_to_bool, diag::warn_impcast_pointer_to_bool, -1,
+  /* DiagArray476 */ diag::ext_typecheck_convert_incompatible_pointer_sign, -1,
+  /* DiagArray478 */ diag::ext_typecheck_cond_incompatible_pointers, -1,
+  /* DiagArray479 */ diag::warn_side_effects_typeid, -1,
+  /* DiagArray480 */ diag::pp_pragma_once_in_main_file, -1,
+  /* DiagArray481 */ diag::pp_pragma_sysheader_in_main_file, -1,
+  /* DiagArray482 */ diag::warn_redefine_extname_not_applied, -1,
+  /* DiagArray483 */ diag::ext_predef_outside_function, -1,
+  /* DiagArray484 */ diag::warn_private_extern, -1,
+  /* DiagArray485 */ diag::warn_use_of_private_header_outside_module, -1,
+  /* DiagArray486 */ diag::warn_mmap_mismatched_top_level_private, -1,
+  /* DiagArray487 */ diag::warn_profile_data_out_of_date, -1,
+  /* DiagArray488 */ diag::warn_profile_data_unprofiled, -1,
+  /* DiagArray489 */ diag::warn_property_access_suggest, -1,
+  /* DiagArray490 */ diag::warn_property_attr_mismatch, diag::warn_property_attribute, diag::warn_property_redecl_getter_mismatch, diag::warn_readonly_property, -1,
+  /* DiagArray491 */ diag::warn_unimplemented_protocol_method, -1,
+  /* DiagArray492 */ diag::warn_protocol_property_mismatch, -1,
+  /* DiagArray493 */ diag::err_func_returning_qualified_void, -1,
+  /* DiagArray494 */ diag::warn_for_range_const_reference_copy, diag::warn_for_range_copy, diag::warn_for_range_variable_always_copy, -1,
+  /* DiagArray495 */ diag::warn_auto_readonly_iboutlet_property, -1,
+  /* DiagArray496 */ diag::warn_bad_receiver_type, -1,
+  /* DiagArray497 */ diag::warn_receiver_forward_class, diag::warn_receiver_forward_instance, -1,
+  /* DiagArray498 */ diag::ext_member_redeclared, -1,
+  /* DiagArray500 */ diag::warn_redundant_move_on_return, -1,
+  /* DiagArray501 */ diag::ext_register_storage_class, -1,
+  /* DiagArray502 */ diag::warn_reinterpret_different_from_static, -1,
+  /* DiagArray503 */ diag::remark_fe_backend_plugin, -1,
+  /* DiagArray504 */ diag::warn_initializer_out_of_order, -1,
+  /* DiagArray505 */ diag::warn_objc_requires_super_protocol, -1,
+  /* DiagArray506 */ diag::warn_pp_macro_is_reserved_id, -1,
+  /* DiagArray507 */ diag::ext_ms_reserved_user_defined_literal, diag::ext_reserved_user_defined_literal, -1,
+  /* DiagArray508 */ diag::ext_retained_language_linkage, -1,
+  /* DiagArray509 */ diag::warn_ret_addr_label, diag::warn_ret_local_temp_addr_ref, diag::warn_ret_stack_addr_ref, -1,
+  /* DiagArray510 */ diag::ext_return_has_expr, diag::ext_return_missing_expr, diag::warn_falloff_nonvoid_coroutine, diag::warn_falloff_nonvoid_function, diag::warn_falloff_nonvoid_lambda, diag::warn_maybe_falloff_nonvoid_coroutine, diag::warn_maybe_falloff_nonvoid_function, diag::warn_maybe_falloff_nonvoid_lambda, diag::warn_return_missing_expr, -1,
+  /* DiagArray511 */ diag::warn_return_value_udt, diag::warn_return_value_udt_incomplete, -1,
+  /* DiagArray512 */ diag::warn_drv_enabling_rtti_with_exceptions, -1,
+  /* DiagArray513 */ diag::remark_sanitize_address_insert_extra_padding_accepted, diag::remark_sanitize_address_insert_extra_padding_rejected, -1,
+  /* DiagArray514 */ diag::warn_mismatched_section, -1,
+  /* DiagArray515 */ diag::warn_unimplemented_selector, -1,
+  /* DiagArray516 */ diag::warn_multiple_selectors, -1,
+  /* DiagArray517 */ diag::warn_self_assignment, -1,
+  /* DiagArray518 */ diag::warn_identity_field_assign, -1,
+  /* DiagArray519 */ diag::warn_self_move, -1,
+  /* DiagArray520 */ diag::warn_semicolon_before_method_body, -1,
+  /* DiagArray521 */ diag::warn_missing_sentinel, diag::warn_not_enough_argument, -1,
+  /* DiagArray523 */ diag::warn_fe_serialized_diag_failure, diag::warn_fe_serialized_diag_merge_failure, -1,
+  /* DiagArray524 */ diag::warn_decl_shadow, -1,
+  /* DiagArray526 */ diag::warn_shadow_field, -1,
+  /* DiagArray527 */ diag::warn_ctor_parm_shadows_field, -1,
+  /* DiagArray528 */ diag::warn_modifying_shadowing_decl, -1,
+  /* DiagArray529 */ diag::warn_ivar_use_hidden, -1,
+  /* DiagArray530 */ diag::warn_decl_shadow_uncaptured_local, -1,
+  /* DiagArray531 */ diag::warn_shift_negative, -1,
+  /* DiagArray532 */ diag::warn_shift_gt_typewidth, -1,
+  /* DiagArray533 */ diag::warn_shift_lhs_negative, -1,
+  /* DiagArray534 */ diag::warn_addition_in_bitshift, -1,
+  /* DiagArray535 */ diag::warn_shift_result_gt_typewidth, -1,
+  /* DiagArray536 */ diag::warn_shift_result_sets_sign_bit, -1,
+  /* DiagArray537 */ diag::warn_impcast_integer_64_32, -1,
+  /* DiagArray538 */ diag::warn_mixed_sign_comparison, -1,
+  /* DiagArray539 */ diag::warn_impcast_integer_sign, diag::warn_impcast_integer_sign_conditional, -1,
+  /* DiagArray541 */ diag::warn_no_underlying_type_specified_for_enum_bitfield, -1,
+  /* DiagArray542 */ diag::warn_sizeof_array_param, -1,
+  /* DiagArray543 */ diag::warn_sizeof_array_decay, -1,
+  /* DiagArray544 */ diag::warn_sizeof_pointer_expr_memaccess, diag::warn_sizeof_pointer_type_memaccess, -1,
+  /* DiagArray545 */ diag::warn_slash_u_filename, -1,
+  /* DiagArray546 */ diag::warn_sometimes_uninit_var, -1,
+  /* DiagArray547 */ diag::warn_omp_nesting_simd, diag::warn_pragma_omp_ignored, -1,
+  /* DiagArray548 */ diag::warn_sampler_initializer_invalid_bits, -1,
+  /* DiagArray550 */ diag::ext_in_class_initializer_float_type_cxx11, -1,
+  /* DiagArray551 */ diag::ext_internal_in_extern_inline, diag::ext_internal_in_extern_inline_quiet, -1,
+  /* DiagArray552 */ diag::warn_static_inline_explicit_inst_ignored, -1,
+  /* DiagArray553 */ diag::warn_static_local_in_extern_inline, -1,
+  /* DiagArray554 */ diag::warn_static_self_reference_in_init, -1,
+  /* DiagArray566 */ diag::warn_strict_prototypes, -1,
+  /* DiagArray567 */ diag::warn_strict_multiple_method_decl, -1,
+  /* DiagArray568 */ diag::warn_stringcompare, -1,
+  /* DiagArray569 */ diag::warn_impcast_string_literal_to_bool, -1,
+  /* DiagArray570 */ diag::warn_string_plus_char, -1,
+  /* DiagArray571 */ diag::warn_string_plus_int, -1,
+  /* DiagArray572 */ diag::warn_strlcpycat_wrong_size, -1,
+  /* DiagArray573 */ diag::warn_strncat_large_size, diag::warn_strncat_src_size, diag::warn_strncat_wrong_size, -1,
+  /* DiagArray574 */ diag::ext_typecheck_base_super, -1,
+  /* DiagArray575 */ diag::warn_case_value_overflow, diag::warn_missing_case, diag::warn_not_in_enum, -1,
+  /* DiagArray576 */ diag::warn_bool_switch_condition, -1,
+  /* DiagArray578 */ diag::warn_def_missing_case, -1,
+  /* DiagArray579 */ diag::warn_sync_fetch_and_nand_semantics_change, -1,
+  /* DiagArray581 */ diag::warn_comparison_always, diag::warn_comparison_bitwise_always, diag::warn_lunsigned_always_true_comparison, diag::warn_runsigned_always_true_comparison, -1,
+  /* DiagArray582 */ diag::warn_out_of_range_compare, -1,
+  /* DiagArray583 */ diag::warn_tautological_overlap_comparison, -1,
+  /* DiagArray584 */ diag::warn_nonnull_expr_compare, diag::warn_null_pointer_compare, -1,
+  /* DiagArray585 */ diag::warn_address_of_reference_null_compare, diag::warn_this_null_compare, -1,
+  /* DiagArray586 */ diag::ext_typecheck_decl_incomplete_type, -1,
+  /* DiagArray588 */ diag::warn_acquired_before, diag::warn_acquired_before_after_cycle, diag::warn_cannot_resolve_lock, diag::warn_double_lock, diag::warn_expecting_lock_held_on_loop, diag::warn_expecting_locked, diag::warn_fun_excludes_mutex, diag::warn_fun_requires_lock, diag::warn_lock_exclusive_and_shared, diag::warn_lock_some_predecessors, diag::warn_no_unlock, diag::warn_unlock_but_no_lock, diag::warn_unlock_kind_mismatch, diag::warn_var_deref_requires_any_lock, diag::warn_var_deref_requires_lock, diag::warn_variable_requires_any_lock, diag::warn_variable_requires_lock, -1,
+  /* DiagArray589 */ diag::warn_invalid_capability_name, diag::warn_thread_attribute_argument_not_lockable, diag::warn_thread_attribute_decl_not_lockable, diag::warn_thread_attribute_decl_not_pointer, diag::warn_thread_attribute_ignored, -1,
+  /* DiagArray590 */ diag::warn_thread_safety_beta, -1,
+  /* DiagArray591 */ diag::warn_acquire_requires_negative_cap, -1,
+  /* DiagArray592 */ diag::warn_fun_requires_lock_precise, diag::warn_var_deref_requires_lock_precise, diag::warn_variable_requires_lock_precise, -1,
+  /* DiagArray593 */ diag::warn_guarded_pass_by_reference, diag::warn_pt_guarded_pass_by_reference, -1,
+  /* DiagArray594 */ diag::warn_thread_safety_verbose, -1,
+  /* DiagArray595 */ diag::trigraph_converted, diag::trigraph_ends_block_comment, diag::trigraph_ignored, diag::trigraph_ignored_block_comment, -1,
+  /* DiagArray597 */ diag::warn_type_safety_null_pointer_required, diag::warn_type_safety_type_mismatch, diag::warn_type_tag_for_datatype_wrong_kind, -1,
+  /* DiagArray598 */ diag::ext_redefinition_of_typedef, -1,
+  /* DiagArray599 */ diag::ext_typename_missing, -1,
+  /* DiagArray600 */ diag::warn_fe_unable_to_open_stats_file, -1,
+  /* DiagArray601 */ diag::warn_unavailable_fwdclass_message, -1,
+  /* DiagArray602 */ diag::warn_undeclared_selector, diag::warn_undeclared_selector_with_typo, -1,
+  /* DiagArray603 */ diag::warn_pp_undef_identifier, -1,
+  /* DiagArray604 */ diag::warn_address_of_reference_bool_conversion, diag::warn_this_bool_conversion, -1,
+  /* DiagArray605 */ diag::warn_func_template_missing, -1,
+  /* DiagArray606 */ diag::warn_undefined_inline, -1,
+  /* DiagArray607 */ diag::warn_undefined_internal, -1,
+  /* DiagArray608 */ diag::warn_pointer_indirection_from_incompatible_type, diag::warn_undefined_reinterpret_cast, -1,
+  /* DiagArray609 */ diag::warn_var_template_missing, -1,
+  /* DiagArray610 */ diag::warn_side_effects_unevaluated_context, -1,
+  /* DiagArray611 */ diag::warn_partial_availability, diag::warn_partial_fwdclass_message, diag::warn_partial_message, diag::warn_unguarded_availability, -1,
+  /* DiagArray612 */ diag::warn_ucn_escape_incomplete, diag::warn_ucn_escape_no_digits, diag::warn_ucn_escape_surrogate, diag::warn_ucn_not_valid_in_c89, diag::warn_ucn_not_valid_in_c89_literal, -1,
+  /* DiagArray613 */ diag::ext_unicode_whitespace, -1,
+  /* DiagArray614 */ diag::warn_base_class_is_uninit, diag::warn_field_is_uninit, diag::warn_reference_field_is_uninit, diag::warn_uninit_byref_blockvar_captured_by_block, diag::warn_uninit_self_reference_in_init, diag::warn_uninit_self_reference_in_reference_init, diag::warn_uninit_var, -1,
+  /* DiagArray615 */ diag::warn_drv_unknown_argument_clang_cl, -1,
+  /* DiagArray616 */ diag::warn_unknown_attribute_ignored, -1,
+  /* DiagArray617 */ diag::ext_unknown_escape, -1,
+  /* DiagArray618 */ diag::ext_on_off_switch_syntax, diag::ext_pragma_syntax_eod, diag::ext_stdc_pragma_ignored, diag::warn_pragma_diagnostic_cannot_pop, diag::warn_pragma_diagnostic_invalid, diag::warn_pragma_diagnostic_invalid_option, diag::warn_pragma_diagnostic_invalid_token, diag::warn_pragma_diagnostic_unknown_warning, diag::warn_pragma_ignored, diag::warn_pragma_include_alias_expected, diag::warn_pragma_include_alias_expected_filename, diag::warn_pragma_include_alias_mismatch_angle, diag::warn_pragma_include_alias_mismatch_quote, diag::warn_pragma_warning_expected, diag::warn_pragma_warning_expected_number, diag::warn_pragma_warning_push_level, diag::warn_pragma_warning_spec_invalid, diag::warn_stdc_fenv_access_not_supported, -1,
+  /* DiagArray619 */ diag::warn_unknown_sanitizer_ignored, -1,
+  /* DiagArray620 */ diag::warn_unknown_diag_option, diag::warn_unknown_warning_specifier, -1,
+  /* DiagArray621 */ diag::ext_template_arg_unnamed_type, -1,
+  /* DiagArray622 */ diag::warn_unneeded_internal_decl, diag::warn_unneeded_static_internal_decl, -1,
+  /* DiagArray623 */ diag::warn_unneeded_member_function, -1,
+  /* DiagArray624 */ diag::warn_unreachable, -1,
+  /* DiagArray626 */ diag::warn_unreachable_break, -1,
+  /* DiagArray627 */ diag::warn_unreachable_loop_increment, -1,
+  /* DiagArray628 */ diag::warn_unreachable_return, -1,
+  /* DiagArray629 */ diag::warn_unsequenced_mod_mod, diag::warn_unsequenced_mod_use, -1,
+  /* DiagArray630 */ diag::warn_target_unsupported_compact_branches, -1,
+  /* DiagArray631 */ diag::warn_attribute_dll_instantiated_base_class, -1,
+  /* DiagArray632 */ diag::warn_template_qualified_friend_ignored, diag::warn_template_qualified_friend_unsupported, -1,
+  /* DiagArray633 */ diag::warn_target_unsupported_nan2008, diag::warn_target_unsupported_nanlegacy, -1,
+  /* DiagArray634 */ diag::warn_attribute_protected_visibility, -1,
+  /* DiagArray635 */ diag::ext_partial_specs_not_deducible, -1,
+  /* DiagArray638 */ diag::warn_drv_empty_joined_argument, diag::warn_drv_fdiagnostics_show_hotness_requires_pgo, diag::warn_drv_input_file_unused, diag::warn_drv_input_file_unused_by_cpp, diag::warn_drv_preprocessed_input_file_unused, diag::warn_drv_unused_argument, -1,
+  /* DiagArray639 */ diag::warn_unused_comparison, -1,
+  /* DiagArray640 */ diag::warn_unused_const_variable, -1,
+  /* DiagArray641 */ diag::warn_unused_exception_param, -1,
+  /* DiagArray642 */ diag::warn_unused_function, -1,
+  /* DiagArray643 */ diag::warn_unused_property_expr, -1,
+  /* DiagArray644 */ diag::warn_unused_label, -1,
+  /* DiagArray645 */ diag::warn_unused_lambda_capture, -1,
+  /* DiagArray646 */ diag::warn_unused_local_typedef, -1,
+  /* DiagArray648 */ diag::pp_macro_not_used, -1,
+  /* DiagArray649 */ diag::warn_unused_member_function, -1,
+  /* DiagArray650 */ diag::warn_unused_parameter, -1,
+  /* DiagArray651 */ diag::warn_unused_private_field, -1,
+  /* DiagArray652 */ diag::warn_unused_property_backing_ivar, -1,
+  /* DiagArray653 */ diag::warn_unused_result, -1,
+  /* DiagArray654 */ diag::warn_unused_call, diag::warn_unused_container_subscript_expr, diag::warn_unused_expr, diag::warn_unused_voidptr, -1,
+  /* DiagArray655 */ diag::warn_unused_variable, -1,
+  /* DiagArray656 */ diag::warn_unused_volatile, -1,
+  /* DiagArray657 */ diag::warn_used_but_marked_unused, -1,
+  /* DiagArray658 */ diag::warn_user_literal_reserved, -1,
+  /* DiagArray659 */ diag::warn_diagnose_if_succeeded, -1,
+  /* DiagArray660 */ diag::warn_second_arg_of_va_start_not_last_named_param, diag::warn_second_parameter_to_va_arg_never_compatible, diag::warn_va_start_type_is_undefined, -1,
+  /* DiagArray661 */ diag::ext_named_variadic_macro, diag::ext_variadic_macro, -1,
+  /* DiagArray662 */ diag::warn_typecheck_vector_element_sizes_not_equal, -1,
+  /* DiagArray663 */ diag::warn_incompatible_vectors, -1,
+  /* DiagArray665 */ diag::warn_empty_parens_are_function_decl, diag::warn_parens_disambiguated_as_function_declaration, -1,
+  /* DiagArray666 */ diag::warn_decl_in_param_list, diag::warn_redefinition_in_param_list, -1,
+  /* DiagArray667 */ diag::warn_vla_used, -1,
+  /* DiagArray668 */ diag::ext_vla, -1,
+  /* DiagArray669 */ diag::ext_typecheck_indirection_through_void_pointer, -1,
+  /* DiagArray671 */ diag::warn_weak_template_vtable, -1,
+  /* DiagArray672 */ diag::warn_weak_vtable, -1,
+  /* DiagArray673 */ diag::ext_deprecated_string_literal_conversion, -1,
+  /* DiagArray675 */ diag::ext_typecheck_zero_array_size, -1,
+};
+
+static const int16_t DiagSubGroups[] = {
+  /* Empty */ -1,
+  /* DiagSubGroup0 */ 189, -1,
+  /* DiagSubGroup4 */ 16, 189, -1,
+  /* DiagSubGroup11 */ 475, 568, 584, -1,
+  /* DiagSubGroup16 */ 381, 463, 575, 576, -1,
+  /* DiagSubGroup24 */ 31, 30, 27, -1,
+  /* DiagSubGroup29 */ 26, -1,
+  /* DiagSubGroup34 */ 36, 35, -1,
+  /* DiagSubGroup41 */ 253, 125, -1,
+  /* DiagSubGroup44 */ 616, 247, -1,
+  /* DiagSubGroup53 */ 91, -1,
+  /* DiagSubGroup59 */ 475, 604, -1,
+  /* DiagSubGroup60 */ 59, -1,
+  /* DiagSubGroup67 */ 70, -1,
+  /* DiagSubGroup68 */ 74, -1,
+  /* DiagSubGroup69 */ 78, -1,
+  /* DiagSubGroup70 */ 78, 73, 71, 88, 86, -1,
+  /* DiagSubGroup72 */ 89, 87, -1,
+  /* DiagSubGroup74 */ 75, 76, 77, -1,
+  /* DiagSubGroup80 */ 86, -1,
+  /* DiagSubGroup81 */ 87, -1,
+  /* DiagSubGroup82 */ 79, -1,
+  /* DiagSubGroup83 */ 82, -1,
+  /* DiagSubGroup84 */ 145, 141, -1,
+  /* DiagSubGroup87 */ 86, -1,
+  /* DiagSubGroup89 */ 88, -1,
+  /* DiagSubGroup90 */ 92, 94, 88, 86, -1,
+  /* DiagSubGroup93 */ 90, 91, 89, 87, -1,
+  /* DiagSubGroup105 */ 396, -1,
+  /* DiagSubGroup108 */ 107, -1,
+  /* DiagSubGroup114 */ 54, -1,
+  /* DiagSubGroup118 */ 59, 114, 179, 55, 196, 537, 290, 314, 393, 405, 421, 539, 569, -1,
+  /* DiagSubGroup119 */ 405, -1,
+  /* DiagSubGroup136 */ 137, 138, 139, 141, 145, 146, -1,
+  /* DiagSubGroup143 */ 144, -1,
+  /* DiagSubGroup146 */ 71, -1,
+  /* DiagSubGroup152 */ 153, -1,
+  /* DiagSubGroup157 */ 159, 158, -1,
+  /* DiagSubGroup160 */ 161, -1,
+  /* DiagSubGroup170 */ 139, -1,
+  /* DiagSubGroup171 */ 397, -1,
+  /* DiagSubGroup177 */ 192, -1,
+  /* DiagSubGroup189 */ 364, 251, 284, 520, 367, 538, 650, -1,
+  /* DiagSubGroup191 */ 75, -1,
+  /* DiagSubGroup196 */ 198, 199, -1,
+  /* DiagSubGroup201 */ 202, 209, 398, 207, 208, 203, -1,
+  /* DiagSubGroup210 */ 205, 207, 208, -1,
+  /* DiagSubGroup217 */ 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 668, 230, 231, 232, 233, 234, 235, 498, 236, 237, 238, 239, 240, 241, 675, 242, 243, -1,
+  /* DiagSubGroup250 */ 249, -1,
+  /* DiagSubGroup252 */ 258, 259, -1,
+  /* DiagSubGroup256 */ 257, -1,
+  /* DiagSubGroup271 */ 272, 268, -1,
+  /* DiagSubGroup276 */ 277, 395, -1,
+  /* DiagSubGroup281 */ 141, -1,
+  /* DiagSubGroup291 */ 290, -1,
+  /* DiagSubGroup292 */ 293, -1,
+  /* DiagSubGroup295 */ 248, -1,
+  /* DiagSubGroup316 */ 92, -1,
+  /* DiagSubGroup319 */ 77, -1,
+  /* DiagSubGroup320 */ 200, 494, -1,
+  /* DiagSubGroup329 */ 332, 347, 335, 344, 351, 354, 340, 355, 348, 349, 353, 342, 339, 336, 352, 350, 338, 346, 345, 343, 331, 334, 356, 330, 333, 337, 278, -1,
+  /* DiagSubGroup381 */ 103, 107, 135, 200, 201, 252, 282, 360, 361, 382, 385, 504, 510, 517, 519, 542, 543, 571, 595, 614, 618, 636, 670, 425, 417, 457, 484, 100, 187, 659, -1,
+  /* DiagSubGroup382 */ 473, 500, 519, -1,
+  /* DiagSubGroup383 */ 347, -1,
+  /* DiagSubGroup387 */ 78, -1,
+  /* DiagSubGroup392 */ 538, 118, 315, -1,
+  /* DiagSubGroup395 */ 394, -1,
+  /* DiagSubGroup408 */ 409, -1,
+  /* DiagSubGroup416 */ 438, -1,
+  /* DiagSubGroup420 */ 441, -1,
+  /* DiagSubGroup438 */ 439, -1,
+  /* DiagSubGroup463 */ 318, 317, 57, 534, 456, 464, 126, -1,
+  /* DiagSubGroup465 */ 611, -1,
+  /* DiagSubGroup471 */ 95, 75, 77, 79, 195, 206, 211, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 240, 242, 243, 309, 319, 332, 333, 335, 337, 338, 344, 345, 350, 455, 668, 661, 675, 508, 110, 186, 388, 132, 162, 311, 263, 172, 175, 411, -1,
+  /* DiagSubGroup482 */ 618, 250, -1,
+  /* DiagSubGroup501 */ 145, -1,
+  /* DiagSubGroup507 */ 73, -1,
+  /* DiagSubGroup510 */ 511, -1,
+  /* DiagSubGroup515 */ 516, -1,
+  /* DiagSubGroup517 */ 518, -1,
+  /* DiagSubGroup522 */ 629, -1,
+  /* DiagSubGroup524 */ 528, 529, -1,
+  /* DiagSubGroup525 */ 524, 527, 530, 526, -1,
+  /* DiagSubGroup527 */ 528, -1,
+  /* DiagSubGroup550 */ 238, -1,
+  /* DiagSubGroup581 */ 582, 584, 583, 585, -1,
+  /* DiagSubGroup587 */ 589, 588, 592, 593, -1,
+  /* DiagSubGroup610 */ 479, -1,
+  /* DiagSubGroup614 */ 546, 554, -1,
+  /* DiagSubGroup621 */ 94, -1,
+  /* DiagSubGroup624 */ 627, -1,
+  /* DiagSubGroup625 */ 624, 626, 628, -1,
+  /* DiagSubGroup636 */ 637, 642, 644, 651, 645, 646, 654, 655, 652, -1,
+  /* DiagSubGroup642 */ 622, -1,
+  /* DiagSubGroup647 */ 646, -1,
+  /* DiagSubGroup649 */ 623, -1,
+  /* DiagSubGroup654 */ 639, 653, 610, -1,
+  /* DiagSubGroup655 */ 640, -1,
+  /* DiagSubGroup664 */ 663, -1,
+  /* DiagSubGroup673 */ 146, -1,
+  /* DiagSubGroup674 */ 673, -1,
+};
+
+static const char DiagGroupNames[] = {
+    "\000\020#pragma-messages\t#warnings\020CFString-literal\003CL4\032Indep"
+    "endentClass-attribute\022NSObject-attribute\003abi\016absolute-value\024"
+    "abstract-final-class\023abstract-vbase-init\007address\032address-of-ar"
+    "ray-temporary\030address-of-packed-member\024address-of-temporary\020ag"
+    "gregate-return\003all\031alloca-with-align-alignof\020ambiguous-delete\022"
+    "ambiguous-ellipsis\017ambiguous-macro\031ambiguous-member-template\034a"
+    "nalyzer-incompatible-plugin\025anonymous-pack-parens\003arc%arc-bridge-"
+    "casts-disallowed-in-nonarc\036arc-maybe-repeated-use-of-weak\025arc-non"
+    "-pod-memaccess\031arc-performSelector-leaks\030arc-repeated-use-of-weak"
+    "\021arc-retain-cycles\032arc-unsafe-retained-assign\014array-bounds\037"
+    "array-bounds-pointer-arithmetic\003asm\025asm-ignored-qualifier\022asm-"
+    "operand-widths\013assign-enum\006assume\013at-protocol\026atomic-memory"
+    "-ordering\021atomic-properties*atomic-property-with-user-defined-access"
+    "or\035attribute-packed-for-bitfield\nattributes\033auto-disable-vptr-sa"
+    "nitizer\013auto-import\022auto-storage-class\013auto-var-id\014availabi"
+    "lity\016backend-plugin\030backslash-newline-escape\021bad-function-cast"
+    "\026bind-to-temporary-copy\034bitfield-constant-conversion\030bitfield-"
+    "enum-conversion\016bitfield-width\026bitwise-op-parentheses\033block-ca"
+    "pture-autoreleasing\017bool-conversion\020bool-conversions\022braced-sc"
+    "alar-init\013bridge-cast\027builtin-macro-redefined\027builtin-memcpy-c"
+    "hk-size\027builtin-requires-header\nc++-compat\014c++0x-compat\020c++0x"
+    "-extensions\017c++0x-narrowing\014c++11-compat(c++11-compat-deprecated-"
+    "writable-strings\025c++11-compat-pedantic*c++11-compat-reserved-user-de"
+    "fined-literal\020c++11-extensions\020c++11-extra-semi\026c++11-inline-n"
+    "amespace\017c++11-long-long\017c++11-narrowing\024c++14-binary-literal\014"
+    "c++14-compat\025c++14-compat-pedantic\020c++14-extensions\020c++1y-exte"
+    "nsions\014c++1z-compat\020c++1z-extensions\030c++98-c++11-c++14-compat!"
+    "c++98-c++11-c++14-compat-pedantic\022c++98-c++11-compat\033c++98-c++11-"
+    "compat-pedantic\014c++98-compat#c++98-compat-bind-to-temporary-copy%c++"
+    "98-compat-local-type-template-args\025c++98-compat-pedantic'c++98-compa"
+    "t-unnamed-type-template-args\016c11-extensions\nc99-compat\016c99-exten"
+    "sions\ncast-align\027cast-calling-convention\020cast-of-sel-type\tcast-"
+    "qual\nchar-align\017char-subscripts\014clang-cl-pch\015class-varargs\005"
+    "comma\007comment\010comments\036compare-distinct-pointer-types\026compl"
+    "ex-component-init\031conditional-type-mismatch\031conditional-uninitial"
+    "ized\015config-macros\023constant-conversion\030constant-logical-operan"
+    "d\023constexpr-not-const\010consumed\nconversion\017conversion-null\tco"
+    "routine\026covered-switch-default\030cstring-format-directive\021ctor-d"
+    "tor-privacy\013cuda-compat\030custom-atomic-properties\015dangling-else"
+    "\016dangling-field\031dangling-initializer-list\tdate-time\023dealloc-i"
+    "n-category\035debug-compression-unavailable\033declaration-after-statem"
+    "ent\026delegating-ctor-cycles\021delete-incomplete\027delete-non-virtua"
+    "l-dtor\ndeprecated\025deprecated-attributes\027deprecated-declarations!"
+    "deprecated-dynamic-exception-spec\032deprecated-implementations\031depr"
+    "ecated-increment-bool\031deprecated-objc-isa-usage%deprecated-objc-poin"
+    "ter-introspection5deprecated-objc-pointer-introspection-performSelector"
+    "\023deprecated-register\033deprecated-writable-strings\022direct-ivar-a"
+    "ccess\030disabled-macro-expansion\025disabled-optimization\014discard-q"
+    "ual\034distributed-object-modifiers\013div-by-zero\020division-by-zero\036"
+    "dll-attribute-on-redeclaration%dllexport-explicit-instantiation-decl\032"
+    "dllimport-static-field-def\015documentation\035documentation-deprecated"
+    "-sync\022documentation-html\026documentation-pedantic\035documentation-"
+    "unknown-command\036dollar-in-identifier-extension\020double-promotion\030"
+    "duplicate-decl-specifier\016duplicate-enum\024duplicate-method-arg\026d"
+    "uplicate-method-match\022duplicate-protocol\027dynamic-class-memaccess\026"
+    "dynamic-exception-spec\006effc++\022embedded-directive\nempty-body\023e"
+    "mpty-decomposition\026empty-translation-unit\013encode-type\014endif-la"
+    "bels\014enum-compare\017enum-conversion\016enum-too-large\nexceptions\025"
+    "exit-time-destructors\024expansion-to-defined\030explicit-initialize-ca"
+    "ll\027explicit-ownership-type\021extended-offsetof\017extern-c-compat\022"
+    "extern-initializer\005extra\023extra-qualification\nextra-semi\014extra"
+    "-tokens\010fallback\tflag-enum\031flexible-array-extensions\020float-co"
+    "nversion\013float-equal\031float-overflow-conversion\025float-zero-conv"
+    "ersion\021for-loop-analysis\006format\021format-extra-args\030format-in"
+    "valid-specifier\016format-non-iso\021format-nonliteral\017format-pedant"
+    "ic\017format-security\nformat-y2k\022format-zero-length\010format=2\023"
+    "four-char-constants\022frame-larger-than=\036function-def-in-objc-conta"
+    "iner\015future-compat\ngcc-compat\023global-constructors\003gnu\026gnu-"
+    "alignof-expression\024gnu-anonymous-struct\033gnu-array-member-paren-in"
+    "it\015gnu-auto-type\022gnu-binary-literal\016gnu-case-range\023gnu-comp"
+    "lex-integer gnu-compound-literal-initializer\037gnu-conditional-omitted"
+    "-operand\016gnu-designator\025gnu-empty-initializer\020gnu-empty-struct"
+    "\036gnu-flexible-array-initializer\037gnu-flexible-array-union-member\024"
+    "gnu-folding-constant\026gnu-imaginary-constant\020gnu-include-next\022g"
+    "nu-label-as-value\023gnu-redeclared-enum\030gnu-statement-expression\025"
+    "gnu-static-float-init$gnu-string-literal-operator-template\016gnu-union"
+    "-cast\"gnu-variable-sized-type-not-at-end\027gnu-zero-line-directive!gn"
+    "u-zero-variadic-macro-arguments\014header-guard\016header-hygiene\025id"
+    "iomatic-parentheses\022ignored-attributes\035ignored-optimization-argum"
+    "ent\030ignored-pragma-intrinsic\017ignored-pragmas\022ignored-qualifier"
+    "s\010implicit\032implicit-atomic-properties*implicit-conversion-floatin"
+    "g-point-to-bool implicit-exception-spec-mismatch\024implicit-fallthroug"
+    "h!implicit-fallthrough-per-function\035implicit-function-declaration\014"
+    "implicit-int\024implicit-retain-self\033implicitly-unsigned-literal\006"
+    "import&import-preprocessor-directive-pedantic\021inaccessible-base\032i"
+    "nclude-next-absolute-path\033include-next-outside-header\033incompatibl"
+    "e-exception-spec#incompatible-function-pointer-types\"incompatible-libr"
+    "ary-redeclaration\026incompatible-ms-struct\032incompatible-pointer-typ"
+    "es.incompatible-pointer-types-discards-qualifiers\032incompatible-prope"
+    "rty-type\024incompatible-sysroot\031incomplete-implementation\021incomp"
+    "lete-module\023incomplete-umbrella\026inconsistent-dllimport(inconsiste"
+    "nt-missing-destructor-override\035inconsistent-missing-override\016incr"
+    "ement-bool\022infinite-recursion\tinit-self\025initializer-overrides\023"
+    "injected-class-name\006inline\ninline-asm\021inline-new-delete\"instant"
+    "iation-after-specialization\016int-conversion\017int-conversions\023int"
+    "-to-pointer-cast\030int-to-void-pointer-cast\020integer-overflow\035inv"
+    "alid-command-line-argument\021invalid-constexpr\020invalid-iboutlet&inv"
+    "alid-initializer-from-system-header\020invalid-noreturn\020invalid-offs"
+    "etof invalid-or-nonexistent-directory\036invalid-partial-specialization"
+    "\013invalid-pch\020invalid-pp-token\027invalid-source-encoding\023inval"
+    "id-token-paste\020jump-seh-finally\016keyword-compat\015keyword-macro\026"
+    "knr-promoted-parameter\030language-extension-token\023large-by-value-co"
+    "py\006liblto\022literal-conversion\015literal-range\030local-type-templ"
+    "ate-args\027logical-not-parentheses\026logical-op-parentheses\tlong-lon"
+    "g\015loop-analysis\017macro-redefined\004main\020main-return-type\027ma"
+    "lformed-warning-check\036many-braces-around-scalar-init\021max-unsigned"
+    "-zero\022memsize-comparison\021method-signatures\tmicrosoft\022microsof"
+    "t-anon-tag\016microsoft-cast\021microsoft-charize\027microsoft-comment-"
+    "paste\024microsoft-const-init\023microsoft-cpp-macro\"microsoft-default"
+    "-arg-redefinition\025microsoft-end-of-file microsoft-enum-forward-refer"
+    "ence\024microsoft-enum-value\030microsoft-exception-spec\020microsoft-e"
+    "xists#microsoft-explicit-constructor-call\035microsoft-extra-qualificat"
+    "ion\024microsoft-fixed-enum\030microsoft-flexible-array\016microsoft-go"
+    "to\021microsoft-include\033microsoft-mutable-reference\031microsoft-pur"
+    "e-definition\032microsoft-redeclare-static\020microsoft-sealed\022micro"
+    "soft-template microsoft-union-member-reference\034microsoft-unqualified"
+    "-friend\024microsoft-using-decl\032microsoft-void-pseudo-dtor\025mismat"
+    "ched-new-delete\032mismatched-parameter-types\027mismatched-return-type"
+    "s\017mismatched-tags\016missing-braces\024missing-declarations\026missi"
+    "ng-exception-spec\032missing-field-initializers\030missing-format-attri"
+    "bute\024missing-include-dirs\032missing-method-return-type\020missing-n"
+    "oreturn\030missing-prototype-for-cc\022missing-prototypes\025missing-se"
+    "lector-name\017missing-sysroot\035missing-variable-declarations\014modu"
+    "le-build\017module-conflict\033module-file-config-mismatch\025module-fi"
+    "le-extension\031module-import-in-extern-c\"modules-ambiguous-internal-l"
+    "inkage\037modules-import-nested-redundant\004most\004move\014msvc-inclu"
+    "de\016msvc-not-found\tmultichar\023multiple-move-vbase\tnarrowing\021ne"
+    "sted-anon-types\016nested-externs\020new-returns-null\013newline-eof\007"
+    "non-gcc\033non-literal-null-conversion'non-modular-include-in-framework"
+    "-module\035non-modular-include-in-module\017non-pod-varargs\020non-virt"
+    "ual-dtor\007nonnull\025nonportable-cfstrings\030nonportable-include-pat"
+    "h\037nonportable-system-include-path!nonportable-vector-initialization\017"
+    "null-arithmetic\016null-character\017null-conversion\020null-dereferenc"
+    "e\013nullability\030nullability-completeness\"nullability-completeness-"
+    "on-arrays\024nullability-declspec\025nullability-extension#nullability-"
+    "inferred-on-nested-type\036nullable-to-nonnull-conversion+objc-autosynt"
+    "hesis-property-ivar-name-match\027objc-circular-container\016objc-cocoa"
+    "-api\034objc-designated-initializers\037objc-forward-class-redefinition"
+    "\024objc-interface-ivars\024objc-literal-compare\027objc-literal-conver"
+    "sion\027objc-macro-redefinition\022objc-method-access\037objc-missing-p"
+    "roperty-synthesis\030objc-missing-super-calls\032objc-multiple-method-n"
+    "ames\"objc-noncopy-retain-block-property\032objc-nonunified-exceptions\034"
+    "objc-property-implementation\037objc-property-implicit-mismatch*objc-pr"
+    "operty-matches-cocoa-ownership-rule\032objc-property-no-attribute\027ob"
+    "jc-property-synthesis#objc-protocol-method-implementation objc-protocol"
+    "-property-synthesis\030objc-protocol-qualifiers\"objc-readonly-with-set"
+    "ter-property\026objc-redundant-api-use\032objc-redundant-literal-use\017"
+    "objc-root-class\023objc-string-compare\031objc-string-concatenation\034"
+    "objc-unsafe-perform-selector\003odr\016old-style-cast\024old-style-defi"
+    "nition\027opencl-unsupported-rgba\016openmp-clauses\020openmp-loop-form"
+    "\015openmp-target\016option-ignored\027out-of-line-declaration\014over-"
+    "aligned\010overflow\022overlength-strings\037overloaded-shift-op-parent"
+    "heses\022overloaded-virtual\017override-module\032overriding-method-mis"
+    "match\023overriding-t-option\006packed\006padded\013parentheses\024pare"
+    "ntheses-equality\024partial-availability\004pass\015pass-analysis\013pa"
+    "ss-failed\013pass-missed\015pch-date-time\010pedantic\026pedantic-core-"
+    "features\020pessimizing-move\015pointer-arith\027pointer-bool-conversio"
+    "n\014pointer-sign\023pointer-to-int-cast\025pointer-type-mismatch poten"
+    "tially-evaluated-expression\032pragma-once-outside-header#pragma-system"
+    "-header-outside-header\007pragmas&predefined-identifier-outside-functio"
+    "n\016private-extern\016private-header\016private-module\031profile-inst"
+    "r-out-of-date\030profile-instr-unprofiled\032property-access-dot-syntax"
+    "\033property-attribute-mismatch\010protocol%protocol-property-synthesis"
+    "-ambiguity\032qualified-void-return-type\023range-loop-analysis\032read"
+    "only-iboutlet-property\015receiver-expr\026receiver-forward-class\027re"
+    "declared-class-member\017redundant-decls\016redundant-move\010register\026"
+    "reinterpret-base-class\025remark-backend-plugin\007reorder\030requires-"
+    "super-attribute\021reserved-id-macro\035reserved-user-defined-literal\031"
+    "retained-language-linkage\024return-stack-address\013return-type\025ret"
+    "urn-type-c-linkage\023rtti-for-exceptions\020sanitize-address\007sectio"
+    "n\010selector\026selector-type-mismatch\013self-assign\021self-assign-f"
+    "ield\tself-move\034semicolon-before-method-body\010sentinel\016sequence"
+    "-point\026serialized-diagnostics\006shadow\nshadow-all\014shadow-field\033"
+    "shadow-field-in-constructor$shadow-field-in-constructor-modified\013sha"
+    "dow-ivar\027shadow-uncaptured-local\024shift-count-negative\024shift-co"
+    "unt-overflow\024shift-negative-value\024shift-op-parentheses\016shift-o"
+    "verflow\023shift-sign-overflow\020shorten-64-to-32\014sign-compare\017s"
+    "ign-conversion\nsign-promo\024signed-enum-bitfield\025sizeof-array-argu"
+    "ment\022sizeof-array-decay\030sizeof-pointer-memaccess\020slash-u-filen"
+    "ame\027sometimes-uninitialized\022source-uses-openmp\013spir-compat\017"
+    "stack-protector\021static-float-init\020static-in-inline$static-inline-"
+    "explicit-instantiation\026static-local-in-inline\020static-self-init\017"
+    "strict-aliasing\021strict-aliasing=0\021strict-aliasing=1\021strict-ali"
+    "asing=2\017strict-overflow\021strict-overflow=0\021strict-overflow=1\021"
+    "strict-overflow=2\021strict-overflow=3\021strict-overflow=4\021strict-o"
+    "verflow=5\021strict-prototypes\025strict-selector-match\016string-compa"
+    "re\021string-conversion\020string-plus-char\017string-plus-int\024strlc"
+    "py-strlcat-size\014strncat-size\033super-class-method-mismatch\006switc"
+    "h\013switch-bool\016switch-default\013switch-enum%sync-fetch-and-nand-s"
+    "emantics-changed\005synth\024tautological-compare*tautological-constant"
+    "-out-of-range-compare\034tautological-overlap-compare\034tautological-p"
+    "ointer-compare\036tautological-undefined-compare$tentative-definition-i"
+    "ncomplete-type\015thread-safety\026thread-safety-analysis\030thread-saf"
+    "ety-attributes\022thread-safety-beta\026thread-safety-negative\025threa"
+    "d-safety-precise\027thread-safety-reference\025thread-safety-verbose\tt"
+    "rigraphs\013type-limits\013type-safety\024typedef-redefinition\020typen"
+    "ame-missing\031unable-to-open-stats-file\030unavailable-declarations\023"
+    "undeclared-selector\005undef\031undefined-bool-conversion\027undefined-"
+    "func-template\020undefined-inline\022undefined-internal\032undefined-re"
+    "interpret-cast\026undefined-var-template\026unevaluated-expression\026u"
+    "nguarded-availability\007unicode\022unicode-whitespace\015uninitialized"
+    "\020unknown-argument\022unknown-attributes\027unknown-escape-sequence\017"
+    "unknown-pragmas\022unknown-sanitizers\026unknown-warning-option\032unna"
+    "med-type-template-args\035unneeded-internal-declaration\030unneeded-mem"
+    "ber-function\020unreachable-code\033unreachable-code-aggressive\026unre"
+    "achable-code-break\037unreachable-code-loop-increment\027unreachable-co"
+    "de-return\013unsequenced\016unsupported-cb#unsupported-dll-base-class-t"
+    "emplate\022unsupported-friend\017unsupported-nan\026unsupported-visibil"
+    "ity\037unusable-partial-specialization\006unused\017unused-argument\034"
+    "unused-command-line-argument\021unused-comparison\025unused-const-varia"
+    "ble\032unused-exception-parameter\017unused-function\032unused-getter-r"
+    "eturn-value\014unused-label\025unused-lambda-capture\024unused-local-ty"
+    "pedef\025unused-local-typedefs\015unused-macros\026unused-member-functi"
+    "on\020unused-parameter\024unused-private-field\024unused-property-ivar\015"
+    "unused-result\014unused-value\017unused-variable\026unused-volatile-lva"
+    "lue\026used-but-marked-unused\025user-defined-literals\025user-defined-"
+    "warnings\007varargs\017variadic-macros\015vec-elem-size\021vector-conve"
+    "rsion\022vector-conversions\014vexing-parse\nvisibility\003vla\015vla-e"
+    "xtension\024void-ptr-dereference\025volatile-register-var\025weak-templ"
+    "ate-vtables\014weak-vtables\020writable-strings\015write-strings\021zer"
+    "o-length-array"};
+
+#endif // GET_DIAG_ARRAYS
+
+
+#ifdef GET_DIAG_TABLE
+  { /*  */                                                      0, /* Empty */     0, /* DiagSubGroup0 */ 1 },
+  { /* #pragma-messages */                                      1, /* DiagArray1 */ 1, /* Empty */         0 },
+  { /* #warnings */                                             18, /* DiagArray2 */ 3, /* Empty */         0 },
+  { /* CFString-literal */                                      28, /* DiagArray3 */ 5, /* Empty */         0 },
+  { /* CL4 */                                                   45, /* Empty */     0, /* DiagSubGroup4 */ 3 },
+  { /* IndependentClass-attribute */                            49, /* DiagArray5 */ 7, /* Empty */         0 },
+  { /* NSObject-attribute */                                    76, /* DiagArray6 */ 10, /* Empty */         0 },
+  { /* abi */                                                   95, /* Empty */     0, /* Empty */         0 },
+  { /* absolute-value */                                        99, /* DiagArray8 */ 12, /* Empty */         0 },
+  { /* abstract-final-class */                                  114, /* DiagArray9 */ 17, /* Empty */         0 },
+  { /* abstract-vbase-init */                                   135, /* DiagArray10 */ 19, /* Empty */         0 },
+  { /* address */                                               155, /* Empty */     0, /* DiagSubGroup11 */ 6 },
+  { /* address-of-array-temporary */                            163, /* DiagArray12 */ 21, /* Empty */         0 },
+  { /* address-of-packed-member */                              190, /* DiagArray13 */ 23, /* Empty */         0 },
+  { /* address-of-temporary */                                  215, /* DiagArray14 */ 25, /* Empty */         0 },
+  { /* aggregate-return */                                      236, /* Empty */     0, /* Empty */         0 },
+  { /* all */                                                   253, /* Empty */     0, /* DiagSubGroup16 */ 10 },
+  { /* alloca-with-align-alignof */                             257, /* DiagArray17 */ 27, /* Empty */         0 },
+  { /* ambiguous-delete */                                      283, /* DiagArray18 */ 29, /* Empty */         0 },
+  { /* ambiguous-ellipsis */                                    300, /* DiagArray19 */ 31, /* Empty */         0 },
+  { /* ambiguous-macro */                                       319, /* DiagArray20 */ 33, /* Empty */         0 },
+  { /* ambiguous-member-template */                             335, /* DiagArray21 */ 35, /* Empty */         0 },
+  { /* analyzer-incompatible-plugin */                          361, /* DiagArray22 */ 37, /* Empty */         0 },
+  { /* anonymous-pack-parens */                                 390, /* DiagArray23 */ 39, /* Empty */         0 },
+  { /* arc */                                                   412, /* Empty */     0, /* DiagSubGroup24 */ 15 },
+  { /* arc-bridge-casts-disallowed-in-nonarc */                 416, /* DiagArray25 */ 41, /* Empty */         0 },
+  { /* arc-maybe-repeated-use-of-weak */                        454, /* DiagArray26 */ 43, /* Empty */         0 },
+  { /* arc-non-pod-memaccess */                                 485, /* DiagArray27 */ 45, /* Empty */         0 },
+  { /* arc-performSelector-leaks */                             507, /* DiagArray28 */ 47, /* Empty */         0 },
+  { /* arc-repeated-use-of-weak */                              533, /* DiagArray29 */ 49, /* DiagSubGroup29 */ 19 },
+  { /* arc-retain-cycles */                                     558, /* DiagArray30 */ 51, /* Empty */         0 },
+  { /* arc-unsafe-retained-assign */                            576, /* DiagArray31 */ 53, /* Empty */         0 },
+  { /* array-bounds */                                          603, /* DiagArray32 */ 57, /* Empty */         0 },
+  { /* array-bounds-pointer-arithmetic */                       616, /* DiagArray33 */ 62, /* Empty */         0 },
+  { /* asm */                                                   648, /* Empty */     0, /* DiagSubGroup34 */ 21 },
+  { /* asm-ignored-qualifier */                                 652, /* DiagArray35 */ 65, /* Empty */         0 },
+  { /* asm-operand-widths */                                    674, /* DiagArray36 */ 68, /* Empty */         0 },
+  { /* assign-enum */                                           693, /* DiagArray37 */ 70, /* Empty */         0 },
+  { /* assume */                                                705, /* DiagArray38 */ 72, /* Empty */         0 },
+  { /* at-protocol */                                           712, /* DiagArray39 */ 74, /* Empty */         0 },
+  { /* atomic-memory-ordering */                                724, /* DiagArray40 */ 76, /* Empty */         0 },
+  { /* atomic-properties */                                     747, /* Empty */     0, /* DiagSubGroup41 */ 24 },
+  { /* atomic-property-with-user-defined-accessor */            765, /* DiagArray42 */ 78, /* Empty */         0 },
+  { /* attribute-packed-for-bitfield */                         808, /* DiagArray43 */ 80, /* Empty */         0 },
+  { /* attributes */                                            838, /* Empty */     0, /* DiagSubGroup44 */ 27 },
+  { /* auto-disable-vptr-sanitizer */                           849, /* DiagArray45 */ 82, /* Empty */         0 },
+  { /* auto-import */                                           877, /* DiagArray46 */ 84, /* Empty */         0 },
+  { /* auto-storage-class */                                    889, /* DiagArray47 */ 86, /* Empty */         0 },
+  { /* auto-var-id */                                           908, /* DiagArray48 */ 88, /* Empty */         0 },
+  { /* availability */                                          920, /* DiagArray49 */ 90, /* Empty */         0 },
+  { /* backend-plugin */                                        933, /* DiagArray50 */ 98, /* Empty */         0 },
+  { /* backslash-newline-escape */                              948, /* DiagArray51 */ 100, /* Empty */         0 },
+  { /* bad-function-cast */                                     973, /* DiagArray52 */ 102, /* Empty */         0 },
+  { /* bind-to-temporary-copy */                                991, /* DiagArray53 */ 104, /* DiagSubGroup53 */ 30 },
+  { /* bitfield-constant-conversion */                          1014, /* DiagArray54 */ 107, /* Empty */         0 },
+  { /* bitfield-enum-conversion */                              1043, /* DiagArray55 */ 109, /* Empty */         0 },
+  { /* bitfield-width */                                        1068, /* DiagArray56 */ 113, /* Empty */         0 },
+  { /* bitwise-op-parentheses */                                1083, /* DiagArray57 */ 116, /* Empty */         0 },
+  { /* block-capture-autoreleasing */                           1106, /* DiagArray58 */ 118, /* Empty */         0 },
+  { /* bool-conversion */                                       1134, /* DiagArray59 */ 120, /* DiagSubGroup59 */ 32 },
+  { /* bool-conversions */                                      1150, /* Empty */     0, /* DiagSubGroup60 */ 35 },
+  { /* braced-scalar-init */                                    1167, /* DiagArray61 */ 122, /* Empty */         0 },
+  { /* bridge-cast */                                           1186, /* DiagArray62 */ 124, /* Empty */         0 },
+  { /* builtin-macro-redefined */                               1198, /* DiagArray63 */ 127, /* Empty */         0 },
+  { /* builtin-memcpy-chk-size */                               1222, /* DiagArray64 */ 130, /* Empty */         0 },
+  { /* builtin-requires-header */                               1246, /* DiagArray65 */ 132, /* Empty */         0 },
+  { /* c++-compat */                                            1270, /* DiagArray66 */ 134, /* Empty */         0 },
+  { /* c++0x-compat */                                          1281, /* Empty */     0, /* DiagSubGroup67 */ 37 },
+  { /* c++0x-extensions */                                      1294, /* Empty */     0, /* DiagSubGroup68 */ 39 },
+  { /* c++0x-narrowing */                                       1311, /* Empty */     0, /* DiagSubGroup69 */ 41 },
+  { /* c++11-compat */                                          1327, /* DiagArray70 */ 136, /* DiagSubGroup70 */ 43 },
+  { /* c++11-compat-deprecated-writable-strings */              1340, /* DiagArray71 */ 147, /* Empty */         0 },
+  { /* c++11-compat-pedantic */                                 1381, /* Empty */     0, /* DiagSubGroup72 */ 49 },
+  { /* c++11-compat-reserved-user-defined-literal */            1403, /* DiagArray73 */ 149, /* Empty */         0 },
+  { /* c++11-extensions */                                      1446, /* DiagArray74 */ 151, /* DiagSubGroup74 */ 52 },
+  { /* c++11-extra-semi */                                      1463, /* DiagArray75 */ 178, /* Empty */         0 },
+  { /* c++11-inline-namespace */                                1480, /* DiagArray76 */ 180, /* Empty */         0 },
+  { /* c++11-long-long */                                       1503, /* DiagArray77 */ 182, /* Empty */         0 },
+  { /* c++11-narrowing */                                       1519, /* DiagArray78 */ 184, /* Empty */         0 },
+  { /* c++14-binary-literal */                                  1535, /* DiagArray79 */ 192, /* Empty */         0 },
+  { /* c++14-compat */                                          1556, /* Empty */     0, /* DiagSubGroup80 */ 56 },
+  { /* c++14-compat-pedantic */                                 1569, /* Empty */     0, /* DiagSubGroup81 */ 58 },
+  { /* c++14-extensions */                                      1591, /* DiagArray82 */ 194, /* DiagSubGroup82 */ 60 },
+  { /* c++1y-extensions */                                      1608, /* Empty */     0, /* DiagSubGroup83 */ 62 },
+  { /* c++1z-compat */                                          1625, /* DiagArray84 */ 203, /* DiagSubGroup84 */ 64 },
+  { /* c++1z-extensions */                                      1638, /* DiagArray85 */ 205, /* Empty */         0 },
+  { /* c++98-c++11-c++14-compat */                              1655, /* DiagArray86 */ 222, /* Empty */         0 },
+  { /* c++98-c++11-c++14-compat-pedantic */                     1680, /* DiagArray87 */ 240, /* DiagSubGroup87 */ 67 },
+  { /* c++98-c++11-compat */                                    1714, /* DiagArray88 */ 242, /* Empty */         0 },
+  { /* c++98-c++11-compat-pedantic */                           1733, /* DiagArray89 */ 252, /* DiagSubGroup89 */ 69 },
+  { /* c++98-compat */                                          1761, /* DiagArray90 */ 254, /* DiagSubGroup90 */ 71 },
+  { /* c++98-compat-bind-to-temporary-copy */                   1774, /* DiagArray91 */ 315, /* Empty */         0 },
+  { /* c++98-compat-local-type-template-args */                 1810, /* DiagArray92 */ 317, /* Empty */         0 },
+  { /* c++98-compat-pedantic */                                 1848, /* DiagArray93 */ 319, /* DiagSubGroup93 */ 76 },
+  { /* c++98-compat-unnamed-type-template-args */               1870, /* DiagArray94 */ 330, /* Empty */         0 },
+  { /* c11-extensions */                                        1910, /* DiagArray95 */ 332, /* Empty */         0 },
+  { /* c99-compat */                                            1925, /* DiagArray96 */ 339, /* Empty */         0 },
+  { /* c99-extensions */                                        1936, /* DiagArray97 */ 343, /* Empty */         0 },
+  { /* cast-align */                                            1951, /* DiagArray98 */ 354, /* Empty */         0 },
+  { /* cast-calling-convention */                               1962, /* DiagArray99 */ 356, /* Empty */         0 },
+  { /* cast-of-sel-type */                                      1986, /* DiagArray100 */ 358, /* Empty */         0 },
+  { /* cast-qual */                                             2003, /* DiagArray101 */ 360, /* Empty */         0 },
+  { /* char-align */                                            2013, /* Empty */     0, /* Empty */         0 },
+  { /* char-subscripts */                                       2024, /* DiagArray103 */ 363, /* Empty */         0 },
+  { /* clang-cl-pch */                                          2040, /* DiagArray104 */ 366, /* Empty */         0 },
+  { /* class-varargs */                                         2053, /* DiagArray105 */ 371, /* DiagSubGroup105 */ 81 },
+  { /* comma */                                                 2067, /* DiagArray106 */ 373, /* Empty */         0 },
+  { /* comment */                                               2073, /* DiagArray107 */ 375, /* Empty */         0 },
+  { /* comments */                                              2081, /* Empty */     0, /* DiagSubGroup108 */ 83 },
+  { /* compare-distinct-pointer-types */                        2090, /* DiagArray109 */ 380, /* Empty */         0 },
+  { /* complex-component-init */                                2121, /* DiagArray110 */ 382, /* Empty */         0 },
+  { /* conditional-type-mismatch */                             2144, /* DiagArray111 */ 384, /* Empty */         0 },
+  { /* conditional-uninitialized */                             2170, /* DiagArray112 */ 386, /* Empty */         0 },
+  { /* config-macros */                                         2196, /* DiagArray113 */ 388, /* Empty */         0 },
+  { /* constant-conversion */                                   2210, /* DiagArray114 */ 390, /* DiagSubGroup114 */ 85 },
+  { /* constant-logical-operand */                              2230, /* DiagArray115 */ 392, /* Empty */         0 },
+  { /* constexpr-not-const */                                   2255, /* DiagArray116 */ 394, /* Empty */         0 },
+  { /* consumed */                                              2275, /* DiagArray117 */ 396, /* Empty */         0 },
+  { /* conversion */                                            2284, /* DiagArray118 */ 405, /* DiagSubGroup118 */ 87 },
+  { /* conversion-null */                                       2295, /* Empty */     0, /* DiagSubGroup119 */ 101 },
+  { /* coroutine */                                             2311, /* DiagArray120 */ 412, /* Empty */         0 },
+  { /* covered-switch-default */                                2321, /* DiagArray121 */ 414, /* Empty */         0 },
+  { /* cstring-format-directive */                              2344, /* DiagArray122 */ 416, /* Empty */         0 },
+  { /* ctor-dtor-privacy */                                     2369, /* Empty */     0, /* Empty */         0 },
+  { /* cuda-compat */                                           2387, /* DiagArray124 */ 418, /* Empty */         0 },
+  { /* custom-atomic-properties */                              2399, /* DiagArray125 */ 424, /* Empty */         0 },
+  { /* dangling-else */                                         2424, /* DiagArray126 */ 426, /* Empty */         0 },
+  { /* dangling-field */                                        2438, /* DiagArray127 */ 428, /* Empty */         0 },
+  { /* dangling-initializer-list */                             2453, /* DiagArray128 */ 432, /* Empty */         0 },
+  { /* date-time */                                             2479, /* DiagArray129 */ 434, /* Empty */         0 },
+  { /* dealloc-in-category */                                   2489, /* DiagArray130 */ 436, /* Empty */         0 },
+  { /* debug-compression-unavailable */                         2509, /* DiagArray131 */ 438, /* Empty */         0 },
+  { /* declaration-after-statement */                           2539, /* DiagArray132 */ 440, /* Empty */         0 },
+  { /* delegating-ctor-cycles */                                2567, /* DiagArray133 */ 442, /* Empty */         0 },
+  { /* delete-incomplete */                                     2590, /* DiagArray134 */ 444, /* Empty */         0 },
+  { /* delete-non-virtual-dtor */                               2608, /* DiagArray135 */ 447, /* Empty */         0 },
+  { /* deprecated */                                            2632, /* DiagArray136 */ 450, /* DiagSubGroup136 */ 103 },
+  { /* deprecated-attributes */                                 2643, /* DiagArray137 */ 459, /* Empty */         0 },
+  { /* deprecated-declarations */                               2665, /* DiagArray138 */ 461, /* Empty */         0 },
+  { /* deprecated-dynamic-exception-spec */                     2689, /* DiagArray139 */ 467, /* Empty */         0 },
+  { /* deprecated-implementations */                            2723, /* DiagArray140 */ 469, /* Empty */         0 },
+  { /* deprecated-increment-bool */                             2750, /* DiagArray141 */ 471, /* Empty */         0 },
+  { /* deprecated-objc-isa-usage */                             2776, /* DiagArray142 */ 473, /* Empty */         0 },
+  { /* deprecated-objc-pointer-introspection */                 2802, /* DiagArray143 */ 476, /* DiagSubGroup143 */ 110 },
+  { /* deprecated-objc-pointer-introspection-performSelector */ 2840, /* DiagArray144 */ 478, /* Empty */         0 },
+  { /* deprecated-register */                                   2894, /* DiagArray145 */ 480, /* Empty */         0 },
+  { /* deprecated-writable-strings */                           2914, /* Empty */     0, /* DiagSubGroup146 */ 112 },
+  { /* direct-ivar-access */                                    2942, /* DiagArray147 */ 482, /* Empty */         0 },
+  { /* disabled-macro-expansion */                              2961, /* DiagArray148 */ 484, /* Empty */         0 },
+  { /* disabled-optimization */                                 2986, /* Empty */     0, /* Empty */         0 },
+  { /* discard-qual */                                          3008, /* Empty */     0, /* Empty */         0 },
+  { /* distributed-object-modifiers */                          3021, /* DiagArray151 */ 486, /* Empty */         0 },
+  { /* div-by-zero */                                           3050, /* Empty */     0, /* DiagSubGroup152 */ 114 },
+  { /* division-by-zero */                                      3062, /* DiagArray153 */ 489, /* Empty */         0 },
+  { /* dll-attribute-on-redeclaration */                        3079, /* DiagArray154 */ 491, /* Empty */         0 },
+  { /* dllexport-explicit-instantiation-decl */                 3110, /* DiagArray155 */ 493, /* Empty */         0 },
+  { /* dllimport-static-field-def */                            3148, /* DiagArray156 */ 495, /* Empty */         0 },
+  { /* documentation */                                         3175, /* DiagArray157 */ 497, /* DiagSubGroup157 */ 116 },
+  { /* documentation-deprecated-sync */                         3189, /* DiagArray158 */ 516, /* Empty */         0 },
+  { /* documentation-html */                                    3219, /* DiagArray159 */ 518, /* Empty */         0 },
+  { /* documentation-pedantic */                                3238, /* DiagArray160 */ 523, /* DiagSubGroup160 */ 119 },
+  { /* documentation-unknown-command */                         3261, /* DiagArray161 */ 525, /* Empty */         0 },
+  { /* dollar-in-identifier-extension */                        3291, /* DiagArray162 */ 528, /* Empty */         0 },
+  { /* double-promotion */                                      3322, /* DiagArray163 */ 530, /* Empty */         0 },
+  { /* duplicate-decl-specifier */                              3339, /* DiagArray164 */ 532, /* Empty */         0 },
+  { /* duplicate-enum */                                        3364, /* DiagArray165 */ 535, /* Empty */         0 },
+  { /* duplicate-method-arg */                                  3379, /* DiagArray166 */ 537, /* Empty */         0 },
+  { /* duplicate-method-match */                                3400, /* DiagArray167 */ 539, /* Empty */         0 },
+  { /* duplicate-protocol */                                    3423, /* DiagArray168 */ 541, /* Empty */         0 },
+  { /* dynamic-class-memaccess */                               3442, /* DiagArray169 */ 543, /* Empty */         0 },
+  { /* dynamic-exception-spec */                                3466, /* DiagArray170 */ 545, /* DiagSubGroup170 */ 121 },
+  { /* effc++ */                                                3489, /* Empty */     0, /* DiagSubGroup171 */ 123 },
+  { /* embedded-directive */                                    3496, /* DiagArray172 */ 547, /* Empty */         0 },
+  { /* empty-body */                                            3515, /* DiagArray173 */ 549, /* Empty */         0 },
+  { /* empty-decomposition */                                   3526, /* DiagArray174 */ 555, /* Empty */         0 },
+  { /* empty-translation-unit */                                3546, /* DiagArray175 */ 557, /* Empty */         0 },
+  { /* encode-type */                                           3569, /* DiagArray176 */ 559, /* Empty */         0 },
+  { /* endif-labels */                                          3581, /* Empty */     0, /* DiagSubGroup177 */ 125 },
+  { /* enum-compare */                                          3594, /* DiagArray178 */ 561, /* Empty */         0 },
+  { /* enum-conversion */                                       3607, /* DiagArray179 */ 563, /* Empty */         0 },
+  { /* enum-too-large */                                        3623, /* DiagArray180 */ 565, /* Empty */         0 },
+  { /* exceptions */                                            3638, /* DiagArray181 */ 568, /* Empty */         0 },
+  { /* exit-time-destructors */                                 3649, /* DiagArray182 */ 571, /* Empty */         0 },
+  { /* expansion-to-defined */                                  3671, /* DiagArray183 */ 573, /* Empty */         0 },
+  { /* explicit-initialize-call */                              3692, /* DiagArray184 */ 576, /* Empty */         0 },
+  { /* explicit-ownership-type */                               3717, /* DiagArray185 */ 579, /* Empty */         0 },
+  { /* extended-offsetof */                                     3741, /* DiagArray186 */ 581, /* Empty */         0 },
+  { /* extern-c-compat */                                       3759, /* DiagArray187 */ 583, /* Empty */         0 },
+  { /* extern-initializer */                                    3775, /* DiagArray188 */ 585, /* Empty */         0 },
+  { /* extra */                                                 3794, /* DiagArray189 */ 587, /* DiagSubGroup189 */ 127 },
+  { /* extra-qualification */                                   3800, /* DiagArray190 */ 589, /* Empty */         0 },
+  { /* extra-semi */                                            3820, /* DiagArray191 */ 591, /* DiagSubGroup191 */ 135 },
+  { /* extra-tokens */                                          3831, /* DiagArray192 */ 594, /* Empty */         0 },
+  { /* fallback */                                              3844, /* DiagArray193 */ 597, /* Empty */         0 },
+  { /* flag-enum */                                             3853, /* DiagArray194 */ 599, /* Empty */         0 },
+  { /* flexible-array-extensions */                             3863, /* DiagArray195 */ 601, /* Empty */         0 },
+  { /* float-conversion */                                      3889, /* DiagArray196 */ 604, /* DiagSubGroup196 */ 137 },
+  { /* float-equal */                                           3906, /* DiagArray197 */ 606, /* Empty */         0 },
+  { /* float-overflow-conversion */                             3918, /* DiagArray198 */ 608, /* Empty */         0 },
+  { /* float-zero-conversion */                                 3944, /* DiagArray199 */ 610, /* Empty */         0 },
+  { /* for-loop-analysis */                                     3966, /* DiagArray200 */ 612, /* Empty */         0 },
+  { /* format */                                                3984, /* DiagArray201 */ 615, /* DiagSubGroup201 */ 140 },
+  { /* format-extra-args */                                     3991, /* DiagArray202 */ 641, /* Empty */         0 },
+  { /* format-invalid-specifier */                              4009, /* DiagArray203 */ 643, /* Empty */         0 },
+  { /* format-non-iso */                                        4034, /* DiagArray204 */ 645, /* Empty */         0 },
+  { /* format-nonliteral */                                     4049, /* DiagArray205 */ 649, /* Empty */         0 },
+  { /* format-pedantic */                                       4067, /* DiagArray206 */ 651, /* Empty */         0 },
+  { /* format-security */                                       4083, /* DiagArray207 */ 653, /* Empty */         0 },
+  { /* format-y2k */                                            4099, /* Empty */     0, /* Empty */         0 },
+  { /* format-zero-length */                                    4110, /* DiagArray209 */ 655, /* Empty */         0 },
+  { /* format=2 */                                              4129, /* Empty */     0, /* DiagSubGroup210 */ 147 },
+  { /* four-char-constants */                                   4138, /* DiagArray211 */ 657, /* Empty */         0 },
+  { /* frame-larger-than= */                                    4158, /* DiagArray212 */ 659, /* Empty */         0 },
+  { /* function-def-in-objc-container */                        4177, /* DiagArray213 */ 662, /* Empty */         0 },
+  { /* future-compat */                                         4208, /* Empty */     0, /* Empty */         0 },
+  { /* gcc-compat */                                            4222, /* DiagArray215 */ 664, /* Empty */         0 },
+  { /* global-constructors */                                   4233, /* DiagArray216 */ 673, /* Empty */         0 },
+  { /* gnu */                                                   4253, /* Empty */     0, /* DiagSubGroup217 */ 151 },
+  { /* gnu-alignof-expression */                                4257, /* DiagArray218 */ 676, /* Empty */         0 },
+  { /* gnu-anonymous-struct */                                  4280, /* DiagArray219 */ 678, /* Empty */         0 },
+  { /* gnu-array-member-paren-init */                           4301, /* DiagArray220 */ 680, /* Empty */         0 },
+  { /* gnu-auto-type */                                         4329, /* DiagArray221 */ 682, /* Empty */         0 },
+  { /* gnu-binary-literal */                                    4343, /* DiagArray222 */ 684, /* Empty */         0 },
+  { /* gnu-case-range */                                        4362, /* DiagArray223 */ 686, /* Empty */         0 },
+  { /* gnu-complex-integer */                                   4377, /* DiagArray224 */ 688, /* Empty */         0 },
+  { /* gnu-compound-literal-initializer */                      4397, /* DiagArray225 */ 690, /* Empty */         0 },
+  { /* gnu-conditional-omitted-operand */                       4430, /* DiagArray226 */ 692, /* Empty */         0 },
+  { /* gnu-designator */                                        4462, /* DiagArray227 */ 694, /* Empty */         0 },
+  { /* gnu-empty-initializer */                                 4477, /* DiagArray228 */ 698, /* Empty */         0 },
+  { /* gnu-empty-struct */                                      4499, /* DiagArray229 */ 700, /* Empty */         0 },
+  { /* gnu-flexible-array-initializer */                        4516, /* DiagArray230 */ 704, /* Empty */         0 },
+  { /* gnu-flexible-array-union-member */                       4547, /* DiagArray231 */ 706, /* Empty */         0 },
+  { /* gnu-folding-constant */                                  4579, /* DiagArray232 */ 708, /* Empty */         0 },
+  { /* gnu-imaginary-constant */                                4600, /* DiagArray233 */ 712, /* Empty */         0 },
+  { /* gnu-include-next */                                      4623, /* DiagArray234 */ 714, /* Empty */         0 },
+  { /* gnu-label-as-value */                                    4640, /* DiagArray235 */ 716, /* Empty */         0 },
+  { /* gnu-redeclared-enum */                                   4659, /* DiagArray236 */ 719, /* Empty */         0 },
+  { /* gnu-statement-expression */                              4679, /* DiagArray237 */ 721, /* Empty */         0 },
+  { /* gnu-static-float-init */                                 4704, /* DiagArray238 */ 723, /* Empty */         0 },
+  { /* gnu-string-literal-operator-template */                  4726, /* DiagArray239 */ 725, /* Empty */         0 },
+  { /* gnu-union-cast */                                        4763, /* DiagArray240 */ 727, /* Empty */         0 },
+  { /* gnu-variable-sized-type-not-at-end */                    4778, /* DiagArray241 */ 729, /* Empty */         0 },
+  { /* gnu-zero-line-directive */                               4813, /* DiagArray242 */ 731, /* Empty */         0 },
+  { /* gnu-zero-variadic-macro-arguments */                     4837, /* DiagArray243 */ 733, /* Empty */         0 },
+  { /* header-guard */                                          4871, /* DiagArray244 */ 736, /* Empty */         0 },
+  { /* header-hygiene */                                        4884, /* DiagArray245 */ 738, /* Empty */         0 },
+  { /* idiomatic-parentheses */                                 4899, /* DiagArray246 */ 740, /* Empty */         0 },
+  { /* ignored-attributes */                                    4921, /* DiagArray247 */ 742, /* Empty */         0 },
+  { /* ignored-optimization-argument */                         4940, /* DiagArray248 */ 795, /* Empty */         0 },
+  { /* ignored-pragma-intrinsic */                              4970, /* DiagArray249 */ 798, /* Empty */         0 },
+  { /* ignored-pragmas */                                       4995, /* DiagArray250 */ 800, /* DiagSubGroup250 */ 180 },
+  { /* ignored-qualifiers */                                    5011, /* DiagArray251 */ 839, /* Empty */         0 },
+  { /* implicit */                                              5030, /* Empty */     0, /* DiagSubGroup252 */ 182 },
+  { /* implicit-atomic-properties */                            5039, /* DiagArray253 */ 845, /* Empty */         0 },
+  { /* implicit-conversion-floating-point-to-bool */            5066, /* DiagArray254 */ 848, /* Empty */         0 },
+  { /* implicit-exception-spec-mismatch */                      5109, /* DiagArray255 */ 850, /* Empty */         0 },
+  { /* implicit-fallthrough */                                  5142, /* DiagArray256 */ 852, /* DiagSubGroup256 */ 185 },
+  { /* implicit-fallthrough-per-function */                     5163, /* DiagArray257 */ 855, /* Empty */         0 },
+  { /* implicit-function-declaration */                         5197, /* DiagArray258 */ 857, /* Empty */         0 },
+  { /* implicit-int */                                          5227, /* DiagArray259 */ 862, /* Empty */         0 },
+  { /* implicit-retain-self */                                  5240, /* DiagArray260 */ 864, /* Empty */         0 },
+  { /* implicitly-unsigned-literal */                           5261, /* DiagArray261 */ 866, /* Empty */         0 },
+  { /* import */                                                5289, /* Empty */     0, /* Empty */         0 },
+  { /* import-preprocessor-directive-pedantic */                5296, /* DiagArray263 */ 868, /* Empty */         0 },
+  { /* inaccessible-base */                                     5335, /* DiagArray264 */ 870, /* Empty */         0 },
+  { /* include-next-absolute-path */                            5353, /* DiagArray265 */ 872, /* Empty */         0 },
+  { /* include-next-outside-header */                           5380, /* DiagArray266 */ 874, /* Empty */         0 },
+  { /* incompatible-exception-spec */                           5408, /* DiagArray267 */ 876, /* Empty */         0 },
+  { /* incompatible-function-pointer-types */                   5436, /* DiagArray268 */ 879, /* Empty */         0 },
+  { /* incompatible-library-redeclaration */                    5472, /* DiagArray269 */ 881, /* Empty */         0 },
+  { /* incompatible-ms-struct */                                5507, /* DiagArray270 */ 883, /* Empty */         0 },
+  { /* incompatible-pointer-types */                            5530, /* DiagArray271 */ 885, /* DiagSubGroup271 */ 187 },
+  { /* incompatible-pointer-types-discards-qualifiers */        5557, /* DiagArray272 */ 887, /* Empty */         0 },
+  { /* incompatible-property-type */                            5604, /* DiagArray273 */ 890, /* Empty */         0 },
+  { /* incompatible-sysroot */                                  5631, /* DiagArray274 */ 892, /* Empty */         0 },
+  { /* incomplete-implementation */                             5652, /* DiagArray275 */ 894, /* Empty */         0 },
+  { /* incomplete-module */                                     5678, /* Empty */     0, /* DiagSubGroup276 */ 190 },
+  { /* incomplete-umbrella */                                   5696, /* DiagArray277 */ 896, /* Empty */         0 },
+  { /* inconsistent-dllimport */                                5716, /* DiagArray278 */ 899, /* Empty */         0 },
+  { /* inconsistent-missing-destructor-override */              5739, /* DiagArray279 */ 902, /* Empty */         0 },
+  { /* inconsistent-missing-override */                         5780, /* DiagArray280 */ 904, /* Empty */         0 },
+  { /* increment-bool */                                        5810, /* DiagArray281 */ 906, /* DiagSubGroup281 */ 193 },
+  { /* infinite-recursion */                                    5825, /* DiagArray282 */ 908, /* Empty */         0 },
+  { /* init-self */                                             5844, /* Empty */     0, /* Empty */         0 },
+  { /* initializer-overrides */                                 5854, /* DiagArray284 */ 910, /* Empty */         0 },
+  { /* injected-class-name */                                   5876, /* DiagArray285 */ 913, /* Empty */         0 },
+  { /* inline */                                                5896, /* Empty */     0, /* Empty */         0 },
+  { /* inline-asm */                                            5903, /* DiagArray287 */ 915, /* Empty */         0 },
+  { /* inline-new-delete */                                     5914, /* DiagArray288 */ 917, /* Empty */         0 },
+  { /* instantiation-after-specialization */                    5932, /* DiagArray289 */ 919, /* Empty */         0 },
+  { /* int-conversion */                                        5967, /* DiagArray290 */ 921, /* Empty */         0 },
+  { /* int-conversions */                                       5982, /* Empty */     0, /* DiagSubGroup291 */ 195 },
+  { /* int-to-pointer-cast */                                   5998, /* DiagArray292 */ 924, /* DiagSubGroup292 */ 197 },
+  { /* int-to-void-pointer-cast */                              6018, /* DiagArray293 */ 926, /* Empty */         0 },
+  { /* integer-overflow */                                      6043, /* DiagArray294 */ 928, /* Empty */         0 },
+  { /* invalid-command-line-argument */                         6060, /* DiagArray295 */ 930, /* DiagSubGroup295 */ 199 },
+  { /* invalid-constexpr */                                     6090, /* DiagArray296 */ 932, /* Empty */         0 },
+  { /* invalid-iboutlet */                                      6108, /* DiagArray297 */ 934, /* Empty */         0 },
+  { /* invalid-initializer-from-system-header */                6125, /* DiagArray298 */ 937, /* Empty */         0 },
+  { /* invalid-noreturn */                                      6164, /* DiagArray299 */ 939, /* Empty */         0 },
+  { /* invalid-offsetof */                                      6181, /* DiagArray300 */ 942, /* Empty */         0 },
+  { /* invalid-or-nonexistent-directory */                      6198, /* DiagArray301 */ 945, /* Empty */         0 },
+  { /* invalid-partial-specialization */                        6231, /* DiagArray302 */ 948, /* Empty */         0 },
+  { /* invalid-pch */                                           6262, /* Empty */     0, /* Empty */         0 },
+  { /* invalid-pp-token */                                      6274, /* DiagArray304 */ 950, /* Empty */         0 },
+  { /* invalid-source-encoding */                               6291, /* DiagArray305 */ 953, /* Empty */         0 },
+  { /* invalid-token-paste */                                   6315, /* DiagArray306 */ 956, /* Empty */         0 },
+  { /* jump-seh-finally */                                      6335, /* DiagArray307 */ 958, /* Empty */         0 },
+  { /* keyword-compat */                                        6352, /* DiagArray308 */ 960, /* Empty */         0 },
+  { /* keyword-macro */                                         6367, /* DiagArray309 */ 962, /* Empty */         0 },
+  { /* knr-promoted-parameter */                                6381, /* DiagArray310 */ 964, /* Empty */         0 },
+  { /* language-extension-token */                              6404, /* DiagArray311 */ 966, /* Empty */         0 },
+  { /* large-by-value-copy */                                   6429, /* DiagArray312 */ 968, /* Empty */         0 },
+  { /* liblto */                                                6449, /* Empty */     0, /* Empty */         0 },
+  { /* literal-conversion */                                    6456, /* DiagArray314 */ 971, /* Empty */         0 },
+  { /* literal-range */                                         6475, /* DiagArray315 */ 973, /* Empty */         0 },
+  { /* local-type-template-args */                              6489, /* DiagArray316 */ 976, /* DiagSubGroup316 */ 201 },
+  { /* logical-not-parentheses */                               6514, /* DiagArray317 */ 978, /* Empty */         0 },
+  { /* logical-op-parentheses */                                6538, /* DiagArray318 */ 980, /* Empty */         0 },
+  { /* long-long */                                             6561, /* DiagArray319 */ 982, /* DiagSubGroup319 */ 203 },
+  { /* loop-analysis */                                         6571, /* Empty */     0, /* DiagSubGroup320 */ 205 },
+  { /* macro-redefined */                                       6585, /* DiagArray321 */ 984, /* Empty */         0 },
+  { /* main */                                                  6601, /* DiagArray322 */ 986, /* Empty */         0 },
+  { /* main-return-type */                                      6606, /* DiagArray323 */ 994, /* Empty */         0 },
+  { /* malformed-warning-check */                               6623, /* DiagArray324 */ 996, /* Empty */         0 },
+  { /* many-braces-around-scalar-init */                        6647, /* DiagArray325 */ 998, /* Empty */         0 },
+  { /* max-unsigned-zero */                                     6678, /* DiagArray326 */ 1000, /* Empty */         0 },
+  { /* memsize-comparison */                                    6696, /* DiagArray327 */ 1002, /* Empty */         0 },
+  { /* method-signatures */                                     6715, /* DiagArray328 */ 1004, /* Empty */         0 },
+  { /* microsoft */                                             6733, /* Empty */     0, /* DiagSubGroup329 */ 208 },
+  { /* microsoft-anon-tag */                                    6743, /* DiagArray330 */ 1007, /* Empty */         0 },
+  { /* microsoft-cast */                                        6762, /* DiagArray331 */ 1010, /* Empty */         0 },
+  { /* microsoft-charize */                                     6777, /* DiagArray332 */ 1013, /* Empty */         0 },
+  { /* microsoft-comment-paste */                               6795, /* DiagArray333 */ 1015, /* Empty */         0 },
+  { /* microsoft-const-init */                                  6819, /* DiagArray334 */ 1017, /* Empty */         0 },
+  { /* microsoft-cpp-macro */                                   6840, /* DiagArray335 */ 1019, /* Empty */         0 },
+  { /* microsoft-default-arg-redefinition */                    6860, /* DiagArray336 */ 1021, /* Empty */         0 },
+  { /* microsoft-end-of-file */                                 6895, /* DiagArray337 */ 1023, /* Empty */         0 },
+  { /* microsoft-enum-forward-reference */                      6917, /* DiagArray338 */ 1025, /* Empty */         0 },
+  { /* microsoft-enum-value */                                  6950, /* DiagArray339 */ 1027, /* Empty */         0 },
+  { /* microsoft-exception-spec */                              6971, /* DiagArray340 */ 1029, /* Empty */         0 },
+  { /* microsoft-exists */                                      6996, /* DiagArray341 */ 1036, /* Empty */         0 },
+  { /* microsoft-explicit-constructor-call */                   7013, /* DiagArray342 */ 1038, /* Empty */         0 },
+  { /* microsoft-extra-qualification */                         7049, /* DiagArray343 */ 1040, /* Empty */         0 },
+  { /* microsoft-fixed-enum */                                  7079, /* DiagArray344 */ 1042, /* Empty */         0 },
+  { /* microsoft-flexible-array */                              7100, /* DiagArray345 */ 1044, /* Empty */         0 },
+  { /* microsoft-goto */                                        7125, /* DiagArray346 */ 1047, /* Empty */         0 },
+  { /* microsoft-include */                                     7140, /* DiagArray347 */ 1049, /* Empty */         0 },
+  { /* microsoft-mutable-reference */                           7158, /* DiagArray348 */ 1051, /* Empty */         0 },
+  { /* microsoft-pure-definition */                             7186, /* DiagArray349 */ 1053, /* Empty */         0 },
+  { /* microsoft-redeclare-static */                            7212, /* DiagArray350 */ 1055, /* Empty */         0 },
+  { /* microsoft-sealed */                                      7239, /* DiagArray351 */ 1057, /* Empty */         0 },
+  { /* microsoft-template */                                    7256, /* DiagArray352 */ 1059, /* Empty */         0 },
+  { /* microsoft-union-member-reference */                      7275, /* DiagArray353 */ 1068, /* Empty */         0 },
+  { /* microsoft-unqualified-friend */                          7308, /* DiagArray354 */ 1070, /* Empty */         0 },
+  { /* microsoft-using-decl */                                  7337, /* DiagArray355 */ 1072, /* Empty */         0 },
+  { /* microsoft-void-pseudo-dtor */                            7358, /* DiagArray356 */ 1074, /* Empty */         0 },
+  { /* mismatched-new-delete */                                 7385, /* DiagArray357 */ 1076, /* Empty */         0 },
+  { /* mismatched-parameter-types */                            7407, /* DiagArray358 */ 1078, /* Empty */         0 },
+  { /* mismatched-return-types */                               7434, /* DiagArray359 */ 1080, /* Empty */         0 },
+  { /* mismatched-tags */                                       7458, /* DiagArray360 */ 1082, /* Empty */         0 },
+  { /* missing-braces */                                        7474, /* DiagArray361 */ 1085, /* Empty */         0 },
+  { /* missing-declarations */                                  7489, /* DiagArray362 */ 1087, /* Empty */         0 },
+  { /* missing-exception-spec */                                7510, /* DiagArray363 */ 1092, /* Empty */         0 },
+  { /* missing-field-initializers */                            7533, /* DiagArray364 */ 1094, /* Empty */         0 },
+  { /* missing-format-attribute */                              7560, /* Empty */     0, /* Empty */         0 },
+  { /* missing-include-dirs */                                  7585, /* Empty */     0, /* Empty */         0 },
+  { /* missing-method-return-type */                            7606, /* DiagArray367 */ 1096, /* Empty */         0 },
+  { /* missing-noreturn */                                      7633, /* DiagArray368 */ 1098, /* Empty */         0 },
+  { /* missing-prototype-for-cc */                              7650, /* DiagArray369 */ 1101, /* Empty */         0 },
+  { /* missing-prototypes */                                    7675, /* DiagArray370 */ 1103, /* Empty */         0 },
+  { /* missing-selector-name */                                 7694, /* DiagArray371 */ 1105, /* Empty */         0 },
+  { /* missing-sysroot */                                       7716, /* DiagArray372 */ 1107, /* Empty */         0 },
+  { /* missing-variable-declarations */                         7732, /* DiagArray373 */ 1109, /* Empty */         0 },
+  { /* module-build */                                          7762, /* DiagArray374 */ 1111, /* Empty */         0 },
+  { /* module-conflict */                                       7775, /* DiagArray375 */ 1116, /* Empty */         0 },
+  { /* module-file-config-mismatch */                           7791, /* DiagArray376 */ 1119, /* Empty */         0 },
+  { /* module-file-extension */                                 7819, /* DiagArray377 */ 1121, /* Empty */         0 },
+  { /* module-import-in-extern-c */                             7841, /* DiagArray378 */ 1123, /* Empty */         0 },
+  { /* modules-ambiguous-internal-linkage */                    7867, /* DiagArray379 */ 1125, /* Empty */         0 },
+  { /* modules-import-nested-redundant */                       7902, /* DiagArray380 */ 1127, /* Empty */         0 },
+  { /* most */                                                  7934, /* Empty */     0, /* DiagSubGroup381 */ 236 },
+  { /* move */                                                  7939, /* Empty */     0, /* DiagSubGroup382 */ 267 },
+  { /* msvc-include */                                          7944, /* Empty */     0, /* DiagSubGroup383 */ 271 },
+  { /* msvc-not-found */                                        7957, /* DiagArray384 */ 1129, /* Empty */         0 },
+  { /* multichar */                                             7972, /* DiagArray385 */ 1131, /* Empty */         0 },
+  { /* multiple-move-vbase */                                   7982, /* DiagArray386 */ 1133, /* Empty */         0 },
+  { /* narrowing */                                             8002, /* Empty */     0, /* DiagSubGroup387 */ 273 },
+  { /* nested-anon-types */                                     8012, /* DiagArray388 */ 1135, /* Empty */         0 },
+  { /* nested-externs */                                        8030, /* Empty */     0, /* Empty */         0 },
+  { /* new-returns-null */                                      8045, /* DiagArray390 */ 1137, /* Empty */         0 },
+  { /* newline-eof */                                           8062, /* DiagArray391 */ 1139, /* Empty */         0 },
+  { /* non-gcc */                                               8074, /* Empty */     0, /* DiagSubGroup392 */ 275 },
+  { /* non-literal-null-conversion */                           8082, /* DiagArray393 */ 1142, /* Empty */         0 },
+  { /* non-modular-include-in-framework-module */               8110, /* DiagArray394 */ 1144, /* Empty */         0 },
+  { /* non-modular-include-in-module */                         8150, /* DiagArray395 */ 1146, /* DiagSubGroup395 */ 279 },
+  { /* non-pod-varargs */                                       8180, /* DiagArray396 */ 1148, /* Empty */         0 },
+  { /* non-virtual-dtor */                                      8196, /* DiagArray397 */ 1153, /* Empty */         0 },
+  { /* nonnull */                                               8213, /* DiagArray398 */ 1155, /* Empty */         0 },
+  { /* nonportable-cfstrings */                                 8221, /* Empty */     0, /* Empty */         0 },
+  { /* nonportable-include-path */                              8243, /* DiagArray400 */ 1158, /* Empty */         0 },
+  { /* nonportable-system-include-path */                       8268, /* DiagArray401 */ 1160, /* Empty */         0 },
+  { /* nonportable-vector-initialization */                     8300, /* DiagArray402 */ 1162, /* Empty */         0 },
+  { /* null-arithmetic */                                       8334, /* DiagArray403 */ 1164, /* Empty */         0 },
+  { /* null-character */                                        8350, /* DiagArray404 */ 1167, /* Empty */         0 },
+  { /* null-conversion */                                       8365, /* DiagArray405 */ 1170, /* Empty */         0 },
+  { /* null-dereference */                                      8381, /* DiagArray406 */ 1172, /* Empty */         0 },
+  { /* nullability */                                           8398, /* DiagArray407 */ 1175, /* Empty */         0 },
+  { /* nullability-completeness */                              8410, /* DiagArray408 */ 1181, /* DiagSubGroup408 */ 281 },
+  { /* nullability-completeness-on-arrays */                    8435, /* DiagArray409 */ 1183, /* Empty */         0 },
+  { /* nullability-declspec */                                  8470, /* DiagArray410 */ 1185, /* Empty */         0 },
+  { /* nullability-extension */                                 8491, /* DiagArray411 */ 1187, /* Empty */         0 },
+  { /* nullability-inferred-on-nested-type */                   8513, /* DiagArray412 */ 1189, /* Empty */         0 },
+  { /* nullable-to-nonnull-conversion */                        8549, /* DiagArray413 */ 1191, /* Empty */         0 },
+  { /* objc-autosynthesis-property-ivar-name-match */           8580, /* DiagArray414 */ 1193, /* Empty */         0 },
+  { /* objc-circular-container */                               8624, /* DiagArray415 */ 1195, /* Empty */         0 },
+  { /* objc-cocoa-api */                                        8648, /* Empty */     0, /* DiagSubGroup416 */ 283 },
+  { /* objc-designated-initializers */                          8663, /* DiagArray417 */ 1197, /* Empty */         0 },
+  { /* objc-forward-class-redefinition */                       8692, /* DiagArray418 */ 1204, /* Empty */         0 },
+  { /* objc-interface-ivars */                                  8724, /* DiagArray419 */ 1206, /* Empty */         0 },
+  { /* objc-literal-compare */                                  8745, /* DiagArray420 */ 1208, /* DiagSubGroup420 */ 285 },
+  { /* objc-literal-conversion */                               8766, /* DiagArray421 */ 1210, /* Empty */         0 },
+  { /* objc-macro-redefinition */                               8790, /* DiagArray422 */ 1213, /* Empty */         0 },
+  { /* objc-method-access */                                    8814, /* DiagArray423 */ 1215, /* Empty */         0 },
+  { /* objc-missing-property-synthesis */                       8833, /* DiagArray424 */ 1222, /* Empty */         0 },
+  { /* objc-missing-super-calls */                              8865, /* DiagArray425 */ 1224, /* Empty */         0 },
+  { /* objc-multiple-method-names */                            8890, /* DiagArray426 */ 1226, /* Empty */         0 },
+  { /* objc-noncopy-retain-block-property */                    8917, /* DiagArray427 */ 1228, /* Empty */         0 },
+  { /* objc-nonunified-exceptions */                            8952, /* DiagArray428 */ 1230, /* Empty */         0 },
+  { /* objc-property-implementation */                          8979, /* DiagArray429 */ 1232, /* Empty */         0 },
+  { /* objc-property-implicit-mismatch */                       9008, /* DiagArray430 */ 1237, /* Empty */         0 },
+  { /* objc-property-matches-cocoa-ownership-rule */            9040, /* DiagArray431 */ 1239, /* Empty */         0 },
+  { /* objc-property-no-attribute */                            9083, /* DiagArray432 */ 1241, /* Empty */         0 },
+  { /* objc-property-synthesis */                               9110, /* DiagArray433 */ 1244, /* Empty */         0 },
+  { /* objc-protocol-method-implementation */                   9134, /* DiagArray434 */ 1248, /* Empty */         0 },
+  { /* objc-protocol-property-synthesis */                      9170, /* DiagArray435 */ 1250, /* Empty */         0 },
+  { /* objc-protocol-qualifiers */                              9203, /* DiagArray436 */ 1252, /* Empty */         0 },
+  { /* objc-readonly-with-setter-property */                    9228, /* DiagArray437 */ 1254, /* Empty */         0 },
+  { /* objc-redundant-api-use */                                9263, /* Empty */     0, /* DiagSubGroup438 */ 287 },
+  { /* objc-redundant-literal-use */                            9286, /* DiagArray439 */ 1256, /* Empty */         0 },
+  { /* objc-root-class */                                       9313, /* DiagArray440 */ 1258, /* Empty */         0 },
+  { /* objc-string-compare */                                   9329, /* DiagArray441 */ 1260, /* Empty */         0 },
+  { /* objc-string-concatenation */                             9349, /* DiagArray442 */ 1262, /* Empty */         0 },
+  { /* objc-unsafe-perform-selector */                          9375, /* DiagArray443 */ 1264, /* Empty */         0 },
+  { /* odr */                                                   9404, /* DiagArray444 */ 1266, /* Empty */         0 },
+  { /* old-style-cast */                                        9408, /* DiagArray445 */ 1268, /* Empty */         0 },
+  { /* old-style-definition */                                  9423, /* Empty */     0, /* Empty */         0 },
+  { /* opencl-unsupported-rgba */                               9444, /* DiagArray447 */ 1270, /* Empty */         0 },
+  { /* openmp-clauses */                                        9468, /* DiagArray448 */ 1272, /* Empty */         0 },
+  { /* openmp-loop-form */                                      9483, /* DiagArray449 */ 1275, /* Empty */         0 },
+  { /* openmp-target */                                         9500, /* DiagArray450 */ 1278, /* Empty */         0 },
+  { /* option-ignored */                                        9514, /* DiagArray451 */ 1281, /* Empty */         0 },
+  { /* out-of-line-declaration */                               9529, /* DiagArray452 */ 1283, /* Empty */         0 },
+  { /* over-aligned */                                          9553, /* DiagArray453 */ 1285, /* Empty */         0 },
+  { /* overflow */                                              9566, /* Empty */     0, /* Empty */         0 },
+  { /* overlength-strings */                                    9575, /* DiagArray455 */ 1287, /* Empty */         0 },
+  { /* overloaded-shift-op-parentheses */                       9594, /* DiagArray456 */ 1289, /* Empty */         0 },
+  { /* overloaded-virtual */                                    9626, /* DiagArray457 */ 1291, /* Empty */         0 },
+  { /* override-module */                                       9645, /* DiagArray458 */ 1293, /* Empty */         0 },
+  { /* overriding-method-mismatch */                            9661, /* DiagArray459 */ 1295, /* Empty */         0 },
+  { /* overriding-t-option */                                   9688, /* DiagArray460 */ 1303, /* Empty */         0 },
+  { /* packed */                                                9708, /* DiagArray461 */ 1305, /* Empty */         0 },
+  { /* padded */                                                9715, /* DiagArray462 */ 1307, /* Empty */         0 },
+  { /* parentheses */                                           9722, /* DiagArray463 */ 1311, /* DiagSubGroup463 */ 289 },
+  { /* parentheses-equality */                                  9734, /* DiagArray464 */ 1315, /* Empty */         0 },
+  { /* partial-availability */                                  9755, /* Empty */     0, /* DiagSubGroup465 */ 297 },
+  { /* pass */                                                  9776, /* DiagArray466 */ 1317, /* Empty */         0 },
+  { /* pass-analysis */                                         9781, /* DiagArray467 */ 1319, /* Empty */         0 },
+  { /* pass-failed */                                           9795, /* DiagArray468 */ 1323, /* Empty */         0 },
+  { /* pass-missed */                                           9807, /* DiagArray469 */ 1325, /* Empty */         0 },
+  { /* pch-date-time */                                         9819, /* DiagArray470 */ 1327, /* Empty */         0 },
+  { /* pedantic */                                              9833, /* DiagArray471 */ 1329, /* DiagSubGroup471 */ 299 },
+  { /* pedantic-core-features */                                9842, /* DiagArray472 */ 1393, /* Empty */         0 },
+  { /* pessimizing-move */                                      9865, /* DiagArray473 */ 1395, /* Empty */         0 },
+  { /* pointer-arith */                                         9882, /* DiagArray474 */ 1398, /* Empty */         0 },
+  { /* pointer-bool-conversion */                               9896, /* DiagArray475 */ 1405, /* Empty */         0 },
+  { /* pointer-sign */                                          9920, /* DiagArray476 */ 1408, /* Empty */         0 },
+  { /* pointer-to-int-cast */                                   9933, /* Empty */     0, /* Empty */         0 },
+  { /* pointer-type-mismatch */                                 9953, /* DiagArray478 */ 1410, /* Empty */         0 },
+  { /* potentially-evaluated-expression */                      9975, /* DiagArray479 */ 1412, /* Empty */         0 },
+  { /* pragma-once-outside-header */                            10008, /* DiagArray480 */ 1414, /* Empty */         0 },
+  { /* pragma-system-header-outside-header */                   10035, /* DiagArray481 */ 1416, /* Empty */         0 },
+  { /* pragmas */                                               10071, /* DiagArray482 */ 1418, /* DiagSubGroup482 */ 352 },
+  { /* predefined-identifier-outside-function */                10079, /* DiagArray483 */ 1420, /* Empty */         0 },
+  { /* private-extern */                                        10118, /* DiagArray484 */ 1422, /* Empty */         0 },
+  { /* private-header */                                        10133, /* DiagArray485 */ 1424, /* Empty */         0 },
+  { /* private-module */                                        10148, /* DiagArray486 */ 1426, /* Empty */         0 },
+  { /* profile-instr-out-of-date */                             10163, /* DiagArray487 */ 1428, /* Empty */         0 },
+  { /* profile-instr-unprofiled */                              10189, /* DiagArray488 */ 1430, /* Empty */         0 },
+  { /* property-access-dot-syntax */                            10214, /* DiagArray489 */ 1432, /* Empty */         0 },
+  { /* property-attribute-mismatch */                           10241, /* DiagArray490 */ 1434, /* Empty */         0 },
+  { /* protocol */                                              10269, /* DiagArray491 */ 1439, /* Empty */         0 },
+  { /* protocol-property-synthesis-ambiguity */                 10278, /* DiagArray492 */ 1441, /* Empty */         0 },
+  { /* qualified-void-return-type */                            10316, /* DiagArray493 */ 1443, /* Empty */         0 },
+  { /* range-loop-analysis */                                   10343, /* DiagArray494 */ 1445, /* Empty */         0 },
+  { /* readonly-iboutlet-property */                            10363, /* DiagArray495 */ 1449, /* Empty */         0 },
+  { /* receiver-expr */                                         10390, /* DiagArray496 */ 1451, /* Empty */         0 },
+  { /* receiver-forward-class */                                10404, /* DiagArray497 */ 1453, /* Empty */         0 },
+  { /* redeclared-class-member */                               10427, /* DiagArray498 */ 1456, /* Empty */         0 },
+  { /* redundant-decls */                                       10451, /* Empty */     0, /* Empty */         0 },
+  { /* redundant-move */                                        10467, /* DiagArray500 */ 1458, /* Empty */         0 },
+  { /* register */                                              10482, /* DiagArray501 */ 1460, /* DiagSubGroup501 */ 355 },
+  { /* reinterpret-base-class */                                10491, /* DiagArray502 */ 1462, /* Empty */         0 },
+  { /* remark-backend-plugin */                                 10514, /* DiagArray503 */ 1464, /* Empty */         0 },
+  { /* reorder */                                               10536, /* DiagArray504 */ 1466, /* Empty */         0 },
+  { /* requires-super-attribute */                              10544, /* DiagArray505 */ 1468, /* Empty */         0 },
+  { /* reserved-id-macro */                                     10569, /* DiagArray506 */ 1470, /* Empty */         0 },
+  { /* reserved-user-defined-literal */                         10587, /* DiagArray507 */ 1472, /* DiagSubGroup507 */ 357 },
+  { /* retained-language-linkage */                             10617, /* DiagArray508 */ 1475, /* Empty */         0 },
+  { /* return-stack-address */                                  10643, /* DiagArray509 */ 1477, /* Empty */         0 },
+  { /* return-type */                                           10664, /* DiagArray510 */ 1481, /* DiagSubGroup510 */ 359 },
+  { /* return-type-c-linkage */                                 10676, /* DiagArray511 */ 1491, /* Empty */         0 },
+  { /* rtti-for-exceptions */                                   10698, /* DiagArray512 */ 1494, /* Empty */         0 },
+  { /* sanitize-address */                                      10718, /* DiagArray513 */ 1496, /* Empty */         0 },
+  { /* section */                                               10735, /* DiagArray514 */ 1499, /* Empty */         0 },
+  { /* selector */                                              10743, /* DiagArray515 */ 1501, /* DiagSubGroup515 */ 361 },
+  { /* selector-type-mismatch */                                10752, /* DiagArray516 */ 1503, /* Empty */         0 },
+  { /* self-assign */                                           10775, /* DiagArray517 */ 1505, /* DiagSubGroup517 */ 363 },
+  { /* self-assign-field */                                     10787, /* DiagArray518 */ 1507, /* Empty */         0 },
+  { /* self-move */                                             10805, /* DiagArray519 */ 1509, /* Empty */         0 },
+  { /* semicolon-before-method-body */                          10815, /* DiagArray520 */ 1511, /* Empty */         0 },
+  { /* sentinel */                                              10844, /* DiagArray521 */ 1513, /* Empty */         0 },
+  { /* sequence-point */                                        10853, /* Empty */     0, /* DiagSubGroup522 */ 365 },
+  { /* serialized-diagnostics */                                10868, /* DiagArray523 */ 1516, /* Empty */         0 },
+  { /* shadow */                                                10891, /* DiagArray524 */ 1519, /* DiagSubGroup524 */ 367 },
+  { /* shadow-all */                                            10898, /* Empty */     0, /* DiagSubGroup525 */ 370 },
+  { /* shadow-field */                                          10909, /* DiagArray526 */ 1521, /* Empty */         0 },
+  { /* shadow-field-in-constructor */                           10922, /* DiagArray527 */ 1523, /* DiagSubGroup527 */ 375 },
+  { /* shadow-field-in-constructor-modified */                  10950, /* DiagArray528 */ 1525, /* Empty */         0 },
+  { /* shadow-ivar */                                           10987, /* DiagArray529 */ 1527, /* Empty */         0 },
+  { /* shadow-uncaptured-local */                               10999, /* DiagArray530 */ 1529, /* Empty */         0 },
+  { /* shift-count-negative */                                  11023, /* DiagArray531 */ 1531, /* Empty */         0 },
+  { /* shift-count-overflow */                                  11044, /* DiagArray532 */ 1533, /* Empty */         0 },
+  { /* shift-negative-value */                                  11065, /* DiagArray533 */ 1535, /* Empty */         0 },
+  { /* shift-op-parentheses */                                  11086, /* DiagArray534 */ 1537, /* Empty */         0 },
+  { /* shift-overflow */                                        11107, /* DiagArray535 */ 1539, /* Empty */         0 },
+  { /* shift-sign-overflow */                                   11122, /* DiagArray536 */ 1541, /* Empty */         0 },
+  { /* shorten-64-to-32 */                                      11142, /* DiagArray537 */ 1543, /* Empty */         0 },
+  { /* sign-compare */                                          11159, /* DiagArray538 */ 1545, /* Empty */         0 },
+  { /* sign-conversion */                                       11172, /* DiagArray539 */ 1547, /* Empty */         0 },
+  { /* sign-promo */                                            11188, /* Empty */     0, /* Empty */         0 },
+  { /* signed-enum-bitfield */                                  11199, /* DiagArray541 */ 1550, /* Empty */         0 },
+  { /* sizeof-array-argument */                                 11220, /* DiagArray542 */ 1552, /* Empty */         0 },
+  { /* sizeof-array-decay */                                    11242, /* DiagArray543 */ 1554, /* Empty */         0 },
+  { /* sizeof-pointer-memaccess */                              11261, /* DiagArray544 */ 1556, /* Empty */         0 },
+  { /* slash-u-filename */                                      11286, /* DiagArray545 */ 1559, /* Empty */         0 },
+  { /* sometimes-uninitialized */                               11303, /* DiagArray546 */ 1561, /* Empty */         0 },
+  { /* source-uses-openmp */                                    11327, /* DiagArray547 */ 1563, /* Empty */         0 },
+  { /* spir-compat */                                           11346, /* DiagArray548 */ 1566, /* Empty */         0 },
+  { /* stack-protector */                                       11358, /* Empty */     0, /* Empty */         0 },
+  { /* static-float-init */                                     11374, /* DiagArray550 */ 1568, /* DiagSubGroup550 */ 377 },
+  { /* static-in-inline */                                      11392, /* DiagArray551 */ 1570, /* Empty */         0 },
+  { /* static-inline-explicit-instantiation */                  11409, /* DiagArray552 */ 1573, /* Empty */         0 },
+  { /* static-local-in-inline */                                11446, /* DiagArray553 */ 1575, /* Empty */         0 },
+  { /* static-self-init */                                      11469, /* DiagArray554 */ 1577, /* Empty */         0 },
+  { /* strict-aliasing */                                       11486, /* Empty */     0, /* Empty */         0 },
+  { /* strict-aliasing=0 */                                     11502, /* Empty */     0, /* Empty */         0 },
+  { /* strict-aliasing=1 */                                     11520, /* Empty */     0, /* Empty */         0 },
+  { /* strict-aliasing=2 */                                     11538, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow */                                       11556, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=0 */                                     11572, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=1 */                                     11590, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=2 */                                     11608, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=3 */                                     11626, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=4 */                                     11644, /* Empty */     0, /* Empty */         0 },
+  { /* strict-overflow=5 */                                     11662, /* Empty */     0, /* Empty */         0 },
+  { /* strict-prototypes */                                     11680, /* DiagArray566 */ 1579, /* Empty */         0 },
+  { /* strict-selector-match */                                 11698, /* DiagArray567 */ 1581, /* Empty */         0 },
+  { /* string-compare */                                        11720, /* DiagArray568 */ 1583, /* Empty */         0 },
+  { /* string-conversion */                                     11735, /* DiagArray569 */ 1585, /* Empty */         0 },
+  { /* string-plus-char */                                      11753, /* DiagArray570 */ 1587, /* Empty */         0 },
+  { /* string-plus-int */                                       11770, /* DiagArray571 */ 1589, /* Empty */         0 },
+  { /* strlcpy-strlcat-size */                                  11786, /* DiagArray572 */ 1591, /* Empty */         0 },
+  { /* strncat-size */                                          11807, /* DiagArray573 */ 1593, /* Empty */         0 },
+  { /* super-class-method-mismatch */                           11820, /* DiagArray574 */ 1597, /* Empty */         0 },
+  { /* switch */                                                11848, /* DiagArray575 */ 1599, /* Empty */         0 },
+  { /* switch-bool */                                           11855, /* DiagArray576 */ 1603, /* Empty */         0 },
+  { /* switch-default */                                        11867, /* Empty */     0, /* Empty */         0 },
+  { /* switch-enum */                                           11882, /* DiagArray578 */ 1605, /* Empty */         0 },
+  { /* sync-fetch-and-nand-semantics-changed */                 11894, /* DiagArray579 */ 1607, /* Empty */         0 },
+  { /* synth */                                                 11932, /* Empty */     0, /* Empty */         0 },
+  { /* tautological-compare */                                  11938, /* DiagArray581 */ 1609, /* DiagSubGroup581 */ 379 },
+  { /* tautological-constant-out-of-range-compare */            11959, /* DiagArray582 */ 1614, /* Empty */         0 },
+  { /* tautological-overlap-compare */                          12002, /* DiagArray583 */ 1616, /* Empty */         0 },
+  { /* tautological-pointer-compare */                          12031, /* DiagArray584 */ 1618, /* Empty */         0 },
+  { /* tautological-undefined-compare */                        12060, /* DiagArray585 */ 1621, /* Empty */         0 },
+  { /* tentative-definition-incomplete-type */                  12091, /* DiagArray586 */ 1624, /* Empty */         0 },
+  { /* thread-safety */                                         12128, /* Empty */     0, /* DiagSubGroup587 */ 384 },
+  { /* thread-safety-analysis */                                12142, /* DiagArray588 */ 1626, /* Empty */         0 },
+  { /* thread-safety-attributes */                              12165, /* DiagArray589 */ 1644, /* Empty */         0 },
+  { /* thread-safety-beta */                                    12190, /* DiagArray590 */ 1650, /* Empty */         0 },
+  { /* thread-safety-negative */                                12209, /* DiagArray591 */ 1652, /* Empty */         0 },
+  { /* thread-safety-precise */                                 12232, /* DiagArray592 */ 1654, /* Empty */         0 },
+  { /* thread-safety-reference */                               12254, /* DiagArray593 */ 1658, /* Empty */         0 },
+  { /* thread-safety-verbose */                                 12278, /* DiagArray594 */ 1661, /* Empty */         0 },
+  { /* trigraphs */                                             12300, /* DiagArray595 */ 1663, /* Empty */         0 },
+  { /* type-limits */                                           12310, /* Empty */     0, /* Empty */         0 },
+  { /* type-safety */                                           12322, /* DiagArray597 */ 1668, /* Empty */         0 },
+  { /* typedef-redefinition */                                  12334, /* DiagArray598 */ 1672, /* Empty */         0 },
+  { /* typename-missing */                                      12355, /* DiagArray599 */ 1674, /* Empty */         0 },
+  { /* unable-to-open-stats-file */                             12372, /* DiagArray600 */ 1676, /* Empty */         0 },
+  { /* unavailable-declarations */                              12398, /* DiagArray601 */ 1678, /* Empty */         0 },
+  { /* undeclared-selector */                                   12423, /* DiagArray602 */ 1680, /* Empty */         0 },
+  { /* undef */                                                 12443, /* DiagArray603 */ 1683, /* Empty */         0 },
+  { /* undefined-bool-conversion */                             12449, /* DiagArray604 */ 1685, /* Empty */         0 },
+  { /* undefined-func-template */                               12475, /* DiagArray605 */ 1688, /* Empty */         0 },
+  { /* undefined-inline */                                      12499, /* DiagArray606 */ 1690, /* Empty */         0 },
+  { /* undefined-internal */                                    12516, /* DiagArray607 */ 1692, /* Empty */         0 },
+  { /* undefined-reinterpret-cast */                            12535, /* DiagArray608 */ 1694, /* Empty */         0 },
+  { /* undefined-var-template */                                12562, /* DiagArray609 */ 1697, /* Empty */         0 },
+  { /* unevaluated-expression */                                12585, /* DiagArray610 */ 1699, /* DiagSubGroup610 */ 389 },
+  { /* unguarded-availability */                                12608, /* DiagArray611 */ 1701, /* Empty */         0 },
+  { /* unicode */                                               12631, /* DiagArray612 */ 1706, /* Empty */         0 },
+  { /* unicode-whitespace */                                    12639, /* DiagArray613 */ 1712, /* Empty */         0 },
+  { /* uninitialized */                                         12658, /* DiagArray614 */ 1714, /* DiagSubGroup614 */ 391 },
+  { /* unknown-argument */                                      12672, /* DiagArray615 */ 1722, /* Empty */         0 },
+  { /* unknown-attributes */                                    12689, /* DiagArray616 */ 1724, /* Empty */         0 },
+  { /* unknown-escape-sequence */                               12708, /* DiagArray617 */ 1726, /* Empty */         0 },
+  { /* unknown-pragmas */                                       12732, /* DiagArray618 */ 1728, /* Empty */         0 },
+  { /* unknown-sanitizers */                                    12748, /* DiagArray619 */ 1747, /* Empty */         0 },
+  { /* unknown-warning-option */                                12767, /* DiagArray620 */ 1749, /* Empty */         0 },
+  { /* unnamed-type-template-args */                            12790, /* DiagArray621 */ 1752, /* DiagSubGroup621 */ 394 },
+  { /* unneeded-internal-declaration */                         12817, /* DiagArray622 */ 1754, /* Empty */         0 },
+  { /* unneeded-member-function */                              12847, /* DiagArray623 */ 1757, /* Empty */         0 },
+  { /* unreachable-code */                                      12872, /* DiagArray624 */ 1759, /* DiagSubGroup624 */ 396 },
+  { /* unreachable-code-aggressive */                           12889, /* Empty */     0, /* DiagSubGroup625 */ 398 },
+  { /* unreachable-code-break */                                12917, /* DiagArray626 */ 1761, /* Empty */         0 },
+  { /* unreachable-code-loop-increment */                       12940, /* DiagArray627 */ 1763, /* Empty */         0 },
+  { /* unreachable-code-return */                               12972, /* DiagArray628 */ 1765, /* Empty */         0 },
+  { /* unsequenced */                                           12996, /* DiagArray629 */ 1767, /* Empty */         0 },
+  { /* unsupported-cb */                                        13008, /* DiagArray630 */ 1770, /* Empty */         0 },
+  { /* unsupported-dll-base-class-template */                   13023, /* DiagArray631 */ 1772, /* Empty */         0 },
+  { /* unsupported-friend */                                    13059, /* DiagArray632 */ 1774, /* Empty */         0 },
+  { /* unsupported-nan */                                       13078, /* DiagArray633 */ 1777, /* Empty */         0 },
+  { /* unsupported-visibility */                                13094, /* DiagArray634 */ 1780, /* Empty */         0 },
+  { /* unusable-partial-specialization */                       13117, /* DiagArray635 */ 1782, /* Empty */         0 },
+  { /* unused */                                                13149, /* Empty */     0, /* DiagSubGroup636 */ 402 },
+  { /* unused-argument */                                       13156, /* Empty */     0, /* Empty */         0 },
+  { /* unused-command-line-argument */                          13172, /* DiagArray638 */ 1784, /* Empty */         0 },
+  { /* unused-comparison */                                     13201, /* DiagArray639 */ 1791, /* Empty */         0 },
+  { /* unused-const-variable */                                 13219, /* DiagArray640 */ 1793, /* Empty */         0 },
+  { /* unused-exception-parameter */                            13241, /* DiagArray641 */ 1795, /* Empty */         0 },
+  { /* unused-function */                                       13268, /* DiagArray642 */ 1797, /* DiagSubGroup642 */ 412 },
+  { /* unused-getter-return-value */                            13284, /* DiagArray643 */ 1799, /* Empty */         0 },
+  { /* unused-label */                                          13311, /* DiagArray644 */ 1801, /* Empty */         0 },
+  { /* unused-lambda-capture */                                 13324, /* DiagArray645 */ 1803, /* Empty */         0 },
+  { /* unused-local-typedef */                                  13346, /* DiagArray646 */ 1805, /* Empty */         0 },
+  { /* unused-local-typedefs */                                 13367, /* Empty */     0, /* DiagSubGroup647 */ 414 },
+  { /* unused-macros */                                         13389, /* DiagArray648 */ 1807, /* Empty */         0 },
+  { /* unused-member-function */                                13403, /* DiagArray649 */ 1809, /* DiagSubGroup649 */ 416 },
+  { /* unused-parameter */                                      13426, /* DiagArray650 */ 1811, /* Empty */         0 },
+  { /* unused-private-field */                                  13443, /* DiagArray651 */ 1813, /* Empty */         0 },
+  { /* unused-property-ivar */                                  13464, /* DiagArray652 */ 1815, /* Empty */         0 },
+  { /* unused-result */                                         13485, /* DiagArray653 */ 1817, /* Empty */         0 },
+  { /* unused-value */                                          13499, /* DiagArray654 */ 1819, /* DiagSubGroup654 */ 418 },
+  { /* unused-variable */                                       13512, /* DiagArray655 */ 1824, /* DiagSubGroup655 */ 422 },
+  { /* unused-volatile-lvalue */                                13528, /* DiagArray656 */ 1826, /* Empty */         0 },
+  { /* used-but-marked-unused */                                13551, /* DiagArray657 */ 1828, /* Empty */         0 },
+  { /* user-defined-literals */                                 13574, /* DiagArray658 */ 1830, /* Empty */         0 },
+  { /* user-defined-warnings */                                 13596, /* DiagArray659 */ 1832, /* Empty */         0 },
+  { /* varargs */                                               13618, /* DiagArray660 */ 1834, /* Empty */         0 },
+  { /* variadic-macros */                                       13626, /* DiagArray661 */ 1838, /* Empty */         0 },
+  { /* vec-elem-size */                                         13642, /* DiagArray662 */ 1841, /* Empty */         0 },
+  { /* vector-conversion */                                     13656, /* DiagArray663 */ 1843, /* Empty */         0 },
+  { /* vector-conversions */                                    13674, /* Empty */     0, /* DiagSubGroup664 */ 424 },
+  { /* vexing-parse */                                          13693, /* DiagArray665 */ 1845, /* Empty */         0 },
+  { /* visibility */                                            13706, /* DiagArray666 */ 1848, /* Empty */         0 },
+  { /* vla */                                                   13717, /* DiagArray667 */ 1851, /* Empty */         0 },
+  { /* vla-extension */                                         13721, /* DiagArray668 */ 1853, /* Empty */         0 },
+  { /* void-ptr-dereference */                                  13735, /* DiagArray669 */ 1855, /* Empty */         0 },
+  { /* volatile-register-var */                                 13756, /* Empty */     0, /* Empty */         0 },
+  { /* weak-template-vtables */                                 13778, /* DiagArray671 */ 1857, /* Empty */         0 },
+  { /* weak-vtables */                                          13800, /* DiagArray672 */ 1859, /* Empty */         0 },
+  { /* writable-strings */                                      13813, /* DiagArray673 */ 1861, /* DiagSubGroup673 */ 426 },
+  { /* write-strings */                                         13830, /* Empty */     0, /* DiagSubGroup674 */ 428 },
+  { /* zero-length-array */                                     13844, /* DiagArray675 */ 1863, /* Empty */         0 },
+#endif // GET_DIAG_TABLE
+
+
+#ifdef GET_CATEGORY_TABLE
+CATEGORY("", DiagCat_None)
+CATEGORY("Lexical or Preprocessor Issue", DiagCat_Lexical_or_Preprocessor_Issue)
+CATEGORY("Semantic Issue", DiagCat_Semantic_Issue)
+CATEGORY("Lambda Issue", DiagCat_Lambda_Issue)
+CATEGORY("Parse Issue", DiagCat_Parse_Issue)
+CATEGORY("ARC Semantic Issue", DiagCat_ARC_Semantic_Issue)
+CATEGORY("ARC and @properties", DiagCat_ARC_and__properties)
+CATEGORY("ARC Casting Rules", DiagCat_ARC_Casting_Rules)
+CATEGORY("ARC Parse Issue", DiagCat_ARC_Parse_Issue)
+CATEGORY("ARC Weak References", DiagCat_ARC_Weak_References)
+CATEGORY("ARC Restrictions", DiagCat_ARC_Restrictions)
+CATEGORY("OpenMP Issue", DiagCat_OpenMP_Issue)
+CATEGORY("Inline Assembly Issue", DiagCat_Inline_Assembly_Issue)
+CATEGORY("Modules Issue", DiagCat_Modules_Issue)
+CATEGORY("Coroutines Issue", DiagCat_Coroutines_Issue)
+CATEGORY("AST Deserialization Issue", DiagCat_AST_Deserialization_Issue)
+CATEGORY("Backend Issue", DiagCat_Backend_Issue)
+CATEGORY("Related Result Type Issue", DiagCat_Related_Result_Type_Issue)
+CATEGORY("Nullability Issue", DiagCat_Nullability_Issue)
+CATEGORY("Generics Issue", DiagCat_Generics_Issue)
+CATEGORY("User-Defined Issue", DiagCat_User_Defined_Issue)
+CATEGORY("VTable ABI Issue", DiagCat_VTable_ABI_Issue)
+CATEGORY("Value Conversion Issue", DiagCat_Value_Conversion_Issue)
+CATEGORY("Documentation Issue", DiagCat_Documentation_Issue)
+CATEGORY("ARC Retain Cycle", DiagCat_ARC_Retain_Cycle)
+CATEGORY("Deprecations", DiagCat_Deprecations)
+CATEGORY("Format String Issue", DiagCat_Format_String_Issue)
+CATEGORY("Cocoa API Issue", DiagCat_Cocoa_API_Issue)
+CATEGORY("#pragma message Directive", DiagCat__pragma_message_Directive)
+CATEGORY("Instrumentation Issue", DiagCat_Instrumentation_Issue)
+CATEGORY("Unused Entity Issue", DiagCat_Unused_Entity_Issue)
+#endif // GET_CATEGORY_TABLE
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticLexKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticLexKinds.inc
new file mode 100644
index 0000000..e84d978
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticLexKinds.inc
@@ -0,0 +1,297 @@
+#ifdef LEXSTART
+__LEXSTART = DIAG_START_LEX,
+#undef LEXSTART
+#endif
+
+DIAG(backslash_newline_space, CLASS_WARNING, (unsigned)diag::Severity::Warning, "backslash and newline separated by space", 51, SFINAE_Suppress, false, false, 1)
+DIAG(err__Pragma_malformed, CLASS_ERROR, (unsigned)diag::Severity::Error, "_Pragma takes a parenthesized string literal", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_bad_character_encoding, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal character encoding in character literal", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_bad_string_encoding, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal character encoding in string literal", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_character_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "character too large for enclosing character literal type", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_conflict_marker, CLASS_ERROR, (unsigned)diag::Severity::Error, "version control conflict marker in file", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_defined_macro_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "'defined' cannot be used as a macro name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_digit_separator_not_between_digits, CLASS_ERROR, (unsigned)diag::Severity::Error, "digit separator cannot appear at %select{start|end}0 of digit sequence", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_embedded_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "embedding a #%0 directive within macro arguments is not supported", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_escape_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{hex|octal}0 escape sequence out of range", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_expected_id_building_module, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a module name in '__building_module' expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_exponent_has_no_digits, CLASS_ERROR, (unsigned)diag::Severity::Error, "exponent has no digits", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_feature_check_malformed, CLASS_ERROR, (unsigned)diag::Severity::Error, "builtin feature check macro requires a parenthesized identifier", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_hex_constant_requires, CLASS_ERROR, (unsigned)diag::Severity::Error, "hexadecimal floating %select{constant|literal}0 requires %select{an exponent|a significand}1", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_hex_escape_no_digits, CLASS_ERROR, (unsigned)diag::Severity::Error, "\\%0 used with no following hex digits", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_char_raw_delim, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid character '%0' character in raw string delimiter; use PREFIX( )PREFIX to delimit raw string", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_character_to_charify, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument to convert to character", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_digit, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid digit '%0' in %select{decimal|octal|binary}1 constant", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_pth_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid or corrupt PTH file '%0'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_suffix_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid suffix '%0' on %select{integer|floating}1 constant", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_invalid_utf8, CLASS_ERROR, (unsigned)diag::Severity::Error, "source file is not valid UTF-8", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_lexing_string, CLASS_ERROR, (unsigned)diag::Severity::Error, "failure when lexing a string", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_config_macro_submodule, CLASS_ERROR, (unsigned)diag::Severity::Error, "configuration macros are only allowed in top-level modules", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected an attribute name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_config_macro, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected configuration macro name after ','", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_conflicts_comma, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ',' after conflicting module name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_conflicts_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a message describing the conflict with '%0'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_export_wildcard, CLASS_ERROR, (unsigned)diag::Severity::Error, "only '*' can be exported from an inferred submodule", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_feature, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a feature name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_header, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a header name after '%0'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_inferred_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %select{module exclusion with 'exclude'|'export *'}0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_lbrace, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '{' to start module '%0'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_lbrace_wildcard, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '{' to start inferred submodule", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_library_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %select{library|framework}0 name as a string", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected umbrella, header, submodule, or module export", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_mmap_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a module map file name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_module, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected module declaration", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_module_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected module name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_rbrace, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '}'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_expected_rsquare, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ']' to close attribute", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_explicit_inferred_framework, CLASS_ERROR, (unsigned)diag::Severity::Error, "inferred framework modules cannot be 'explicit'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_explicit_top_level, CLASS_ERROR, (unsigned)diag::Severity::Error, "'explicit' is not permitted on top-level modules", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_inferred_framework_submodule, CLASS_ERROR, (unsigned)diag::Severity::Error, "inferred submodule cannot be a framework submodule", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_inferred_no_umbrella, CLASS_ERROR, (unsigned)diag::Severity::Error, "inferred submodules require a module with an umbrella", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_inferred_redef, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of inferred submodule", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_missing_exclude_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected excluded module name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_missing_module_qualified, CLASS_ERROR, (unsigned)diag::Severity::Error, "no module named '%0' in '%1'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_missing_module_unqualified, CLASS_ERROR, (unsigned)diag::Severity::Error, "no module named '%0' visible from '%1'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_module_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a module name or '*'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_module_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of module '%0'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_nested_submodule_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "qualified module name can only be used to define modules at the top level", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_top_level_inferred_submodule, CLASS_ERROR, (unsigned)diag::Severity::Error, "only submodules and framework modules may be inferred with wildcard syntax", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_umbrella_clash, CLASS_ERROR, (unsigned)diag::Severity::Error, "umbrella for module '%0' already covers this directory", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_umbrella_dir_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "umbrella directory '%0' not found", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_unknown_token, CLASS_ERROR, (unsigned)diag::Severity::Error, "skipping stray token", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_mmap_use_decl_submodule, CLASS_ERROR, (unsigned)diag::Severity::Error, "use declarations are only allowed in top-level modules", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_multichar_utf_character_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "Unicode character literals may not contain multiple characters", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_non_ascii, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-ASCII characters are not allowed outside of literals and identifiers", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pascal_string_too_long, CLASS_ERROR, (unsigned)diag::Severity::Error, "Pascal string is too long", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_paste_at_end, CLASS_ERROR, (unsigned)diag::Severity::Error, "'##' cannot appear at end of macro expansion", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_paste_at_start, CLASS_ERROR, (unsigned)diag::Severity::Error, "'##' cannot appear at start of macro expansion", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_arc_cf_code_audited_syntax, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'begin' or 'end'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_assume_nonnull_syntax, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'begin' or 'end'", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_pp_bad_paste, CLASS_ERROR, (unsigned)diag::Severity::Error, "pasting formed '%0', an invalid preprocessing token", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_colon_without_question, CLASS_ERROR, (unsigned)diag::Severity::Error, "':' without preceding '?'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_directive_required, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must be used within a preprocessing directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_division_by_zero, CLASS_ERROR, (unsigned)diag::Severity::Error, "division by zero in preprocessor expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_double_begin_of_arc_cf_code_audited, CLASS_ERROR, (unsigned)diag::Severity::Error, "already inside '#pragma clang arc_cf_code_audited'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_double_begin_of_assume_nonnull, CLASS_ERROR, (unsigned)diag::Severity::Error, "already inside '#pragma clang assume_nonnull'", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_pp_duplicate_name_in_arg_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate macro parameter name %0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_empty_filename, CLASS_ERROR, (unsigned)diag::Severity::Error, "empty filename", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_endif_without_if, CLASS_ERROR, (unsigned)diag::Severity::Error, "#endif without #if", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_eof_in_arc_cf_code_audited, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma clang arc_cf_code_audited' was not ended within this file", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_eof_in_assume_nonnull, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma clang assume_nonnull' was not ended within this file", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_pp_error_opening_file, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "error opening file '%0': %1", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expected_after, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing %1 after %0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expected_comma_in_arg_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected comma in macro parameter list", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expected_eol, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected end of line in preprocessor expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expected_ident_in_arg_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected identifier in macro parameter list", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expected_rparen, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ')' in preprocessor expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expected_value_in_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected value in expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expects_filename, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected \"FILENAME\" or <FILENAME>", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expr_bad_token_binop, CLASS_ERROR, (unsigned)diag::Severity::Error, "token is not a valid binary operator in a preprocessor subexpression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expr_bad_token_lparen, CLASS_ERROR, (unsigned)diag::Severity::Error, "function-like macro %0 is not defined", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_expr_bad_token_start_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid token at start of a preprocessor expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_file_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "'%0' file not found", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_file_not_found_not_fatal, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' file not found with <angled> include; use \"quotes\" instead", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_hash_error, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 20)
+DIAG(err_pp_identifier_arg_not_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot convert %0 token to an identifier", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_illegal_floating_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "floating point literal in preprocessor expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_import_directive_ms, CLASS_ERROR, (unsigned)diag::Severity::Error, "#import of type library is an unsupported Microsoft feature", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_include_in_arc_cf_code_audited, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot #include files inside '#pragma clang arc_cf_code_audited'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_include_in_assume_nonnull, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot #include files inside '#pragma clang assume_nonnull'", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_pp_include_too_deep, CLASS_ERROR, (unsigned)diag::Severity::Error, "#include nested too deeply", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_invalid_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid preprocessing directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_invalid_poison, CLASS_ERROR, (unsigned)diag::Severity::Error, "can only poison identifier tokens", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_invalid_tok_in_arg_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid token in macro parameter list", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_invalid_udl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{character|integer}0 literal with user-defined suffix cannot be used in preprocessor constant expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_line_digit_sequence, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{#line|GNU line marker}0 directive requires a simple digit sequence", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_line_invalid_filename, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid filename for #line directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_line_requires_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "#line directive requires a positive integer argument", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_linemarker_invalid_filename, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid filename for line marker directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_linemarker_invalid_flag, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid flag line marker directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_linemarker_invalid_pop, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid line marker flag '2': cannot pop empty include stack", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_linemarker_requires_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "line marker directive requires a positive integer argument", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_macro_not_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "macro name must be an identifier", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_malformed_ident, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid #ident directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_missing_macro_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "macro name missing", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_missing_rparen_in_macro_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing ')' in macro parameter list", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_nested_paren, CLASS_ERROR, (unsigned)diag::Severity::Error, "nested parentheses not permitted in %0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_opencl_variadic_macros, CLASS_ERROR, (unsigned)diag::Severity::Error, "variadic macros not supported in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_operator_used_as_macro_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "C++ operator %0 (aka %1) used as a macro name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_remainder_by_zero, CLASS_ERROR, (unsigned)diag::Severity::Error, "remainder by zero in preprocessor expression", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_stringize_not_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%select{#|#@}0' is not followed by a macro parameter", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_unmatched_end_of_arc_cf_code_audited, CLASS_ERROR, (unsigned)diag::Severity::Error, "not currently inside '#pragma clang arc_cf_code_audited'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_unmatched_end_of_assume_nonnull, CLASS_ERROR, (unsigned)diag::Severity::Error, "not currently inside '#pragma clang assume_nonnull'", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_pp_unterminated_conditional, CLASS_ERROR, (unsigned)diag::Severity::Error, "unterminated conditional directive", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_used_poisoned_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "attempt to use a poisoned identifier", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pp_visibility_non_macro, CLASS_ERROR, (unsigned)diag::Severity::Error, "no macro named %0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pragma_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pragma_message_malformed, CLASS_ERROR, (unsigned)diag::Severity::Error, "pragma %select{message|warning|error}0 requires parenthesized string", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_pragma_push_pop_macro_malformed, CLASS_ERROR, (unsigned)diag::Severity::Error, "pragma %0 requires a parenthesized string", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_raw_delim_too_long, CLASS_ERROR, (unsigned)diag::Severity::Error, "raw string delimiter longer than 16 characters; use PREFIX( )PREFIX to delimit raw string", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_string_concat_mixed_suffix, CLASS_ERROR, (unsigned)diag::Severity::Error, "differing user-defined suffixes ('%0' and '%1') in string literal concatenation", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_too_few_args_in_macro_invoc, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few arguments provided to function-like macro invocation", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_too_many_args_in_macro_invoc, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many arguments provided to function-like macro invocation", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_ucn_control_character, CLASS_ERROR, (unsigned)diag::Severity::Error, "universal character name refers to a control character", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_ucn_escape_basic_scs, CLASS_ERROR, (unsigned)diag::Severity::Error, "character '%0' cannot be specified by a universal character name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_ucn_escape_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete universal character name", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_ucn_escape_invalid, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid universal character", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_undeclared_use_of_module, CLASS_ERROR, (unsigned)diag::Severity::Error, "module %0 does not depend on a module exporting '%1'", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_unsupported_string_concat, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported non-standard concatenation of string literals", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_unterm_macro_invoc, CLASS_ERROR, (unsigned)diag::Severity::Error, "unterminated function-like macro invocation", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_unterminated___pragma, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing terminating ')' character", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_unterminated_block_comment, CLASS_ERROR, (unsigned)diag::Severity::Error, "unterminated /* comment", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(err_unterminated_raw_string, CLASS_ERROR, (unsigned)diag::Severity::Error, "raw string missing terminating delimiter )%0\"", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(escaped_newline_block_comment_end, CLASS_WARNING, (unsigned)diag::Severity::Warning, "escaped newline between */ characters at block comment end", 107, SFINAE_Suppress, false, false, 1)
+DIAG(ext_binary_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "binary integer literals are a GNU extension", 222, SFINAE_Suppress, false, false, 1)
+DIAG(ext_binary_literal_cxx14, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "binary integer literals are a C++14 extension", 79, SFINAE_Suppress, false, false, 1)
+DIAG(ext_c99_whitespace_required_after_macro_name, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C99 requires whitespace after the macro name", 97, SFINAE_Suppress, false, false, 1)
+DIAG(ext_charize_microsoft, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "charizing operator #@ is a Microsoft extension", 332, SFINAE_Suppress, false, false, 1)
+DIAG(ext_comment_paste_microsoft, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "pasting two '/' tokens into a '//' comment is a Microsoft extension", 333, SFINAE_Suppress, false, false, 1)
+DIAG(ext_ctrl_z_eof_microsoft, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "treating Ctrl-Z as end-of-file is a Microsoft extension", 337, SFINAE_Suppress, false, false, 1)
+DIAG(ext_dollar_in_identifier, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'$' in identifier", 162, SFINAE_Suppress, false, false, 1)
+DIAG(ext_embedded_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "embedding a directive within macro arguments has undefined behavior", 172, SFINAE_Suppress, false, false, 1)
+DIAG(ext_empty_character, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "empty character constant", 304, SFINAE_Suppress, false, false, 1)
+DIAG(ext_empty_fnmacro_arg, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "empty macro arguments are a C99 feature", 97, SFINAE_Suppress, false, false, 1)
+DIAG(ext_four_char_character_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "multi-character character constant", 211, SFINAE_Suppress, false, false, 1)
+DIAG(ext_hex_constant_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "hexadecimal floating constants are a C99 feature", 97, SFINAE_Suppress, false, false, 1)
+DIAG(ext_hex_literal_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "hexadecimal floating literals are a C++1z feature", 85, SFINAE_Suppress, false, false, 1)
+DIAG(ext_imaginary_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "imaginary constants are a GNU extension", 233, SFINAE_Suppress, false, false, 1)
+DIAG(ext_line_comment, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "// comments are not allowed in this language", 107, SFINAE_Suppress, false, false, 1)
+DIAG(ext_missing_varargs_arg, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "must specify at least one argument for '...' parameter of variadic macro", 243, SFINAE_Suppress, false, false, 1)
+DIAG(ext_missing_whitespace_after_macro_name, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "whitespace required after macro name", 0, SFINAE_Suppress, false, false, 1)
+DIAG(ext_ms_reserved_user_defined_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "invalid suffix on literal; C++11 requires a space between literal and identifier", 507, SFINAE_Suppress, false, false, 1)
+DIAG(ext_multi_line_line_comment, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "multi-line // comment", 107, SFINAE_Suppress, false, false, 1)
+DIAG(ext_multichar_character_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "multi-character character constant", 385, SFINAE_Suppress, false, false, 1)
+DIAG(ext_named_variadic_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "named variadic macros are a GNU extension", 661, SFINAE_Suppress, false, false, 1)
+DIAG(ext_no_newline_eof, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "no newline at end of file", 391, SFINAE_Suppress, false, false, 1)
+DIAG(ext_nonstandard_escape, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of non-standard escape character '\\%0'", 471, SFINAE_Suppress, false, false, 1)
+DIAG(ext_on_off_switch_syntax, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected 'ON' or 'OFF' or 'DEFAULT' in pragma", 618, SFINAE_Suppress, false, false, 1)
+DIAG(ext_paste_comma, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "token pasting of ',' and __VA_ARGS__ is a GNU extension", 243, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_bad_paste_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "pasting formed '%0', an invalid preprocessing token", 306, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_bad_vaargs_use, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro", 471, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_comma_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "comma operator in operand of #if", 471, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_extra_tokens_at_eol, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "extra tokens at end of #%0 directive", 192, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_ident_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#ident is a language extension", 471, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_import_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#import is a language extension", 263, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_include_next_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#include_next is a language extension", 234, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_include_search_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#include resolved using non-portable Microsoft search rules as: %0", 347, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_line_too_big, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C requires #line number to be less than %0, allowed as extension", 471, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_line_zero, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#line directive with zero argument is a GNU extension", 242, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_macro_redef, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 macro redefined", 321, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_operator_used_as_macro_name, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C++ operator %0 (aka %1) used as a macro name", 335, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_redef_builtin_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "redefining builtin macro", 63, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_undef_builtin_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "undefining builtin macro", 63, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pp_warning_directive, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "#warning is a language extension", 471, SFINAE_Suppress, false, false, 1)
+DIAG(ext_pragma_syntax_eod, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected end of directive in pragma", 618, SFINAE_Suppress, false, false, 1)
+DIAG(ext_reserved_user_defined_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "invalid suffix on literal; C++11 requires a space between literal and identifier", 507, SFINAE_Suppress, false, false, 1)
+DIAG(ext_stdc_pragma_ignored, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unknown pragma in STDC namespace", 618, SFINAE_Suppress, false, false, 1)
+DIAG(ext_string_too_long, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "string literal of length %0 exceeds maximum length %1 that %select{C90|ISO C99|C++}2 compilers are required to support", 455, SFINAE_Suppress, false, false, 1)
+DIAG(ext_token_used, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extension used", 311, SFINAE_Suppress, false, false, 1)
+DIAG(ext_unicode_whitespace, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "treating Unicode character as whitespace", 613, SFINAE_Suppress, false, false, 1)
+DIAG(ext_unknown_escape, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unknown escape sequence '\\%0'", 617, SFINAE_Suppress, false, false, 1)
+DIAG(ext_unterminated_char_or_string, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "missing terminating %select{'|'\"'}0 character", 304, SFINAE_Suppress, false, false, 1)
+DIAG(ext_variadic_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variadic macros are a C99 feature", 661, SFINAE_Suppress, false, false, 1)
+DIAG(note_header_guard, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is defined here; did you mean %1?", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_implicit_top_level_module_import_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "submodule of top-level module '%0' implicitly imported here", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_init_list_at_beginning_of_macro_argument, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cannot use initializer list at the beginning of a macro argument", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_macro_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "macro %0 defined here", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_mmap_lbrace_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "to match this '{'", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_mmap_lsquare_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "to match this ']'", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_mmap_prev_definition, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previously defined here", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_mmap_rename_top_level_private_as_submodule, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "make '%0' a submodule of '%1' to ensure it can be found by name", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_pp_ambiguous_macro_chosen, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "expanding this definition of %0", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_pp_ambiguous_macro_other, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "other definition of %0", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_suggest_parens_for_macro, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "parentheses are required around macro argument containing braced initializer list", 0, SFINAE_Suppress, false, false, 1)
+DIAG(note_ucn_four_not_eight, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to use '\\u'?", 0, SFINAE_Suppress, false, false, 1)
+DIAG(null_in_char_or_string, CLASS_WARNING, (unsigned)diag::Severity::Warning, "null character(s) preserved in %select{char|string}0 literal", 404, SFINAE_Suppress, false, false, 1)
+DIAG(null_in_file, CLASS_WARNING, (unsigned)diag::Severity::Warning, "null character ignored", 404, SFINAE_Suppress, false, false, 1)
+DIAG(pp_disabled_macro_expansion, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "disabled expansion of recursive macro", 148, SFINAE_Suppress, false, false, 1)
+DIAG(pp_err_elif_after_else, CLASS_ERROR, (unsigned)diag::Severity::Error, "#elif after #else", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(pp_err_elif_without_if, CLASS_ERROR, (unsigned)diag::Severity::Error, "#elif without #if", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(pp_err_else_after_else, CLASS_ERROR, (unsigned)diag::Severity::Error, "#else after #else", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(pp_err_else_without_if, CLASS_ERROR, (unsigned)diag::Severity::Error, "#else without #if", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(pp_hash_warning, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 2, SFINAE_Suppress, false, true, 20)
+DIAG(pp_include_macros_out_of_predefines, CLASS_ERROR, (unsigned)diag::Severity::Error, "the #__include_macros directive is only for internal use by -imacros", 0, SFINAE_SubstitutionFailure, false, true, 1)
+DIAG(pp_include_next_absolute_path, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#include_next with absolute path", 265, SFINAE_Suppress, false, false, 1)
+DIAG(pp_include_next_in_primary, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#include_next in primary source file", 266, SFINAE_Suppress, false, false, 1)
+DIAG(pp_invalid_string_literal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "invalid string literal, ignoring final '\\'", 0, SFINAE_Suppress, false, false, 1)
+DIAG(pp_macro_not_used, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "macro is not used", 648, SFINAE_Suppress, false, false, 1)
+DIAG(pp_nonportable_path, CLASS_WARNING, (unsigned)diag::Severity::Warning, "non-portable path to file '%0'; specified path differs in case from file name on disk", 400, SFINAE_Suppress, false, false, 1)
+DIAG(pp_nonportable_system_path, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-portable path to file '%0'; specified path differs in case from file name on disk", 401, SFINAE_Suppress, false, false, 1)
+DIAG(pp_out_of_date_dependency, CLASS_WARNING, (unsigned)diag::Severity::Warning, "current file is older than dependency %0", 0, SFINAE_Suppress, false, false, 1)
+DIAG(pp_poisoning_existing_macro, CLASS_WARNING, (unsigned)diag::Severity::Warning, "poisoning existing macro", 0, SFINAE_Suppress, false, false, 1)
+DIAG(pp_pragma_once_in_main_file, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#pragma once in main file", 480, SFINAE_Suppress, false, false, 1)
+DIAG(pp_pragma_sysheader_in_main_file, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#pragma system_header ignored in main file", 481, SFINAE_Suppress, false, false, 1)
+DIAG(trigraph_converted, CLASS_WARNING, (unsigned)diag::Severity::Warning, "trigraph converted to '%0' character", 595, SFINAE_Suppress, false, false, 1)
+DIAG(trigraph_ends_block_comment, CLASS_WARNING, (unsigned)diag::Severity::Warning, "trigraph ends block comment", 595, SFINAE_Suppress, false, false, 1)
+DIAG(trigraph_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "trigraph ignored", 595, SFINAE_Suppress, false, false, 1)
+DIAG(trigraph_ignored_block_comment, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignored trigraph would end block comment", 595, SFINAE_Suppress, false, false, 1)
+DIAG(warn_auto_module_import, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "treating #%select{include|import|include_next|__include_macros}0 as an import of module '%1'", 46, SFINAE_Suppress, false, false, 1)
+DIAG(warn_bad_character_encoding, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "illegal character encoding in character literal", 305, SFINAE_Suppress, false, false, 1)
+DIAG(warn_bad_string_encoding, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "illegal character encoding in string literal", 305, SFINAE_Suppress, false, false, 1)
+DIAG(warn_c99_compat_unicode_id, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{using this character in an identifier|starting an identifier with this character}0 is incompatible with C99", 96, SFINAE_Suppress, false, false, 1)
+DIAG(warn_c99_compat_unicode_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unicode literals are incompatible with C99", 96, SFINAE_Suppress, false, false, 1)
+DIAG(warn_char_constant_too_large, CLASS_WARNING, (unsigned)diag::Severity::Warning, "character constant too long for its type", 0, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx11_compat_binary_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "binary integer literals are incompatible with C++ standards before C++14", 89, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx11_compat_digit_separator, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "digit separators are incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx11_compat_reserved_user_defined_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "identifier after literal will be treated as a reserved user-defined literal suffix in C++11", 73, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx11_compat_user_defined_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "identifier after literal will be treated as a user-defined literal suffix in C++11", 70, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx11_keyword, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%0' is a keyword in C++11", 70, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx14_compat_u8_character_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unicode literals are incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx1z_hex_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "hexadecimal floating literals are incompatible with C++ standards before C++1z", 87, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_empty_fnmacro_arg, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "empty macro arguments are incompatible with C++98", 93, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_less_colon_colon, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'<::' is treated as digraph '<:' (aka '[') followed by ':' in C++98", 90, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_literal_ucn_control_character, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "universal character name referring to a control character is incompatible with C++98", 90, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_literal_ucn_escape_basic_scs, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "specifying character '%0' with a universal character name is incompatible with C++98", 90, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_no_newline_eof, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "C++98 requires newline at end of file", 93, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_pp_line_too_big, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "#line number greater than 32767 is incompatible with C++98", 93, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_raw_string_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "raw string literals are incompatible with C++98", 90, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_unicode_id, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "using this character in an identifier is incompatible with C++98", 90, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_unicode_literal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unicode literals are incompatible with C++98", 90, SFINAE_Suppress, false, false, 1)
+DIAG(warn_cxx98_compat_variadic_macro, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variadic macros are incompatible with C++98", 93, SFINAE_Suppress, false, false, 1)
+DIAG(warn_defined_in_function_type_macro, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "macro expansion producing 'defined' has undefined behavior", 183, SFINAE_Suppress, false, false, 1)
+DIAG(warn_defined_in_object_type_macro, CLASS_WARNING, (unsigned)diag::Severity::Warning, "macro expansion producing 'defined' has undefined behavior", 183, SFINAE_Suppress, false, false, 1)
+DIAG(warn_extraneous_char_constant, CLASS_WARNING, (unsigned)diag::Severity::Warning, "extraneous characters in character constant ignored", 0, SFINAE_Suppress, false, false, 1)
+DIAG(warn_has_warning_invalid_option, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "__has_warning expected option name (e.g. \"-Wundef\")", 324, SFINAE_Suppress, false, false, 1)
+DIAG(warn_header_guard, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is used as a header guard here, followed by #define of a different macro", 244, SFINAE_Suppress, false, false, 1)
+DIAG(warn_missing_whitespace_after_macro_name, CLASS_WARNING, (unsigned)diag::Severity::Warning, "whitespace recommended after macro name", 0, SFINAE_Suppress, false, false, 1)
+DIAG(warn_mmap_mismatched_top_level_private, CLASS_WARNING, (unsigned)diag::Severity::Warning, "top-level module '%0' in private module map, expected a submodule of '%1'", 486, SFINAE_Suppress, false, false, 1)
+DIAG(warn_mmap_unknown_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown attribute '%0'", 247, SFINAE_Suppress, false, false, 1)
+DIAG(warn_module_conflict, CLASS_WARNING, (unsigned)diag::Severity::Warning, "module '%0' conflicts with already-imported module '%1': %2", 375, SFINAE_Suppress, false, false, 1)
+DIAG(warn_nested_block_comment, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'/*' within block comment", 107, SFINAE_Suppress, false, false, 1)
+DIAG(warn_no_newline_eof, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "no newline at end of file", 391, SFINAE_Suppress, false, false, 1)
+DIAG(warn_non_modular_include_in_framework_module, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "include of non-modular header inside framework module '%0': '%1'", 394, SFINAE_Suppress, false, false, 1)
+DIAG(warn_non_modular_include_in_module, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "include of non-modular header inside module '%0': '%1'", 395, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_ambiguous_macro, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ambiguous expansion of macro %0", 20, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_convert_to_positive, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{left|right}0 side of operator converted from negative value to unsigned: %1", 0, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_date_time, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "expansion of date or time macro is not reproducible", 129, SFINAE_Suppress, false, true, 1)
+DIAG(warn_pp_expr_overflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "integer overflow in preprocessor expression", 0, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_line_decimal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{#line|GNU line marker}0 directive interprets number as decimal, not octal", 0, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_macro_hides_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "keyword is hidden by macro definition", 309, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_macro_is_reserved_id, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "macro name is a reserved identifier", 506, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_objc_macro_redef_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring redefinition of Objective-C qualifier macro", 422, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pp_undef_identifier, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 is not defined, evaluates to 0", 603, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_debug_missing_argument, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing argument to debug command '%0'", 250, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_debug_unexpected_command, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unexpected debug command '%0'", 250, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_diagnostic_cannot_pop, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma diagnostic pop could not pop, no matching push", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_diagnostic_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_diagnostic_invalid_option, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma diagnostic expected option name (e.g. \"-Wundef\")", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_diagnostic_invalid_token, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unexpected token in pragma diagnostic", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_diagnostic_unknown_warning, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unknown warning group '%0', ignored", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_ignored, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unknown pragma ignored", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_include_alias_expected, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma include_alias expected '%0'", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_include_alias_expected_filename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pragma include_alias expected include filename", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_include_alias_mismatch_angle, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "angle-bracketed include <%0> cannot be aliased to double-quoted include \"%1\"", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_include_alias_mismatch_quote, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "double-quoted include \"%0\" cannot be aliased to angle-bracketed include <%1>", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_message, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 1, SFINAE_Suppress, true, false, 28)
+DIAG(warn_pragma_pop_macro_no_push, CLASS_WARNING, (unsigned)diag::Severity::Warning, "pragma pop_macro could not pop '%0', no matching push_macro", 250, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_warning_expected, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning expected '%0'", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_warning_expected_number, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning expected a warning number", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_warning_push_level, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning(push, level) requires a level between 0 and 4", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_pragma_warning_spec_invalid, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_stdc_fenv_access_not_supported, CLASS_WARNING, (unsigned)diag::Severity::Warning, "pragma STDC FENV_ACCESS ON is not supported, ignoring pragma", 618, SFINAE_Suppress, false, false, 1)
+DIAG(warn_ucn_escape_incomplete, CLASS_WARNING, (unsigned)diag::Severity::Warning, "incomplete universal character name; treating as '\\' followed by identifier", 612, SFINAE_Suppress, false, false, 1)
+DIAG(warn_ucn_escape_no_digits, CLASS_WARNING, (unsigned)diag::Severity::Warning, "\\%0 used with no following hex digits; treating as '\\' followed by identifier", 612, SFINAE_Suppress, false, false, 1)
+DIAG(warn_ucn_escape_surrogate, CLASS_WARNING, (unsigned)diag::Severity::Warning, "universal character name refers to a surrogate character", 612, SFINAE_Suppress, false, false, 1)
+DIAG(warn_ucn_not_valid_in_c89, CLASS_WARNING, (unsigned)diag::Severity::Warning, "universal character names are only valid in C99 or C++; treating as '\\' followed by identifier", 612, SFINAE_Suppress, false, false, 1)
+DIAG(warn_ucn_not_valid_in_c89_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "universal character names are only valid in C99 or C++", 612, SFINAE_Suppress, false, false, 1)
+DIAG(warn_uncovered_module_header, CLASS_WARNING, (unsigned)diag::Severity::Warning, "umbrella header for module '%0' does not include header '%1'", 277, SFINAE_Suppress, false, false, 1)
+DIAG(warn_use_of_private_header_outside_module, CLASS_WARNING, (unsigned)diag::Severity::Error, "use of private header from outside its module: '%0'", 485, SFINAE_Suppress, false, false, 1)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticParseKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticParseKinds.inc
new file mode 100644
index 0000000..1ff86ab
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticParseKinds.inc
@@ -0,0 +1,436 @@
+#ifdef PARSESTART
+__PARSESTART = DIAG_START_PARSE,
+#undef PARSESTART
+#endif
+
+DIAG(err_access_specifier_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "interface types cannot specify '%select{private|protected}0' access", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_address_of_label_outside_fn, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of address-of-label extension outside of a function body", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_alias_declaration_not_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "name defined in alias declaration must be an identifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_alias_declaration_pack_expansion, CLASS_ERROR, (unsigned)diag::Severity::Error, "alias declaration cannot be a pack expansion", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_alias_declaration_specialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{partial specialization|explicit specialization|explicit instantiation}0 of alias templates is not permitted", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_anon_type_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of anonymous %0 must be a definition", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_arc_bridge_retain, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown cast annotation __bridge_retain; did you mean __bridge_retained?", 0, SFINAE_SubstitutionFailure, false, true, 8)
+DIAG(err_argument_required_after_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument required after attribute", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_asm_empty, CLASS_ERROR, (unsigned)diag::Severity::Error, "__asm used with no assembly instructions", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_goto_not_supported_yet, CLASS_ERROR, (unsigned)diag::Severity::Error, "'asm goto' constructs are not supported yet", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_operand_wide_string_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use %select{unicode|wide}0 string literal in 'asm'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_at_defs_cxx, CLASS_ERROR, (unsigned)diag::Severity::Error, "@defs is not supported in Objective-C++", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_at_in_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected '@' in member specification", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_atimport, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of '@import' when modules are disabled", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_attribute_not_import_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to a module import", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_attribute_not_module_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to a module", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_attribute_requires_arguments, CLASS_ERROR, (unsigned)diag::Severity::Error, "parentheses must be omitted if %0 attribute's argument list is empty", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_attributes_not_allowed, CLASS_ERROR, (unsigned)diag::Severity::Error, "an attribute list cannot appear here", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_avail_query_expected_platform_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a platform name here", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_avail_query_unrecognized_platform_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "unrecognized platform name %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_expected_change, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'introduced', 'deprecated', or 'obsoleted'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_expected_platform, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a platform name, e.g., 'macos'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_query_repeated_platform, CLASS_ERROR, (unsigned)diag::Severity::Error, "version for '%0' already specified", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_query_repeated_star, CLASS_ERROR, (unsigned)diag::Severity::Error, "'*' query has already been specified", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_query_wildcard_required, CLASS_ERROR, (unsigned)diag::Severity::Error, "must handle potential future platforms with '*'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_redundant, CLASS_ERROR, (unsigned)diag::Severity::Error, "redundant %0 availability change; only the last specified change will be used", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_availability_unknown_change, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not an availability stage; use 'introduced', 'deprecated', or 'obsoleted'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_bitfield_member_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "bit-field member cannot have an in-class initializer", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_bool_redeclaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "redeclaration of C++ built-in type 'bool'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_bracket_depth_exceeded, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "bracket nesting level exceeded maximum of %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_brackets_go_after_unqualified_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "brackets are not allowed here; to declare an array, place the brackets after the %select{identifier|name}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_c11_noreturn_misplaced, CLASS_ERROR, (unsigned)diag::Severity::Error, "'_Noreturn' keyword must precede function declarator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_class_on_template_template_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "template template parameter requires 'class' after the parameter list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_constructor_bad_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing return type for function %0; did you mean the constructor name %1?", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ctor_init_missing_comma, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing ',' between base or member initializers", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_cxx11_attribute_forbids_arguments, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute %0 cannot have an argument list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_cxx11_attribute_forbids_ellipsis, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute '%0' cannot be used as an attribute pack", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_cxx11_attribute_repeated, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute %0 cannot appear multiple times in an attribute specifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_declaration_does_not_declare_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration does not declare a parameter", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_declspec_after_virtspec, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' qualifier may not appear after the virtual specifier '%1'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_default_arg_unparsed, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected end of default argument expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_default_delete_in_multiple_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'= %select{default|delete}0' is a function definition and must occur in a standalone declaration", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_default_template_template_parameter_not_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "default template argument for a template template parameter must be a class template", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_destructor_template_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor name %0 does not refer to a template", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_destructor_tilde_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a class name after '~' to name a destructor", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_destructor_tilde_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "'~' in destructor name should be after nested name specifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_dup_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate 'virtual' in base specifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_duplicate_default_assoc, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate default generic association", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_duplicate_virt_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "class member already marked '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_dynamic_and_noexcept_specification, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot have both throw() and noexcept() clause on the same function", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_empty_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of empty enum", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_enumerator_list_missing_comma, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing ',' between enumerators", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_enumerator_unnamed_no_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "unnamed enumeration must be a definition", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_except_spec_unparsed, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected end of exception specification", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_capture, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected variable name or 'this' in lambda capture list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_case_before_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'case' keyword before expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_catch, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected catch", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_class_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected class name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_class_name_not_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "'typename' is redundant; base classes are implicitly types", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_coloncolon_after_super, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '::' after '__super'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_comma_greater, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ',' or '>' in template-parameter-list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_comma_or_rsquare, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ',' or ']' in lambda capture list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_end_declare_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '#pragma omp end declare target'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_end_of_enumerator, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '= constant-expression' or end of enumerator definition", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_equal_designator, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '=' or another designator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_external_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected external declaration", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_field_designator, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a field designator, such as '.field = 4'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_fn_body, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected function body after function declarator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_fold_operator, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a foldable binary operator in fold expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_init_in_condition, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable declaration in condition must have an initializer", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_init_in_condition_lparen, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable declaration in condition cannot have a parenthesized initializer", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_lambda_body, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected body of lambda expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_lbrace_after_base_specifiers, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '{' after base class list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_lbrace_in_compound_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '{' in compound literal", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_less_after, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '<' after '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_lparen_after, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '(' after '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_lparen_after_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '(' for function-style cast or type construction", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_member_name_or_semi, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected member name or ';' after declaration specifiers", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_member_name_or_semi_objcxx_keyword, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected member name or ';' after declaration specifiers; %0 is a keyword in Objective-C++", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_member_or_base_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected class member or base class name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_method_body, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected method body", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_minus_or_plus, CLASS_ERROR, (unsigned)diag::Severity::Error, "method type specifier must start with '-' or '+'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_module_interface_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected module declaration at start of module interface", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_expected_objc_container, CLASS_ERROR, (unsigned)diag::Severity::Error, "'@end' must appear in an Objective-C context", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_parameter_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected the name of a parameter pack", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_parentheses_around_typename, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected parentheses around type name in %0 expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_property_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected property name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_punc, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ')' or ',' after '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_qualified_after_typename, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a qualified name after 'typename'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_rparen_after, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ')' after '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_selector_for_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected selector for Objective-C method", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_after_attribute_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after attribute list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_after_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_after_method_proto, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after method prototype", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_after_namespace_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after namespace name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_after_static_assert, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after static_assert", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_after_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after %0 statement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_decl_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' at end of declaration list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' at end of declaration", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_semi_for, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' in 'for' statement specifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_star_this_capture, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'this' following '*' in lambda capture list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected statement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected template", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_template_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected template parameter", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_token_instead_of_objcxx_keyword, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %0; %1 is a keyword in Objective-C++", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a type", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_type_name_after_typename, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected an identifier or template-id after '::'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_unqualified_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %select{identifier|unqualified-id}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_version, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a version of the form 'major[.minor[.subminor]]'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_expected_while, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'while' in do/while loop", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_explicit_instantiation_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumerations cannot be explicitly instantiated", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_explicit_instantiation_with_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit template instantiation cannot have a definition; if this definition is meant to be an explicit specialization, add '<>' after the 'template' keyword", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_explicit_spec_non_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit %select{specialization|instantiation}0 of non-template %1 %2", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_export_empty, CLASS_ERROR, (unsigned)diag::Severity::Error, "export declaration cannot be empty", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_external_source_symbol_duplicate_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate %0 clause in an 'external_source_symbol' attribute", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_external_source_symbol_expected_keyword, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'language', 'defined_in', or 'generated_declaration'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_extraneous_closing_brace, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous closing brace ('}')", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_extraneous_rparen_in_condition, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous ')' after condition, expected a statement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_extraneous_token_before_semi, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous '%0' before ';'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_fold_operator_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "operators in fold expression must be the same", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_for_co_await_not_range_for, CLASS_ERROR, (unsigned)diag::Severity::Error, "'co_await' modifier can only be applied to range-based for loop", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_for_range_expected_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "for range declaration must declare a variable", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_for_range_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "range-based for loop requires type for loop variable", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_friend_decl_defines_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot define a type in a friend declaration", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_friend_explicit_instantiation, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend cannot be declared in an explicit instantiation; if this declaration is meant to be a friend declaration, remove the 'template' keyword", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_friend_invalid_in_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "'friend' used outside of class", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_func_def_no_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "function definition does not declare parameters", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_function_declared_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "function definition declared 'typedef'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_function_definition_not_allowed, CLASS_ERROR, (unsigned)diag::Severity::Error, "function definition is not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_function_is_not_record, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected %0 in function call; perhaps remove the %0?", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_gnu_inline_asm_disabled, CLASS_ERROR, (unsigned)diag::Severity::Error, "GNU-style inline assembly is disabled", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_id_after_template_in_nested_name_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected template name after 'template' keyword in nested name specifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_illegal_decl_reference_to_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 declared as a reference to a reference", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_illegal_super_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast 'super' (it isn't an expression)", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_incomplete_array_member_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "array bound cannot be deduced from an in-class initializer", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_init_list_bin_op, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer list cannot be used on the %select{left|right}0 hand side of operator '%1'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_inline_ms_asm_parsing, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_inline_namespace_alias, CLASS_ERROR, (unsigned)diag::Severity::Error, "namespace alias cannot be inline", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_inline_nested_namespace_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "nested namespace definition cannot be 'inline'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_invalid_operator_on_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use %select{dot|arrow}0 operator on a type", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_invalid_reference_qualifier_application, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' qualifier may not be applied to a reference", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_invalid_token_after_declarator_suggest_equal, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid %0 at end of declaration; did you mean '='?", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_invalid_token_after_toplevel_declarator, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after top level declarator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_l_square_l_square_not_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "C++11 only allows consecutive left square brackets when introducing an attribute", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_label_end_of_compound_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "label at end of compound statement: expected statement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_lambda_decl_specifier_repeated, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{'mutable'|'constexpr'}0 cannot appear multiple times in a lambda declarator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_lambda_missing_parens, CLASS_ERROR, (unsigned)diag::Severity::Error, "lambda requires '()' before %select{'mutable'|return type|attribute specifier|'constexpr'}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_literal_operator_string_not_empty, CLASS_ERROR, (unsigned)diag::Severity::Error, "string literal after 'operator' must be '\"\"'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_literal_operator_string_prefix, CLASS_ERROR, (unsigned)diag::Severity::Error, "string literal after 'operator' cannot have an encoding prefix", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_misplaced_ellipsis_in_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'...' must %select{immediately precede declared identifier|be innermost component of anonymous pack declaration}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_missing_before_module_end, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %0 at end of module", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_missing_catch_finally, CLASS_ERROR, (unsigned)diag::Severity::Error, "@try statement without a @catch and @finally clause", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_missing_comma_before_ellipsis, CLASS_ERROR, (unsigned)diag::Severity::Error, "C requires a comma prior to the ellipsis in a variadic function type", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_missing_dependent_template_keyword, CLASS_ERROR, (unsigned)diag::Severity::Error, "use 'template' keyword to treat '%0' as a dependent template name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_missing_end_of_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing '}' at end of definition of %q0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_missing_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected parameter declarator", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_missing_whitespace_digraph, CLASS_ERROR, (unsigned)diag::Severity::Error, "found '<::' after a %select{template name|const_cast|dynamic_cast|reinterpret_cast|static_cast}0 which forms the digraph '<:' (aka '[') and a ':', did you mean '< ::'?", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_module_expected_ident, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a module name after module%select{| import}0", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_expected_semi, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ';' after module name", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_ms_attributes_not_enabled, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_declspec_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "__declspec attributes must be an identifier or string literal", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_duplicate_accessor, CLASS_ERROR, (unsigned)diag::Severity::Error, "property declaration specifies '%0' accessor twice", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_expected_accessor_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected name of accessor method", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_expected_comma_or_rparen, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ',' or ')' at end of property accessor list", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_expected_equal, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '=' after '%0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_has_set_accessor, CLASS_ERROR, (unsigned)diag::Severity::Error, "putter for property must be specified as 'put', not 'set'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "property declaration cannot have an in-class initializer", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_missing_accessor_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing 'get=' or 'put='", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_no_getter_or_putter, CLASS_ERROR, (unsigned)diag::Severity::Error, "property does not specify a getter or a putter", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_ms_property_unknown_accessor, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected 'get' or 'put' in property declaration", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_msasm_unable_to_create_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "MS-style inline assembly is not available: %0", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_msasm_unsupported_arch, CLASS_ERROR, (unsigned)diag::Severity::Error, "Unsupported architecture '%0' for MS-style inline assembly", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_multiple_template_declarators, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|a template declaration|an explicit template specialization|an explicit template instantiation}0 can only %select{|declare|declare|instantiate}0 a single entity", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_namespace_nonnamespace_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "namespaces can only be defined in global or namespace scope", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_no_matching_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter named %0 is missing", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_nsnumber_nonliteral_unary, CLASS_ERROR, (unsigned)diag::Severity::Error, "@%0 must be followed by a number to form an NSNumber object", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_concat_string, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected token after Objective-C string", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_directive_only_in_protocol, CLASS_ERROR, (unsigned)diag::Severity::Error, "directive may only be specified in protocols only", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_expected_equal_for_getter, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '=' for Objective-C getter", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_expected_equal_for_setter, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '=' for Objective-C setter", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_expected_property_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown property attribute %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_expected_selector_for_getter_setter, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected selector for Objective-C %select{setter|getter}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_expected_type_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected type parameter name", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_illegal_interface_qual, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal interface qualifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_illegal_visibility_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal visibility specification", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_missing_end, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing '@end'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_parameterized_implementation, CLASS_ERROR, (unsigned)diag::Severity::Error, "@implementation cannot have type parameters", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_postfix_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "postfix attributes are not allowed on Objective-C directives", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_postfix_attribute_hint, CLASS_ERROR, (unsigned)diag::Severity::Error, "postfix attributes are not allowed on Objective-C directives, place them in front of '%select{@interface|@protocol}0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_properties_require_objc2, CLASS_ERROR, (unsigned)diag::Severity::Error, "properties are an Objective-C 2 feature", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_property_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "property name cannot be a bit-field", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_property_requires_field_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "property requires fields to be named", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_type_args_after_protocols, CLASS_ERROR, (unsigned)diag::Severity::Error, "protocol qualifiers must precede type arguments", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_unexpected_atend, CLASS_ERROR, (unsigned)diag::Severity::Error, "'@end' appears where closing brace '}' is expected", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_unexpected_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "prefix attribute must be followed by an interface or protocol", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objc_unknown_at, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected an Objective-C directive after '@'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objcbridge_related_expected_related_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a related ObjectiveC class name, e.g., 'NSColor'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_objcbridge_related_selector_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a class method selector with single argument, e.g., 'colorWithCGColor:'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_decl_in_declare_simd, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declaration is expected after 'declare simd' directive", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_declare_simd_inbranch_notinbranch, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected '%0' clause, '%1' is specified already", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_declare_target_unexpected_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected '%0' clause, only 'to' or 'link' clauses expected", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_expected_identifier_for_critical, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected identifier specifying the name of the 'omp critical' directive", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_expected_punc, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected ',' or ')' in '%0' %select{clause|directive}1", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_expected_reduction_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected identifier or one of the following operators: '+', '-', '*', '&', '|', '^', '&&', or '||'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_immediate_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma omp %0' %select{|with '%2' clause }1cannot be an immediate substatement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_map_type_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing map type", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_unexpected_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected OpenMP clause '%0' in directive '#pragma omp %1'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_unexpected_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected OpenMP directive '#pragma omp %0'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_unknown_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected an OpenMP directive", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_unknown_map_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_omp_unknown_map_type_modifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "incorrect map type modifier, expected 'always'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_opencl_logical_exclusive_or, CLASS_ERROR, (unsigned)diag::Severity::Error, "^^ is a reserved operator in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_opencl_taking_function_address_parser, CLASS_ERROR, (unsigned)diag::Severity::Error, "taking address of function is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_opencl_unroll_hint_on_non_loop, CLASS_ERROR, (unsigned)diag::Severity::Error, "OpenCL only supports 'opencl_unroll_hint' attribute on for, while, and do statements", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_out_of_line_constructor_template_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "out-of-line constructor for %0 cannot have template arguments", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_override_control_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' keyword not permitted with interface types", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_paren_sizeof_parameter_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing parentheses around the size of parameter pack %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_cannot_end_force_cuda_host_device, CLASS_ERROR, (unsigned)diag::Severity::Error, "force_cuda_host_device end pragma without matching force_cuda_host_device begin", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_comment_malformed, CLASS_ERROR, (unsigned)diag::Severity::Error, "pragma comment requires parenthesized identifier and optional string", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_comment_unknown_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown kind of pragma comment", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_detect_mismatch_malformed, CLASS_ERROR, (unsigned)diag::Severity::Error, "pragma detect_mismatch is malformed; it requires two comma-separated string literals", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_fp_contract_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma fp_contract' can only appear at file scope or at the start of a compound statement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_fp_invalid_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected argument '%0' to '#pragma clang fp %1'; expected 'on', 'fast' or 'off'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_fp_invalid_option, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{invalid|missing}0 option%select{ %1|}0; expected contract", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_fp_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma clang fp' can only appear at file scope or at the start of a compound statement", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_invalid_keyword, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument; expected 'enable'%select{|, 'full'}0%select{|, 'assume_safety'}1 or 'disable'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_loop_invalid_option, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{invalid|missing}0 option%select{ %1|}0; expected vectorize, vectorize_width, interleave, interleave_count, unroll, unroll_count, or distribute", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_loop_missing_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing argument; expected %select{an integer value|'enable'%select{|, 'full'}1%select{|, 'assume_safety'}2 or 'disable'}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_missing_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing argument to '#pragma %0'%select{|; expected %2}1", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_optimize_extra_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected extra argument '%0' to '#pragma clang optimize'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_optimize_invalid_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected argument '%0' to '#pragma clang optimize'; expected 'on' or 'off'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_pragma_pointers_to_members_unknown_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected %0, expected to see one of %select{|'best_case', 'full_generality', }1'single_inheritance', 'multiple_inheritance', or 'virtual_inheritance'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_right_angle_bracket_equal_needs_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "a space is required between a right angle bracket and an equals sign (use '> =')", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_scoped_enum_missing_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "scoped enumeration requires a name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_single_decl_assign_in_for_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "range-based 'for' statement uses ':', not '='", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_sizeof_parameter_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected parenthesized parameter pack name in 'sizeof...' expression", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_stmtexpr_file_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "statement expression not allowed at file scope", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_super_in_using_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__super' cannot be used with a using declaration", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_synthesized_property_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a property name in @synthesize", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_template_defn_explicit_instantiation, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{function|class|variable}0 cannot be defined in an explicit instantiation; if this declaration is meant to be a %select{function|class|variable}0 definition, remove the 'template' keyword", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_template_spec_syntax_non_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "identifier followed by '<' indicates a class template specialization but %0 %select{does not refer to a template|refers to a function template|<unused>|refers to a variable template|<unused>}1", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_templated_invalid_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "a static_assert declaration cannot be a template", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_templated_using_directive_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot template a using %select{directive|declaration}0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_this_captured_by_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "'this' cannot be captured by reference", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_two_right_angle_brackets_need_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "a space is required between consecutive right angle brackets (use '> >')", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_type_safety_unknown_flag, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid comparison flag %0; use 'layout_compatible' or 'must_be_null'", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_type_trait_arity, CLASS_ERROR, (unsigned)diag::Severity::Error, "type trait requires %0%select{| or more}1 argument%select{|s}2; have %3 argument%s3", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_typename_identifiers_only, CLASS_ERROR, (unsigned)diag::Severity::Error, "typename is allowed for identifiers only", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_typename_invalid_constexpr, CLASS_ERROR, (unsigned)diag::Severity::Error, "type name does not allow constexpr specifier to be specified", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_typename_invalid_functionspec, CLASS_ERROR, (unsigned)diag::Severity::Error, "type name does not allow function specifier to be specified", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_typename_invalid_storageclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "type name does not allow storage class to be specified", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_typename_refers_to_non_type_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "typename specifier refers to a non-type template", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_typename_requires_specqual, CLASS_ERROR, (unsigned)diag::Severity::Error, "type name requires a specifier or qualifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_at, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected '@' in program", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_colon_in_nested_name_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected ':' in nested name specifier; did you mean '::'?", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_module_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "module declaration must be the first declaration in the translation unit", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_unexpected_module_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected module kind %0; expected 'implementation' or 'partition'", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_unexpected_namespace_attributes_alias, CLASS_ERROR, (unsigned)diag::Severity::Error, "attributes cannot be specified on namespace alias", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_nested_namespace_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "attributes cannot be specified on a nested namespace definition", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_protocol_qualifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "@implementation declaration cannot be protocol qualified", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_scope_on_base_decltype, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected namespace scope prior to decltype", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_semi, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected ';' before %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_token_in_nested_name_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' cannot be a part of nested name specifier; did you mean ':'?", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_typedef_ident, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected type name %0: expected identifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unexpected_unqualified_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "type-id cannot have a name", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unknown_template_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown template name %0", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unspecified_size_with_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "'static' may not be used without an array size", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_unspecified_vla_size_with_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "'static' may not be used with an unspecified variable length array size", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_using_attribute_ns_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute with scope specifier cannot follow default scope specifier", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_using_namespace_in_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "'using namespace' is not allowed in classes", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(err_zero_version, CLASS_ERROR, (unsigned)diag::Severity::Error, "version number must have non-zero major, minor, or sub-minor version", 0, SFINAE_SubstitutionFailure, false, true, 4)
+DIAG(ext_abstract_pack_declarator_parens, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++11 requires a parenthesized pack declaration to have a name", 23, SFINAE_Suppress, false, false, 4)
+DIAG(ext_alias_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "alias declarations are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_alignof_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 applied to an expression is a GNU extension", 218, SFINAE_Suppress, false, false, 4)
+DIAG(ext_auto_storage_class, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases", 47, SFINAE_Suppress, false, false, 4)
+DIAG(ext_auto_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'__auto_type' is a GNU extension", 221, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c11_alignment, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%0 is a C11-specific feature", 95, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c11_generic_selection, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "generic selections are a C11-specific feature", 95, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c11_noreturn, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "_Noreturn functions are a C11-specific feature", 95, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c11_static_assert, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "_Static_assert is a C11-specific feature", 95, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c99_compound_literal, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "compound literals are a C99-specific feature", 97, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c99_variable_decl_in_for_loop, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variable declaration in for loop is a C99-specific feature", 97, SFINAE_Suppress, false, false, 4)
+DIAG(ext_c_enum_fixed_underlying_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "enumeration types with a fixed underlying type are a Microsoft extension", 344, SFINAE_Suppress, false, false, 4)
+DIAG(ext_constexpr_if, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "constexpr if is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_constexpr_on_lambda_cxx1z, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'constexpr' on lambda expressions is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_cxx11_enum_fixed_underlying_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "enumeration types with a fixed underlying type are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_decltype_auto_type_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'decltype(auto)' type specifier is a C++14 extension", 82, SFINAE_Suppress, false, false, 4)
+DIAG(ext_decomp_decl_empty, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++1z does not allow a decomposition group to be empty", 174, SFINAE_Suppress, false, false, 4)
+DIAG(ext_defaulted_deleted_function, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{defaulted|deleted}0 function definitions are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_ellipsis_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "exception specification of '...' is a Microsoft extension", 340, SFINAE_Suppress, false, false, 4)
+DIAG(ext_empty_translation_unit, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C requires a translation unit to contain at least one declaration", 175, SFINAE_Suppress, false, false, 4)
+DIAG(ext_enumerator_list_comma_c, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "commas at the end of enumerator lists are a C99-specific feature", 97, SFINAE_Suppress, false, false, 4)
+DIAG(ext_enumerator_list_comma_cxx, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "commas at the end of enumerator lists are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_expected_semi_decl_list, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected ';' at end of declaration list", 0, SFINAE_Suppress, false, false, 4)
+DIAG(ext_extern_template, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extern templates are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_extra_semi, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extra ';' %select{outside of a function|inside a %1|inside instance variable list|after member function definition}0", 191, SFINAE_Suppress, false, false, 4)
+DIAG(ext_extra_semi_cxx11, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "extra ';' outside of a function is a C++11 extension", 75, SFINAE_Suppress, false, false, 4)
+DIAG(ext_fold_expression, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pack fold expression is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_for_range, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "range-based for loop is a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_generalized_initializer_lists, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "generalized initializer lists are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_address_of_label, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU address-of-label extension", 235, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_array_range, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU array range extension", 227, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_case_range, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU case range extension", 223, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_conditional_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU ?: conditional expression extension, omitting middle operand", 226, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_empty_initializer, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU empty initializer extension", 228, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_indirect_goto, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU indirect-goto extension", 235, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_missing_equal_designator, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of GNU 'missing =' extension in designator", 227, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_old_style_field_designator, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of GNU old-style field designator extension", 227, SFINAE_Suppress, false, false, 4)
+DIAG(ext_gnu_statement_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of GNU statement expression extension", 237, SFINAE_Suppress, false, false, 4)
+DIAG(ext_ident_list_in_param, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "type-less parameter names in function declaration", 471, SFINAE_Suppress, false, false, 4)
+DIAG(ext_init_statement, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'%select{if|switch}0' initialization statements are a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_inline_namespace, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "inline namespaces are a C++11 feature", 76, SFINAE_Suppress, false, false, 4)
+DIAG(ext_keyword_as_ident, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "keyword '%0' will be made available as an identifier %select{here|for the remainder of the translation unit}1", 308, SFINAE_Suppress, false, false, 4)
+DIAG(ext_ms_sealed_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'sealed' keyword is a Microsoft extension", 351, SFINAE_Suppress, false, false, 4)
+DIAG(ext_multi_using_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of multiple declarators in a single using declaration is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_nested_namespace_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "nested namespace definition is a C++1z extension; define each namespace separately", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_nonstatic_member_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "in-class initialization of non-static data member is a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_nullability, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "type nullability specifier %0 is a Clang extension", 411, SFINAE_Suppress, false, false, 4)
+DIAG(ext_override_control_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'%0' keyword is a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_ref_qualifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "reference qualifiers on functions are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_rvalue_reference, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "rvalue references are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_scoped_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "scoped enumerations are a C++11 extension", 74, SFINAE_Suppress, false, false, 4)
+DIAG(ext_template_template_param_typename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template template parameter using 'typename' is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_thread_before, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'__thread' before '%0'", 471, SFINAE_Suppress, false, false, 4)
+DIAG(ext_using_attribute_ns, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default scope specifier for attributes is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(ext_using_declaration_pack, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pack expansion of using declaration is a C++1z extension", 85, SFINAE_Suppress, false, false, 4)
+DIAG(note_bracket_depth, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use -fbracket-depth=N to increase maximum nesting level", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_extra_comma_message_arg, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "comma separating Objective-C messaging arguments", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_force_empty_selector_name, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "or insert whitespace before ':' to use %0 as parameter name and have an empty entry in the selector", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_misplaced_ellipsis_vararg_add_comma, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "insert ',' before '...' to silence this warning", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_misplaced_ellipsis_vararg_add_ellipsis, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "place '...' %select{immediately before declared identifier|here}0 to declare a function parameter pack", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_misplaced_ellipsis_vararg_existing_ellipsis, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "preceding '...' declares a function parameter pack", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_missing_end_of_definition_before, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "still within definition of %q0 here", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_missing_selector_name, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "introduce a parameter name to make %0 part of the selector", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_objc_container_start, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{class|protocol|category|class extension|implementation|category implementation}0 started here", 0, SFINAE_Suppress, false, false, 4)
+DIAG(note_previous_default_assoc, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous default generic association is here", 0, SFINAE_Suppress, false, false, 4)
+DIAG(warn_arc_bridge_cast_nonarc, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' casts have no effect when not using ARC", 25, SFINAE_Suppress, false, false, 8)
+DIAG(warn_asm_qualifier_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignored %0 qualifier on asm", 35, SFINAE_Suppress, false, false, 12)
+DIAG(warn_attribute_no_decl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 ignored, because it is not attached to a declaration", 247, SFINAE_Suppress, false, false, 4)
+DIAG(warn_attribute_on_function_definition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "GCC does not allow %0 attribute in this position on a function definition", 215, SFINAE_Suppress, false, false, 4)
+DIAG(warn_availability_and_unavailable, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'unavailable' availability overrides all other availability information", 49, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cstyle_param, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of C-style parameters in Objective-C method declarations is deprecated", 138, SFINAE_Suppress, false, false, 25)
+DIAG(warn_cuda_attr_lambda_position, CLASS_WARNING, (unsigned)diag::Severity::Warning, "nvcc does not allow '__%0__' to appear after '()' in lambdas", 124, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx11_compat_decltype_auto_type_specifier, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'decltype(auto)' type specifier is incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx11_right_shift_in_template_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of right-shift operator ('>>') in template argument will require parentheses in C++11", 70, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_attribute, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "attributes on %select{a namespace|an enumerator}0 declaration are incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_constexpr_if, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "constexpr if is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_constexpr_on_lambda, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "constexpr on lambda expressions is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_fold_expression, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "pack fold expression is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_init_statement, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{if|switch}0 initialization statements are incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_nested_namespace_definition, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "nested namespace definition is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_template_template_param_typename, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "template template parameter using 'typename' is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx14_compat_using_attribute_ns, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "default scope specifier for attributes is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx1z_compat_multi_using_declaration, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of multiple declarators in a single using declaration is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx1z_compat_using_declaration_pack, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "pack expansion using declaration is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_alias_declaration, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "alias declarations are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_alignas, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'alignas' is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_alignof, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "alignof expressions are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_attribute, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "C++11 attribute syntax is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_decltype, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'decltype' type specifier is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_defaulted_deleted_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{defaulted|deleted}0 function definitions are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_enum_fixed_underlying_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "enumeration types with a fixed underlying type are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_enumerator_list_comma, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "commas at the end of enumerator lists are incompatible with C++98", 93, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_extern_template, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "extern templates are incompatible with C++98", 93, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_for_range, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "range-based for loop is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_generalized_initializer_lists, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "generalized initializer lists are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_inline_namespace, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "inline namespaces are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_lambda, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "lambda expressions are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_literal_operator, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "literal operators are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_noexcept_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "noexcept specifications are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_noexcept_expr, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "noexcept expressions are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_nonstatic_member_init, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "in-class initialization of non-static data members is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_nullptr, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'nullptr' is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_override_control_keyword, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%0' keyword is incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_ref_qualifier, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "reference qualifiers on functions are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_rvalue_reference, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "rvalue references are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_scoped_enum, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "scoped enumerations are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_static_assert, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "static_assert declarations are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_top_level_semi, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "extra ';' outside of a function is incompatible with C++98", 93, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_trailing_return_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "trailing return types are incompatible with C++98", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_cxx98_compat_two_right_angle_brackets, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "consecutive right angle brackets are incompatible with C++98 (use '> >')", 90, SFINAE_Suppress, false, false, 4)
+DIAG(warn_dangling_else, CLASS_WARNING, (unsigned)diag::Severity::Warning, "add explicit braces to avoid dangling else", 126, SFINAE_Suppress, false, false, 4)
+DIAG(warn_expected_consistent_version_separator, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use same version number separators '_' or '.'; as in 'major[.minor[.subminor]]'", 49, SFINAE_Suppress, false, false, 4)
+DIAG(warn_expected_qualified_after_typename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "expected a qualified name after 'typename'", 0, SFINAE_Suppress, false, false, 4)
+DIAG(warn_extra_semi_after_mem_fn_def, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "extra ';' after member function definition", 191, SFINAE_Suppress, false, false, 4)
+DIAG(warn_file_asm_volatile, CLASS_WARNING, (unsigned)diag::Severity::Warning, "meaningless 'volatile' on asm outside function", 35, SFINAE_Suppress, false, false, 12)
+DIAG(warn_gcc_attribute_location, CLASS_WARNING, (unsigned)diag::Severity::Warning, "GCC does not allow an attribute in this position on a function declaration", 215, SFINAE_Suppress, false, false, 4)
+DIAG(warn_microsoft_dependent_exists, CLASS_WARNING, (unsigned)diag::Severity::Warning, "dependent %select{__if_not_exists|__if_exists}0 declarations are ignored", 341, SFINAE_Suppress, false, false, 4)
+DIAG(warn_microsoft_qualifiers_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "qualifiers after comma in declarator list are ignored", 247, SFINAE_Suppress, false, false, 4)
+DIAG(warn_misplaced_ellipsis_vararg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'...' in this location creates a C-style varargs function%select{, not a function parameter pack|}0", 19, SFINAE_Suppress, false, false, 4)
+DIAG(warn_missing_dependent_template_keyword, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use 'template' keyword to treat '%0' as a dependent template name", 0, SFINAE_Suppress, false, false, 4)
+DIAG(warn_missing_selector_name, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 used as the name of the previous parameter rather than as part of the selector", 371, SFINAE_Suppress, false, false, 4)
+DIAG(warn_objc_protocol_qualifier_missing_id, CLASS_WARNING, (unsigned)diag::Severity::Warning, "protocol has no object type specified; defaults to qualified 'id'", 0, SFINAE_Suppress, false, false, 4)
+DIAG(warn_omp_extra_tokens_at_eol, CLASS_WARNING, (unsigned)diag::Severity::Warning, "extra tokens at the end of '#pragma omp %0' are ignored", 192, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_align_expected_equal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected '=' following '#pragma %select{align|options align}0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_align_invalid_option, CLASS_WARNING, (unsigned)diag::Severity::Warning, "invalid alignment option in '#pragma %select{align|options align}0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_begin_end_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "OpenCL extension end directive mismatches begin directive - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_comment_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'#pragma comment %0' ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_action_or_r_paren, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected action or ')' in '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_colon, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing ':' after %0 - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_colon_r_paren, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing ':' or ')' after %0 - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_identifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected identifier in '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_init_seg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_integer, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected integer between %0 and %1 inclusive in '#pragma %2' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_lparen, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing '(' after '#pragma %0' - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_non_wide_string, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected non-wide string literal in '#pragma %0'", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_predicate, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected %select{'enable', 'disable', 'begin' or 'end'|'disable'}0 - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_punc, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected ')' or ',' in '#pragma %0'", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_rparen, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing ')' after '#pragma %0' - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_section_label_or_name, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected a stack label or a string literal for the section name in '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_section_name, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected a string literal for the section name in '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_expected_section_push_pop_or_name, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected push, pop or a string literal for the section name in '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_extension_is_core, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "OpenCL extension %0 is core feature or supported optional core feature - ignoring", 472, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_extra_tokens_at_eol, CLASS_WARNING, (unsigned)diag::Severity::Warning, "extra tokens at end of '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_force_cuda_host_device_bad_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "incorrect use of #pragma clang force_cuda_host_device begin|end", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_init_seg_unsupported_target, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'#pragma init_seg' is only supported when targeting a Microsoft environment", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_intrinsic_builtin, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is not a recognized builtin%select{|; consider including <intrin.h> to access non-builtin intrinsics}1", 249, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_invalid_action, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown action for '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_invalid_specific_action, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown action '%1' for '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_ms_struct, CLASS_WARNING, (unsigned)diag::Severity::Warning, "incorrect use of '#pragma ms_struct on|off' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_omp_ignored, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unexpected '#pragma omp ...' in program", 547, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_options_expected_align, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected 'align' following '#pragma options' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_pack_malformed, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected integer or identifier in '#pragma pack' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_unknown_extension, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown OpenCL extension %0 - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_unroll_cuda_value_in_parens, CLASS_WARNING, (unsigned)diag::Severity::Warning, "argument to '#pragma unroll' should not be in parentheses in CUDA C/C++", 124, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_unsupported_action, CLASS_WARNING, (unsigned)diag::Severity::Warning, "known but unsupported action '%1' for '#pragma %0' - ignored", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_unsupported_extension, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unsupported OpenCL extension %0 - ignoring", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_pragma_unused_expected_var, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected '#pragma unused' argument to be a variable name", 250, SFINAE_Suppress, false, false, 4)
+DIAG(warn_semicolon_before_method_body, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "semicolon before method body is ignored", 520, SFINAE_Suppress, false, false, 4)
+DIAG(warn_static_inline_explicit_inst_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring '%select{static|inline}0' keyword on explicit template instantiation", 552, SFINAE_Suppress, false, false, 4)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticSemaKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticSemaKinds.inc
new file mode 100644
index 0000000..9c7fba2
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticSemaKinds.inc
@@ -0,0 +1,3230 @@
+#ifdef SEMASTART
+__SEMASTART = DIAG_START_SEMA,
+#undef SEMASTART
+#endif
+
+DIAG(err_64_bit_builtin_32_bit_tgt, CLASS_ERROR, (unsigned)diag::Severity::Error, "this builtin is only available on 64-bit targets", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_abi_tag_on_redeclaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot add 'abi_tag' attribute in a redeclaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_abstract_type_in_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{return|parameter|variable|field|instance variable|synthesized instance variable}0 type %1 is an abstract class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "%1 is a %select{private|protected}0 member of %3", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_base_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{base class|inherited virtual base class}0 %1 has %select{private|protected}3 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR*|}2constructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "calling a %select{private|protected}0 constructor of class %2", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "ISO C++11 does not allow access declarations; use using declarations instead", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_access_dtor, CLASS_ERROR, (unsigned)diag::Severity::Error, "calling a %select{private|protected}1 destructor of class %0", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "base class %0 has %select{private|protected}1 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_exception, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception object of type %0 has %select{private|protected}1 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_field, CLASS_ERROR, (unsigned)diag::Severity::Error, "field of type %1 has %select{private|protected}2 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_ivar, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable of type %0 has %select{private|protected}1 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_temp, CLASS_ERROR, (unsigned)diag::Severity::Error, "temporary of type %0 has %select{private|protected}1 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable of type %1 has %select{private|protected}2 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_dtor_vbase, CLASS_ERROR, (unsigned)diag::Severity::Error, "inherited virtual base class %1 has %select{private|protected}2 destructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_field_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "field of type %0 has %select{private|protected}2 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR* |}1constructor", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_friend_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend function %1 is a %select{private|protected}0 member of %3", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_access_lambda_capture, CLASS_ERROR, (unsigned)diag::Severity::Error, "capture of variable '%0' as type %1 calls %select{private|protected}3 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR* |}2constructor", 0, SFINAE_AccessControl, false, true, 3)
+DIAG(err_addr_ovl_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "address of overloaded function %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_addr_ovl_no_qualifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot form member pointer of type %0 without '&' and class name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_addr_ovl_no_viable, CLASS_ERROR, (unsigned)diag::Severity::Error, "address of overloaded function %0 does not match required type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_addr_ovl_not_func_ptrref, CLASS_ERROR, (unsigned)diag::Severity::Error, "address of overloaded function %0 cannot be converted to type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_address_of_function_with_pass_object_size_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot take address of function %0 because parameter %1 has pass_object_size attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_address_space_qualified_delete, CLASS_ERROR, (unsigned)diag::Severity::Error, "'delete' cannot delete objects of type %0 in address space '%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_address_space_qualified_new, CLASS_ERROR, (unsigned)diag::Severity::Error, "'new' cannot allocate objects of type %0 in address space '%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_addrof_function_disabled_by_enable_if_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot take address of function %0 because it has one or more non-tautological enable_if conditions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_after_tentative, CLASS_ERROR, (unsigned)diag::Severity::Error, "alias definition of %0 after tentative definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_is_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition %0 cannot also be an %select{alias|ifunc}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_not_supported_on_darwin, CLASS_ERROR, (unsigned)diag::Severity::Error, "only weak aliases are supported on darwin", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_not_supported_on_nvptx, CLASS_ERROR, (unsigned)diag::Severity::Error, "CUDA does not support aliases", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_template_expansion_into_fixed_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "pack expansion used as argument for non-pack parameter of alias template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_template_extra_headers, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous template parameter list in alias template declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alias_to_undefined, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{alias|ifunc}0 must point to a defined %select{variable or |}1function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_align_value_attribute_argument_not_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "'align_value' attribute requires integer constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignas_attribute_wrong_decl_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to a %select{function parameter|variable with 'register' storage class|'catch' variable|bit-field}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignas_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "redeclaration has different alignment requirement (%1 vs %0)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignas_missing_on_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must be specified on definition if it is specified on any declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignas_underaligned, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested alignment is less than minimum alignment of %1 for type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_aligned_attribute_argument_not_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "'aligned' attribute requires integer constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignment_dependent_typedef_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested alignment is dependent but declaration is not dependent", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignment_not_power_of_two, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested alignment is not a power of 2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignment_too_big, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested alignment must be %0 or smaller", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignment_too_small, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested alignment must be %0 or greater", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_alignof_member_of_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of 'alignof' to a field of a class still being defined", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_allocation_of_abstract_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "allocating an object of abstract class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_altivec_empty_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_base_to_derived_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous cast from base %0 to derived %1:%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_delete_operand, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion of delete expression of type %0 to a pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_derived_to_base_conv, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion from derived class %0 to base class %1:%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_inherited_constructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructor of %0 inherited from multiple base class subobjects", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_member_multiple_subobject_types, CLASS_ERROR, (unsigned)diag::Severity::Error, "member %0 found in multiple base classes of different types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_member_multiple_subobjects, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-static member %0 found in multiple base-class subobjects of type %1:%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_memptr_conv, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion from pointer to member of %select{base|derived}0 class %1 to pointer to member of %select{derived|base}0 class %2:%3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_suitable_delete_member_function_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple suitable %0 functions in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ambiguous_tag_hiding, CLASS_ERROR, (unsigned)diag::Severity::Error, "a type named %0 is hidden by a declaration in a different namespace", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anon_bitfield_has_negative_width, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous bit-field has negative width (%0)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anon_bitfield_width_exceeds_type_width, CLASS_ERROR, (unsigned)diag::Severity::Error, "width of anonymous bit-field (%0 bits) exceeds %select{width|size}1 of its type (%2 bit%s2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous property is not supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_record_bad_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous %select{struct|union}0 can only contain non-static data members", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_record_member_redecl, CLASS_ERROR, (unsigned)diag::Severity::Error, "member of anonymous %select{struct|union}0 redeclares %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_record_nonpublic_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous %select{struct|union}0 cannot contain a %select{private|protected}1 data member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_record_with_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "functions cannot be declared in an anonymous %select{struct|union}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_record_with_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "static members cannot be declared in an anonymous %select{struct|union}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_record_with_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "types cannot be declared in an anonymous %select{struct|union}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_struct_not_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous %select{structs|structs and classes}0 must be %select{struct or union|class}0 members", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_union_not_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous unions at namespace or global scope must be declared 'static'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anonymous_union_with_storage_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous union at class scope must not have a storage specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anyx86_interrupt_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{x86|x86-64}0 'interrupt' attribute only applies to functions that have %select{a 'void' return type|only a pointer parameter optionally followed by an integer parameter|a pointer as the first parameter|a %2 type as the second parameter}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_anyx86_interrupt_called, CLASS_ERROR, (unsigned)diag::Severity::Error, "interrupt service routine cannot be called directly", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_arc_array_param_no_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "must explicitly describe intended ownership of an object array parameter", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_assign_property_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "existing instance variable %1 for property %0 with %select{unsafe_unretained|assign}2 attribute must be __unsafe_unretained", 0, SFINAE_SubstitutionFailure, false, true, 6)
+DIAG(err_arc_atomic_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot perform atomic operation on a pointer to type %0: type has non-trivial ownership", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_autoreleasing_capture, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot capture __autoreleasing variable in a %select{block|lambda by copy}0", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_autoreleasing_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{__block variables|global variables|fields|instance variables}0 cannot have __autoreleasing ownership", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_bridge_cast_incompatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "incompatible types casting %0 to %1 with a %select{__bridge|__bridge_transfer|__bridge_retained}2 cast", 0, SFINAE_SubstitutionFailure, false, true, 7)
+DIAG(err_arc_bridge_cast_wrong_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "cast of %select{Objective-C|block|C}0 pointer type %1 to %select{Objective-C|block|C}2 pointer type %3 cannot use %select{__bridge|__bridge_transfer|__bridge_retained}4", 0, SFINAE_SubstitutionFailure, false, true, 7)
+DIAG(err_arc_cast_requires_bridge, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{cast|implicit conversion}0 of %select{Objective-C|block|C}1 pointer type %2 to %select{Objective-C|block|C}3 pointer type %4 requires a bridged cast", 0, SFINAE_SubstitutionFailure, false, true, 7)
+DIAG(err_arc_collection_forward, CLASS_ERROR, (unsigned)diag::Severity::Error, "collection expression type %0 is a forward declaration", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_convesion_of_weak_unavailable, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{implicit conversion|cast}0 of weak-unavailable object of type %1 to a __weak object of type %2", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_arc_gained_method_convention, CLASS_ERROR, (unsigned)diag::Severity::Error, "method implementation does not match its declaration", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_illegal_explicit_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "ARC forbids explicit message send of %0", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_illegal_method_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "ARC forbids %select{implementation|synthesis}0 of %1", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_illegal_selector, CLASS_ERROR, (unsigned)diag::Severity::Error, "ARC forbids use of %0 in a @selector", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_inconsistent_property_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|unsafe_unretained|strong|weak}1 property %0 may not also be declared %select{|__unsafe_unretained|__strong|__weak|__autoreleasing}2", 0, SFINAE_SubstitutionFailure, false, true, 6)
+DIAG(err_arc_indirect_no_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{pointer|reference}1 to non-const type %0 with no explicit ownership", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_init_method_unrelated_result_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "init methods must return a type related to the receiver type", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_lost_method_convention, CLASS_ERROR, (unsigned)diag::Severity::Error, "method was declared as %select{an 'alloc'|a 'copy'|an 'init'|a 'new'}0 method, but its implementation doesn't match because %select{its result type is not an object pointer|its result type is unrelated to its receiver type}1", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_may_not_respond, CLASS_ERROR, (unsigned)diag::Severity::Error, "no visible @interface for %0 declares the selector %1", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_method_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "no known %select{instance|class}1 method for selector %0", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_mismatched_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{implicit conversion|cast}0 of %select{%2|a non-Objective-C pointer type %2|a block pointer|an Objective-C pointer|an indirect pointer to an Objective-C pointer}1 to %3 is disallowed with ARC", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_multiple_method_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple methods named %0 found with mismatched result, parameter type or attributes", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_new_array_without_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "'new' cannot allocate an array of %0 with no explicit ownership", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_nolifetime_behavior, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit ownership qualifier on cast result has no effect", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_nonlocal_writeback, CLASS_ERROR, (unsigned)diag::Severity::Error, "passing address of %select{non-local|non-scalar}0 object to __autoreleasing parameter for write-back", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_objc_object_in_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "ARC forbids %select{Objective-C objects|blocks}0 in %select{struct|interface|union|<<ERROR>>|enum}1", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_objc_property_default_assign_on_object, CLASS_ERROR, (unsigned)diag::Severity::Error, "ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_perform_selector_retains, CLASS_ERROR, (unsigned)diag::Severity::Error, "performSelector names a selector which retains the object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_arc_pseudo_dtor_inconstant_quals, CLASS_ERROR, (unsigned)diag::Severity::Error, "pseudo-destructor destroys object of type %0 with inconsistently-qualified type %1", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_receiver_forward_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "receiver %0 for class message is a forward declaration", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_receiver_forward_instance, CLASS_ERROR, (unsigned)diag::Severity::Error, "receiver type %0 for instance message is a forward declaration", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_strong_property_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "existing instance variable %1 for strong property %0 may not be %select{|__unsafe_unretained||__weak}2", 0, SFINAE_SubstitutionFailure, false, true, 6)
+DIAG(err_arc_thread_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "thread-local variable has non-trivial ownership: type is %0", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_arc_typecheck_convert_incompatible_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "incompatible pointer types passing retainable parameter of type %0to a CF function expecting %1 type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_arc_unsupported_weak_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "class is incompatible with __weak references", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_arc_unused_init_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "the result of a delegate init call must be immediately returned or assigned to 'self'", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_arc_weak_disabled, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot create __weak reference in file using manual reference counting", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_arc_weak_ivar_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_arc_weak_no_runtime, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot create __weak reference because the current deployment target does not support weak references", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_arc_weak_unavailable_assign, CLASS_ERROR, (unsigned)diag::Severity::Error, "assignment of a weak-unavailable object to a __weak object", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_arc_weak_unavailable_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "synthesizing __weak instance variable of type %0, which does not support weak references", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_arg_with_address_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter may not be qualified with an address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_argument_invalid_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument should be a value from %0 to %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_argument_not_multiple, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument should be a multiple of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_arithmetic_nonfragile_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "arithmetic on pointer to interface %0, which is not a constant size for this architecture and platform", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_arm_invalid_specialreg, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid special register for builtin", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_designator_empty_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "array designator range [%0, %1] is empty", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_designator_negative, CLASS_ERROR, (unsigned)diag::Severity::Error, "array designator value '%0' is negative", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_designator_non_array, CLASS_ERROR, (unsigned)diag::Severity::Error, "array designator cannot initialize non-array type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_designator_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "array designator index (%0) exceeds array bounds (%1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_init_different_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot initialize array %diff{of type $ with array of type $|with different type of array}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_init_incompat_wide_string_into_wchar, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializing wide char array with incompatible wide string literal", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_init_narrow_string_into_wchar, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializing wide char array with non-wide string literal", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_init_non_constant_array, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot initialize array %diff{of type $ with non-constant array of type $|with different type of array}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_init_not_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "array initializer must be an initializer list%select{| or string literal| or wide string literal}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_init_wide_string_into_char, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializing char array with wide string literal", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_new_needs_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "array size must be specified in new expressions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_of_abstract_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "array of abstract class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_section_does_not_specify_contiguous_storage, CLASS_ERROR, (unsigned)diag::Severity::Error, "array section does not specify contiguous storage", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_array_size_ambiguous_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion of array size expression of type %0 to an integral or enumeration type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_size_explicit_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "array size expression of type %0 requires explicit conversion to type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_size_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "array size expression has incomplete class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_size_non_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "size of array has non-integer type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_size_not_integral, CLASS_ERROR, (unsigned)diag::Severity::Error, "array size expression must have integral or %select{|unscoped }0enumeration type, not %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_star_in_function_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable length array must be bound in function definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_star_outside_prototype, CLASS_ERROR, (unsigned)diag::Severity::Error, "star modifier used outside of function prototype", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_static_not_outermost, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 used in non-outermost array type derivation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_static_outside_prototype, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 used in array declarator outside of function prototype", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_array_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "array is too large (%0 elements)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_as_qualified_auto_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "automatic variable qualified with an address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_asm_bad_register_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "bad type for named register variable", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_immediate_expected, CLASS_ERROR, (unsigned)diag::Severity::Error, "constraint '%0' expects an integer constant expression", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "asm operand has incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_input_duplicate_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "more than one input constraint matches the same output '%0'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_global_var_reg, CLASS_ERROR, (unsigned)diag::Severity::Error, "register '%0' unsuitable for global register variables on this target", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_input_constraint, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid input constraint '%0' in asm", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_input_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid input size for constraint '%0'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_lvalue_in_input, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid lvalue in asm input for constraint '%0'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_lvalue_in_output, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid lvalue in asm output", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_output_constraint, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid output constraint '%0' in asm", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_output_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid output size for constraint '%0'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_invalid_type_in_input, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid type %0 in asm input for constraint '%1'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_naked_parm_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter references not allowed in naked functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_asm_naked_this_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "'this' pointer references not allowed in naked functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_asm_non_addr_value_in_memory_constraint, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to a %select{bit-field|vector element|global register variable}0 in asm %select{input|output}1 with a memory constraint '%2'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_register_size_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "size of register '%0' does not match variable size", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_tying_incompatible_types, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported inline asm: input with type %diff{$ matching output with type $|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_unexpected_constraint_alternatives, CLASS_ERROR, (unsigned)diag::Severity::Error, "asm constraint has an unexpected number of alternatives: %0 vs %1", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_asm_unknown_register_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown register name '%0' in asm", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_assoc_compatible_types, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 in generic association compatible with previously specified type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_assoc_type_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 in generic association incomplete", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_assoc_type_nonobject, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 in generic association not an object type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_assoc_type_variably_modified, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 in generic association is a variably modified type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atdef_nonfragile_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of @defs is not supported on this architecture and platform", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_builtin_must_be_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic builtin must be a pointer (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_builtin_must_be_pointer_intfltptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic builtin must be a pointer to integer, floating-point or pointer (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_builtin_must_be_pointer_intptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic builtin must be a pointer to integer or pointer (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_builtin_pointer_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_exclusive_builtin_pointer_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_load_store_uses_lib, CLASS_ERROR, (unsigned)diag::Severity::Error, "atomic %select{load|store}0 requires runtime support that is not available for this target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_op_bitwise_needs_atomic_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to bitwise atomic operation must be a pointer to %select{|atomic }0integer (%1 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_op_needs_atomic, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic operation must be a pointer to _Atomic type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_op_needs_atomic_int_or_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic operation must be a pointer to %select{|atomic }0integer or pointer (%1 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_op_needs_non_const_atomic, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic operation must be a pointer to non-const _Atomic type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_op_needs_non_const_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic operation must be a pointer to non-const type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_op_needs_trivial_copy, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to atomic operation must be a pointer to a trivially-copyable type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_property_nontrivial_assign_op, CLASS_ERROR, (unsigned)diag::Severity::Error, "atomic property of reference type %0 cannot have non-trivial assignment operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_atomic_specifier_bad_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "_Atomic cannot be applied to %select{incomplete |array |function |reference |atomic |qualified |}0type %1 %select{||||||which is not trivially copyable}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attr_cond_never_constant_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute expression never produces a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attr_objc_ownership_redundant, CLASS_ERROR, (unsigned)diag::Severity::Error, "the type %0 is already explicitly ownership-qualified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attr_tlsmodel_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "tls_model must be \"global-dynamic\", \"local-dynamic\", \"initial-exec\" or \"local-exec\"", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_address_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "function type may not be qualified with an address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_address_multiple_qualifiers, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple address spaces specified for type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_address_space_negative, CLASS_ERROR, (unsigned)diag::Severity::Error, "address space is negative", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_address_space_too_high, CLASS_ERROR, (unsigned)diag::Severity::Error, "address space is larger than the maximum supported (%0)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_aligned_too_great, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested alignment must be %0 bytes or smaller", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_invalid, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute argument is invalid: %select{max must be 0 since min is 0|min must not be greater than max}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_is_zero, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute must be greater than 0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_n_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute requires parameter %1 to be %select{int or bool|an integer constant|a string|an identifier}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_out_of_bounds, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute parameter %1 is out of bounds", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_out_of_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute parameter %1 is out of bounds: %plural{0:no parameters to index into|1:can only be 1, since there is one parameter|:must be between 1 and %2}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_outof_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute requires integer constant between %1 and %2 inclusive", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute requires %select{int or bool|an integer constant|a string|an identifier}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_argument_vec_type_hint, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid attribute argument %0 - expecting a vector or vectorizable scalar type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_bad_neon_vector_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "Neon vector size must be 64 or 128 bits", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_cleanup_arg_not_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'cleanup' argument %select{|%1 |%1 }0is not a %select{||single }0function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_cleanup_func_arg_incompatible_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "'cleanup' function %0 parameter has %diff{type $ which is incompatible with type $|incompatible type}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_cleanup_func_must_take_one_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "'cleanup' function %0 must take 1 parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_ambiguous_default_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__declspec(dllexport)' cannot be applied to more than one default constructor in %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_deleted, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute %q0 cannot be applied to a deleted function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_lambda, CLASS_ERROR, (unsigned)diag::Severity::Error, "lambda cannot be declared %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_member_of_dll_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute %q0 cannot be applied to member of %q1 class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_not_extern, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 must have external linkage when declared %q1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_redeclaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "redeclaration of %q0 cannot add %q1 attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dll_thread_local, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 cannot be thread local when declared %q1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dllimport_data_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of dllimport data", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dllimport_function_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "dllimport cannot be applied to non-inline function definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_dllimport_static_field_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of dllimport static field not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_integers_only, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute argument may only refer to a function parameter of integer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_invalid_implicit_this_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute is invalid for the implicit this argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_invalid_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector size not an integral multiple of component size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_invalid_vector_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid vector element type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_multiple_objc_gc, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple garbage collection attributes specified for type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_no_member_pointers, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be used with pointers to members", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_not_supported_in_lang, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute is not supported in %select{C|C++|Objective-C}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_not_supported_on_arch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute is not supported on '%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_only_once_per_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute can only be applied once per parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_overloadable_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{overloaded function|redeclaration of}0 %1 must have the 'overloadable' attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_overloadable_no_prototype, CLASS_ERROR, (unsigned)diag::Severity::Error, "'overloadable' function %0 must have a prototype", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_pointers_only, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute only applies to%select{| constant}1 pointer arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_regparm_invalid_number, CLASS_ERROR, (unsigned)diag::Severity::Error, "'regparm' parameter must be between 0 and %0 inclusive", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_regparm_wrong_platform, CLASS_ERROR, (unsigned)diag::Severity::Error, "'regparm' is not valid on this platform", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_requires_opencl_version, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute requires OpenCL version %1%select{| or above}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_requires_positive_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute requires a positive integral compile time constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_section_invalid_for_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument to 'section' attribute is not valid for this target: %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_selectany_non_extern_data, CLASS_ERROR, (unsigned)diag::Severity::Error, "'selectany' can only be applied to data items with external linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_sentinel_less_than_zero, CLASS_ERROR, (unsigned)diag::Severity::Error, "'sentinel' parameter 1 less than zero", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_sentinel_not_zero_or_one, CLASS_ERROR, (unsigned)diag::Severity::Error, "'sentinel' parameter 2 not 0 or 1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_size_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector size too large", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_too_few_arguments, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute takes at least %1 argument%s1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_too_many_arguments, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute takes no more than %1 argument%s1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute is not supported for this target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_uuid_malformed_guid, CLASS_ERROR, (unsigned)diag::Severity::Error, "uuid attribute contains a malformed GUID", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_vecreturn_only_pod_record, CLASS_ERROR, (unsigned)diag::Severity::Error, "the vecreturn attribute can only be used on a POD (plain old data) class or structure (i.e. no virtual functions)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_vecreturn_only_vector_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "the vecreturn attribute can only be used on a class or structure with one member, which must be a vector", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_weak_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "weak declaration cannot have internal linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_weakref_not_global_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "weakref declaration of %0 must be in a global context", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_weakref_not_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "weakref declaration must have internal linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_weakref_without_alias, CLASS_ERROR, (unsigned)diag::Severity::Error, "weakref declaration of %0 must also have an alias attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_wrong_decl_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute only applies to %select{functions|unions|variables and functions|functions and global variables|functions, variables, and Objective-C interfaces|functions and methods|parameters|functions, methods and blocks|functions, methods, and classes|functions, methods, and parameters|functions, methods, and global variables|classes|enums|variables|methods|fields and global variables|structs|parameters and typedefs|variables and typedefs|thread-local variables|variables and fields|variables, data members and tag types|types and namespaces|Objective-C interfaces|methods and properties|struct or union|struct, union or class|types|Objective-C instance methods|init methods of interface or class extension declarations|variables, functions and classes|functions, variables, classes, and Objective-C interfaces|Objective-C protocols|variables with static or thread storage duration|functions, methods, properties, and global variables|structs, unions, and typedefs|structs and typedefs|interface or protocol declarations|kernel functions|non-K&R-style functions|variables, enums, fields and typedefs|functions, methods, enums, and classes|structs, classes, variables, functions, and inline namespaces|variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members|classes and enumerations|named declarations}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_wrong_number_arguments, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute %plural{0:takes no arguments|1:takes one argument|:requires exactly %1 arguments}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attribute_zero_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "zero vector size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_attributes_are_not_compatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 and %1 attributes are not compatible", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot pass bit-field as __auto_type initializer in C", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_different_deductions, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{'auto'|'decltype(auto)'|'__auto_type'|template arguments}0 deduced as %1 in declaration of %2 and deduced as %3 in declaration of %4", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce return type %0 from returned value of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_different_deductions, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%select{auto|decltype(auto)}0' in return type deduced as %1 here but deduced as %2 in earlier return statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_no_return_but_not_auto, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce return type %0 for function with no return statements", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_return_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce return type from initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_return_void_but_not_auto, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce return type %0 from omitted return expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_used_before_defined, CLASS_ERROR, (unsigned)diag::Severity::Error, "function %0 with deduced return type cannot be used before it is defined", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_fn_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "function with deduced return type cannot be virtual", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_init_list_from_c, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use __auto_type with initializer list in C", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_missing_trailing_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "'auto' return without trailing return type; deduced return types are a C++14 extension", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_new_ctor_multiple_expressions, CLASS_ERROR, (unsigned)diag::Severity::Error, "new expression for type %0 contains multiple constructor arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_new_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "new expression for type %0 has incompatible constructor argument of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_new_list_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "new expression for type %0 cannot use list-initialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_new_requires_ctor_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "new expression for type %0 requires a constructor argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_non_deduced_not_alone, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{function with deduced return type|declaration with trailing return type}0 must be the only declaration in its group", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_not_allowed, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{'auto'|'decltype(auto)'|'__auto_type'|use of %select{class template|function template|variable template|alias template|template template parameter|template}2 %3 requires template arguments; argument deduction}0 not allowed %select{in function prototype|in non-static struct member|in struct member|in non-static union member|in union member|in non-static class member|in interface member|in exception declaration|in template parameter until C++1z|in block literal|in template argument|in typedef|in type alias|in function return type|in conversion function type|here|in lambda parameter|in type allocated by 'new'|in K&R-style function parameter|in template parameter|in friend declaration}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_not_allowed_var_inst, CLASS_ERROR, (unsigned)diag::Severity::Error, "'auto' variable template instantiation is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_var_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 with type %1 has incompatible initializer of type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_var_deduction_failure_from_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce actual type for variable %0 with type %1 from initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_var_init_multiple_expressions, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer for variable %0 with type %1 contains multiple expressions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_var_init_no_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer for variable %0 with type %1 is empty", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_var_init_paren_braces, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce type for variable %1 with type %2 from %select{parenthesized|nested}0 initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_var_requires_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of variable %0 with deduced type %1 requires an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_auto_variable_cannot_appear_in_own_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 declared with deduced type %1 cannot appear in its own initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_category_property_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "property implementation must have its declaration in the category %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_const_cast_dest, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{const_cast||||C-style cast|functional-style cast}0 to %2, which is not a reference, pointer-to-object, or pointer-to-data-member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cstyle_cast_overload, CLASS_ERROR, (unsigned)diag::Severity::Error, "address of overloaded function %0 cannot be cast to type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from bit-field lvalue to reference type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_generic, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2 is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_member_pointer_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot %select{||reinterpret_cast||C-style cast|}0 from member pointer type %1 to member pointer type %2 of different size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_qualifiers_away, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2 casts away qualifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_rvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from rvalue to reference type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_scalar_to_vector_different_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{||reinterpret_cast||C-style cast|}0 from scalar %1 to vector %2 of different size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_unrelated_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2, which are not related by inheritance, is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_vector_to_scalar_different_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{||reinterpret_cast||C-style cast|}0 from vector %1 to scalar %2 of different size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_cxx_cast_vector_to_vector_different_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{||reinterpret_cast||C-style cast|}0 from vector %1 to vector %2 of different size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_dynamic_cast_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is an incomplete type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_dynamic_cast_not_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_dynamic_cast_not_polymorphic, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not polymorphic", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_dynamic_cast_not_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_dynamic_cast_not_ref_or_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a reference or pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_kernel_param_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be used as the type of a kernel parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_lvalue_to_rvalue_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast from lvalue of type %1 to rvalue reference type %2; types are not compatible", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_memptr_lhs, CLASS_ERROR, (unsigned)diag::Severity::Error, "left hand operand to %0 must be a %select{|pointer to }1class compatible with the right hand operand, but is %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_memptr_rhs, CLASS_ERROR, (unsigned)diag::Severity::Error, "right hand operand to %0 has non-pointer-to-member type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_new_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot allocate %select{function|reference}1 type %0 with new", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_parameter_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be the name of a parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_property_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "property implementation must be in a class or category implementation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_property_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "property implementation must have its declaration in interface %0 or one of its extensions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_receiver_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "bad receiver type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_reinterpret_cast_overload, CLASS_ERROR, (unsigned)diag::Severity::Error, "reinterpret_cast cannot resolve overloaded function %0 to type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_reinterpret_cast_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "reinterpret_cast of a %0 to %1 needs its address, which is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_reinterpret_cast_small_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "cast from pointer to smaller type %2 loses information", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_rvalue_to_rvalue_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast from rvalue of type %1 to rvalue reference type %2; types are not compatible", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_static_cast_member_pointer_nonmp, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast from type %1 to member pointer type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_static_cast_overload, CLASS_ERROR, (unsigned)diag::Severity::Error, "address of overloaded function %0 cannot be static_cast to type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_static_cast_pointer_nonpointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast from type %1 to pointer type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bad_variable_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be the name of a variable or data member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_base_class_has_flexible_array_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "base class %0 has a flexible array member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_base_clause_on_union, CLASS_ERROR, (unsigned)diag::Severity::Error, "unions cannot have base classes", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_base_init_direct_and_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "base class initializer %0 names both a direct base class and an inherited virtual base class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_base_init_does_not_name_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructor initializer %0 does not name a class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_base_must_be_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "base specifier must name a class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_base_specifier_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to a base specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_binding_cannot_appear_in_own_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "binding %0 cannot appear in the initializer of its own decomposition declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bitfield_has_negative_width, CLASS_ERROR, (unsigned)diag::Severity::Error, "bit-field %0 has negative width (%1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bitfield_has_zero_width, CLASS_ERROR, (unsigned)diag::Severity::Error, "named bit-field %0 has zero width", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bitfield_width_exceeds_type_width, CLASS_ERROR, (unsigned)diag::Severity::Error, "width of bit-field %0 (%1 bits) exceeds %select{width|size}2 of its type (%3 bit%s3)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_block_decl_ref_not_modifiable_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable is not assignable (missing __block type specifier)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_block_extern_cant_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "'extern' variable cannot have an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_block_on_nonlocal, CLASS_ERROR, (unsigned)diag::Severity::Error, "__block attribute not allowed, only allowed on local variables", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_block_on_vm, CLASS_ERROR, (unsigned)diag::Severity::Error, "__block attribute not allowed on declaration with a variably modified type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_block_return_missing_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-void block should return a value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_block_returning_array_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "block cannot return %select{array|function}0 type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_blocks_disable, CLASS_ERROR, (unsigned)diag::Severity::Error, "blocks support disabled - compile with -fblocks or %select{pick a deployment target that supports them|for OpenCL 2.0 or above}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_bound_member_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to non-static member function must be called%select{|; did you mean to call it with no arguments?}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_box_literal_collection, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{string|character|boolean|numeric}0 literal must be prefixed by '@' in a collection", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_break_not_in_loop_or_switch, CLASS_ERROR, (unsigned)diag::Severity::Error, "'break' statement not in loop or switch statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_annotation_first_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to __builtin_annotation must be an integer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_annotation_second_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "second argument to __builtin_annotation must be a non-wide string constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of builtin function %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_fn_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "builtin functions must be directly called", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_func_cast_more_than_one_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "function-style cast to a builtin type can only take one argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_longjmp_invalid_val, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument to __builtin_longjmp must be a constant 1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_longjmp_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "__builtin_longjmp is not supported for the current target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_needs_feature, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 needs target feature %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_requires_language, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' is only available in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_builtin_setjmp_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "__builtin_setjmp is not supported for the current target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_c99_array_usage_cxx, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{qualifier in |static |}0array size %select{||'[*] '}0is a C99 feature, not permitted in C++", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_call_function_incomplete_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "calling %0 with incomplete return type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_call_incomplete_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument type %0 is incomplete", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_call_incomplete_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "calling function with incomplete return type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cannot_find_suitable_accessor, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find suitable %select{getter|setter}0 for property %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cannot_form_pointer_to_member_of_reference_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot form a pointer-to-member to member %0 of reference type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cannot_pass_objc_interface_to_vararg, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot pass object with interface type %0 by value through variadic %select{function|block|method|constructor}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cannot_pass_objc_interface_to_vararg_format, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot pass object with interface type %1 by value to variadic %select{function|block|method|constructor}2; expected type from format string was %3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cannot_pass_to_vararg, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot pass %select{expression of type %1|initializer list}0 to variadic %select{function|block|method|constructor}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cannot_pass_to_vararg_format, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot pass %select{expression of type %1|initializer list}0 to variadic %select{function|block|method|constructor}2; expected type from format string was %3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_capture_block_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "__block variable %0 cannot be captured in a %select{lambda expression|captured statement}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_capture_default_non_local, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-local lambda expression cannot have a capture-default", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_capture_does_not_name_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 in capture list does not name a variable", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_capture_more_than_once, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 can appear only once in a capture list", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_capture_non_automatic_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be captured because it does not have automatic storage duration", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_capture_of_abstract_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "by-copy capture of value of abstract type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_capture_of_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "by-copy capture of variable %0 with incomplete type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_carries_dependency_missing_on_first_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{function|parameter}0 declared '[[carries_dependency]]' after its first declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_carries_dependency_param_not_function_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "'[[carries_dependency]]' attribute only allowed on parameter in a function declaration or lambda", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_case_not_in_switch, CLASS_ERROR, (unsigned)diag::Severity::Error, "'case' statement not in switch statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cast_pointer_from_non_pointer_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "operand of type %0 cannot be cast to a pointer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cast_pointer_to_non_pointer_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointer cannot be cast to type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cast_selector_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot type cast @selector expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_catch_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot catch incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_catch_incomplete_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot catch pointer to incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_catch_incomplete_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot catch reference to incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_catch_param_not_objc_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "@catch parameter is not a pointer to an interface type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_catch_rvalue_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot catch exceptions by rvalue reference", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_catch_variably_modified, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot catch variably modified type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_category_forward_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot define %select{category|class extension}0 for undefined class %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_category_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "property declared in category %0 cannot be implemented in class implementation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cconv_change, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declared '%0' here was previously declared %select{'%2'|without calling convention}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cconv_knr, CLASS_ERROR, (unsigned)diag::Severity::Error, "function with no prototype cannot use the %0 calling convention", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cconv_varargs, CLASS_ERROR, (unsigned)diag::Severity::Error, "variadic function cannot use %0 calling convention", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cfstring_literal_not_string_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "CFString literal is not a string constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_circular_inheritance, CLASS_ERROR, (unsigned)diag::Severity::Error, "circular inheritance between %0 and %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_class_extension_after_impl, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot declare class extension for %0 after class implementation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_class_marked_final_used_as_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "base %0 is marked '%select{final|sealed}1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_class_property_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 is a class property; did you mean to access it with class '%1'?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_class_redeclared_with_different_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 redeclared with '%1' access", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cocoa_naming_owned_rule, CLASS_ERROR, (unsigned)diag::Severity::Error, "property follows Cocoa naming convention for returning 'owned' objects", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_collection_expr_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "the type %0 is not a pointer to a fast-enumerable object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_complex_mode_vector_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of machine mode does not support base vector types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_compound_qualified_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{block pointer|pointer|reference}0 to function type %select{%2 |}1cannot have '%3' qualifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_concept_decl_invalid_specifiers, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{variable|function}0 concept cannot be declared '%select{thread_local|inline|friend|constexpr}1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_concept_decls_may_only_appear_in_namespace_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "concept declarations may only appear in namespace scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_concept_specialized, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{function|variable}0 concept cannot be %select{explicitly instantiated|explicitly specialized|partially specialized}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_concept_specified_specialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "'concept' cannot be applied on an %select{explicit instantiation|explicit specialization|partial specialization}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_concept_wrong_decl_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "'concept' can only appear on the definition of a function template or variable template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cond_voidptr_arc, CLASS_ERROR, (unsigned)diag::Severity::Error, "operands to conditional of types%diff{ $ and $|}0,1 are incompatible in ARC mode", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conditional_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "conditional expression is ambiguous; %diff{$ can be converted to $ and vice versa|types can be convert to each other}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conditional_ambiguous_ovl, CLASS_ERROR, (unsigned)diag::Severity::Error, "conditional expression is ambiguous; %diff{$ and $|types}0,1 can be converted to several common types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conditional_vector_element_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector condition type %0 and result type %1 do not have elements of the same size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conditional_vector_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector condition type %0 and result type %1 do not have the same number of elements", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conditional_void_nonvoid, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{left|right}1 operand to ? is void, but %select{right|left}1 operand is of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_config_scalar_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "CUDA special function 'cudaConfigureCall' must have scalar return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_aliasing_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting types for alias %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_ivar_bitwidth, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable %0 has conflicting bit-field width", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_ivar_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting instance variable names: %0 vs %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_ivar_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable %0 has conflicting type%diff{: $ vs $|}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_overriding_cc_attributes, CLASS_ERROR, (unsigned)diag::Severity::Error, "virtual function %0 has different calling convention attributes %diff{($) than the function it overrides (which has calling convention $)|than the function it overrides}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_super_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting super class name %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conflicting_types, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting types for %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constant_integer_arg_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument to %0 must be a constant integer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_body_invalid_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "statement not allowed in constexpr %select{function|constructor}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_body_no_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "no return statement in constexpr function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_ctor_missing_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr constructor must initialize all members", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_dtor, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot be marked constexpr", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_function_try_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "function try block not allowed in constexpr %select{function|constructor}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_local_var_no_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "variables defined in a constexpr %select{function|constructor}0 must be initialized", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_local_var_non_literal_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable of non-literal type %1 cannot be defined in a constexpr %select{function|constructor}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_local_var_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{static|thread_local}1 variable not permitted in a constexpr %select{function|constructor}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_main, CLASS_ERROR, (unsigned)diag::Severity::Error, "'main' is not allowed to be declared constexpr", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_no_declarators, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr can only be used in variable and function declarations", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_non_literal_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr %select{function|constructor}1's %ordinal0 parameter type %2 is not a literal type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_non_literal_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr function's return type %0 is not a literal type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_redecl_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-constexpr declaration of %0 follows constexpr declaration|constexpr declaration of %0 follows non-constexpr declaration}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_return_missing_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-void constexpr function %0 should return a value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_static_mem_var_requires_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of constexpr static data member %0 requires an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class|struct|interface|union|enum}0 cannot be marked constexpr", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_union_ctor_no_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr union constructor does not initialize any member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_var_non_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr variable cannot have non-literal type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_var_requires_const_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr variable %0 must be initialized by a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "virtual function cannot be constexpr", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_virtual_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr %select{member function|constructor}0 not allowed in %select{struct|interface|class}1 with virtual base %plural{1:class|:classes}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constexpr_vla, CLASS_ERROR, (unsigned)diag::Severity::Error, "variably-modified type %0 cannot be used in a constexpr %select{function|constructor}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constructor_byvalue_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "copy constructor must pass its first argument by reference", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constructor_cannot_be, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructor cannot be declared '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constructor_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructor cannot be redeclared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_constructor_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructor cannot have a return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_continuation_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "class extension has no primary class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_continue_not_in_loop, CLASS_ERROR, (unsigned)diag::Severity::Error, "'continue' statement not in loop statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_not_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function must be a non-static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function cannot be redeclared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function cannot have a return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_to_array, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function cannot convert to an array type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_to_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function cannot convert to a function type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_variadic, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function cannot be variadic", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_with_complex_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specify any part of a return type in the declaration of a conversion function%select{; put the complete type after 'operator'|; use a typedef to declare a conversion to %1|; use an alias template to declare a conversion to %1|}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_conv_function_with_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function cannot have any parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_convertvector_incompatible_vector, CLASS_ERROR, (unsigned)diag::Severity::Error, "first two arguments to __builtin_convertvector must have the same number of elements", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_convertvector_non_vector, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to __builtin_convertvector must be a vector", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_convertvector_non_vector_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "second argument to __builtin_convertvector must be a vector type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_copy_capture_with_copy_default, CLASS_ERROR, (unsigned)diag::Severity::Error, "'&' must precede a capture when the capture default is '='", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_coroutine_handle_missing_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "std::experimental::coroutine_handle missing a member named '%0'", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_invalid_func_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%1' cannot be used in %select{a constructor|a destructor|a copy assignment operator|a move assignment operator|the 'main' function|a constexpr function|a function with a deduced return type|a varargs function}0", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_objc_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "Objective-C methods as coroutines are not yet supported", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_outside_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' cannot be used outside a function", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_promise_get_return_object_on_allocation_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0: 'get_return_object_on_allocation_failure()' must be a static member function", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_promise_return_ill_formed, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 declares both 'return_value' and 'return_void'", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_promise_type_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "this function cannot be a coroutine: %0 is an incomplete type", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_promise_unhandled_exception_required, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is required to declare the member 'unhandled_exception()'", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_type_missing_specialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "this function cannot be a coroutine: missing definition of specialization %q0", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_coroutine_unevaluated_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' cannot be used in an unevaluated context", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_covariant_return_ambiguous_derived_to_base_conv, CLASS_ERROR, (unsigned)diag::Severity::Error, "return type of virtual function %3 is not covariant with the return type of the function it overrides (ambiguous conversion from derived class %0 to base class %1:%2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_covariant_return_inaccessible_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid covariant return for virtual function: %1 is a %select{private|protected}2 base class of %0", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_covariant_return_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "return type of virtual function %0 is not covariant with the return type of the function it overrides (%1 is incomplete)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_covariant_return_not_derived, CLASS_ERROR, (unsigned)diag::Severity::Error, "return type of virtual function %0 is not covariant with the return type of the function it overrides (%1 is not derived from %2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_covariant_return_type_class_type_more_qualified, CLASS_ERROR, (unsigned)diag::Severity::Error, "return type of virtual function %0 is not covariant with the return type of the function it overrides (class type %1 is more qualified than class type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_covariant_return_type_different_qualifications, CLASS_ERROR, (unsigned)diag::Severity::Error, "return type of virtual function %0 is not covariant with the return type of the function it overrides (%1 has different qualifiers than %2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ctor_dtor_returns_void, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{constructor|destructor}1 %0 must not return void expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_device_exceptions, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use '%0' in %select{__device__|__global__|__host__|__host__ __device__}1 function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_extern_shared, CLASS_ERROR, (unsigned)diag::Severity::Error, "__shared__ variable %0 cannot be 'extern'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_host_shared, CLASS_ERROR, (unsigned)diag::Severity::Error, "__shared__ local variables not allowed in %select{__device__|__global__|__host__|__host__ __device__}0 functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_nonglobal_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "__constant__ variables must be global", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_ovl_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{__device__|__global__|__host__|__host__ __device__}0 function %1 cannot overload %select{__device__|__global__|__host__|__host__ __device__}2 function %3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_unattributed_constexpr_cannot_overload_device, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr function '%0' without __host__ or __device__ attributes cannot overload __device__ function with same signature.  Add a __host__ attribute, or build with -fno-cuda-host-device-constexpr.", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_cuda_vla, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use variable-length arrays in %select{__device__|__global__|__host__|__host__ __device__}0 functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_current_module_name_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "module name '%0' specified on command line does not match name of module", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_cyclic_alias, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{alias|ifunc}0 definition is part of a cycle", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dealloc_bad_result_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "dealloc return type must be correctly specified as 'void' under ARC, instead of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decimal_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "GNU decimal type extension not supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decl_attribute_invalid_on_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to a statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decl_negative_array_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as an array with a negative size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_declarator_need_ident, CLASS_ERROR, (unsigned)diag::Severity::Error, "declarator requires an identifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_declspec_thread_on_thread_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__declspec(thread)' applied to variable that already has a thread-local storage specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decltype_auto_cannot_be_combined, CLASS_ERROR, (unsigned)diag::Severity::Error, "'decltype(auto)' cannot be combined with other type specifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decltype_auto_compound_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot form %select{pointer to|reference to|array of}0 'decltype(auto)'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decltype_auto_function_declarator_not_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'decltype(auto)' can only be used as a return type in a function declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decltype_auto_initializer_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce 'decltype(auto)' from initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decltype_auto_invalid, CLASS_ERROR, (unsigned)diag::Severity::Error, "'decltype(auto)' not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decltype_in_declarator, CLASS_ERROR, (unsigned)diag::Severity::Error, "'decltype' cannot be used to name a declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_ambiguous_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose members of ambiguous base class %1 of %0:%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_anon_union_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose class type %0 because it has an anonymous %select{struct|union}1 member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration not permitted in this context", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_multiple_bases_with_members, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose class type %1: %select{its base classes %2 and|both it and its base class}0 %3 have non-static data members", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_non_public_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose members of non-public base class %1 of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_non_public_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose non-public member %0 of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_not_alone, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration must be the only declaration in its group", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_parens, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration cannot be declared with parentheses", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_requires_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration %0 requires an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration cannot be declared %plural{1:'%1'|:with '%1' specifiers}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_std_tuple_element_not_specialized, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose this type; 'std::tuple_element<%0>::type' does not name a type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_std_tuple_size_not_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose this type; 'std::tuple_size<%0>::value' is not a valid integral constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration template not supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "decomposition declaration cannot be declared with type %0; declared type must be 'auto' or reference to 'auto'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_unbindable_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decompose %select{union|non-class, non-array}1 type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decomp_decl_wrong_number_bindings, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 decomposes into %2 elements, but %select{only |}3%1 names were provided", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_decrement_bool, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot decrement expression of type bool", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_class_template_compound_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot %select{form pointer to|form reference to|form array of|form function returning|use parentheses when declaring variable with}0 deduced class template specialization type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_class_template_ctor_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous deduction for template arguments of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_class_template_ctor_no_viable, CLASS_ERROR, (unsigned)diag::Severity::Error, "no viable constructor or deduction guide for deduction of template arguments of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_class_template_deleted, CLASS_ERROR, (unsigned)diag::Severity::Error, "class template argument deduction for %0 selected a deleted constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_class_template_explicit, CLASS_ERROR, (unsigned)diag::Severity::Error, "class template argument deduction for %0 selected an explicit %select{constructor|deduction guide}1 for copy-list-initialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_class_template_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "template %0 has no definition and no %select{|viable }1deduction guides for deduction of template arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_non_class_template_specialization_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{<error>|function template|variable template|alias template|template template parameter|template}0 %1 requires template arguments; argument deduction only allowed for class templates", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_non_type_template_arg_type_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduced non-type template argument does not have the same type as the corresponding template parameter%diff{ ($ vs $)|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduced_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduced return types are a C++14 extension", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_bad_trailing_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduced type %1 of deduction guide is not %select{|written as }2a specialization of template %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_defines_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide cannot have a function definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_explicit_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide is %select{not |}0declared 'explicit' but previous declaration was%select{ not|}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_invalid_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide cannot be declared '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_name_not_class_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specify deduction guide for %select{<error>|function template|variable template|alias template|template template parameter|dependent template name}0 %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_no_trailing_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide declaration without trailing return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_specialized, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide cannot be %select{explicitly instantiated|explicitly specialized}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_template_not_deducible, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide template contains %select{a template parameter|template parameters}0 that cannot be deduced", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_with_complex_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specify any part of a return type in the declaration of a deduction guide", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deduction_guide_wrong_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduction guide must be declared in the same scope as template %q0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deep_exception_specs_differ, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specifications of %select{return|argument}0 types differ", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_default_arg_in_partial_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "default template argument in a class template partial specialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_default_arg_makes_ctor_special, CLASS_ERROR, (unsigned)diag::Severity::Error, "addition of default argument on redeclaration makes this constructor a %select{default|copy|move}0 constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_default_init_const, CLASS_ERROR, (unsigned)diag::Severity::Error, "default initialization of an object of const type %0%select{| without a user-provided default constructor}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_default_not_in_switch, CLASS_ERROR, (unsigned)diag::Severity::Error, "'default' statement not in switch statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_copy_assign_not_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "the parameter for an explicitly-defaulted copy assignment operator must be an lvalue reference type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_copy_const_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "the parameter for this explicitly-defaulted copy %select{constructor|assignment operator}0 is const, but a member or base requires it to be non-const", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_move_const_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "the parameter for an explicitly-defaulted move %select{constructor|assignment operator}0 may not be const", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "an explicitly-defaulted %select{|copy |move }0constructor cannot have default arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_quals, CLASS_ERROR, (unsigned)diag::Severity::Error, "an explicitly-defaulted %select{copy|move}0 assignment operator may not have 'const'%select{, 'constexpr'|}1 or 'volatile' qualifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicitly-defaulted %select{copy|move}0 assignment operator must return %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_variadic, CLASS_ERROR, (unsigned)diag::Severity::Error, "an explicitly-defaulted %select{|copy |move }0constructor cannot be variadic", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_defaulted_special_member_volatile_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "the parameter for an explicitly-defaulted %select{<<ERROR>>|copy constructor|move constructor|copy assignment operator|move assignment operator|<<ERROR>>}0 may not be volatile", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_definition_of_explicitly_defaulted_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of explicitly defaulted %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_definition_of_implicitly_declared_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of implicitly declared %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_delegating_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "delegating constructors are permitted only in C++11", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_delegating_initializer_alone, CLASS_ERROR, (unsigned)diag::Severity::Error, "an initializer for a delegating constructor must appear alone", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_delete_explicit_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "converting delete expression from type %0 to type %1 invokes an explicit conversion function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_delete_incomplete_class_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "deleting incomplete class type %0; no conversions to pointer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_delete_operand, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot delete expression of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deleted_decl_not_first, CLASS_ERROR, (unsigned)diag::Severity::Error, "deleted definition must be first declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deleted_function_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "attempt to use a deleted function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deleted_inherited_ctor_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructor inherited by %0 from base class %1 is implicitly deleted", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deleted_main, CLASS_ERROR, (unsigned)diag::Severity::Error, "'main' is not allowed to be deleted", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_deleted_override, CLASS_ERROR, (unsigned)diag::Severity::Error, "deleted function %0 cannot override a non-deleted function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dependent_deduced_tst, CLASS_ERROR, (unsigned)diag::Severity::Error, "typename specifier refers to %select{class template|function template|variable template|alias template|template template parameter|template}0 member in %1; argument deduction not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dependent_nested_name_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "nested name specifier for a declaration cannot depend on a template parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dependent_non_type_arg_in_partial_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of specialized non-type template argument depends on a template parameter of the partial specialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dependent_tag_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{declaration|definition}0 of %select{struct|interface|union|class|enum}1 in a dependent scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dependent_typed_non_type_arg_in_partial_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument specializes a template parameter with dependent type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dereference_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "dereference of pointer to incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_designator_for_scalar_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "designator in initializer for scalar type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_designator_into_flexible_array_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "designator into flexible array member subobject", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_cannot_be, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot be declared '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_class_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected the class name after '~' to name a destructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_expr_type_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor type %0 in object destruction expression does not match the type %1 of the object being destroyed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected the class name after '~' to name the enclosing class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_not_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor must be a non-static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot be redeclared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot have a return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot be declared as a template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_typedef_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot be declared using a %select{typedef|type alias}1 %0 of the class name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_variadic, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot be variadic", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_destructor_with_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "destructor cannot have any parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_device_static_local_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "within a %select{__device__|__global__|__host__|__host__ __device__}0 function, only __shared__ variables may be marked 'static'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_diagnose_if_invalid_diagnostic_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid diagnostic type for 'diagnose_if'; use \"error\" or \"warning\" instead", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_diagnose_if_succeeded, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_different_asm_label, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting asm label", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_different_language_linkage, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of %0 has a different language linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_different_pass_object_size_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "conflicting pass_object_size attributes on parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_different_return_type_for_overriding_virtual_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "virtual function %0 has a different return type %diff{($) than the function it overrides (which has return type $)|than the function it overrides}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dimension_expr_not_constant_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "dimension expression does not evaluate to a constant unsigned int", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_distant_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specifications are not allowed beyond a single level of indirection", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_downcast_from_inaccessible_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast %select{private|protected}2 base class %1 to %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dtor_expr_without_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to %select{destructor|pseudo-destructor}0 must be called%select{|; did you mean to call it with no arguments?}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dup_implementation_category, CLASS_ERROR, (unsigned)diag::Severity::Error, "reimplementation of category %1 for class %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dup_implementation_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "reimplementation of class %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_base_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "base class %0 specified more than once as a direct base class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_case, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate case value '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_case_differing_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate case value: '%0' and '%1' both equal '%2'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_class_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate interface definition for class %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_ivar_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable is already declared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_ivar_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "synthesized properties %0 and %1 both claim instance variable %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_mangled_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition with same mangled name as another definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_method_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate declaration of method %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_duplicate_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "property has a previous declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dynamic_property_ivar_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "dynamic property cannot have instance variable specification", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_dynamic_var_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "dynamic initialization is not supported for __device__, __constant__, and __shared__ variables.", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_early_catch_all, CLASS_ERROR, (unsigned)diag::Severity::Error, "catch-all handler must come last", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ellipsis_first_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "ISO C requires a named parameter before '...'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ellipsis_in_declarator_not_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "only function and template parameters can be parameter packs", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_empty_scalar_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "scalar initializer cannot be empty", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enum_class_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to %select{|scoped }0enumeration must use 'enum' not 'enum class'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enum_invalid_underlying, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-integral type %0 is an invalid underlying type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enum_mode_vector_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "mode %0 is not supported for enumeration types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enum_redeclare_fixed_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumeration previously declared with %select{non|}0fixed underlying type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enum_redeclare_scoped_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumeration previously declared as %select{un|}0scoped", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enum_redeclare_type_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumeration redeclared with different underlying type %0 (was %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enumerator_does_not_exist, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumerator %0 does not exist in instantiation of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enumerator_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumerator value is not representable in the underlying type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_enumerator_wrapped, CLASS_ERROR, (unsigned)diag::Severity::Error, "enumerator value %0 is not representable in the underlying type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_event_t_addr_space_qual, CLASS_ERROR, (unsigned)diag::Severity::Error, "the event_t type can only be used with __private address space qualifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_exception_spec_cycle, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specification of %0 uses itself", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_exception_spec_in_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specifications are not allowed in %select{typedefs|type aliases}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_exception_spec_not_parsed, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specification is not available until end of class definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_exceptions_disabled, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use '%0' with exceptions disabled", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_excess_initializers, CLASS_ERROR, (unsigned)diag::Severity::Error, "excess elements in %select{array|vector|scalar|union|struct}0 initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_excess_initializers_in_char_array_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "excess elements in char array initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_expected_class_or_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a class%select{ or namespace|, namespace, or enumeration}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_expected_kernel_void_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "kernel must have void return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "partial ordering for explicit instantiation of %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_constexpr, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation cannot be 'constexpr'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_data_member_not_instantiated, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation refers to static data member %q0 that is not an instantiation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_declaration_after_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation declaration (with 'extern') follows explicit instantiation definition (without 'extern')", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_duplicate, CLASS_ERROR, (unsigned)diag::Severity::Error, "duplicate explicit instantiation of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_in_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of %0 in class scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_inline, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation cannot be 'inline'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_member_function_not_instantiated, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation refers to member function %q0 that is not an instantiation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_must_be_global, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of %0 must occur at global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_nontemplate_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of non-templated type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_not_known, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of %0 does not refer to a function template, variable template, member function, member class, or static data member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_of_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of typedef %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_out_of_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of %0 not in a namespace enclosing %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_requires_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation declaration requires a name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_storage_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation cannot have a storage class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_undefined_func_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of undefined function template %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_undefined_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of undefined %select{member class|member function|static data member}0 %1 of class template %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_undefined_var_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of undefined variable template %q0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_unqualified_wrong_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of %q0 must occur in namespace %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_instantiation_without_template_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit instantiation of %q0 must specify a template argument list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_non_ctor_or_conv_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'explicit' can only be applied to a constructor or conversion function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_non_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'explicit' can only appear on non-static member functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_out_of_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "'explicit' can only be specified inside the class definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_explicit_specialization_inconsistent_storage_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit specialization has extraneous, inconsistent storage class '%select{none|extern|static|__private_extern__|auto|register}0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_export_within_export, CLASS_ERROR, (unsigned)diag::Severity::Error, "export declaration appears within another export declaration", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_expr_not_cce, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 is not a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_expr_not_ice, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression is not an %select{integer|integral}0 constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_expr_not_string_literal, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression is not a string literal", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ext_vector_component_exceeds_length, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector component access exceeds type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ext_vector_component_name_illegal, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal vector component name '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_extern_c_global_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of %1 %select{with C language linkage|in global scope}0 conflicts with declaration %select{in global scope|with C language linkage}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_extern_non_extern, CLASS_ERROR, (unsigned)diag::Severity::Error, "extern declaration of %0 follows non-extern declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_falloff_nonvoid_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "control reaches end of non-void block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_fallthrough_attr_invalid_placement, CLASS_ERROR, (unsigned)diag::Severity::Error, "fallthrough annotation does not directly precede switch label", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_fallthrough_attr_outside_switch, CLASS_ERROR, (unsigned)diag::Severity::Error, "fallthrough annotation is outside switch statement", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_fallthrough_attr_wrong_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute is only allowed on empty statements", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_declared_as_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "field %0 declared as a function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_designator_non_aggr, CLASS_ERROR, (unsigned)diag::Severity::Error, "field designator cannot initialize a %select{non-struct, non-union|non-class}0 type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_designator_nonfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "field designator %0 does not refer to a non-static data member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_designator_unknown, CLASS_ERROR, (unsigned)diag::Severity::Error, "field designator %0 does not refer to any field in type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_designator_unknown_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "field designator %0 does not refer to any field in type %1; did you mean %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "field has incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_instantiates_to_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "data member instantiated with function type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_field_with_address_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "field may not be qualified with an address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_filter_expression_integral, CLASS_ERROR, (unsigned)diag::Severity::Error, "filter expression type should be an integral value not %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_final_function_overridden, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of %0 overrides a '%select{final|sealed}1' function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_first_argument_to_cwsc_block_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to __builtin_call_with_static_chain must not be a block call", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_first_argument_to_cwsc_builtin_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to __builtin_call_with_static_chain must not be a builtin call", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_first_argument_to_cwsc_not_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to __builtin_call_with_static_chain must be a non-member call expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_first_argument_to_cwsc_pdtor_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to __builtin_call_with_static_chain must not be a pseudo-destructor call", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_first_argument_to_va_arg_not_of_type_va_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to 'va_arg' is of type %0 and not 'va_list'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_flexible_array_empty_aggregate, CLASS_ERROR, (unsigned)diag::Severity::Error, "flexible array member %0 not allowed in otherwise empty %select{struct|interface|union|class|enum}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_flexible_array_has_nontrivial_dtor, CLASS_ERROR, (unsigned)diag::Severity::Error, "flexible array member %0 of type %1 with non-trivial destruction", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_flexible_array_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "initialization of flexible array member is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_flexible_array_init_needs_braces, CLASS_ERROR, (unsigned)diag::Severity::Error, "flexible array requires brace-enclosed initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_flexible_array_union, CLASS_ERROR, (unsigned)diag::Severity::Error, "flexible array member %0 in a union is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_flexible_array_virtual_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "flexible array member %0 not allowed in %select{struct|interface|union|class|enum}1 which has a virtual base class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_fold_expression_bad_operand, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression not permitted as operand of fold expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_fold_expression_empty, CLASS_ERROR, (unsigned)diag::Severity::Error, "unary fold expression has empty expansion for operator '%0' with no fallback value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_fold_expression_packs_both_sides, CLASS_ERROR, (unsigned)diag::Severity::Error, "binary fold expression has unexpanded parameter packs in both operands", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_decl_must_be_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "for range declaration must declare a variable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use type %0 as a range", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_dereference, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid range expression of type %0; did you mean to dereference it with '*'?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use incomplete type %0 as a range", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_invalid, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid range expression of type %0; no viable '%select{begin|end}1' function available", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_iter_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use type %0 as an iterator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_member_begin_end_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "range type %0 has '%select{begin|end}1' member but no '%select{end|begin}1' member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_for_range_storage_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "loop variable %0 may not be declared %select{'extern'|'static'|'__private_extern__'|'auto'|'register'|'constexpr'}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_format_attribute_implicit_this_format_string, CLASS_ERROR, (unsigned)diag::Severity::Error, "format attribute cannot specify the implicit this argument as the format string", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_format_attribute_not, CLASS_ERROR, (unsigned)diag::Severity::Error, "format argument not %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_format_attribute_requires_variadic, CLASS_ERROR, (unsigned)diag::Severity::Error, "format attribute requires variadic function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_format_attribute_result_not, CLASS_ERROR, (unsigned)diag::Severity::Error, "function does not return %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_format_strftime_third_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "strftime format attribute requires 3rd parameter to be 0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_forward_ref_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "ISO C++ forbids forward references to 'enum' types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_forward_superclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "attempting to use the forward class %0 as superclass of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_decl_does_not_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend declaration of %0 does not match any declaration in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' is invalid in friend declarations", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_decl_with_def_arg_must_be_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend declaration specifying a default argument must be a definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_decl_with_def_arg_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend declaration specifying a default argument must be the only declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_def_in_local_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend function cannot be defined in a local class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_is_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "friends cannot be members of the declaring class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_friend_not_first_in_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'friend' must appear first in a non-function declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_func_def_incomplete_result, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete result type %0 in function definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_func_returning_array_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "function cannot return %select{array|function}0 type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_func_returning_qualified_void, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function cannot return qualified void type %0", 493, SFINAE_Suppress, false, false, 2)
+DIAG(err_function_concept_bool_ret, CLASS_ERROR, (unsigned)diag::Severity::Error, "declared return type of function concept must be 'bool'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_concept_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "function concept cannot have exception specification", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_concept_not_defined, CLASS_ERROR, (unsigned)diag::Severity::Error, "function concept declaration must be a definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_concept_with_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "function concept cannot have any parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_marked_override_not_overriding, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 marked 'override' but does not override any member functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_needs_feature, CLASS_ERROR, (unsigned)diag::Severity::Error, "always_inline function %1 requires target feature '%2', but would be inlined into function %0 that is compiled without support for '%2'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_parameter_pack_without_parameter_packs, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 of function parameter pack does not contain any unexpanded parameter packs", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_specialization_in_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specialize a function %0 within class scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_template_partial_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "function template partial specialization is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_template_spec_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "function template specialization %0 ambiguously refers to more than one function template; explicitly specify%select{| additional}1 template arguments to identify a particular function template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_function_template_spec_no_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "no function template matches function template specialization %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_gc_weak_property_strong_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "weak attribute declared on a __strong type property in GC mode", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_generic_sel_multi_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "controlling expression type %0 compatible with %1 generic association types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_generic_sel_no_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "controlling expression type %0 not compatible with any generic association type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_getter_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "no getter method for read from property", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_global_call_not_config, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to global function %0 not configured", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_goto_into_protected_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot jump from this goto statement to its label", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_goto_ms_asm_label, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot jump from this goto statement to label %0 inside an inline assembly block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_half_const_requires_fp16, CLASS_ERROR, (unsigned)diag::Severity::Error, "half precision constant requires cl_khr_fp16", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_iboutletcollection_builtintype, CLASS_ERROR, (unsigned)diag::Severity::Error, "type argument of iboutletcollection attribute cannot be a builtin type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_iboutletcollection_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid type %0 as argument of iboutletcollection attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ice_ambiguous_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion from type %0 to an integral or unscoped enumeration type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ice_explicit_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "integral constant expression requires explicit conversion from %0 to %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ice_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "integral constant expression has incomplete class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ice_not_integral, CLASS_ERROR, (unsigned)diag::Severity::Error, "integral constant expression must have integral or unscoped enumeration type, not %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ice_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "integer constant expression evaluates to value %0 that cannot be represented in a %1-bit %select{signed|unsigned}2 integer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ident_in_dtor_not_a_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "identifier %0 in object destruction expression does not name a type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ident_list_in_fn_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "a parameter list without types is only allowed in a function definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ifunc_resolver_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "ifunc resolver function must have no parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ifunc_resolver_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "ifunc resolver function must return a pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_container_subscripting_op, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal operation on Objective-C container subscripting", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_array_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "array has incomplete element type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_array_of_auto, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as array of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_array_of_functions, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as array of functions of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_array_of_references, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as array of references of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_mempointer_in_nonclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' does not point into a class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_mempointer_to_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as a member pointer to a reference of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_mempointer_to_void, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as a member pointer to void", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_decl_pointer_to_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' declared as a pointer to a reference of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal initializer (only variables can be initialized)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_initializer_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal initializer type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_message_expr_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "Objective-C message has incomplete result type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_qualifiers_on_catch_parm, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal qualifiers on @catch parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_illegal_union_or_anon_struct_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{anonymous struct|union}0 member %1 has a non-trivial %select{constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_imaginary_not_supported, CLASS_ERROR, (unsigned)diag::Severity::Error, "imaginary types are not supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_implicit_empty_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer for aggregate with no elements requires explicit braces", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_implicit_instantiate_member_undefined, CLASS_ERROR, (unsigned)diag::Severity::Error, "implicit instantiation of undefined member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_implicit_object_parameter_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot initialize object parameter of type %0 with an expression of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_implied_coroutine_type_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 type was not found; include <experimental/coroutine> before defining a coroutine", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_implied_std_coroutine_traits_promise_type_not_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "this function cannot be a coroutine: %0 is not a class", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_implied_std_coroutine_traits_promise_type_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "this function cannot be a coroutine: %q0 has no member named 'promise_type'", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_implied_std_initializer_list_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce type of initializer list because std::initializer_list was not found; include <initializer_list>", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_bad_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "static data member of type %0 must be initialized out of line", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_cycle, CLASS_ERROR, (unsigned)diag::Severity::Error, "default member initializer for %0 uses itself", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_literal_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "in-class initializer for static data member of type %0 requires 'constexpr' specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_non_const, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-const static data member must be initialized out of line", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_non_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "in-class initializer for static data member is not a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_not_yet_parsed, CLASS_ERROR, (unsigned)diag::Severity::Error, "default member initializer for %1 needed within definition of enclosing class %0 outside of member functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_in_class_initializer_volatile, CLASS_ERROR, (unsigned)diag::Severity::Error, "static const volatile data member must be initialized out of line", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incompatible_exception_specs, CLASS_ERROR, (unsigned)diag::Severity::Error, "target exception specification is not superset of source", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_base_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "base class has incomplete type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_in_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|pointer to |reference to }0incomplete type %1 is not allowed in exception specification", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_member_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "member access into incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_nested_name_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete type %0 named in nested name specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_object_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete type in call to object of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_receiver_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete receiver type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_synthesized_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot synthesize property %0 with incomplete type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete type %0 where a complete type is required", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_type_objc_at_encode, CLASS_ERROR, (unsigned)diag::Severity::Error, "'@encode' of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_type_used_in_type_trait_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete type %0 used in type trait expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incomplete_typeid, CLASS_ERROR, (unsigned)diag::Severity::Error, "'typeid' of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_inconsistent_ivar_count, CLASS_ERROR, (unsigned)diag::Severity::Error, "inconsistent number of instance variables specified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incorrect_defaulted_constexpr, CLASS_ERROR, (unsigned)diag::Severity::Error, "defaulted definition of %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator}0 is not constexpr", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incorrect_defaulted_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specification of explicitly defaulted %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 does not match the calculated one", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_incorrect_number_of_vector_initializers, CLASS_ERROR, (unsigned)diag::Severity::Error, "number of elements must be either one or match the size of the vector", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_increment_decrement_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot %select{decrement|increment}0 expression of enum type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_indirect_goto_in_protected_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot jump from this indirect goto statement to one of its possible targets", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_indirect_goto_without_addrlabel, CLASS_ERROR, (unsigned)diag::Severity::Error, "indirect goto in function with no address-of-label expressions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_capture_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce type for lambda capture %0 from initializer of type %2", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_init_capture_deduction_failure_from_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce type for lambda capture %0 from initializer list", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_init_capture_multiple_expressions, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer for lambda capture %0 contains multiple expressions", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_init_capture_no_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer missing for lambda capture %0", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_init_capture_paren_braces, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce type for lambda capture %1 from %select{parenthesized|nested}0 initializer list", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_init_conversion_failed, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot initialize %select{a variable|a parameter|return object|an exception object|a member subobject|an array element|a new value|a value|a base class|a constructor delegation|a vector element|a block element|a block element|a complex element|a lambda capture|a compound literal initializer|a related result|a parameter of CF audited function}0 %diff{of type $ with an %select{rvalue|lvalue}2 of type $|with an %select{rvalue|lvalue}2 of incompatible type}1,3%select{|: different classes%diff{ ($ vs $)|}5,6|: different number of parameters (%5 vs %6)|: type mismatch at %ordinal5 parameter%diff{ ($ vs $)|}6,7|: different return type%diff{ ($ vs $)|}5,6|: different qualifiers (%select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}5 vs %select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}6)|: different exception specifications}4", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_element_not_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer element is not a compile-time constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_for_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot create object of function type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "initialization of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_list_bad_dest_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|non-aggregate }0type %1 cannot be initialized with an initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_method_bad_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "init methods must return an object pointer type, not %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_non_aggr_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "initialization of non-aggregate type %0 with an initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_objc_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot initialize Objective-C class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_priority_object_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "can only use 'init_priority' attribute on file-scope definitions of objects of class type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_init_reference_member_uninitialized, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference member of type %0 uninitialized", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_initializer_string_for_char_array_too_long, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer-string for char array is too long", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_inline_decl_follows_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "inline declaration of %0 follows non-inline definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_inline_declaration_block_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "inline declaration of %0 not allowed in block scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_inline_main, CLASS_ERROR, (unsigned)diag::Severity::Error, "'main' is not allowed to be declared inline", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_inline_namespace_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-inline namespace cannot be reopened as inline", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_inline_non_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'inline' can only appear on functions%select{| and non-local variables}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_int_to_block_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid block pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_integer_sequence_integral_element_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "integer sequences must have integral element type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_integer_sequence_negative_length, CLASS_ERROR, (unsigned)diag::Severity::Error, "integer sequences must have non-negative sequence length", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_internal_linkage_redeclaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'internal_linkage' attribute does not appear on the first declaration of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_introducing_special_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "%plural{[0,2]:must use a qualified name when declaring|3:cannot declare}0 a %select{constructor|destructor|conversion operator|deduction guide}0 as a friend", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_asm_cast_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_invalid_asm_value_for_constraint, CLASS_ERROR, (unsigned)diag::Severity::Error, "value '%0' out of range for constraint '%1'", 0, SFINAE_SubstitutionFailure, false, true, 12)
+DIAG(err_invalid_astype_of_different_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid reinterpretation: sizes of %0 and %1 must match", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_attribute_on_virtual_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to virtual functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_base_in_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "interface type cannot inherit from %select{'struct|non-public 'interface|'class}0 %1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_collection_element, CLASS_ERROR, (unsigned)diag::Severity::Error, "collection element of type %0 is not an Objective-C object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_complex_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "'_Complex %0' is invalid", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_constexpr, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{function parameter|typedef|non-static data member}0 cannot be constexpr", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_constexpr_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-static data member cannot be constexpr%select{; did you intend to make it %select{const|static}0?|}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_constexpr_var_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "constexpr variable declaration must be a definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_conversion_between_ext_vectors, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid conversion between ext-vector type %0 and %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_conversion_between_vector_and_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid conversion between vector type %0 and integer type %1 of different size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_conversion_between_vector_and_scalar, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid conversion between vector type %0 and scalar type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_conversion_between_vectors, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid conversion between vector type%diff{ $ and $|}0,1 of different size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_cpu_supports, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid cpu feature string for builtin", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_decl_spec_combination, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot combine with previous '%0' declaration specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_declarator_global_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition or redeclaration of %0 cannot name the global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_declarator_in_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition or redeclaration of %0 not allowed inside a block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_declarator_in_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition or redeclaration of %0 not allowed inside a function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_declarator_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot define or redeclare %0 here because namespace %1 does not enclose namespace %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_form_pointer_member_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot create a non-constant pointer to member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_incomplete_type_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_member_in_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{data member |non-public member function |static member function |user-declared constructor|user-declared destructor|operator |nested class }0%1 is not permitted within an interface type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_member_use_in_static_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of member %0 in static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_neon_type_code, CLASS_ERROR, (unsigned)diag::Severity::Error, "incompatible constant for this __builtin_neon function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_non_static_member_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of non-static data member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_nsnumber_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a valid literal type for NSNumber", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_pcs, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid PCS type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_pixel_decl_spec_combination, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__pixel' must be preceded by '__vector'.  '%0' declaration specifier not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_property_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a valid property name (accessing an object of type %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_protocol_qualifiers, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid protocol qualifiers on non-ObjC type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_qualified_constructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' qualifier is not allowed on a constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_qualified_destructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' qualifier is not allowed on a destructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_qualified_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-member function|static member function|deduction guide}0 %select{of type %2 |}1cannot have '%3' qualifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_receiver_class_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "receiver type %0 is not an Objective-C class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_receiver_to_message_super, CLASS_ERROR, (unsigned)diag::Severity::Error, "'super' is only valid in a method body", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_sign_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' cannot be signed or unsigned", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_super_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of '__super', this keyword can only be used inside class or member function scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_this_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of 'this' outside of a non-static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_thread, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' is only allowed on variable declarations", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_type_for_program_scope_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "the %0 type cannot be used to declare a program scope variable", 0, SFINAE_SubstitutionFailure, false, true, 17)
+DIAG(err_invalid_use_of_array_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "an array type is not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_use_of_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a function type is not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_var_template_spec_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %2 of %select{explicit instantiation|explicit specialization|partial specialization|redeclaration}0 of %1 does not match expected type %3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_bool_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use '%0' with '__vector bool'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_decl_spec_combination, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot combine with previous '%0' declaration specifier. '__vector' must be first", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_double_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of 'double' with '__vector' requires VSX support to be enabled (available on POWER7 or later)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_float_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use 'float' with '__vector'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_long_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use 'long' with '__vector'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_long_double_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use 'long double' with '__vector'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_vector_long_long_decl_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of 'long long' with '__vector bool' requires VSX support (available on POWER7 or later) or extended Altivec support (available on POWER8 or later) to be enabled", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_invalid_width_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%select{|short|long|long long}0 %1' is invalid", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ivar_access_using_property_syntax_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 not found on object of type %1; did you mean to access instance variable %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ivar_in_superclass_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 attempting to use instance variable %1 declared in super class %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ivar_reference_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variables cannot be of reference type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ivar_use_in_class_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable %0 accessed in class method", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_kern_call_not_global_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "kernel call to non-global function %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_kern_is_nonstatic_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "kernel function %0 must be a free function or static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_kern_type_not_void_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "kernel function type %0 must have void return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_kernel_arg_address_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointer arguments to kernel functions must reside in '__global', '__constant' or '__local' address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_lambda_capture_anonymous_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "unnamed variable cannot be implicitly captured in a lambda expression", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_capture_default_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "lambda expression in default argument cannot capture any entity", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_capture_flexarray_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 with flexible array member cannot be captured in a lambda expression", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_decl_ref_not_modifiable_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot assign to a variable captured by copy in a non-mutable lambda", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_lambda_impcap, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 cannot be implicitly captured in a lambda with no capture-default specified", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_in_constant_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "a lambda expression may not appear inside of a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_incomplete_result, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete result type %0 in lambda expression", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_return_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot deduce lambda return type from initializer list", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_lambda_unevaluated_operand, CLASS_ERROR, (unsigned)diag::Severity::Error, "lambda expression in an unevaluated operand", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_language_linkage_spec_not_ascii, CLASS_ERROR, (unsigned)diag::Severity::Error, "string literal in language linkage specifier cannot have an encoding-prefix", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_language_linkage_spec_unknown, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown linkage language", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_late_asm_label_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot apply asm label to %select{variable|function}0 after its first use", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_list_init_in_parens, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot initialize %select{non-class|reference}0 type %1 with a parenthesized initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_bad_param_count, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-template literal operator must have one or two parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_default_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "literal operator cannot have a default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_extern_c, CLASS_ERROR, (unsigned)diag::Severity::Error, "literal operator must have C++ linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_id_outside_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-namespace scope '%0' cannot have a literal operator member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_invalid_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter of literal operator must have type 'unsigned long long', 'long double', 'char', 'wchar_t', 'char16_t', 'char32_t', or 'const char *'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_outside_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "literal operator %0 must be in a namespace or global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid literal operator parameter type %0, did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter list for literal operator must be either 'char...' or 'typename T, T...'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_literal_operator_template_with_params, CLASS_ERROR, (unsigned)diag::Severity::Error, "literal operator template cannot have any parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_local_cant_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__local' variable cannot have an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_lvalue_reference_bind_to_initlist, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-const|volatile}0 lvalue reference to type %1 cannot bind to an initializer list temporary", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_lvalue_reference_bind_to_temporary, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-const|volatile}0 lvalue reference %diff{to type $ cannot bind to a temporary of type $|cannot bind to incompatible temporary}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_lvalue_reference_bind_to_unrelated, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-const|volatile}0 lvalue reference %diff{to type $ cannot bind to a value of unrelated type $|cannot bind to a value of unrelated type}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_lvalue_to_rvalue_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "rvalue reference %diff{to type $ cannot bind to lvalue of type $|cannot bind to incompatible lvalue}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_machine_mode, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{unknown|unsupported}0 machine mode %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_main_arg_wrong, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{first|second|third|fourth}0 parameter of 'main' (%select{argument count|argument array|environment|platform-specific data}0) must be of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_main_global_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "main cannot be declared as global variable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_main_returns_nonint, CLASS_ERROR, (unsigned)diag::Severity::Error, "'main' must return 'int'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_main_surplus_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many parameters (%0) for 'main': must be 0, 2, or 3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mainlike_template_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be a template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_malformed_std_coroutine_handle, CLASS_ERROR, (unsigned)diag::Severity::Error, "std::experimental::coroutine_handle must be a class template", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_malformed_std_coroutine_traits, CLASS_ERROR, (unsigned)diag::Severity::Error, "'std::experimental::coroutine_traits' must be a class template", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_malformed_std_initializer_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "std::initializer_list must be a class template with a single type parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_maybe_falloff_nonvoid_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "control may reach end of non-void block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mem_init_not_member_or_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "member initializer %0 does not name a non-static data member or base class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mem_init_not_member_or_class_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer %0 does not name a non-static data member or base class; did you mean the %select{base class|member}1 %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_call_without_object, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to non-static member function without an object argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_decl_does_not_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "out-of-line %select{declaration|definition}2 of %0 does not match any declaration in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_decl_does_not_match_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "out-of-line %select{declaration|definition}2 of %0 does not match any declaration in %1; did you mean %3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_def_does_not_match_ret_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "return type of out-of-line definition of %q0 differs from that in the declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_def_undefined_record, CLASS_ERROR, (unsigned)diag::Severity::Error, "out-of-line definition of %0 from class %1 without definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_extra_qualification, CLASS_ERROR, (unsigned)diag::Severity::Error, "extra qualification on member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_function_call_bad_cvr, CLASS_ERROR, (unsigned)diag::Severity::Error, "member function %0 not viable: 'this' argument has type %1, but function is not marked %select{const|restrict|const or restrict|volatile|const or volatile|volatile or restrict|const, volatile, or restrict}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_function_initialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer on function does not look like a pure-specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_name_of_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "member %0 has the same name as its class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_not_yet_instantiated, CLASS_ERROR, (unsigned)diag::Severity::Error, "no member %0 in %1; it has not yet been instantiated", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_qualification, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-friend class member %0 cannot have a qualified name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "class member cannot be redeclared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_redeclared_in_instantiation, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple overloads of %0 instantiate to the same signature %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_member_reference_needs_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "base of member reference is a function; perhaps you meant to call it%select{| with no arguments}0?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mempointer_in_nonclass_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "member pointer refers into non-class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_memptr_conv_via_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion from pointer to member of class %0 to pointer to member of class %1 via virtual base %2 is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_method_not_found_with_typo, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{instance|class}1 method %0 not found ; did you mean %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mismatched_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specification in declaration does not match previous declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mismatched_exception_spec_explicit_instantiation, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specification in explicit instantiation does not match instantiated one", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mismatched_ms_inheritance, CLASS_ERROR, (unsigned)diag::Severity::Error, "inheritance model does not match %select{definition|previous declaration}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mismatched_uuid, CLASS_ERROR, (unsigned)diag::Severity::Error, "uuid does not match previous declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mismatched_visibility, CLASS_ERROR, (unsigned)diag::Severity::Error, "visibility does not match previous declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_misplaced_ivar, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variables may not be placed in %select{categories|class extension}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_actual_pipe_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing actual type specifier for pipe", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_atsign_prefix, CLASS_ERROR, (unsigned)diag::Severity::Error, "string literal must be prefixed by '@' ", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_default_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{constructor for %1 must explicitly initialize the|implicit default constructor for %1 must explicitly initialize the|cannot use constructor inherited from base class %4;}0 %select{base class|member}2 %3 %select{which|which|of %1}0 does not have a default constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_exception_specification, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is missing exception specification '%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_method_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing context for method declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_open_square_message_send, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing '[' at start of message send expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_property_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing context for property implementation declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_property_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "property implementation in a category with no category declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_property_ivar_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "synthesized property %0 must either be named the same as a compatible instance variable or must explicitly name an instance variable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_missing_type_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "C++ requires a type specifier for all declarations", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mixing_cxx_try_seh_try, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use C++ 'try' in the same function as SEH '__try'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mode_not_primitive, CLASS_ERROR, (unsigned)diag::Severity::Error, "mode attribute only supported for integer and floating-point types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mode_wrong_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of machine mode does not match type of base type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_module_import_in_implementation, CLASS_ERROR, (unsigned)diag::Severity::Error, "@import of module '%0' in implementation of '%1'; use #import", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_import_not_at_top_level_fatal, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "import of module '%0' appears within %1", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_interface_implementation_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{'module'|'module partition'|'module implementation'}0 declaration found while %select{not |not |}0building module interface", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_private_local, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{local variable|parameter|typedef}0 %1 cannot be declared __module_private__", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_private_local_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "local %select{struct|interface|union|class|enum}0 cannot be declared __module_private__", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_private_specialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{template|partial|member}0 specialization cannot be declared __module_private__", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of module '%0'", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_self_import, CLASS_ERROR, (unsigned)diag::Severity::Error, "import of module '%0' appears within same top-level module '%1'", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_unimported_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{declaration|definition|default argument|explicit specialization|partial specialization}0 of %1 must be imported from module '%2' before it is required", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_unimported_use_header, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing '#include %3'; %select{declaration|definition|default argument|explicit specialization|partial specialization}0 of %1 must be imported from module '%2' before it is required", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_module_unimported_use_multiple, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{declaration|definition|default argument|explicit specialization|partial specialization}0 of %1 must be imported from one of the following modules before it is required:%2", 0, SFINAE_SubstitutionFailure, false, true, 13)
+DIAG(err_ms___leave_not_in___try, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__leave' statement not in __try block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ms_va_start_used_in_sysv_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__builtin_ms_va_start' used in System V ABI function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_multiple_base_initialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple initializations given for base %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_multiple_default_labels_defined, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple default labels in one switch", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_multiple_final_overriders, CLASS_ERROR, (unsigned)diag::Severity::Error, "virtual function %q0 has more than one final overrider in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_multiple_mem_initialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple initializations given for non-static member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_multiple_mem_union_initialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializing multiple members of union", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mutable_const, CLASS_ERROR, (unsigned)diag::Severity::Error, "'mutable' and 'const' cannot be mixed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mutable_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'mutable' cannot be applied to functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mutable_nonmember, CLASS_ERROR, (unsigned)diag::Severity::Error, "'mutable' can only be applied to member variables", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_mutable_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "'mutable' cannot be applied to references", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_need_header_before_ms_uuidof, CLASS_ERROR, (unsigned)diag::Severity::Error, "you need to include <guiddef.h> before using the '__uuidof' operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_need_header_before_typeid, CLASS_ERROR, (unsigned)diag::Severity::Error, "you need to include <typeinfo> before using the 'typeid' operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nested_name_member_ref_lookup_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "lookup of %0 in member access expression is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nested_name_spec_is_not_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot appear before '::' because it is not a class%select{ or namespace|, namespace, or enumeration}1; did you mean ':'?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nested_name_spec_non_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 cannot be used prior to '::' because it has no members", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nested_non_static_member_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{call to non-static member function|use of non-static data member}0 %2 of %1 from nested type %3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nested_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "nested redefinition of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_new_abi_tag_on_redeclaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "'abi_tag' %0 missing in original declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_new_array_init_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "array 'new' cannot have initialization arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_new_array_nonconst, CLASS_ERROR, (unsigned)diag::Severity::Error, "only the first dimension of an allocated array may have dynamic size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_new_array_of_auto, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot allocate array of 'auto'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_new_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "allocation of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_accessor_for_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "no %select{getter|setter}0 defined for property %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_base_classes, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of '__super', %0 has no base classes", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_dynamic_cast_with_fno_rtti, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use dynamic_cast with -fno-rtti", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_matching_local_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching function found in local scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_matching_local_friend_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching function %0 found in local scope; did you mean %3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "no member named %0 in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_member_overloaded_arrow, CLASS_ERROR, (unsigned)diag::Severity::Error, "no member named %0 in %1; did you mean to use '->' instead of '.'?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_member_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no member named %0 in %1; did you mean %select{|simply }2%3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_member_template_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no template named %0 in %1; did you mean %select{|simply }2%3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_nsconstant_string_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find interface declaration for %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_subobject_property_setting, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression is not assignable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_suitable_delete_member_function_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "no suitable member %0 in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_super_class_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "no @interface declaration found in class messaging of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_template_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no template named %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_no_typeid_with_fno_rtti, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use typeid with -fno-rtti", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_noexcept_needs_constant_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument to noexcept specifier must be a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nogetter_property_compound_assignment, CLASS_ERROR, (unsigned)diag::Severity::Error, "a getter method is needed to perform a compound assignment on a property", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nogetter_property_incdec, CLASS_ERROR, (unsigned)diag::Severity::Error, "no getter method %1 for %select{increment|decrement}0 of property", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_asm_stmt_in_naked_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-ASM statement in naked function is not supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_deleted_override, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-deleted function %0 cannot override a deleted function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_extern_extern, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-extern declaration of %0 follows extern declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_local_variable_decl_in_for, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of non-local variable in 'for' loop", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_static_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-static declaration of %0 follows static declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_thread_thread, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-thread-local declaration of %0 follows thread-local declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_type_template_arg_addr_label_diff, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument / label address difference / what did you expect?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_type_template_arg_subobject, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument refers to subobject '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_type_template_in_nested_name_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "qualified name refers into a specialization of %select{function|variable}0 template %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_type_template_parm_type_deduction_failure, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template parameter %0 with type %1 has incompatible initializer of type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_variable_decl_in_for, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-variable declaration in 'for' loop", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_non_virtual_pure, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not virtual and cannot be declared pure", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nonfunction_block_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "block pointer to non-function type is invalid", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nonstatic_member_out_of_line, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-static data member defined out-of-line", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nontemporal_builtin_must_be_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to nontemporal builtin must be a pointer (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nontemporal_builtin_must_be_pointer_intfltptr_or_vector, CLASS_ERROR, (unsigned)diag::Severity::Error, "address argument to nontemporal builtin must be a pointer to integer, float, pointer, or a vector of such types (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_noreturn_block_has_return_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "block declared 'noreturn' should not return", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_noreturn_lambda_has_return_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "lambda declared 'noreturn' should not return", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_noreturn_missing_on_first_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declared '[[noreturn]]' after its first declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_noreturn_non_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'_Noreturn' can only appear on functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nosetter_property_assignment, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{assignment to readonly property|no setter method %1 for assignment to property}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nosetter_property_incdec, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{%select{increment|decrement}1 of readonly property|no setter method %2 for %select{increment|decrement}1 of property}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_not_class_template_specialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specialize a %select{dependent template|template template parameter}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_not_direct_base_or_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 is not a direct or virtual base of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_not_found_by_two_phase_lookup, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to function %0 that is neither visible in the template definition nor found by argument-dependent lookup", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_not_integral_type_anon_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "anonymous bit-field has non-integral type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_not_integral_type_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "bit-field %0 has non-integral type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_not_tag_in_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "no %select{struct|interface|union|class|enum}0 named %1 in %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ns_attribute_wrong_parameter_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute only applies to %select{Objective-C object|pointer|pointer-to-CF-pointer}1 parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nsconsumed_attribute_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "overriding method has mismatched ns_consumed attribute on its parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nsobject_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "'NSObject' attribute is for pointer types only", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nsreturns_retained_attribute_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "overriding method has mismatched ns_returns_%select{not_retained|retained}0 attributes", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_nullability_cs_multilevel, CLASS_ERROR, (unsigned)diag::Severity::Error, "nullability keyword %0 cannot be applied to multi-level pointer type %1", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_nullability_nonpointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "nullability specifier %0 cannot be applied to non-pointer type %1", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_objc_array_of_interfaces, CLASS_ERROR, (unsigned)diag::Severity::Error, "array of interface %0 is invalid (probably should be an array of pointers)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_attr_not_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter of %0 attribute must be a single name of an Objective-C %select{class|protocol}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_attr_protocol_requires_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute %0 can only be applied to @protocol definitions, not forward declarations", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_attr_typedef_not_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter of %0 attribute must be 'id' when used on a typedef", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_attr_typedef_not_void_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "'objc_bridge(id)' is only allowed on structs and typedefs of void pointers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_bridged_related_invalid_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "could not find Objective-C class %0 to convert %1 to %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_bridged_related_invalid_class_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must be name of an Objective-C class to be able to convert %1 to %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_bridged_related_known_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must be explicitly converted to %1; use %select{%objcclass2|%objcinstance2}3 method for this conversion", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_cf_bridged_not_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "CF object of type %0 is bridged to %1, which is not an Objective-C class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_decls_may_only_appear_in_global_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "Objective-C declarations may only appear in global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_exceptions_disabled, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use '%0' with Objective-C exceptions disabled", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_illegal_boxed_expression_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal type %0 used in a boxed expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_incomplete_boxed_expression_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete type %0 used in a boxed expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_index_incomplete_class_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "Objective-C index expression has incomplete class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_indexing_method_result_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "method for accessing %select{dictionary|array}1 element must have Objective-C object return type instead of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_kindof_nonobject, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__kindof' specifier cannot be applied to non-object type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_kindof_wrong_position, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__kindof' type specifier must precede the declarator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_literal_method_sig, CLASS_ERROR, (unsigned)diag::Severity::Error, "literal construction method %0 has incompatible signature", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_multiple_subscript_type_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "indexing expression is invalid because subscript type %0 has multiple type conversion functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_non_trivially_copyable_boxed_expression_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-trivially copyable type %0 cannot be used in a boxed expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_ns_bridged_invalid_cfobject, CLASS_ERROR, (unsigned)diag::Severity::Error, "ObjectiveC object of type %0 is bridged to %1, which is not valid CF object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_object_assignment, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot assign to class object (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_object_catch, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot catch an Objective-C object by value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_parameterized_category_nonclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{extension|category}0 of non-parameterized class %1 cannot have type parameters", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_parameterized_forward_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "forward declaration of non-parameterized class %0 cannot have type parameters", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_parameterized_forward_class_first, CLASS_ERROR, (unsigned)diag::Severity::Error, "class %0 previously declared with type parameters", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_precise_lifetime_bad_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "objc_precise_lifetime only applies to retainable types; type here is %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_property_attr_mutually_exclusive, CLASS_ERROR, (unsigned)diag::Severity::Error, "property attributes '%0' and '%1' are mutually exclusive", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_property_requires_object, CLASS_ERROR, (unsigned)diag::Severity::Error, "property with '%0' attribute must be of object type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_root_class_subclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "objc_root_class attribute may only be specified on a root class declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_runtime_visible_category, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot implement a category for class %0 that is only visible via the Objective-C runtime", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_runtime_visible_subclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot implement subclass %0 of a superclass %1 that is only visible via the Objective-C runtime", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_base_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{dictionary|array}1 subscript base type %0 is not an Objective-C object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_dic_object_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "method object parameter type %0 is not object type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_index_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "method index parameter type %0 is not integral type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_key_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "method key parameter type %0 is not object type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_method_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected method to %select{read|write}1 %select{dictionary|array}2 element not found on object of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_object_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot assign to this %select{dictionary|array}1 because assigning method's 2nd parameter of type %0 is not an Objective-C pointer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "indexing expression is invalid because subscript type %0 is not an Objective-C pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_subscript_type_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "indexing expression is invalid because subscript type %0 is not an integral or Objective-C pointer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_synchronized_expects_object, CLASS_ERROR, (unsigned)diag::Severity::Error, "@synchronized requires an Objective-C object type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_throw_expects_object, CLASS_ERROR, (unsigned)diag::Severity::Error, "@throw requires an Objective-C object type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_objc_type_arg_does_not_match_bound, CLASS_ERROR, (unsigned)diag::Severity::Error, "type argument %0 does not satisfy the bound (%1) of type parameter %2", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_objc_type_arg_explicit_nullability, CLASS_ERROR, (unsigned)diag::Severity::Error, "type argument %0 cannot explicitly specify nullability", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_objc_type_arg_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "no type or protocol named %0", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_arg_missing_star, CLASS_ERROR, (unsigned)diag::Severity::Error, "type argument %0 must be a pointer (requires a '*')", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_arg_not_id_compatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "type argument %0 is neither an Objective-C object nor a block type", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(err_objc_type_arg_qualified, CLASS_ERROR, (unsigned)diag::Severity::Error, "type argument %0 cannot be qualified with '%1'", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_args_and_protocols, CLASS_ERROR, (unsigned)diag::Severity::Error, "angle brackets contain both a %select{type|protocol}0 (%1) and a %select{protocol|type}0 (%2)", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_args_non_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "type arguments cannot be applied to non-class type %0", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_args_non_parameterized_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "type arguments cannot be applied to non-parameterized class %0", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_args_specialized_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "type arguments cannot be applied to already-specialized class type %0", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_args_wrong_arity, CLASS_ERROR, (unsigned)diag::Severity::Error, "too %select{many|few}0 type arguments for class %1 (have %2, expected %3)", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_arity_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{forward class declaration|class definition|category|extension}0 has too %select{few|many}1 type parameters (expected %2, have %3)", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_bound_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "type bound %0 for type parameter %1 conflicts with %select{implicit|previous}2 bound %3%select{for type parameter %5|}4", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_bound_explicit_nullability, CLASS_ERROR, (unsigned)diag::Severity::Error, "type parameter %0 bound %1 cannot explicitly specify nullability", 0, SFINAE_SubstitutionFailure, false, true, 18)
+DIAG(err_objc_type_param_bound_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing type bound %0 for type parameter %1 in %select{@interface|@class}2", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_bound_missing_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing '*' in type bound %0 for type parameter %1", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_bound_nonobject, CLASS_ERROR, (unsigned)diag::Severity::Error, "type bound %0 for type parameter %1 is not an Objective-C pointer type", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_bound_qualified, CLASS_ERROR, (unsigned)diag::Severity::Error, "type bound %1 for type parameter %0 cannot be qualified with '%2'", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_redecl, CLASS_ERROR, (unsigned)diag::Severity::Error, "redeclaration of type parameter %0", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_type_param_variance_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{in|co|contra}0variant type parameter %1 conflicts with previous %select{in|co|contra}2variant type parameter %3", 0, SFINAE_SubstitutionFailure, false, true, 19)
+DIAG(err_objc_var_decl_inclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot declare variable inside @interface or @protocol", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_object_cannot_be_passed_returned_by_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "interface type %1 cannot be %select{returned|passed}0 by value; did you forget * in %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_offsetof_array_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "offsetof requires array type, %0 invalid", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_offsetof_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot compute offset of bit-field %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_offsetof_field_of_virtual_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of 'offsetof' to a field of a virtual base", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_offsetof_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "offsetof of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_offsetof_record_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "offsetof requires struct, union, or class type, %0 invalid", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_omp_aligned_expected_array_or_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument of aligned clause should be array%select{ or pointer|, pointer, reference to array or reference to pointer}1, not %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_aligned_twice, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{a variable|a parameter|'this'}0 cannot appear in more than one aligned clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_ambiguous_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion from type %0 to an integral or unscoped enumeration type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_argument_type_isdeviceptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected pointer, array, reference to pointer, or reference to array in 'is_device_ptr clause'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_array_section_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "OpenMP array section is not allowed here", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_at_least_one_motion_clause_required, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected at least one 'to' clause or 'from' clause specified to '#pragma omp target update'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_capture_not_compound_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for 'atomic capture' must be a compound statement of form '{v = x; x binop= expr;}', '{x binop= expr; v = x;}', '{v = x; x = x binop expr;}', '{v = x; x = expr binop x;}', '{x = x binop expr; v = x;}', '{x = expr binop x; v = x;}' or '{v = x; x = expr;}', '{v = x; x++;}', '{v = x; ++x;}', '{++x; v = x;}', '{x++; v = x;}', '{v = x; x--;}', '{v = x; --x;}', '{--x; v = x;}', '{x--; v = x;}' where x is an l-value expression with scalar type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_capture_not_expression_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for 'atomic capture' must be an expression statement of form 'v = ++x;', 'v = --x;', 'v = x++;', 'v = x--;', 'v = x binop= expr;', 'v = x = x binop expr' or 'v = x = expr binop x', where x and v are both l-value expressions with scalar type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_not_expression_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an l-value expression with scalar type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_read_not_expression_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for 'atomic read' must be an expression statement of form 'v = x;', where v and x are both lvalue expressions with scalar type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_several_clauses, CLASS_ERROR, (unsigned)diag::Severity::Error, "directive '#pragma omp atomic' cannot contain more than one 'read', 'write', 'update' or 'capture' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_update_not_expression_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for 'atomic update' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an l-value expression with scalar type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_atomic_write_not_expression_statement, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_bit_fields_forbidden_in_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "bit fields cannot be used to specify storage in a '%0' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_clause_floating_type_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "arguments of OpenMP clause 'reduction' with bitwise operators cannot be of floating type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_clause_not_arithmetic_type_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "arguments of OpenMP clause 'reduction' for 'min' or 'max' must be of %select{scalar|arithmetic}0 type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_const_reduction_list_item, CLASS_ERROR, (unsigned)diag::Severity::Error, "const-qualified list item cannot be reduction", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_const_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "const-qualified variable cannot be %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_critical_with_hint, CLASS_ERROR, (unsigned)diag::Severity::Error, "constructs with the same name must have a 'hint' clause with the same value", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_declare_reduction_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of user-defined reduction for type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_declare_target_multiple, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 appears multiple times in clauses on the same declare target directive", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_declare_target_to_and_link, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must not appear in both clauses 'to' and 'link'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_depend_clause_thread_simd, CLASS_ERROR, (unsigned)diag::Severity::Error, "'depend' clauses cannot be mixed with '%0' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_depend_sink_expected_loop_iteration, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %0 loop iteration variable", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_depend_sink_expected_plus_minus, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected '+' or '-' operation", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_depend_sink_source_not_allowed, CLASS_ERROR, (unsigned)diag::Severity::Error, "'depend(%select{source|sink:vec}0)' clause%select{|s}0 cannot be mixed with 'depend(%select{sink:vec|source}0)' clause%select{s|}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_depend_sink_unexpected_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected expression: number of expressions is larger than the number of associated loops", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_enclosed_declare_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "declare target region may not be enclosed within another declare target region", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_access_to_data_field, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected access to data field", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_base_var_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected variable name as a base of the array %select{subscript|section}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_int_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a reference to an integer-typed parameter", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_named_var_member_or_array_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected expression containing only member accesses and/or array sections based on named variables", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_uniform_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a reference to a parameter specified in a 'uniform' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_var_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a global variable, static local variable or static data member", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_var_arg_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a global variable, static local variable or static data member; did you mean %1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_var_name_member_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected variable name%select{| or data member of current class}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_expected_var_name_member_expr_or_array_item, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected variable name%select{|, data member of current class}0, array element or array section", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_explicit_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression requires explicit conversion from %0 to %1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_firstprivate_and_lastprivate_in_distribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "lastprivate variable cannot be firstprivate in '#pragma omp distribute'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_firstprivate_distribute_in_teams_reduction, CLASS_ERROR, (unsigned)diag::Severity::Error, "reduction variable in '#pragma omp teams' cannot be firstprivate in '#pragma omp distribute'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_firstprivate_distribute_private_teams, CLASS_ERROR, (unsigned)diag::Severity::Error, "private variable in '#pragma omp teams' cannot be firstprivate in '#pragma omp distribute'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_firstprivate_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a firstprivate variable with incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_function_expected, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma omp declare simd' can only be applied to functions", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_global_var_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "arguments of '#pragma omp %0' must have %select{global storage|static storage duration}1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_grainsize_num_tasks_mutually_exclusive, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' and '%1' clause are mutually exclusive and may not appear on the same directive", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_hint_clause_no_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "the name of the construct must be specified in presence of 'hint' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression has incomplete class type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_invalid_map_type_for_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{map type '%1' is not allowed|map type must be specified}0 for '#pragma omp %2'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_invalid_target_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 used in declare target directive is not a variable or a function name", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_lastprivate_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a lastprivate variable with incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_linear_expected_int_or_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument of a linear clause should be of integral or pointer type, not %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_linear_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a linear variable with incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_linear_ordered, CLASS_ERROR, (unsigned)diag::Severity::Error, "'linear' clause cannot be specified along with 'ordered' clause with a parameter", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_local_var_in_threadprivate_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable with local storage in initial value of threadprivate variable", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_cannot_use_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' statement cannot be used in OpenMP for loop", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_diff_cxx, CLASS_ERROR, (unsigned)diag::Severity::Error, "could not calculate number of iterations calling 'operator-' with upper and lower loop bounds", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_incr_not_compatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "increment expression must cause %0 to %select{decrease|increase}1 on each iteration of OpenMP for loop", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_not_canonical_cond, CLASS_ERROR, (unsigned)diag::Severity::Error, "condition of OpenMP for loop must be a relational comparison ('<', '<=', '>', or '>=') of loop variable %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_not_canonical_incr, CLASS_ERROR, (unsigned)diag::Severity::Error, "increment clause of OpenMP for loop must perform simple addition or subtraction on loop variable %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_not_canonical_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_var_dsa, CLASS_ERROR, (unsigned)diag::Severity::Error, "loop iteration variable in the associated loop of 'omp %1' directive may not be %0, predetermined as %2", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_loop_variable_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable must be of integer or %select{pointer|random access iterator}0 type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_map_shared_storage, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable already marked as mapped in current construct", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_multiple_array_items_in_map_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple array elements associated with the same variable are not allowed in map clauses of the same construct", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_negative_expression_in_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument to '%0' clause must be a %select{non-negative|strictly positive}1 integer value", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_no_dsa_for_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 must have explicitly specified data sharing attributes", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_no_map_for_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected at least one map clause for '#pragma omp %0'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_no_more_if_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "no more 'if' clause is allowed", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_not_for, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{statement after '#pragma omp %1' must be a for loop|expected %2 for loops after '#pragma omp %1'%select{|, but found only %4}3}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_not_integral, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression must have integral or unscoped enumeration type, not %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_not_mappable_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 is not mappable to target", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_not_resolved_reduction_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to resolve declare reduction construct for type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_once_referenced, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable can appear only once in OpenMP '%0' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_once_referenced_in_target_update, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable can appear only once in OpenMP 'target update' construct", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_ordered_directive_with_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "'ordered' directive %select{without any clauses|with 'threads' clause}0 cannot be closely nested inside ordered region with specified parameter", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_ordered_directive_without_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "'ordered' directive with 'depend' clause cannot be closely nested inside ordered region without specified parameter", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_ordered_simd, CLASS_ERROR, (unsigned)diag::Severity::Error, "'ordered' clause with a parameter can not be specified in '#pragma omp %0' directive", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_original_storage_is_shared_and_does_not_contain, CLASS_ERROR, (unsigned)diag::Severity::Error, "original storage of expression in data environment is shared but data environment do not fully contain mapped expression storage", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_orphaned_device_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "orphaned 'omp %0' directives are prohibited; perhaps you forget to enclose the directive into a %select{|||target |teams }1region?", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_orphaned_section_directive, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{orphaned 'omp section' directives are prohibited, it|'omp section' directive}0 must be closely nested to a sections region%select{|, not a %1 region}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_parallel_reduction_in_task_firstprivate, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument of a reduction clause of a %0 construct must not appear in a firstprivate clause on a task construct", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_parallel_sections_not_compound_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for '#pragma omp parallel sections' must be a compound statement", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_parallel_sections_substmt_not_section, CLASS_ERROR, (unsigned)diag::Severity::Error, "statement in 'omp parallel sections' directive must be enclosed into a section region", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_param_or_this_in_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected reference to one of the parameters of function %0%select{| or 'this'}1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_parent_cancel_region_nowait, CLASS_ERROR, (unsigned)diag::Severity::Error, "parent region for 'omp %select{cancellation point/cancel}0' construct cannot be nowait", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_parent_cancel_region_ordered, CLASS_ERROR, (unsigned)diag::Severity::Error, "parent region for 'omp %select{cancellation point/cancel}0' construct cannot be ordered", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_pointer_mapped_along_with_derived_section, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointer cannot be mapped along with a section derived from itself", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_private_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a private variable with incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_prohibited_region, CLASS_ERROR, (unsigned)diag::Severity::Error, "region cannot be%select{| closely}0 nested inside '%1' region%select{|; perhaps you forget to enclose 'omp %3' directive into a parallel region?|; perhaps you forget to enclose 'omp %3' directive into a for or a parallel for region with 'ordered' clause?|; perhaps you forget to enclose 'omp %3' directive into a target region?|; perhaps you forget to enclose 'omp %3' directive into a teams region?}2", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_prohibited_region_atomic, CLASS_ERROR, (unsigned)diag::Severity::Error, "OpenMP constructs may not be nested inside an atomic region", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_prohibited_region_critical_same_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot nest 'critical' regions having the same name %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_prohibited_region_simd, CLASS_ERROR, (unsigned)diag::Severity::Error, "OpenMP constructs may not be nested inside a simd region", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_reduction_id_not_compatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "list item of type %0 is not valid for specified reduction operation: unable to provide default initialization value", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_reduction_in_task, CLASS_ERROR, (unsigned)diag::Severity::Error, "reduction variables may not be accessed in an explicit task", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_reduction_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a reduction list item with incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_reduction_ref_type_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument of OpenMP clause 'reduction' must reference the same object in all threads", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_reduction_wrong_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "reduction type cannot be %select{qualified with 'const', 'volatile' or 'restrict'|a function|a reference|an array}0 type", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_ref_type_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "arguments of '#pragma omp %0' cannot be of reference type %1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_region_not_file_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "directive must be at file or namespace scope", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_required_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 variable must be %1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_same_pointer_derreferenced, CLASS_ERROR, (unsigned)diag::Severity::Error, "same pointer derreferenced in multiple different ways in map clause expressions", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_schedule_nonmonotonic_ordered, CLASS_ERROR, (unsigned)diag::Severity::Error, "'schedule' clause with 'nonmonotonic' modifier cannot be specified if an 'ordered' clause is specified", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_schedule_nonmonotonic_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "'nonmonotonic' modifier can only be specified with 'dynamic' or 'guided' schedule kind", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_section_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "section of pointer to function type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_section_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "section of pointer to incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_section_length_negative, CLASS_ERROR, (unsigned)diag::Severity::Error, "section length is evaluated to a negative value %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_section_length_undefined, CLASS_ERROR, (unsigned)diag::Severity::Error, "section length is unspecified and cannot be inferred because subscripted value is %select{not an array|an array of unknown bound}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_section_not_subset_of_array, CLASS_ERROR, (unsigned)diag::Severity::Error, "array section must be a subset of the original array", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_sections_not_compound_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "the statement for '#pragma omp sections' must be a compound statement", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_sections_substmt_not_section, CLASS_ERROR, (unsigned)diag::Severity::Error, "statement in 'omp sections' directive must be enclosed into a section region", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_simd_region_cannot_use_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' statement cannot be used in OpenMP simd region", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_single_copyprivate_with_nowait, CLASS_ERROR, (unsigned)diag::Severity::Error, "the 'copyprivate' clause must not be used with the 'nowait' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_single_decl_in_declare_simd, CLASS_ERROR, (unsigned)diag::Severity::Error, "single declaration is expected after 'declare simd' directive", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_target_contains_not_only_teams, CLASS_ERROR, (unsigned)diag::Severity::Error, "target construct with nested teams region contains statements outside of the teams construct", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_threadprivate_in_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "threadprivate variables are not allowed in '%0' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_threadprivate_in_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "threadprivate variables cannot be used in target constructs", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_threadprivate_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "threadprivate variable with incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_typecheck_section_not_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "array section %select{lower bound|length}0 is not an integer", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_typecheck_section_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "subscripted value is not an array or pointer", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_unexpected_clause_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %0 in OpenMP clause '%1'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_unexpected_schedule_modifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "modifier '%0' cannot be used along with modifier '%1'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_union_type_not_allowed, CLASS_ERROR, (unsigned)diag::Severity::Error, "mapped storage cannot be derived from a union", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_unknown_reduction_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "incorrect reduction identifier, expected one of '+', '-', '*', '&', '|', '^', '&&', '||', 'min' or 'max' or declare reduction for type %0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_unnamed_if_clause, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %select{|one of}0 %1 directive name modifier%select{|s}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_usedeviceptr_not_a_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected pointer or reference to pointer in 'use_device_ptr' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_var_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma omp %0' must appear in the scope of the %q1 variable declaration", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_var_thread_local, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 cannot be threadprivate because it is %select{thread-local|a global named register variable}1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_var_used, CLASS_ERROR, (unsigned)diag::Severity::Error, "'#pragma omp %0' must precede all references to variable %q1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_variable_in_given_clause_and_dsa, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 variable cannot be in a %1 clause in '#pragma omp %2' directive", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_variably_modified_type_not_supported, CLASS_ERROR, (unsigned)diag::Severity::Error, "arguments of OpenMP clause '%0' in '#pragma omp %2' directive cannot be of variably-modified type %1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_cancel_region, CLASS_ERROR, (unsigned)diag::Severity::Error, "one of 'for', 'parallel', 'sections' or 'taskgroup' is expected", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_dsa, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 variable cannot be %1", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_if_directive_name_modifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "directive name modifier '%0' is not allowed for '#pragma omp %1'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_linear_modifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected %select{'val' modifier|one of 'ref', val' or 'uval' modifiers}0", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_linear_modifier_non_reference, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable of non-reference type %0 can be used only with 'val' modifier, but used with '%1'", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_ordered_loop_count, CLASS_ERROR, (unsigned)diag::Severity::Error, "the parameter of the 'ordered' clause must be greater than or equal to the parameter of the 'collapse' clause", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_simdlen_safelen_values, CLASS_ERROR, (unsigned)diag::Severity::Error, "the value of 'simdlen' parameter must be less than or equal to the value of the 'safelen' parameter", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_omp_wrong_var_in_declare_reduction, CLASS_ERROR, (unsigned)diag::Severity::Error, "only %select{'omp_priv' or 'omp_orig'|'omp_in' or 'omp_out'}0 variables are allowed in %select{initializer|combiner}0 expression", 0, SFINAE_SubstitutionFailure, false, true, 11)
+DIAG(err_only_annotate_after_access_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "access specifier can only have annotation attributes", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_only_constructors_take_base_inits, CLASS_ERROR, (unsigned)diag::Severity::Error, "only constructors take base initializers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_only_enums_have_underlying_types, CLASS_ERROR, (unsigned)diag::Severity::Error, "only enumeration types have underlying types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_atomic_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "atomic variable can be %select{assigned|initialized}0 to a variable only in global address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_bitfields, CLASS_ERROR, (unsigned)diag::Severity::Error, "bit-fields are not supported in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_block_ref_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to a block inside block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_block_storage_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "the __block storage type is not permitted", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_builtin_pipe_arg_num, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid number of arguments to function: %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_builtin_pipe_first_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "first argument to %0 must be a pipe type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_builtin_pipe_invalid_access_modifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid pipe access modifier (expecting %0)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_builtin_pipe_invalid_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument type to function %0 (expecting %1 having %2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_builtin_to_addr_arg_num, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid number of arguments to function: %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_builtin_to_addr_invalid_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument %0 to function: %1, expecting a generic pointer argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_cast_non_zero_to_event_t, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast non-zero value '%0' to 'event_t'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_cast_to_half, CLASS_ERROR, (unsigned)diag::Severity::Error, "casting to type %0 is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_constant_no_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable in constant address space must be initialized", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_enqueue_kernel_blocks_no_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "blocks with parameters are not accepted in this prototype of enqueue_kernel call", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_enqueue_kernel_blocks_non_local_void_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "blocks used in enqueue_kernel call are expected to have parameters of type 'local void*'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_enqueue_kernel_expected_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal call to enqueue_kernel, expected %0 argument type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_enqueue_kernel_incorrect_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal call to enqueue_kernel, incorrect argument types", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_enqueue_kernel_invalid_local_size_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal call to enqueue_kernel, parameter needs to be specified as integer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_enqueue_kernel_local_size_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "mismatch in number of block parameters and local size arguments passed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_ext_vector_component_invalid_length, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector component access has invalid length %0.  Supported: 1,2,3,4,8,16.", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_extern_block_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid block variable declaration - using 'extern' storage class is disallowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_function_pointer_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointers to functions are not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_function_variable, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-kernel function|function scope}0 variable cannot be declared in %1 address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_global_invalid_addr_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{program scope|static local|extern}0 variable must reside in %1 address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_half_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaring variable of type %0 is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_half_load_store, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{loading directly from|assigning directly to}0 pointer to type %1 requires cl_khr_fp16. Use vector data %select{load|store}0 builtin functions instead", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_half_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaring function parameter of type %0 is not allowed; did you forget * ?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_implicit_vector_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "implicit conversions between vector types (%0 and %1) are not permitted", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_invalid_access_qualifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "access qualifier can only be used for pipe and image type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_invalid_block_declaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid block variable declaration - must be %select{const qualified|initialized}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_invalid_read_write, CLASS_ERROR, (unsigned)diag::Severity::Error, "access qualifier %0 can not be used for %1 %select{|prior to OpenCL version 2.0}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_invalid_return, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaring function return value of type %0 is not allowed %select{; did you forget * ?|}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_invalid_type_array, CLASS_ERROR, (unsigned)diag::Severity::Error, "array of %0 type is invalid in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_kernel_attr, CLASS_ERROR, (unsigned)diag::Severity::Error, "attribute %0 can only be applied to a kernel function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_multiple_access_qualifiers, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple access qualifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_no_main, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{function|kernel}0 cannot be called 'main'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_pointer_to_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointer to type %0 is invalid in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_ptrptr_kernel_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "kernel parameter cannot be declared as a pointer to a pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_requires_extension, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of %select{type |declaration}0%1 requires %2 extension to be enabled", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_return_value_with_address_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "return value cannot be qualified with address space", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_sizeof_alignof_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of '%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align}0' to a void type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_taking_function_address, CLASS_ERROR, (unsigned)diag::Severity::Error, "taking address of function is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_ternary_with_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "block type cannot be used as expression in ternary expression in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_type_can_only_be_used_as_function_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 can only be used as a function parameter in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_type_struct_or_union_field, CLASS_ERROR, (unsigned)diag::Severity::Error, "the %0 type cannot be used to declare a structure or union field", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_unknown_type_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "OpenCL version %0 does not support the '%1' %select{type qualifier|storage class specifier}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_variadic_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid prototype, variadic arguments are not allowed in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_opencl_vla, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable length arrays are not supported in OpenCL", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_openmp_default_simd_align_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of '__builtin_omp_required_simd_align' to an expression, only type is allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_arrow_circular, CLASS_ERROR, (unsigned)diag::Severity::Error, "circular pointer delegation detected", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_arrow_depth_exceeded, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of 'operator->' on type %0 would invoke a sequence of more than %1 'operator->' calls", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_delete_dependent_param_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot take a dependent type as first parameter; use %1 instead", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_delete_param_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "first parameter of %0 must have type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_default_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter of %0 cannot have a default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_delete_declared_in_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be declared inside a namespace", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_delete_declared_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be declared static in global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_delete_dependent_result_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot have a dependent return type; use %1 instead", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_delete_invalid_result_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must return type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_delete_template_too_few_parameters, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 template must have at least two parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_delete_too_few_parameters, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 must have at least one parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_dependent_param_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot take a dependent type as first parameter; use size_t (%1) instead", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_new_param_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 takes type size_t (%1) as first parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_default_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter of overloaded %0 cannot have a default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_must_be, CLASS_ERROR, (unsigned)diag::Severity::Error, "overloaded %0 must be a %select{unary|binary|unary or binary}2 operator (has %1 parameter%s1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_must_be_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "overloaded %0 must be a non-static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_needs_class_or_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "overloaded %0 must have at least one parameter of class or enumeration type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_post_incdec_must_be_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter of overloaded post-%select{increment|decrement}1 operator must have type 'int' (not %0)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "overloaded %0 cannot be a static member function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_operator_overload_variadic, CLASS_ERROR, (unsigned)diag::Severity::Error, "overloaded %0 cannot be variadic", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_os_log_argument_too_big, CLASS_ERROR, (unsigned)diag::Severity::Error, "os_log() argument %0 is too big (%1 bytes, max %2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_os_log_format_not_string_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "os_log() format argument is not a string constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_out_of_line_default_deletes, CLASS_ERROR, (unsigned)diag::Severity::Error, "defaulting this %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 would delete it after its first declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_out_of_line_qualified_id_type_names_constructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "qualified reference to %0 is a constructor name rather than a %select{template name|type}1 in this context", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_overflow_builtin_must_be_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "operand argument to overflow builtin must be an integer (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_overflow_builtin_must_be_ptr_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "result argument to overflow builtin must be a pointer to a non-const integer (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_override_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception specification of overriding function is more lax than base version", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_conversion_in_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous conversion for %select{|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to constructor of %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_member_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to member function %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_object_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to object of type %0 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_oper_binary, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of overloaded operator '%0' is ambiguous (with operand types %1 and %2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_ambiguous_oper_unary, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of overloaded operator '%0' is ambiguous (operand type %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to %select{unavailable|deleted}0 function %1%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_conversion_in_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2 uses deleted function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to %select{unavailable|deleted}0 constructor of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_member_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to %select{unavailable|deleted}0 member function %1%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_object_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to %select{unavailable|deleted}0 function call operator in type %1%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_oper, CLASS_ERROR, (unsigned)diag::Severity::Error, "overload resolution selected %select{unavailable|deleted}0 operator '%1'%2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_special_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to implicitly-deleted %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function}0 of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_deleted_special_oper, CLASS_ERROR, (unsigned)diag::Severity::Error, "object of type %0 cannot be %select{constructed|copied|moved|assigned|assigned|destroyed}1 because its %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}1 is implicitly deleted", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_diff_return_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "functions that differ only in their return type cannot be overloaded", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_conversion_in_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot convert %1 to %2 without a conversion operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_oper, CLASS_ERROR, (unsigned)diag::Severity::Error, "type %0 does not provide a %select{subscript|call}1 operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_conversion_in_cast, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching conversion for %select{|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast}0 from %1 to %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_function_in_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching function for call to %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_function_in_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching constructor for initialization of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_literal_operator, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching literal operator for call to %0%select{| with argument of type %2| with arguments of types %2 and %3}1%select{| or 'const char *'}4%select{|, and no matching literal operator template}5", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_member_function_in_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching member function for call to %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_object_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "no matching function for call to object of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_oper, CLASS_ERROR, (unsigned)diag::Severity::Error, "no viable overloaded '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_no_viable_subscript, CLASS_ERROR, (unsigned)diag::Severity::Error, "no viable overloaded operator[] for type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_static_nonstatic_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "static and non-static member functions with the same parameter types cannot be overloaded", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ovl_unresolvable, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to overloaded function could not be resolved; did you mean to call it%select{| with no arguments}0?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ownership_returns_index_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "'ownership_returns' attribute index does not match; here it is %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ownership_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute only applies to %select{pointer|integer}1 arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pack_expansion_length_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "pack expansion contains parameter packs %0 and %1 that have different lengths (%2 vs. %3)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pack_expansion_length_conflict_multilevel, CLASS_ERROR, (unsigned)diag::Severity::Error, "pack expansion contains parameter pack %0 that has a different length (%1 vs. %2) from outer parameter packs", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pack_expansion_member_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "pack expansion for initialization of member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pack_expansion_without_parameter_packs, CLASS_ERROR, (unsigned)diag::Severity::Error, "pack expansion does not contain any unexpanded parameter packs", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "C does not support default arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_member_template_redecl, CLASS_ERROR, (unsigned)diag::Severity::Error, "default arguments cannot be added to an out-of-line definition of a member of a %select{class template|class template partial specialization|nested class in a template}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing default argument on parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_missing_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing default argument on parameter %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_nonfunc, CLASS_ERROR, (unsigned)diag::Severity::Error, "default arguments can only be specified for parameters in a function declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_on_parameter_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter pack cannot have a default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_references_local, CLASS_ERROR, (unsigned)diag::Severity::Error, "default argument references local variable %0 of enclosing function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_references_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "default argument references parameter %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_references_this, CLASS_ERROR, (unsigned)diag::Severity::Error, "default argument references 'this'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_default_argument_template_redecl, CLASS_ERROR, (unsigned)diag::Severity::Error, "default arguments cannot be added to a function template that has already been declared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_param_with_void_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "argument may not have 'void' type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_parameter_name_omitted, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter name omitted", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_parameters_retval_cannot_have_fp16_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{parameters|function return value}0 cannot have __fp16 type; did you forget * ?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_parens_pointer_member_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot parenthesize the name of a method when forming a member pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_partial_spec_args_match_primary_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class|variable}0 template partial specialization does not specialize any template argument; to %select{declare|define}1 the primary template, remove the template argument list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_partial_spec_fully_specialized, CLASS_ERROR, (unsigned)diag::Severity::Error, "partial specialization of %0 does not use any of its template parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_partial_spec_ordering_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous partial specializations of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_partial_spec_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "class template partial specialization %0 cannot be redeclared", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_partial_specialization_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "partial specialization cannot be declared as a friend", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_placement_new_non_placement_delete, CLASS_ERROR, (unsigned)diag::Severity::Error, "'new' expression with placement arguments refers to non-placement 'operator delete'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pointer_to_member_call_drops_quals, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to pointer to member function of type %0 drops '%1' qualifier%s2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pointer_to_member_oper_value_classify, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointer-to-member function type %0 can only be called on an %select{rvalue|lvalue}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pointer_to_member_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid use of pointer to member type after %select{.*|->*}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ppc_builtin_only_on_pwr7, CLASS_ERROR, (unsigned)diag::Severity::Error, "this builtin is only valid on POWER7 or later CPUs", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_loop_compatibility, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{incompatible|duplicate}0 directives '%1' and '%2'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_loop_invalid_argument_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument of type %0; expected an integer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_loop_invalid_argument_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{invalid value '%0'; must be positive|value '%0' is too large}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_loop_precedes_nonloop, CLASS_ERROR, (unsigned)diag::Severity::Error, "expected a for, while, or do-while loop to follow '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_options_align_mac68k_target_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "mac68k alignment pragma is not supported on this target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_pop_visibility_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "#pragma visibility pop with no matching #pragma visibility push", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pragma_push_visibility_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "#pragma visibility push with no matching #pragma visibility pop", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_private_ivar_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable %0 is private", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_property_accessor_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of property %0 (%1) does not match type of accessor %2 (%3)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_found_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 found on object of type %1; did you mean to access it with the \".\" operator?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_function_in_objc_container, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of Objective-C property in function nested in Objective-C container not supported, move function outside its container", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_implemented, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 is already implemented", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_is_variably_modified, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 has a variably modified type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_ivar_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of property %0 (%1) does not match type of instance variable %2 (%3)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_method_unavailable, CLASS_ERROR, (unsigned)diag::Severity::Error, "property access is using %0 method which is unavailable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_not_as_forward_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 refers to an incomplete Objective-C class %1 (with no @interface available)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 not found on object of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_not_found_forward_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 cannot be found in forward class object %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_not_found_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "property %0 not found on object of type %1; did you mean %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_setter_ambiguous_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "synthesized properties %0 and %1 both claim setter %2 - use of this setter will cause unexpected behavior", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_property_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "property cannot have array or function type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_protected_ivar_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variable %0 is protected", 0, SFINAE_AccessControl, false, true, 2)
+DIAG(err_protocol_has_circular_dependency, CLASS_ERROR, (unsigned)diag::Severity::Error, "protocol has circular dependency", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pseudo_dtor_base_not_scalar, CLASS_ERROR, (unsigned)diag::Severity::Error, "object expression of non-scalar type %0 cannot be used in a pseudo-destructor expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pseudo_dtor_call_with_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to pseudo-destructor cannot have any arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pseudo_dtor_destructor_non_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 does not refer to a type name in pseudo-destructor expression; expected the name of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pseudo_dtor_type_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "the type of object expression %diff{($) does not match the type being destroyed ($)|does not match the type being destroyed}0,1 in pseudo-destructor expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_pure_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend declaration cannot have a pure-specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_catch_declarator, CLASS_ERROR, (unsigned)diag::Severity::Error, "exception declarator cannot be qualified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_friend_def, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend function definition cannot be qualified with '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_friend_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "no function named %0 with type %1 was found in the specified scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_member_nonclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "qualified member access refers to a member in %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_member_of_unrelated, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 is not a member of class %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_objc_access, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{property|instance variable}0 access cannot be qualified with '%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_objc_catch_parm, CLASS_ERROR, (unsigned)diag::Severity::Error, "@catch parameter declarator cannot be qualified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_param_declarator, CLASS_ERROR, (unsigned)diag::Severity::Error, "parameter declarator cannot be qualified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_qualified_typedef_declarator, CLASS_ERROR, (unsigned)diag::Severity::Error, "typedef declarator cannot be qualified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_range_on_array_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot build range expression with array function parameter %0 since parameter with array type %1 is treated as pointer type %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_readonly_message_assignment, CLASS_ERROR, (unsigned)diag::Severity::Error, "assigning to 'readonly' return result of an Objective-C message not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_realimag_invalid_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid type %0 to %1 operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_record_with_pointers_kernel_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{struct|union}0 kernel parameters may not contain pointers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_recursive_default_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "recursive evaluation of default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_recursive_superclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "trying to recursively use %0 as superclass of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redeclaration_different_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "redeclaration of %0 with a different type%diff{: $ vs $|}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_different_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of %0 as different kind of symbol", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_different_namespace_alias, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of %0 as an alias for a different namespace", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_different_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of %0 with a different type%diff{: $ vs $|}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_different_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{typedef|type alias|type alias template}0 redefinition with different types%diff{ ($ vs $)|}1,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_extern_inline, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of a 'extern inline' function %0 is not supported in %select{C99 mode|C++}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_of_enumerator, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of enumerator %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_of_label, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of label %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_redefinition_variably_modified_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "redefinition of %select{typedef|type alias}0 for variably-modified type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_array_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to declaration with an array type inside block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_bad_target, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to %select{__device__|__global__|__host__|__host__ __device__}0 function %1 in %select{__device__|__global__|__host__|__host__ __device__}2 function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_bad_target_global_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to %select{__device__|__global__|__host__|__host__ __device__}0 function %1 in global initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_flexarray_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to declaration of structure variable with flexible array member inside block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_init_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference initialization of type %0 with initializer of type %1 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_non_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 does not refer to a value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_qualifier_constructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "ref-qualifier '%select{&&|&}0' is not allowed on a constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_qualifier_destructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "ref-qualifier '%select{&&|&}0' is not allowed on a destructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_qualifier_overload, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot overload a member function %select{without a ref-qualifier|with ref-qualifier '&'|with ref-qualifier '&&'}0 with a member function %select{without a ref-qualifier|with ref-qualifier '&'|with ref-qualifier '&&'}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ref_vm_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to declaration with a variably modified type inside block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_bind_drops_quals, CLASS_ERROR, (unsigned)diag::Severity::Error, "binding value %diff{of type $ to reference to type $|to reference}0,1 drops %select{<<ERROR>>|'const'|'restrict'|'const' and 'restrict'|'volatile'|'const' and 'volatile'|'restrict' and 'volatile'|'const', 'restrict', and 'volatile'}2 qualifier%plural{1:|2:|4:|:s}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_bind_failed, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference %diff{to type $ could not bind to an %select{rvalue|lvalue}1 of type $|could not bind to %select{rvalue|lvalue}1 of incompatible type}0,2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_bind_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to type %0 cannot bind to an initializer list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_bind_to_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-const|volatile}0 reference cannot bind to bit-field%select{| %1}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_bind_to_vector_element, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-const|volatile}0 reference cannot bind to vector element", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_capture_with_reference_default, CLASS_ERROR, (unsigned)diag::Severity::Error, "'&' cannot precede a capture when the capture default is '&'", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_reference_has_multiple_inits, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference cannot be initialized with multiple values", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_pipe_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "pipes packet types cannot be of reference type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_to_local_in_enclosing_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to local %select{variable|binding}1 %0 declared in enclosing %select{%3|block literal|lambda expression|context}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_to_void, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot form a reference to 'void'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_var_requires_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of reference variable %0 requires an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_reference_without_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference to type %0 requires an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_regparm_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declared with regparm(%0) attribute was previously declared %plural{0:without the regparm|:with the regparm(%1)}1 attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_repeat_attribute, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be repeated", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_require_constant_init_failed, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable does not have a constant initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_restricted_superclass_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot subclass a class that was declared with the 'objc_subclassing_restricted' attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_ret_local_block, CLASS_ERROR, (unsigned)diag::Severity::Error, "returning block that lives on the local stack", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_rethrow_used_outside_catch, CLASS_ERROR, (unsigned)diag::Severity::Error, "@throw (rethrow) used outside of a @catch block", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_return_block_has_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "void block should not return a value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_return_in_captured_stmt, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot return from %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_return_in_constructor_handler, CLASS_ERROR, (unsigned)diag::Severity::Error, "return in the catch of a function try block of a constructor is illegal", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_return_in_coroutine, CLASS_ERROR, (unsigned)diag::Severity::Error, "return statement not allowed in coroutine; did you mean 'co_return'?", 0, SFINAE_SubstitutionFailure, false, true, 14)
+DIAG(err_return_init_list, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{void function|void method|constructor|destructor}1 %0 must not return a value", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_returns_retained_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declared with the ns_returns_retained attribute was previously declared without the ns_returns_retained attribute", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_root_class_cannot_use_super, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot use 'super' because it is a root class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_rref_in_exception_spec, CLASS_ERROR, (unsigned)diag::Severity::Error, "rvalue reference type %0 is not allowed in exception specification", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sampler_argument_required, CLASS_ERROR, (unsigned)diag::Severity::Error, "sampler_t variable required - got %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sampler_initializer_not_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "sampler_t initialization requires 32-bit integer, not %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_second_argument_to_cwsc_not_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "second argument to __builtin_call_with_static_chain must be of pointer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_second_parameter_to_va_arg_abstract, CLASS_ERROR, (unsigned)diag::Severity::Error, "second argument to 'va_arg' is of abstract type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_second_parameter_to_va_arg_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "second argument to 'va_arg' is of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_section_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 causes a section type conflict with %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_seh_try_outside_functions, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot use SEH '__try' in blocks, captured regions, or Obj-C method decls", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_seh_try_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "SEH '__try' is not supported on this target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_selected_explicit_constructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "chosen constructor is explicit in copy-initialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_selector_element_const_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "selector element of type %0 cannot be a constant l-value expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_selector_element_not_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "selector element is not a valid lvalue", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_selector_element_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "selector element type %0 is not a valid object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_setter_type_void, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of setter must be void", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_shared_var_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "initialization is not supported for __shared__ variables.", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_shift_rhs_only_vector, CLASS_ERROR, (unsigned)diag::Severity::Error, "requested shift is a vector of type %0 but the first operand is not a vector (%1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_shufflevector_argument_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "index for __builtin_shufflevector must be less than the total number of vector elements", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_shufflevector_incompatible_vector, CLASS_ERROR, (unsigned)diag::Severity::Error, "first two arguments to __builtin_shufflevector must have the same type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_shufflevector_non_vector, CLASS_ERROR, (unsigned)diag::Severity::Error, "first two arguments to __builtin_shufflevector must be vectors", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_shufflevector_nonconstant_argument, CLASS_ERROR, (unsigned)diag::Severity::Error, "index for __builtin_shufflevector must be a constant integer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sizeof_alignof_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of '%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align}0' to a function type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sizeof_alignof_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of '%select{sizeof|alignof|vec_step|__builtin_omp_required_simd_align}0' to an incomplete type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sizeof_alignof_typeof_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid application of '%select{sizeof|alignof|typeof}0' to bit-field", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sizeof_nonfragile_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "application of '%select{alignof|sizeof}1' to interface %0 is not supported on this architecture and platform", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sizeof_pack_no_pack_name, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 does not refer to the name of a parameter pack", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_sizeof_pack_no_pack_name_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 does not refer to the name of a parameter pack; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_spec_member_not_instantiated, CLASS_ERROR, (unsigned)diag::Severity::Error, "specialization of member %q0 does not specialize an instantiated member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_specialization_after_instantiation, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit specialization of %0 after instantiation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_specialize_member_of_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot specialize %select{|(with 'template<>') }0a member of an unspecialized template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_standalone_class_nested_name_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "forward declaration of %select{class|struct|interface|union|enum}0 cannot have a nested name specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_assert_expression_is_not_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "static_assert expression is not an integral constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_assert_failed, CLASS_ERROR, (unsigned)diag::Severity::Error, "static_assert failed%select{ %1|}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_block_func, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declared in block scope cannot have 'static' storage class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_data_member_not_allowed_in_anon_struct, CLASS_ERROR, (unsigned)diag::Severity::Error, "static data member %0 not allowed in anonymous struct", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_data_member_not_allowed_in_local_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "static data member %0 not allowed in local class %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_data_member_reinitialization, CLASS_ERROR, (unsigned)diag::Severity::Error, "static data member %0 already has an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_downcast_via_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast %0 to %1 via virtual base %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_function_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "variables in function scope cannot be declared static", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_illegal_in_new, CLASS_ERROR, (unsigned)diag::Severity::Error, "the 'static' modifier for the array size is not legal in new expressions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_kernel, CLASS_ERROR, (unsigned)diag::Severity::Error, "kernel functions cannot be declared static", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_main, CLASS_ERROR, (unsigned)diag::Severity::Error, "'main' is not allowed to be declared static", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_non_static, CLASS_ERROR, (unsigned)diag::Severity::Error, "static declaration of %0 follows non-static declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_not_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "static member %0 cannot be a bit-field", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_out_of_line, CLASS_ERROR, (unsigned)diag::Severity::Error, "'static' can only be specified inside the class definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_static_overrides_virtual, CLASS_ERROR, (unsigned)diag::Severity::Error, "'static' member function %0 overrides a virtual function in a base class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_statically_allocated_object, CLASS_ERROR, (unsigned)diag::Severity::Error, "interface type cannot be statically allocated", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_std_type_trait_not_class_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported standard library implementation: 'std::%0' is not a class template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_stmt_attribute_invalid_on_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 attribute cannot be applied to a declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_storage_class_for_static_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "static data member definition cannot specify a storage class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_storage_spec_on_catch_parm, CLASS_ERROR, (unsigned)diag::Severity::Error, "@catch parameter cannot have storage specifier '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_storageclass_invalid_for_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "storage class specified for a member declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_strong_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "existing instance variable %1 for strong property %0 may not be __weak", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_subscript_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "subscript of pointer to function type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_subscript_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "subscript of pointer to incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_subscript_nonfragile_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "subscript requires size of interface %0, which is not constant for this architecture and platform", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_super_in_lambda_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of '__super' inside a lambda is unsupported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_swift_abi_parameter_wrong_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' parameter must have pointer%select{| to unqualified pointer}1 type; type here is %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_swift_error_result_not_after_swift_context, CLASS_ERROR, (unsigned)diag::Severity::Error, "'swift_error_result' parameter must follow 'swift_context' parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_swift_indirect_result_not_first, CLASS_ERROR, (unsigned)diag::Severity::Error, "'swift_indirect_result' parameters must be first parameters of function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_swift_param_attr_not_swiftcall, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' parameter can only be used with swiftcall calling convention", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_switch_explicit_conversion, CLASS_ERROR, (unsigned)diag::Severity::Error, "switch condition type %0 requires explicit conversion to %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_switch_incomplete_class_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "switch condition has incomplete class type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_switch_into_protected_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot jump from switch statement to this case label", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_switch_multiple_conversions, CLASS_ERROR, (unsigned)diag::Severity::Error, "multiple conversions from switch condition type %0 to an integral or enumeration type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_synthesize_category_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "@synthesize not allowed in a category's implementation", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_synthesize_on_class_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "@synthesize not allowed on a class property %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_synthesizing_arc_weak_property_disabled, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot synthesize weak property in file using manual reference counting", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_synthesizing_arc_weak_property_no_runtime, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot synthesize weak property because the current deployment target does not support weak references", 0, SFINAE_SubstitutionFailure, false, true, 9)
+DIAG(err_systemz_invalid_tabort_code, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid transaction abort code", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_tag_definition_of_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of type %0 conflicts with %select{typedef|type alias}1 of the same name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_tag_reference_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "implicit declaration introduced by elaborated type conflicts with a %select{non-struct type|non-class type|non-union type|non-enum type|typedef|type alias|template|type alias template|template template argument}0 of the same name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_tag_reference_non_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{non-struct type|non-class type|non-union type|non-enum type|typedef|type alias|template|type alias template|template template argument}1 %0 cannot be referenced with a %select{struct|interface|union|class|enum}2 specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_tagless_friend_type_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "friend type templates must use an elaborated type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_temp_copy_ambiguous, CLASS_ERROR, (unsigned)diag::Severity::Error, "ambiguous constructor call when %select{copying variable|copying parameter|returning object|throwing object|copying member subobject|copying array element|allocating object|copying temporary|initializing base subobject|initializing vector element|capturing value}0 of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_temp_copy_deleted, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{copying variable|copying parameter|returning object|throwing object|copying member subobject|copying array element|allocating object|copying temporary|initializing base subobject|initializing vector element|capturing value}0 of type %1 invokes deleted constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_temp_copy_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "copying a temporary object of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_temp_copy_no_viable, CLASS_ERROR, (unsigned)diag::Severity::Error, "no viable constructor %select{copying variable|copying parameter|returning object|throwing object|copying member subobject|copying array element|allocating object|copying temporary|initializing base subobject|initializing vector element|capturing value}0 of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_address_of_non_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "address taken in non-type template argument for template parameter of reference type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_deduced_incomplete_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "deduced incomplete pack %0 for template parameter %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_field, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument refers to non-static data member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_list_different_arity, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{too few|too many}0 template arguments for %select{class template|function template|variable template|alias template|template template parameter|template}1 %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_member_ptr_base_derived_not_supported, CLASS_ERROR, (unsigned)diag::Severity::Error, "sorry, non-type template argument of pointer-to-member type %1 that refers to member %q0 of a different class is not supported yet", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument refers to non-static member function %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_must_be_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument for non-type template parameter must be an expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_must_be_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument for template template parameter must be a class template%select{| or type alias template}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_must_be_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument for template type parameter must be a type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_must_be_type_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument for template type parameter must be a type; did you forget 'typename'?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_no_ref_bind, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template parameter of reference type %diff{$ cannot bind to template argument of type $|cannot bind to template of incompatible argument type}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_nontype_ambig, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument for non-type template parameter is treated as function type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_address_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument of type %0 is not a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_address_of, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument for template parameter of pointer type %0 must have its address taken", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_convertible, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument of type %0 cannot be converted to a value of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_decl_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument does not refer to any declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_ice, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument of type %0 is not an integral constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_integral_or_enumeral, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument of type %0 must have an integral or enumeration type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_object_or_func, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument does not refer to an object or function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_pointer_to_member_form, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument is not a pointer to member constant", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_not_valid_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument does not refer to a class or alias template, or template template parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_object_no_linkage, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument refers to %select{function|object}0 %1 that does not have linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_overload_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "template argument is the type of an unresolved overloaded function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_ref_bind_ignores_quals, CLASS_ERROR, (unsigned)diag::Severity::Error, "reference binding of non-type template parameter %diff{of type $ to template argument of type $|to template argument}0,1 ignores qualifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_reference_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument of reference type %0 is not an object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_template_params_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "template template argument has different template parameters than its corresponding template template parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_thread_local, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template argument refers to thread-local object", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_untyped_null_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "null non-type template argument must be cast to template parameter type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_arg_wrongtype_null_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "null non-type template argument of type %0 does not match template parameter of type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_decl_ref, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to %select{class|variable}0 template %1 without a template argument list", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_different_associated_constraints, CLASS_ERROR, (unsigned)diag::Severity::Error, "associated constraints differ in template redeclaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_id_not_a_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "template name refers to non-type template %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_inside_local_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "templates cannot be declared inside of a local class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_instantiate_undefined, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{implicit|explicit}0 instantiation of undefined template %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_instantiate_within_definition, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{implicit|explicit}0 instantiation of template %1 within its own definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_kw_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing 'template' keyword prior to dependent template name '%0%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_kw_refers_to_class_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0%1' instantiated to a class template, not a function template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_kw_refers_to_non_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 following the 'template' keyword does not refer to a template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_linkage, CLASS_ERROR, (unsigned)diag::Severity::Error, "templates must have C++ linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "member %0 declared as a template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_member_noparams, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous 'template<>' in declaration of member %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_missing_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of %select{class template|function template|variable template|alias template|template template parameter|template}0 %1 requires template arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_nontype_parm_bad_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "a non-type template parameter cannot have type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_nontype_parm_different_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "template non-type parameter has a different type %0 in template %select{|template parameter }1redeclaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_outside_namespace_or_class_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "templates can only be declared in namespace or class scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_default_arg_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter missing a default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_default_arg_redefinition, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter redefines default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_different_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter has a different kind in template %select{|template parameter }0redeclaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_list_different_arity, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{too few|too many}0 template parameters in template %select{|template parameter }1redeclaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_list_matches_nontemplate, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter list matching the non-templated nested type %0 should be empty ('template<>')", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_pack_default_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter pack cannot have a default argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_pack_must_be_last_template_parameter, CLASS_ERROR, (unsigned)diag::Severity::Error, "template parameter pack must be the last template parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_param_shadow, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of %0 shadows template parameter", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_parameter_default_friend_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "default template argument not permitted on a friend template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_parameter_default_template_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot add a default template argument to the definition of a member of a class template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_parameter_pack_non_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{template type|non-type template|template template}0 parameter%select{| pack}1 conflicts with previous %select{template type|non-type template|template template}0 parameter%select{ pack|}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_qualified_declarator_no_match, CLASS_ERROR, (unsigned)diag::Severity::Error, "nested name specifier '%0' for declaration does not refer into a class, class template or class template partial specialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_recursion_depth_exceeded, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "recursive template instantiation exceeded maximum depth of %0", 0, SFINAE_Report, false, true, 2)
+DIAG(err_template_spec_decl_class_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit specialization of %0 in class scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_decl_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot declare an explicit specialization in a friend", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_decl_function_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "explicit specialization of %0 in function scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_decl_out_of_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 must originally be declared in namespace %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_decl_out_of_scope_global, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 must originally be declared in the global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_default_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "default argument not permitted on an explicit %select{instantiation|specialization}0 of function %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_extra_headers, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous template parameter list in template specialization or out-of-line template definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "template specialization declaration cannot be a friend", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_needs_header, CLASS_ERROR, (unsigned)diag::Severity::Error, "template specialization requires 'template<>'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_needs_template_parameters, CLASS_ERROR, (unsigned)diag::Severity::Error, "template specialization or definition requires a template parameter list corresponding to the nested type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_redecl_global_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 must occur at global scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_redecl_out_of_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 not in a namespace enclosing %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_spec_unknown_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "can only provide an explicit specialization for a class template, function template, variable template, or a member function, static data member, %select{or member class|member class, or member enumeration}0 of a class template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_tag_noparams, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous 'template<>' in declaration of %0 %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_template_parm_no_parms, CLASS_ERROR, (unsigned)diag::Severity::Error, "template template parameter must have its own template parameters", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "a typedef cannot be a template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_unnamed_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot declare a class template with no name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_template_variable_noparams, CLASS_ERROR, (unsigned)diag::Severity::Error, "extraneous 'template<>' in declaration of variable %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_tentative_def_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "tentative definition has type %0 that is never completed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_this_capture, CLASS_ERROR, (unsigned)diag::Severity::Error, "'this' cannot be %select{implicitly |}0captured in this context", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_this_capture_with_copy_default, CLASS_ERROR, (unsigned)diag::Severity::Error, "'this' cannot be explicitly captured when the capture default is '='", 0, SFINAE_SubstitutionFailure, false, true, 3)
+DIAG(err_this_static_member_func, CLASS_ERROR, (unsigned)diag::Severity::Error, "'this' cannot be%select{| implicitly}0 used in a static member function declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_thread_dynamic_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "initializer for thread-local variable must be a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_thread_non_global, CLASS_ERROR, (unsigned)diag::Severity::Error, "'%0' variables must have global storage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_thread_non_thread, CLASS_ERROR, (unsigned)diag::Severity::Error, "thread-local declaration of %0 follows non-thread-local declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_thread_nontrivial_dtor, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of thread-local variable has non-trivial destruction", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_thread_thread_different_kind, CLASS_ERROR, (unsigned)diag::Severity::Error, "thread-local declaration of %0 with %select{static|dynamic}1 initialization follows declaration with %select{dynamic|static}1 initialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_thread_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "thread-local storage is not supported for the current target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_throw_abstract_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot throw an object of abstract type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_throw_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot throw object of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_throw_incomplete_ptr, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot throw pointer to object of incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_tls_var_aligned_over_maximum, CLASS_ERROR, (unsigned)diag::Severity::Error, "alignment (%0) of thread-local variable %1 is greater than the maximum supported alignment (%2) for a thread-local variable on this target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_toomany_element_decls, CLASS_ERROR, (unsigned)diag::Severity::Error, "only one element declaration is allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_trailing_return_in_parens, CLASS_ERROR, (unsigned)diag::Severity::Error, "trailing return type may not be nested within parentheses", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_trailing_return_without_auto, CLASS_ERROR, (unsigned)diag::Severity::Error, "function with trailing return type must specify return type 'auto', not %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_defined_in_alias_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be defined in a type alias template", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_defined_in_condition, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be defined in a condition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_defined_in_for_range, CLASS_ERROR, (unsigned)diag::Severity::Error, "types may not be defined in a for range declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_defined_in_param_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be defined in a parameter type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_defined_in_result_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be defined in the result type of a function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_defined_in_type_specifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 cannot be defined in a type specifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_mismatch_continuation_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "type of property %0 in class extension does not match property type in primary class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_pack_element_out_of_bounds, CLASS_ERROR, (unsigned)diag::Severity::Error, "a parameter pack may not be accessed at an out of bounds index", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_tag_for_datatype_not_ice, CLASS_ERROR, (unsigned)diag::Severity::Error, "'type_tag_for_datatype' attribute requires the initializer to be an %select{integer|integral}0 constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_tag_for_datatype_too_large, CLASS_ERROR, (unsigned)diag::Severity::Error, "'type_tag_for_datatype' attribute requires the initializer to be an %select{integer|integral}0 constant expression that can be represented by a 64 bit integer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_type_unsupported, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not supported on this target", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_address_of, CLASS_ERROR, (unsigned)diag::Severity::Error, "address of %select{bit-field|vector element|property expression|register variable}0 requested", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_addrof_dtor, CLASS_ERROR, (unsigned)diag::Severity::Error, "taking the address of a destructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_addrof_temporary, CLASS_ERROR, (unsigned)diag::Severity::Error, "taking the address of a temporary object of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_ambiguous_condition, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion %diff{from $ to $|between types}0,1 is ambiguous", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_arc_assign_self, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot assign to 'self' outside of a method in the init family", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_typecheck_arc_assign_self_class_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot assign to 'self' in a class method", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_typecheck_arithmetic_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "arithmetic on a pointer to an incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_arr_assign_enumeration, CLASS_ERROR, (unsigned)diag::Severity::Error, "fast enumeration variables cannot be modified in ARC by default; declare the variable __strong to allow this", 0, SFINAE_SubstitutionFailure, false, true, 5)
+DIAG(err_typecheck_array_not_modifiable_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "array type %0 is not assignable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_assign_const, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{cannot assign to return value because function %1 returns a const value|cannot assign to variable %1 with const-qualified type %2|cannot assign to %select{non-|}1static data member %2 with const-qualified type %3|cannot assign to non-static data member within const member function %1|read-only variable is not assignable}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_bool_condition, CLASS_ERROR, (unsigned)diag::Severity::Error, "value of type %0 is not contextually convertible to 'bool'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_invalid_ordered_compare, CLASS_ERROR, (unsigned)diag::Severity::Error, "ordered compare requires two args of floating point type%diff{ ($ and $)|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_invalid_unary_fp, CLASS_ERROR, (unsigned)diag::Severity::Error, "floating point classification requires argument of floating point type (passed in %0)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_not_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "called object type %0 is not a function or function pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_few_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected %1, have %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_few_args_at_least, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected at least %1, have %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_few_args_at_least_one, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, at least argument %1 must be specified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_few_args_at_least_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected at least %1, have %2; did you mean %3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_few_args_one, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, single argument %1 was not specified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_few_args_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "too few %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected %1, have %2; did you mean %3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_many_args, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected %1, have %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_many_args_at_most, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected at most %1, have %2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_many_args_at_most_one, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected at most single argument %1, have %2 arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_many_args_at_most_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected at most %1, have %2; did you mean %3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_many_args_one, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected single argument %1, have %2 arguments", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_call_too_many_args_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "too many %select{|||execution configuration }0arguments to %select{function|block|method|kernel function}0 call, expected %1, have %2; did you mean %3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cast_to_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "cast to incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cast_to_union_no_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cast to union type from type %0 not present in union", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_choose_expr_requires_constant, CLASS_ERROR, (unsigned)diag::Severity::Error, "'__builtin_choose_expr' requires a constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_comparison_of_distinct_blocks, CLASS_ERROR, (unsigned)diag::Severity::Error, "comparison of distinct block types%diff{ ($ and $)|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_comparison_of_distinct_pointers, CLASS_ERROR, (unsigned)diag::Severity::Error, "comparison of distinct pointer types%diff{ ($ and $)|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_comparison_of_fptr_to_void, CLASS_ERROR, (unsigned)diag::Severity::Error, "equality comparison between function pointer and void pointer (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_comparison_of_pointer_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "comparison between pointer and integer (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cond_expect_int_float, CLASS_ERROR, (unsigned)diag::Severity::Error, "used type %0 where integer or floating point type is required", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cond_expect_nonfloat, CLASS_ERROR, (unsigned)diag::Severity::Error, "used type %0 where floating point type is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cond_expect_scalar, CLASS_ERROR, (unsigned)diag::Severity::Error, "used type %0 where arithmetic or pointer type is required", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cond_incompatible_operands, CLASS_ERROR, (unsigned)diag::Severity::Error, "incompatible operand types%diff{ ($ and $)|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_cond_incompatible_operands_null, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-pointer operand type %0 incompatible with %select{NULL|nullptr}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_convert_incompatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{%diff{assigning to $ from incompatible type $|assigning to type from incompatible type}0,1|%diff{passing $ to parameter of incompatible type $|passing type to parameter of incompatible type}0,1|%diff{returning $ from a function with incompatible result type $|returning type from a function with incompatible result type}0,1|%diff{converting $ to incompatible type $|converting type to incompatible type}0,1|%diff{initializing $ with an expression of incompatible type $|initializing type with an expression of incompatible type}0,1|%diff{sending $ to parameter of incompatible type $|sending type to parameter of incompatible type}0,1|%diff{casting $ to incompatible type $|casting type to incompatible type}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3%select{|: different classes%diff{ ($ vs $)|}5,6|: different number of parameters (%5 vs %6)|: type mismatch at %ordinal5 parameter%diff{ ($ vs $)|}6,7|: different return type%diff{ ($ vs $)|}5,6|: different qualifiers (%select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}5 vs %select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}6)|: different exception specifications}4", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_convert_incompatible_block_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "incompatible block pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_converted_constant_expression, CLASS_ERROR, (unsigned)diag::Severity::Error, "value of type %0 is not implicitly convertible to %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_converted_constant_expression_disallowed, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion from %0 to %1 is not allowed in a converted constant expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_converted_constant_expression_indirect, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion from %0 to %1 in converted constant expression would bind reference to a temporary", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_decl_incomplete_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable has incomplete type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_deleted_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "conversion function %diff{from $ to $|between types}0,1 invokes a deleted function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_duplicate_vector_components_not_mlvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector is not assignable (contains duplicate components)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_expect_int, CLASS_ERROR, (unsigned)diag::Severity::Error, "used type %0 where integer is required", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_expect_scalar_operand, CLASS_ERROR, (unsigned)diag::Severity::Error, "operand of type %0 where arithmetic or pointer type is required", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_expression_not_modifiable_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "expression is not assignable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_field_variable_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "fields must have a constant size: 'variable length array in structure' extension will never be supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_illegal_increment_decrement, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot %select{decrement|increment}1 value of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_incompatible_address_space, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{%diff{assigning $ to $|assigning to different types}1,0|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 changes address space of pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_incompatible_ownership, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{%diff{assigning $ to $|assigning to different types}1,0|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 changes retain/release properties of pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_incomplete_array_needs_initializer, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of variable with array type needs an explicit size or an initializer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_incomplete_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete definition of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_incomplete_type_not_modifiable_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "incomplete type %0 is not assignable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_indirection_requires_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "indirection requires pointer operand (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_invalid_lvalue_addrof, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot take the address of an rvalue of type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_invalid_lvalue_addrof_addrof_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "extra '&' taking address of overloaded function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_invalid_operands, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid operands to binary expression (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_invalid_restrict_invalid_pointee, CLASS_ERROR, (unsigned)diag::Severity::Error, "pointer to function type %0 may not be 'restrict' qualified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_invalid_restrict_not_pointer, CLASS_ERROR, (unsigned)diag::Severity::Error, "restrict requires a pointer or reference (%0 is invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_invalid_restrict_not_pointer_noarg, CLASS_ERROR, (unsigned)diag::Severity::Error, "restrict requires a pointer or reference", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_ivar_variable_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "instance variables must have a constant size", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_lvalue_casts_not_supported, CLASS_ERROR, (unsigned)diag::Severity::Error, "assignment to cast is illegal, lvalue casts are not supported", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_arrow, CLASS_ERROR, (unsigned)diag::Severity::Error, "member reference type %0 is not a pointer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_ivar, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 does not have a member named %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_ivar_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 does not have a member named %1; did you mean %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_struct_union, CLASS_ERROR, (unsigned)diag::Severity::Error, "member reference base type %0 is not a structure or union", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_suggestion, CLASS_ERROR, (unsigned)diag::Severity::Error, "member reference type %0 is %select{a|not a}1 pointer; did you mean to use '%select{->|.}1'?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to type member %0 in %1 with '%select{.|->}2'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_member_reference_unknown, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot refer to member %0 in %1 with '%select{.|->}2'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_missing_return_type_incompatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "%diff{return type $ must match previous return type $|return type must match previous return type}0,1 when %select{block literal|lambda expression}2 has unspecified explicit return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_negative_array_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "array size is negative", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_non_object_not_modifiable_lvalue, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-object type %0 is not assignable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_nonviable_condition, CLASS_ERROR, (unsigned)diag::Severity::Error, "no viable conversion%select{%diff{ from $ to $|}1,2|%diff{ from returned value of type $ to function return type $|}1,2}0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_nonviable_condition_incomplete, CLASS_ERROR, (unsigned)diag::Severity::Error, "no viable conversion%diff{ from $ to incomplete type $|}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_op_on_nonoverlapping_address_space_pointers, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{comparison between %diff{ ($ and $)|}0,1|arithmetic operation with operands of type %diff{ ($ and $)|}0,1|conditional operator with the second and third operands of type %diff{ ($ and $)|}0,1}2 which are pointers to non-overlapping address spaces", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_ordered_comparison_of_pointer_and_zero, CLASS_ERROR, (unsigned)diag::Severity::Error, "ordered comparison between pointer and zero (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_pointer_arith_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "arithmetic on%select{ a|}0 pointer%select{|s}0 to%select{ the|}2 function type%select{|s}2 %1%select{| and %3}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_pointer_arith_void_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "arithmetic on%select{ a|}0 pointer%select{|s}0 to void", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_sclass_fscope, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal storage class on file-scoped variable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_sclass_func, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal storage class on function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_statement_requires_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "statement requires expression of integer type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_statement_requires_scalar, CLASS_ERROR, (unsigned)diag::Severity::Error, "statement requires expression of scalar type (%0 invalid)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_sub_ptr_compatible, CLASS_ERROR, (unsigned)diag::Severity::Error, "%diff{$ and $ are not pointers to compatible types|pointers to incompatible types}0,1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_subscript_not_integer, CLASS_ERROR, (unsigned)diag::Severity::Error, "array subscript is not an integer", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_subscript_value, CLASS_ERROR, (unsigned)diag::Severity::Error, "subscripted value is not an array, pointer, or vector", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_unary_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid argument type %0 to unary expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_vector_lengths_not_equal, CLASS_ERROR, (unsigned)diag::Severity::Error, "vector operands do not have the same number of elements (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_vector_not_convertable, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot convert between vector values of different size (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_vector_not_convertable_non_scalar, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot convert between vector and non-scalar values (%0 and %1)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typecheck_zero_array_size, CLASS_ERROR, (unsigned)diag::Severity::Error, "zero-length arrays are not permitted in C++", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typedef_changes_linkage, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported: typedef changes linkage of anonymous type, but linkage was already computed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typedef_not_bitfield, CLASS_ERROR, (unsigned)diag::Severity::Error, "typedef member %0 cannot be a bit-field", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typedef_not_identifier, CLASS_ERROR, (unsigned)diag::Severity::Error, "typedef name must be an identifier", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typename_missing, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing 'typename' prior to dependent type name '%0%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typename_missing_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "missing 'typename' prior to dependent type template name '%0%1'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typename_nested_not_found, CLASS_ERROR, (unsigned)diag::Severity::Error, "no type named %0 in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typename_nested_not_found_enable_if, CLASS_ERROR, (unsigned)diag::Severity::Error, "no type named 'type' in %0; 'enable_if' cannot be used to disable this declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typename_nested_not_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "typename specifier refers to non-type member %0 in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_typename_refers_to_using_value_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "typename specifier refers to a dependent using declaration for a value %0 in %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unavailable, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is unavailable", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unavailable_in_arc, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is unavailable in ARC", 0, SFINAE_SubstitutionFailure, false, true, 10)
+DIAG(err_unavailable_message, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is unavailable: %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uncasted_call_of_unknown_any, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 has unknown return type; cast the call to its declared return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uncasted_send_to_unknown_any_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "no known method %select{%objcinstance1|%objcclass1}0; cast the message send to the method's return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uncasted_use_of_unknown_any, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 has unknown type; cast it to its declared type to use it", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_boxing_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration of %0 is missing in %1 class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_label_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of undeclared label %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_objc_literal_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of class %0 must be available to use Objective-C %select{array literals|dictionary literals|numeric literals|boxed expressions|string literals}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_protocol, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find protocol declaration for %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_protocol_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find protocol declaration for %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of undeclared %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_use_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of undeclared %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_var_use, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of undeclared identifier %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undeclared_var_use_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of undeclared identifier %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undef_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find interface declaration for %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undef_interface_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find interface declaration for %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undef_superclass, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find interface declaration for %0, superclass of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undef_superclass_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot find interface declaration for %0, superclass of %1; did you mean %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_undefined_inline_var, CLASS_ERROR, (unsigned)diag::Severity::Error, "inline variable %q0 is not defined", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_underlying_type_of_incomplete_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot determine underlying type of incomplete enumeration type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unexpanded_parameter_pack, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{expression|base type|declaration type|data member type|bit-field size|static assertion|fixed underlying type|enumerator value|using declaration|friend declaration|qualifier|initializer|default argument|non-type template parameter type|exception type|partial specialization|__if_exists name|__if_not_exists name|lambda|block}0 contains%plural{0: an|:}1 unexpanded parameter pack%plural{0:|1: %2|2:s %2 and %3|:s %2, %3, ...}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unexpected_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "friends can only be classes or functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unexpected_interface, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected interface name %0: expected expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unexpected_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected namespace name %0: expected expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unexpected_typedef, CLASS_ERROR, (unsigned)diag::Severity::Error, "unexpected type name %0: expected expression", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uninitialized_member_for_assign, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot define the implicit copy assignment operator for %0, because non-static %select{reference|const}1 member %2 cannot use copy assignment operator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uninitialized_member_in_ctor, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{constructor for %1|implicit default constructor for %1|cannot use constructor inherited from %1:}0 must explicitly initialize the %select{reference|const}2 member %3", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_union_as_base_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "unions cannot be base classes", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_union_member_of_reference_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "union member %0 has reference type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_any_addrof, CLASS_ERROR, (unsigned)diag::Severity::Error, "the address of a declaration with unknown type can only be cast to a pointer type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_any_addrof_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "address-of operator cannot be applied to a call to a function with unknown return type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_any_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "function %0 with unknown type must be given a function type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_any_var_function_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable %0 with unknown type cannot be given a function type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_nested_typename_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no type named %0 in %1; did you mean %select{|simply }2%3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_receiver_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown receiver %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_type_or_class_name_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown %select{type|class}1 name %0; did you mean %2?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_typename, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown type name %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unknown_typename_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "unknown type name %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unqualified_pointer_member_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "must explicitly qualify name of member function when taking its address", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unsupported_unknown_any_call, CLASS_ERROR, (unsigned)diag::Severity::Error, "call to unsupported expression with unknown type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unsupported_unknown_any_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 has unknown type, which is not supported for this kind of declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_unsupported_unknown_any_expr, CLASS_ERROR, (unsigned)diag::Severity::Error, "unsupported expression with unknown type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_upcast_to_inaccessible_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot cast %0 to its %select{private|protected}2 base class %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_use_continuation_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal redeclaration of property in class extension %0 (attribute must be 'readwrite', while its primary must be 'readonly')", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_use_continuation_class_redeclaration_readwrite, CLASS_ERROR, (unsigned)diag::Severity::Error, "illegal redeclaration of 'readwrite' property in class extension %0 (perhaps you intended this to be a 'readwrite' redeclaration of a 'readonly' public property?)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_use_of_default_argument_to_function_declared_later, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of default argument to function %0 that is declared later in class %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_use_of_tag_name_without_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "must use '%1' tag to refer to type %0%select{| in this scope}2", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_use_with_wrong_tag, CLASS_ERROR, (unsigned)diag::Severity::Error, "use of %0 with tag type that does not match previous declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_can_not_refer_to_class_member, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration cannot refer to class member", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_can_not_refer_to_namespace, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration cannot refer to a namespace", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_can_not_refer_to_scoped_enum, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration cannot refer to a scoped enumerator", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "target of using declaration conflicts with declaration already in scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_conflict_reverse, CLASS_ERROR, (unsigned)diag::Severity::Error, "declaration conflicts with target of using declaration already in scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_constructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration cannot refer to a constructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_constructor_not_in_direct_base, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is not a direct base of %1, cannot inherit constructors", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_destructor, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration cannot refer to a destructor", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_friend, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot befriend target of using declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_nested_name_specifier_is_current_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration refers to its own class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_nested_name_specifier_is_not_base_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration refers into '%0', which is not a base class of %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_nested_name_specifier_is_not_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration in class refers into '%0', which is not a class", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_redeclaration, CLASS_ERROR, (unsigned)diag::Severity::Error, "redeclaration of using declaration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_redeclaration_expansion, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration pack expansion at block scope produces multiple values", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_decl_template_id, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration cannot refer to a template specialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_dependent_value_is_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "dependent using declaration resolved to type without 'typename'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_directive_member_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no namespace named %0 in %1; did you mean %select{|simply }2%3?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_directive_suggest, CLASS_ERROR, (unsigned)diag::Severity::Error, "no namespace named %0; did you mean %1?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_pack_expansion_empty, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{|member}0 using declaration %1 instantiates to an empty pack", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_requires_qualname, CLASS_ERROR, (unsigned)diag::Severity::Error, "using declaration requires a qualified name", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_using_typename_non_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "'typename' keyword used on a non-type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uuidof_with_multiple_guids, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot call operator __uuidof on a type with multiple GUIDs", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_uuidof_without_guid, CLASS_ERROR, (unsigned)diag::Severity::Error, "cannot call operator __uuidof on a type with no GUID", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_va_arg_in_device, CLASS_ERROR, (unsigned)diag::Severity::Error, "CUDA device code does not support va_arg", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_va_start_used_in_non_variadic_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'va_start' used in function with fixed args", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_va_start_used_in_wrong_abi_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'va_start' used in %select{System V|Win64}0 ABI function", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_value_init_for_array_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "array types cannot be value-initialized", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_var_concept_not_initialized, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable concept declaration must be initialized", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_var_partial_spec_redeclared, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable template partial specialization %0 cannot be redefined", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_var_spec_no_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "no variable template matches%select{| partial}0 specialization", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_var_spec_no_template_but_method, CLASS_ERROR, (unsigned)diag::Severity::Error, "no variable template matches specialization; did you mean to use %0 as function template instead?", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variable_concept_bool_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "declared type of variable concept must be 'bool'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variable_instantiates_to_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{variable|static data member}0 instantiated with function type %1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variable_object_no_init, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable-sized object may not be initialized", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variably_modified_new_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "'new' cannot allocate object of variably modified type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variably_modified_nontype_template_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-type template parameter of variably modified type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variably_modified_template_arg, CLASS_ERROR, (unsigned)diag::Severity::Error, "variably modified type %0 cannot be used as a template argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variably_modified_typeid, CLASS_ERROR, (unsigned)diag::Severity::Error, "'typeid' of variably modified type %0", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_variadic_device_fn, CLASS_ERROR, (unsigned)diag::Severity::Error, "CUDA device code does not support variadic functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vecstep_non_scalar_vector_type, CLASS_ERROR, (unsigned)diag::Severity::Error, "'vec_step' requires built-in scalar or vector type, %0 invalid", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vector_incorrect_num_initializers, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{too many|too few}0 elements in vector initialization (expected %1 elements, have %2)", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_virtual_in_union, CLASS_ERROR, (unsigned)diag::Severity::Error, "unions cannot have virtual functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_virtual_member_function_template, CLASS_ERROR, (unsigned)diag::Severity::Error, "'virtual' cannot be specified on member function templates", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_virtual_non_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "'virtual' can only appear on non-static member functions", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_virtual_out_of_class, CLASS_ERROR, (unsigned)diag::Severity::Error, "'virtual' can only be specified inside the class definition", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vla_decl_has_extern_linkage, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable length array declaration cannot have 'extern' linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vla_decl_has_static_storage, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable length array declaration cannot have 'static' storage duration", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vla_decl_in_file_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable length array declaration not allowed at file scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vla_in_sfinae, CLASS_ERROR, (unsigned)diag::Severity::Error, "variable length array cannot be formed during template argument deduction", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vm_decl_has_extern_linkage, CLASS_ERROR, (unsigned)diag::Severity::Error, "variably modified type declaration cannot have 'extern' linkage", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vm_decl_in_file_scope, CLASS_ERROR, (unsigned)diag::Severity::Error, "variably modified type declaration not allowed at file scope", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_vm_func_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "function declaration cannot have variably modified type", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_void_only_param, CLASS_ERROR, (unsigned)diag::Severity::Error, "'void' must be the first and only parameter if specified", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_void_param_qualified, CLASS_ERROR, (unsigned)diag::Severity::Error, "'void' as parameter must not have type qualifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_weak_property, CLASS_ERROR, (unsigned)diag::Severity::Error, "existing instance variable %1 for __weak property %0 must be __weak", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_wrong_sampler_addressspace, CLASS_ERROR, (unsigned)diag::Severity::Error, "sampler type cannot be used with the __local and __global address space qualifiers", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_x86_builtin_32_bit_tgt, CLASS_ERROR, (unsigned)diag::Severity::Error, "this builtin is only available on x86-64 targets", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_x86_builtin_invalid_rounding, CLASS_ERROR, (unsigned)diag::Severity::Error, "invalid rounding argument", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(err_x86_builtin_invalid_scale, CLASS_ERROR, (unsigned)diag::Severity::Error, "scale argument must be 1, 2, 4, or 8", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(error_inoutput_conflict_with_clobber, CLASS_ERROR, (unsigned)diag::Severity::Error, "asm-specifier for input or output variable conflicts with asm clobber list", 0, SFINAE_SubstitutionFailure, false, true, 0)
+DIAG(ext_aggregate_init_not_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "initializer for aggregate is not a compile-time constant", 97, SFINAE_Suppress, false, false, 2)
+DIAG(ext_anonymous_record_with_anonymous_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous types declared in an anonymous %select{struct|union}0 are an extension", 388, SFINAE_Suppress, false, false, 2)
+DIAG(ext_anonymous_record_with_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "types declared in an anonymous %select{struct|union}0 are a Microsoft extension", 330, SFINAE_Suppress, false, false, 2)
+DIAG(ext_anonymous_struct_union_qualified, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous %select{struct|union}0 cannot be '%1'", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_anonymous_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous unions are a C11 extension", 95, SFINAE_Suppress, false, false, 2)
+DIAG(ext_array_init_copy, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "initialization of an array %diff{of type $ from a compound literal of type $|from a compound literal}0,1 is a GNU extension", 225, SFINAE_Suppress, false, false, 2)
+DIAG(ext_array_init_parens, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "parenthesized initialization of a member array is a GNU extension", 220, SFINAE_Suppress, false, false, 2)
+DIAG(ext_array_size_conversion, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_auto_type_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'auto' type specifier is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_c11_anonymous_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous structs are a C11 extension", 95, SFINAE_Suppress, false, false, 2)
+DIAG(ext_c99_array_usage, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%select{qualifier in |static |}0array size %select{||'[*] '}0is a C99 feature", 97, SFINAE_Suppress, false, false, 2)
+DIAG(ext_c99_flexible_array_member, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array members are a C99 feature", 97, SFINAE_Suppress, false, false, 2)
+DIAG(ext_cast_fn_obj, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "cast between pointer-to-function and pointer-to-object is an extension", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_cce_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{case value|enumerator value|non-type template argument|array size|constexpr if condition}0 %select{cannot be narrowed from type %2 to %3|evaluates to %2, which cannot be narrowed to type %3}1", 78, SFINAE_SubstitutionFailure, false, false, 2)
+DIAG(ext_complex_component_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "complex initialization specifying real and imaginary components is an extension", 110, SFINAE_Suppress, false, false, 2)
+DIAG(ext_constexpr_body_invalid_stmt, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of this statement in a constexpr %select{function|constructor}0 is a C++14 extension", 82, SFINAE_Suppress, false, false, 2)
+DIAG(ext_constexpr_body_multiple_return, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "multiple return statements in constexpr function is a C++14 extension", 82, SFINAE_Suppress, false, false, 2)
+DIAG(ext_constexpr_function_never_constant_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "constexpr %select{function|constructor}0 never produces a constant expression", 296, SFINAE_Suppress, false, false, 2)
+DIAG(ext_constexpr_local_var, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "variable declaration in a constexpr %select{function|constructor}0 is a C++14 extension", 82, SFINAE_Suppress, false, false, 2)
+DIAG(ext_constexpr_type_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "type definition in a constexpr %select{function|constructor}0 is a C++14 extension", 82, SFINAE_Suppress, false, false, 2)
+DIAG(ext_cxx14_attr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of the %0 attribute is a C++14 extension", 82, SFINAE_Suppress, false, false, 2)
+DIAG(ext_cxx1z_attr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "use of the %0 attribute is a C++1z extension", 85, SFINAE_Suppress, false, false, 2)
+DIAG(ext_decomp_decl, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "decomposition declarations are a C++1z extension", 85, SFINAE_Suppress, false, false, 2)
+DIAG(ext_default_init_const, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default initialization of an object of const type %0%select{| without a user-provided default constructor}1 is a Microsoft extension", 334, SFINAE_Suppress, false, false, 2)
+DIAG(ext_delete_void_ptr_operand, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "cannot delete expression with pointer-to-'void' type %0", 134, SFINAE_Suppress, false, false, 2)
+DIAG(ext_deprecated_string_literal_conversion, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++11 does not allow conversion from string literal to %0", 673, SFINAE_SubstitutionFailure, false, false, 2)
+DIAG(ext_designated_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "designated initializers are a C99 feature", 97, SFINAE_Suppress, false, false, 2)
+DIAG(ext_duplicate_declspec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "duplicate '%0' declaration specifier", 164, SFINAE_Suppress, false, false, 2)
+DIAG(ext_dynamic_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "ISO C++1z does not allow dynamic exception specifications", 170, SFINAE_Suppress, false, false, 2)
+DIAG(ext_empty_struct_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "empty %select{struct|union}0 is a GNU extension", 229, SFINAE_Suppress, false, false, 2)
+DIAG(ext_enum_friend, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "befriending enumeration type %0 is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_enum_too_large, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "enumeration values exceed range of largest integer", 180, SFINAE_Suppress, false, false, 2)
+DIAG(ext_enum_value_not_int, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C restricts enumerator values to range of 'int' (%0 is too %select{small|large}1)", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_enumerator_increment_too_large, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incremented enumerator value %0 is not representable in the largest integer type", 180, SFINAE_Suppress, false, false, 2)
+DIAG(ext_enumerator_too_large, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "enumerator value is not representable in the underlying type %0", 339, SFINAE_Suppress, false, false, 2)
+DIAG(ext_equivalent_internal_linkage_decl_in_modules, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ambiguous use of internal linkage declaration %0 defined in multiple modules", 379, SFINAE_Suppress, false, false, 13)
+DIAG(ext_excess_initializers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "excess elements in %select{array|vector|scalar|union|struct}0 initializer", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_excess_initializers_in_char_array_initializer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "excess elements in char array initializer", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_explicit_conversion_functions, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit conversion functions are a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_explicit_instantiation_duplicate, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "duplicate explicit instantiation of %0 ignored as a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_explicit_instantiation_without_qualified_id, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "qualifier in explicit instantiation of %q0 requires a template-id (a typedef is not permitted)", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_explicit_specialization_storage_class, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit specialization cannot have a storage class", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_expr_not_ice, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "expression is not an %select{integer|integral}0 constant expression; folding it to a constant is a GNU extension", 232, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_empty_aggregate_gnu, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a GNU extension", 229, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_empty_aggregate_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in otherwise empty %select{struct|interface|union|class|enum}1 is a Microsoft extension", 345, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_in_array, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%0 may not be used as an array element due to flexible array member", 195, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_in_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%0 may not be nested in a struct due to flexible array member", 195, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_init, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array initialization is a GNU extension", 230, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_union_gnu, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in a union is a GNU extension", 231, SFINAE_Suppress, false, false, 2)
+DIAG(ext_flexible_array_union_ms, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "flexible array member %0 in a union is a Microsoft extension", 345, SFINAE_Suppress, false, false, 2)
+DIAG(ext_for_range_begin_end_types_differ, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'begin' and 'end' returning different types (%0 and %1) is a C++1z extension", 85, SFINAE_Suppress, false, false, 2)
+DIAG(ext_forward_ref_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C forbids forward references to 'enum' types", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_forward_ref_enum_def, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "redeclaration of already-defined enum %0 is a GNU extension", 236, SFINAE_Suppress, false, false, 2)
+DIAG(ext_found_via_dependent_bases_lookup, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of identifier %0 found via unqualified lookup into dependent bases of class templates is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_freestanding_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "complex numbers are an extension in a freestanding C99 implementation", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_friend_tag_redecl_outside_namespace, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier", 354, SFINAE_Suppress, false, false, 2)
+DIAG(ext_function_specialization_in_class, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit specialization of %0 within class scope is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_gnu_anonymous_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "anonymous structs are a GNU extension", 219, SFINAE_Suppress, false, false, 2)
+DIAG(ext_gnu_ptr_func_arith, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "arithmetic on%select{ a|}0 pointer%select{|s}0 to%select{ the|}2 function type%select{|s}2 %1%select{| and %3}2 is a GNU extension", 474, SFINAE_Suppress, false, false, 2)
+DIAG(ext_gnu_subscript_void_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "subscript of a pointer to void is a GNU extension", 474, SFINAE_Suppress, false, false, 2)
+DIAG(ext_gnu_void_ptr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "arithmetic on%select{ a|}0 pointer%select{|s}0 to void is a GNU extension", 474, SFINAE_Suppress, false, false, 2)
+DIAG(ext_goto_into_protected_scope, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "jump from this goto statement to its label is a Microsoft extension", 346, SFINAE_Suppress, false, false, 2)
+DIAG(ext_implicit_exception_spec_mismatch, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function previously declared with an %select{explicit|implicit}0 exception specification redeclared with an %select{implicit|explicit}0 exception specification", 255, SFINAE_Suppress, false, false, 2)
+DIAG(ext_implicit_function_decl, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "implicit declaration of function %0 is invalid in C99", 258, SFINAE_Suppress, false, false, 2)
+DIAG(ext_implicit_lib_function_decl, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "implicitly declaring library function '%0' with type %1", 258, SFINAE_Suppress, false, false, 2)
+DIAG(ext_in_class_initializer_float_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "in-class initializer for static data member of type %0 is a GNU extension", 238, SFINAE_Suppress, false, false, 2)
+DIAG(ext_in_class_initializer_float_type_cxx11, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "in-class initializer for static data member of type %0 requires 'constexpr' specifier", 550, SFINAE_Suppress, false, false, 2)
+DIAG(ext_in_class_initializer_non_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension", 232, SFINAE_Suppress, false, false, 2)
+DIAG(ext_incomplete_in_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{|pointer to |reference to }0incomplete type %1 is not allowed in exception specification", 340, SFINAE_Suppress, false, false, 2)
+DIAG(ext_increment_bool, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "ISO C++1z does not allow incrementing expression of type bool", 281, SFINAE_Suppress, false, false, 2)
+DIAG(ext_init_capture, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initialized lambda captures are a C++14 extension", 82, SFINAE_Suppress, false, false, 3)
+DIAG(ext_init_list_constant_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "constant expression evaluates to %0 which cannot be narrowed to type %1", 78, SFINAE_SubstitutionFailure, false, false, 2)
+DIAG(ext_init_list_type_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "type %0 cannot be narrowed to %1 in initializer list", 78, SFINAE_SubstitutionFailure, false, false, 2)
+DIAG(ext_init_list_variable_narrowing, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "non-constant-expression cannot be narrowed from type %0 to %1 in initializer list", 78, SFINAE_SubstitutionFailure, false, false, 2)
+DIAG(ext_initializer_string_for_char_array_too_long, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initializer-string for char array is too long", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_inline_variable, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "inline variables are a C++1z extension", 85, SFINAE_Suppress, false, false, 2)
+DIAG(ext_integer_complement_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C does not support '~' for complex conjugation of %0", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_integer_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "complex integer types are a GNU extension", 224, SFINAE_Suppress, false, false, 2)
+DIAG(ext_integer_increment_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C does not support '++'/'--' on complex integer type %0", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_internal_in_extern_inline, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static %select{function|variable}0 %1 is used in an inline function with external linkage", 551, SFINAE_Suppress, false, false, 2)
+DIAG(ext_internal_in_extern_inline_quiet, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "static %select{function|variable}0 %1 is used in an inline function with external linkage", 551, SFINAE_Suppress, false, false, 2)
+DIAG(ext_invalid_sign_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "'%0' cannot be signed or unsigned", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_main_returns_nonint, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "return type of 'main' is not 'int'", 323, SFINAE_Suppress, false, false, 2)
+DIAG(ext_main_used, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C++ does not allow 'main' to be used by a program", 322, SFINAE_Suppress, false, false, 2)
+DIAG(ext_many_braces_around_scalar_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "too many braces around scalar initializer", 325, SFINAE_Suppress, false, false, 2)
+DIAG(ext_member_redeclared, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "class member cannot be redeclared", 498, SFINAE_Suppress, false, false, 2)
+DIAG(ext_mismatched_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "exception specification in declaration does not match previous declaration", 340, SFINAE_Suppress, false, false, 2)
+DIAG(ext_mismatched_exception_spec_explicit_instantiation, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "exception specification in explicit instantiation does not match instantiated one", 340, SFINAE_Suppress, false, false, 2)
+DIAG(ext_missing_declspec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "declaration specifier missing, defaulting to 'int'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_missing_exception_specification, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 is missing exception specification '%1'", 363, SFINAE_Suppress, false, false, 2)
+DIAG(ext_missing_type_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "type specifier missing, defaults to 'int'", 259, SFINAE_Suppress, false, false, 2)
+DIAG(ext_mixed_decls_code, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C90 forbids mixing declarations and code", 132, SFINAE_Suppress, false, false, 2)
+DIAG(ext_module_import_in_extern_c, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "import of C++ module '%0' appears within extern \"C\" language linkage specification", 378, SFINAE_Suppress, false, false, 13)
+DIAG(ext_module_import_not_at_top_level_noop, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "redundant #include of module '%0' appears within %1", 380, SFINAE_Suppress, false, false, 13)
+DIAG(ext_ms_anonymous_record, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "anonymous %select{structs|unions}0 are a Microsoft extension", 330, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_cast_fn_obj, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static_cast between pointer-to-function and pointer-to-object is a Microsoft extension", 331, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_delayed_template_argument, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "using the undeclared type %0 as a default template argument is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_deref_template_argument, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "non-type template argument containing a dereference operation is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_explicit_constructor_call, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "explicit constructor calls are a Microsoft extension", 342, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_forward_ref_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "forward references to 'enum' types are a Microsoft extension", 338, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_impcast_fn_obj, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension", 331, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_missing_exception_specification, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%0 is missing exception specification '%1'", 340, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_template_spec_redecl_out_of_scope, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 outside namespace enclosing %2 is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_template_type_arg_missing_typename, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_ms_using_declaration_inaccessible, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "using declaration referring to inaccessible member '%0' (which refers to accessible member '%1') is a Microsoft compatibility extension", 355, SFINAE_AccessControl, false, false, 2)
+DIAG(ext_mutable_reference, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'mutable' on a reference type is a Microsoft extension", 348, SFINAE_Suppress, false, false, 2)
+DIAG(ext_nested_name_member_ref_lookup_ambiguous, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "lookup of %0 in member access expression is ambiguous; using member of %1", 21, SFINAE_Suppress, false, false, 2)
+DIAG(ext_nested_name_spec_is_enum, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of enumeration in a nested name specifier is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_nested_pointer_qualifier_mismatch, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers in nested pointer types", 272, SFINAE_Suppress, false, false, 2)
+DIAG(ext_new_paren_array_nonconst, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "when type is in parentheses, array cannot have dynamic size", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_no_declarators, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "declaration does not declare anything", 362, SFINAE_Suppress, false, false, 2)
+DIAG(ext_no_named_members_in_struct_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%select{struct|union}0 without named members is a GNU extension", 229, SFINAE_Suppress, false, false, 2)
+DIAG(ext_nonclass_type_friend, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "non-class friend type %0 is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_noreturn_main, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'main' is not allowed to be declared _Noreturn", 322, SFINAE_Suppress, false, false, 2)
+DIAG(ext_offsetof_extended_field_designator, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "using extended field designator is an extension", 186, SFINAE_Suppress, false, false, 2)
+DIAG(ext_offsetof_non_pod_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "offset of on non-POD type %0", 300, SFINAE_Suppress, false, false, 2)
+DIAG(ext_offsetof_non_standardlayout_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "offset of on non-standard-layout type %0", 300, SFINAE_Suppress, false, false, 2)
+DIAG(ext_omp_loop_not_canonical_init, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')", 449, SFINAE_Suppress, false, false, 11)
+DIAG(ext_opencl_ext_vector_type_rgba_selector, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "vector component name '%0' is an OpenCL version 2.2 feature", 447, SFINAE_Suppress, false, false, 2)
+DIAG(ext_operator_new_delete_declared_inline, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "replacement function %0 cannot be declared 'inline'", 288, SFINAE_Suppress, false, false, 2)
+DIAG(ext_out_of_line_declaration, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "out-of-line declaration of a member must be a definition", 452, SFINAE_Suppress, false, false, 2)
+DIAG(ext_out_of_line_qualified_id_type_names_constructor, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++ specifies that qualified reference to %0 is a constructor name rather than a %select{template name|type}1 in this context, despite preceding %select{'typename'|'template'}2 keyword", 285, SFINAE_SubstitutionFailure, false, false, 2)
+DIAG(ext_override_exception_spec, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "exception specification of overriding function is more lax than base version", 340, SFINAE_Suppress, false, false, 2)
+DIAG(ext_param_default_argument_redefinition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "redefinition of default argument", 336, SFINAE_Suppress, false, false, 2)
+DIAG(ext_param_not_declared, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "parameter %0 was not declared, defaulting to type 'int'", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_param_promoted_not_compatible_with_prototype, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%diff{promoted type $ of K&R function parameter is not compatible with the parameter type $|promoted type of K&R function parameter is not compatible with parameter type}0,1 declared in a previous prototype", 310, SFINAE_Suppress, false, false, 2)
+DIAG(ext_partial_spec_not_more_specialized_than_primary, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{class|variable}0 template partial specialization is not more specialized than the primary template", 302, SFINAE_Suppress, false, false, 2)
+DIAG(ext_partial_specs_not_deducible, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{class|variable}0 template partial specialization contains %select{a template parameter|template parameters}1 that cannot be deduced; this partial specialization will never be used", 635, SFINAE_Suppress, false, false, 2)
+DIAG(ext_plain_complex, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "plain '_Complex' requires a type specifier; assuming '_Complex double'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_predef_outside_function, CLASS_WARNING, (unsigned)diag::Severity::Warning, "predefined identifier is only valid inside function", 483, SFINAE_Suppress, false, false, 2)
+DIAG(ext_pseudo_dtor_on_void, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pseudo-destructors on type void are a Microsoft extension", 356, SFINAE_Suppress, false, false, 2)
+DIAG(ext_pure_function_definition, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "function definition with pure-specifier is a Microsoft extension", 349, SFINAE_Suppress, false, false, 2)
+DIAG(ext_redefinition_of_typedef, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "redefinition of typedef %0 is a C11 feature", 598, SFINAE_Suppress, false, false, 2)
+DIAG(ext_register_storage_class, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "ISO C++1z does not allow 'register' storage class specifier", 501, SFINAE_Suppress, false, false, 2)
+DIAG(ext_retained_language_linkage, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "friend function %0 retaining previous language linkage is an extension", 508, SFINAE_Suppress, false, false, 2)
+DIAG(ext_return_has_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "%select{void function|void method|constructor|destructor}1 %0 should not return a value", 510, SFINAE_Suppress, false, false, 2)
+DIAG(ext_return_has_void_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "void %select{function|method|block}1 %0 should not return void expression", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_return_missing_expr, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "non-void %select{function|method}1 %0 should return a value", 510, SFINAE_Suppress, false, false, 2)
+DIAG(ext_rvalue_to_reference_access_ctor, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C++98 requires an accessible copy constructor for class %2 when binding a reference to a temporary; was %select{private|protected}0", 53, SFINAE_AccessControl, false, false, 2)
+DIAG(ext_rvalue_to_reference_temp_copy_no_viable, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "no viable constructor %select{copying variable|copying parameter|returning object|throwing object|copying member subobject|copying array element|allocating object|copying temporary|initializing base subobject|initializing vector element|capturing value}0 of type %1; C++98 requires a copy constructor when binding a reference to a temporary", 53, SFINAE_Suppress, false, false, 2)
+DIAG(ext_sizeof_alignof_function_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "invalid application of '%select{sizeof|alignof|vec_step}0' to a function type", 474, SFINAE_Suppress, false, false, 2)
+DIAG(ext_sizeof_alignof_void_type, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "invalid application of '%select{sizeof|alignof|vec_step}0' to a void type", 474, SFINAE_Suppress, false, false, 2)
+DIAG(ext_standalone_specifier, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'%0' is not permitted on a declaration of a type", 362, SFINAE_Suppress, false, false, 2)
+DIAG(ext_star_this_lambda_capture_cxx1z, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "capture of '*this' by copy is a C++1z extension", 85, SFINAE_Suppress, false, false, 3)
+DIAG(ext_static_assert_no_message, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static_assert with no message is a C++1z extension", 85, SFINAE_Suppress, false, false, 2)
+DIAG(ext_static_data_member_in_union, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "static data member %0 in union is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_static_non_static, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "redeclaring non-static %0 as static is a Microsoft extension", 350, SFINAE_Suppress, false, false, 2)
+DIAG(ext_string_literal_operator_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "string literal operator templates are a GNU extension", 239, SFINAE_Suppress, false, false, 2)
+DIAG(ext_subscript_non_lvalue, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C90 does not allow subscripting non-lvalue array", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_arg_extra_parens, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "address non-type template argument cannot be surrounded by parentheses", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_arg_local_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template argument uses local type %0", 316, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_arg_object_internal, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "non-type template argument referring to %select{function|object}0 %1 with internal linkage is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_arg_unnamed_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "template argument uses unnamed type", 621, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_outside_of_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'template' keyword outside of a template", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_parameter_default_in_function_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "default template arguments for a function template are a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_template_spec_decl_out_of_scope, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "first declaration of %select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 outside namespace %2 is a C++11 extension", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_addrof_temporary, CLASS_EXTENSION, (unsigned)diag::Severity::Error, "taking the address of a temporary object of type %0", 14, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_addrof_void, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ISO C forbids taking the address of an expression of type 'void'", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_base_super, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "method parameter type %diff{$ does not match super class method parameter type $|does not match super class method parameter type}0,1", 574, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_cast_nonscalar, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C99 forbids casting nonscalar type %0 to the same type", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_cast_to_union, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "cast to union type is a GNU extension", 240, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_comparison_of_distinct_pointers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "comparison of distinct pointer types%diff{ ($ and $)|}0,1", 109, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_comparison_of_fptr_to_void, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "equality comparison between function pointer and void pointer (%0 and %1)", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_comparison_of_pointer_integer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "comparison between pointer and integer (%0 and %1)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_cond_incompatible_operands, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible operand types (%0 and %1)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_cond_incompatible_pointers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pointer type mismatch%diff{ ($ and $)|}0,1", 478, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_cond_one_void, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "C99 forbids conditional expressions with only one void side", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_cond_pointer_integer_mismatch, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "pointer/integer type mismatch in conditional expression%diff{ ($ and $)|}0,1", 111, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_convert_discards_qualifiers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers", 272, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_convert_incompatible_function_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible function pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 268, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_convert_incompatible_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible pointer types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 271, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_convert_incompatible_pointer_sign, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 converts between pointers to integer types with different sign", 476, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_convert_int_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible integer to pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 290, SFINAE_Suppress, false, false, 22)
+DIAG(ext_typecheck_convert_pointer_int, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "incompatible pointer to integer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2%select{|; dereference with *|; take the address with &|; remove *|; remove &}3", 290, SFINAE_Suppress, false, false, 22)
+DIAG(ext_typecheck_convert_pointer_void_func, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 converts between void pointer and function pointer", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_decl_incomplete_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "tentative definition of variable with internal linkage has incomplete non-array type %0", 586, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_indirection_through_void_pointer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ISO C++ does not allow indirection on operand of type %0", 669, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_ordered_comparison_of_function_pointers, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ordered comparison of function pointers (%0 and %1)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_ordered_comparison_of_pointer_and_zero, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "ordered comparison between pointer and zero (%0 and %1) is an extension", 471, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_ordered_comparison_of_pointer_integer, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "ordered comparison between pointer and integer (%0 and %1)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typecheck_zero_array_size, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "zero size arrays are an extension", 675, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typedef_without_a_name, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "typedef requires a name", 362, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typename_missing, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "missing 'typename' prior to dependent type name '%0%1'", 599, SFINAE_Suppress, false, false, 2)
+DIAG(ext_typename_outside_of_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'typename' occurs outside of a template", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_undeclared_unqual_id_with_dependent_base, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "use of undeclared identifier %0; unqualified lookup into dependent bases of class template %1 is a Microsoft extension", 352, SFINAE_Suppress, false, false, 2)
+DIAG(ext_unelaborated_friend_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "unelaborated friend declaration is a C++11 extension; specify '%select{struct|interface|union|class|enum}0' to befriend %1", 74, SFINAE_Suppress, false, false, 2)
+DIAG(ext_union_member_of_reference_type, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "union member %0 has reference type %1, which is a Microsoft extension", 353, SFINAE_Suppress, false, false, 2)
+DIAG(ext_using_undefined_std, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "using directive refers to implicitly-defined namespace 'std'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(ext_variable_sized_type_in_struct, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "field %0 with variable sized type %1 not at the end of a struct or class is a GNU extension", 241, SFINAE_Suppress, false, false, 2)
+DIAG(ext_variable_template, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "variable templates are a C++14 extension", 82, SFINAE_Suppress, false, false, 2)
+DIAG(ext_variadic_main, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "'main' is not allowed to be declared variadic", 322, SFINAE_Suppress, false, false, 2)
+DIAG(ext_vla, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variable length arrays are a C99 feature", 668, SFINAE_Suppress, false, false, 2)
+DIAG(ext_vla_folded_to_constant, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "variable length array folded to constant array as an extension", 232, SFINAE_Suppress, false, false, 2)
+DIAG(ext_warn_gnu_final, CLASS_EXTENSION, (unsigned)diag::Severity::Warning, "__final is a GNU extension, consider using C++11 final", 215, SFINAE_Suppress, false, false, 0)
+DIAG(note_access_constrained_by_path, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constrained by %select{|implicitly }1%select{private|protected}0 inheritance here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_access_natural, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{|implicitly }1declared %select{private|protected}0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_access_protected_restricted_ctordtor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "protected %select{constructor|destructor}0 can only be used to %select{construct|destroy}0 a base class subobject", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_access_protected_restricted_noobject, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "must name member using the type of the current context %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_access_protected_restricted_object, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "can only access this member on an object of type %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_additional_parens_for_variable_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add a pair of parentheses to declare a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_addrof_ovl_candidate_disabled_by_enable_if_attr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate function made ineligible by enable_if", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_alignas_on_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared with %0 attribute here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_allocated_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "allocated with 'new%select{[]|}0' here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ambig_member_ref_object_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "lookup in the object type %0 refers here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ambig_member_ref_scope, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "lookup from the current scope refers here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ambiguous_candidate, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate found by name lookup is %q0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ambiguous_inherited_constructor_using, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "inherited from base class %0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ambiguous_member_found, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member found by ambiguous name lookup", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ambiguous_type_conversion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because of ambiguity in conversion %diff{of $ to $|between types}0,1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_arc_bridge, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use __bridge to convert directly (no change in ownership)", 0, SFINAE_Suppress, false, false, 7)
+DIAG(note_arc_bridge_retained, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use %select{__bridge_retained|CFBridgingRetain call}1 to make an ARC object available as a +1 %0", 0, SFINAE_Suppress, false, false, 7)
+DIAG(note_arc_bridge_transfer, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use %select{__bridge_transfer|CFBridgingRelease call}1 to transfer ownership of a +1 %0 into ARC", 0, SFINAE_Suppress, false, false, 7)
+DIAG(note_arc_cstyle_bridge, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use __bridge with C-style cast to convert directly (no change in ownership)", 0, SFINAE_Suppress, false, false, 7)
+DIAG(note_arc_cstyle_bridge_retained, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use __bridge_retained with C-style cast to make an ARC object available as a +1 %0", 0, SFINAE_Suppress, false, false, 7)
+DIAG(note_arc_cstyle_bridge_transfer, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use __bridge_transfer with C-style cast to transfer ownership of a +1 %0 into ARC", 0, SFINAE_Suppress, false, false, 7)
+DIAG(note_arc_field_with_ownership, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "field has non-trivial ownership qualification", 0, SFINAE_Suppress, false, false, 10)
+DIAG(note_arc_forbidden_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration uses type that is ill-formed in ARC", 0, SFINAE_Suppress, false, false, 10)
+DIAG(note_arc_gained_method_convention, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration in interface is not in the '%select{alloc|copy|init|new}0' family because %select{its result type is not an object pointer|its result type is unrelated to its receiver type}1", 0, SFINAE_Suppress, false, false, 5)
+DIAG(note_arc_init_returns_unrelated, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "init method must return a type related to its receiver type", 0, SFINAE_Suppress, false, false, 10)
+DIAG(note_arc_lost_method_convention, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration in interface", 0, SFINAE_Suppress, false, false, 5)
+DIAG(note_arc_retain_cycle_owner, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "block will be retained by %select{the captured object|an object strongly retained by the captured object}0", 0, SFINAE_Suppress, false, false, 24)
+DIAG(note_arc_weak_also_accessed_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "also accessed here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_arc_weak_disabled, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration uses __weak, but ARC is disabled", 0, SFINAE_Suppress, false, false, 10)
+DIAG(note_arc_weak_no_runtime, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration uses __weak, which the current deployment target does not support", 0, SFINAE_Suppress, false, false, 10)
+DIAG(note_array_index_out_of_bounds, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "array %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_array_size_conversion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conversion to %select{integral|enumeration}0 type %1 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_asm_input_duplicate_first, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constraint '%0' is already present here", 0, SFINAE_Suppress, false, false, 12)
+DIAG(note_asm_missing_constraint_modifier, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use constraint modifier \"%0\"", 0, SFINAE_Suppress, false, false, 12)
+DIAG(note_assign_lhs_incomplete, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type %0 is incomplete", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_atomic_property_fixup_suggest, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "setter and getter must both be synthesized, or both be user defined,or the property must be nonatomic", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_attribute, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "attribute is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_attribute_overloadable_prev_overload, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous overload of function is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_auto_readonly_iboutlet_fixup_suggest, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "property should be changed to be readwrite", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_availability_specified_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 has been explicitly marked %select{unavailable|deleted|deprecated|partial}1 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_bad_memaccess_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicitly cast the pointer to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_base_class_specified_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "base class %0 specified here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_bitfield_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "bit-field is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_block_var_fixit_add_initialization, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to use __block %0?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_called_by, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "called by %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_callee_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_callee_static_array, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "callee declares array parameter as static here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_carries_dependency_missing_first_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration missing '[[carries_dependency]]' attribute is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_cast_to_void, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "cast expression to void to silence warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_change_bitfield_sign, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "consider making the bitfield type %select{unsigned|signed}0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_change_calling_conv_fixit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "consider defining %0 with the '%1' calling convention", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_class_declared, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_cocoa_naming_declare_family, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicitly declare getter %objcinstance0 with '%1' to return an 'unowned' object", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_collapse_loop_count, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "parameter of the 'collapse' clause", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_compat_assoc, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "compatible type %0 specified here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_condition_assign_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "place parentheses around the assignment to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_condition_assign_to_comparison, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '==' to turn this assignment into an equality comparison", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_condition_or_assign_to_comparison, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '!=' to turn this compound assignment into an inequality comparison", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_conflicting_attribute, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conflicting attribute is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_conflicting_try_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conflicting %0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_constexpr_body_previous_return, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous return statement is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_constexpr_ctor_missing_init, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member not initialized by constructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_constexpr_virtual_base_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "virtual base class declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_conv_function_declared_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type conversion function declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_convert_inline_to_static, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use 'static' to give inline function %0 internal linkage", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_coroutine_promise_call_implicitly_required, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "call to '%select{initial_suspend|final_suspend}0' implicitly required by the %select{initial suspend point|final suspend point}0", 0, SFINAE_Suppress, false, false, 14)
+DIAG(note_coroutine_promise_implicit_await_transform_required_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "call to 'await_transform' implicitly required by 'co_await' here", 0, SFINAE_Suppress, false, false, 14)
+DIAG(note_cuda_conflicting_device_function_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conflicting __device__ function declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_cuda_ovl_candidate_target_mismatch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: target attributes do not match", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_declaration_not_a_prototype, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_declare_parameter_autoreleasing, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declare the parameter __autoreleasing explicitly to suppress this warning", 0, SFINAE_Suppress, false, false, 5)
+DIAG(note_declare_parameter_strong, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declare the parameter __strong or capture a __block __strong variable to keep values alive across autorelease pools", 0, SFINAE_Suppress, false, false, 5)
+DIAG(note_declared_coroutine_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "function is a coroutine due to use of '%0' here", 0, SFINAE_Suppress, false, false, 14)
+DIAG(note_declared_nonnull, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared %select{'returns_nonnull'|'nonnull'}0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_declared_required_constant_init_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "required by 'require_constant_initialization' attribute here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deduced_template_arg_substitution_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "during template argument deduction for %select{class|variable}0 template %select{partial specialization |}1%2 %3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_default_arg_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of default argument for '%0' required here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_default_argument_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "default argument declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_default_function_arg_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of default function argument expression for '%0' required here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_defined_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 defined here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_delete_conversion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conversion to pointer type %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_delete_non_virtual, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "qualify call to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_assign_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{copy|move}0 assignment operator of %1 is implicitly deleted because field %2 is of %select{reference|const-qualified}4 type %3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_copy_ctor_rvalue_reference, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "copy constructor of %0 is implicitly deleted because field %1 is of rvalue reference type %2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_copy_user_declared_move, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "copy %select{constructor|assignment operator}0 is implicitly deleted because %1 has a user-declared move %select{constructor|assignment operator}2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_default_ctor_all_const, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{default constructor of|constructor inherited by}0 %1 is implicitly deleted because all %select{data members|data members of an anonymous union member}2 are const-qualified", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_default_ctor_uninit_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{default constructor of|constructor inherited by}0 %1 is implicitly deleted because field %2 of %select{reference|const-qualified}4 type %3 would not be initialized", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_dtor_no_operator_delete, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "virtual destructor requires an unambiguous, accessible 'operator delete'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_deleted_special_member_class_subobject, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{default constructor of|copy constructor of|move constructor of|copy assignment operator of|move assignment operator of|destructor of|constructor inherited by}0 %1 is implicitly deleted because %select{base class %3|%select{||||variant }4field %3}2 has %select{no|a deleted|multiple|an inaccessible|a non-trivial}4 %select{%select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|%select{default|corresponding|default|default|default}4 constructor}0|destructor}5%select{||s||}4", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_dependent_non_type_default_arg_in_partial_spec, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template parameter is used in default argument declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_dependent_var_use, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "must qualify identifier to find this declaration in dependent base class", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_destructor_type_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type %0 is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_due_to_dllexported_class, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "due to '%0' being dllexported%select{|; try compiling in C++11 mode}1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_duplicate_element, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "element %0 also has value %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_empty_body_on_separate_line, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "put the semicolon on a separate line to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_empty_parens_default_ctor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove parentheses to declare a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_empty_parens_function_call, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "change this ',' to a ';' to call %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_empty_parens_zero_initialize, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "replace parentheses with an initializer to declare a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_enters_block_captures_cxx_obj, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump enters lifetime of block which captures a destructible C++ object", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_enters_block_captures_strong, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump enters lifetime of block which strongly captures a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_enters_block_captures_weak, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump enters lifetime of block which weakly captures a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_entity_declared_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_enum_specialized_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "enum %0 was explicitly specialized here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_equality_comparison_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove extraneous parentheses around the comparison to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_equality_comparison_to_assign, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '=' to turn this equality comparison into an assignment", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_equivalent_internal_linkage_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared here%select{ in module '%1'|}0", 0, SFINAE_Suppress, false, false, 13)
+DIAG(note_evaluate_comparison_first, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "place parentheses around comparison expression to evaluate it first", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exception_spec_deprecated, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '%0' instead", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits___block, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits scope of __block variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_block_captures_cxx_obj, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits lifetime of block which captures a destructible C++ object", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_block_captures_strong, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits lifetime of block which strongly captures a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_block_captures_weak, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits lifetime of block which weakly captures a variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_cleanup, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits scope of variable with __attribute__((cleanup))", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_cxx_catch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits catch block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_cxx_try, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits try block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_dtor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits scope of variable with non-trivial destructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_autoreleasepool, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits autoreleasepool block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_catch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits @catch block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_finally, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits @finally block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_strong, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits scope of __strong variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_synchronized, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits @synchronized block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_try, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits @try block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_objc_weak, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits scope of __weak variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_seh_except, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits __except block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_seh_finally, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits __finally block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_seh_try, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits __try block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_exits_temporary_dtor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump exits scope of lifetime-extended temporary with non-trivial destructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_ctor_deduction_guide_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicit %select{constructor|deduction guide}0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_instantiation_candidate, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicit instantiation candidate function %q0 template here %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_instantiation_definition_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicit instantiation definition is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicit instantiation refers here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_specialization_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicit specialization declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_template_arg_substitution_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "while substituting explicitly-specified template arguments into function template %0 %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_explicit_template_spec_does_not_need_header, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'template<>' header not required for explicitly-specialized class %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_extern_c_begins_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "extern \"C\" language linkage specification begins here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_extern_c_global_conflict, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared %select{in global scope|with C language linkage}0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_fallthrough_insert_semi_fixit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you forget ';'?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_field_designator_found, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "field designator refers here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_final_overrider, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "final overrider of %q0 in %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_flexible_array_member, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "initialized flexible array member %0 is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_for_range_begin_end, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "selected '%select{begin|end}0' %select{function|template }1%2 with iterator type %3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_for_range_invalid_iterator, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in implicit call to 'operator%select{!=|*|++}0' for iterator of type %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_format_fix_specifier, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to use '%0'?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_format_security_fixit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "treat the string as an argument to avoid this", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_format_string_defined, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "format string is defined here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_forward_class, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "forward declaration of class here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_forward_template_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "forward declaration of template entity is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_found_mutex_near_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "found near match '%0'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_from_diagnose_if, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "from 'diagnose_if' attribute on %0:", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_function_suggestion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean %0?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_function_template_deduction_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "while substituting deduced template arguments into function template %0 %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_function_template_spec_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of function template specialization %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_function_template_spec_matched, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "function template %q0 matches specialization %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_function_to_function_call, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "suffix with parentheses to turn this into a function call", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_function_warning_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "prefix with the address-of operator to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_getter_unavailable, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "or because setter is declared here, but no getter method %0 is found", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_goto_ms_asm_label, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "inline assembly label %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_guarded_by_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "Guarded_by declared here.", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_hidden_overloaded_virtual_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "hidden overloaded virtual function %q0 declared here%select{|: different classes%diff{ ($ vs $)|}2,3|: different number of parameters (%2 vs %3)|: type mismatch at %ordinal2 parameter%diff{ ($ vs $)|}3,4|: different return type%diff{ ($ vs $)|}2,3|: different qualifiers (%select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}2 vs %select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}3)|: different exception specifications}1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_hidden_tag, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type declaration hidden", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_hiding_object, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration hides type", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ice_conversion_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conversion to %select{integral|enumeration}0 type %1 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_illegal_field_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "field of illegal %select{type|pointer type}0 %1 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_implementation_declared, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class implementation is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_implemented_by_class, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "when implemented by class %0", 0, SFINAE_Suppress, false, false, 9)
+DIAG(note_implicit_member_target_infer_collision, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "implicit %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 inferred target collision: call to both %select{__device__|__global__|__host__|__host__ __device__}1 and %select{__device__|__global__|__host__|__host__ __device__}2 members", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_implicit_param_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is an implicit parameter", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_implicitly_deleted, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicitly defaulted function was implicitly deleted here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_binding_decl_init, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in implicit initialization of binding declaration %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_class_initializer_float_type_cxx11, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add 'constexpr'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_class_initializer_not_yet_parsed, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "default member initializer declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_declaration_of_implicit_special_member, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "while declaring the implicit %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}1 for %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_for_range, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "when looking up '%select{begin|end}0' function for range expression of type %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_omitted_aggregate_initializer, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in implicit initialization of %select{array element %1 with omitted initializer|field %1 with omitted initializer|trailing array elements in runtime-sized array new}0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_in_reference_temporary_list_initializer, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in initialization of temporary of type %0 created to list-initialize this reference", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_include_header_or_declare, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "include the header <%0> or explicitly provide a declaration for '%1'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_incomplete_class_and_qualified_id, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conformance of forward class %0 to protocol %1 can not be confirmed", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_indirect_goto_target, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "possible target of indirect goto statement", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_indirection_through_null, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "consider using __builtin_trap() or qualifying pointer with 'volatile'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_inequality_comparison_to_or_assign, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '|=' to turn this inequality comparison into an or-assignment", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_inhctor_synthesized_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "inherited constructor for %0 first required here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_init_list_narrowing_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "insert an explicit cast to silence this issue", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_insert_break_fixit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "insert 'break;' to avoid fall-through", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_insert_fallthrough_fixit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "insert '%0;' to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_inst_declaration_hint, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add an explicit instantiation declaration to suppress this warning if %q0 is explicitly instantiated in another translation unit", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_instantiation_contexts_suppressed, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "(skipping %0 context%s0 in backtrace; use -ftemplate-backtrace-limit=0 to see all)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_instantiation_required_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{implicit|explicit}0 instantiation first required here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_it_delegates_to, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "it delegates to", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ivar_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "instance variable is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_lambda_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "lambda expression begins here", 0, SFINAE_Suppress, false, false, 3)
+DIAG(note_lambda_to_block_conv, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "implicit capture of lambda object due to conversion to block pointer here", 0, SFINAE_Suppress, false, false, 3)
+DIAG(note_local_decl_close_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "local declaration nearly matches", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_local_decl_close_param_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type of %ordinal0 parameter of local declaration does not match definition%diff{ ($ vs $)|}1,2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_lock_exclusive_and_shared, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "the other acquisition of %0 '%1' is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_locked_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 acquired here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_logical_instead_of_bitwise_change_operator, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use '%0' for a bitwise operation", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_logical_instead_of_bitwise_remove_constant, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove constant to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_logical_not_fix, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add parentheses after the '!' to evaluate the %select{comparison|bitwise operator}0 first", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_logical_not_silence_with_parens, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add parentheses around left hand side expression to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_loop_iteration_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{decremented|incremented}0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_main_change_return_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "change return type to 'int'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_main_remove_noreturn, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove '_Noreturn'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_declared_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_def_close_const_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member declaration does not match because it %select{is|is not}0 const qualified", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_def_close_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member declaration nearly matches", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_def_close_param_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type of %ordinal0 parameter of member declaration does not match definition%diff{ ($ vs $)|}1,2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_reference_arrow_from_operator_arrow, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'->' applied to return value of the operator->() declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_member_synthesized_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "implicit %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 for %1 first required here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_memsize_comparison_cast_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicitly cast the argument to size_t to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_memsize_comparison_paren, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to compare the result of %0 instead?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_method_declared_at, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "method %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_method_return_type_change, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "compiler has implicitly changed method %0 return type", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_method_sent_forward_class, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "method %0 is used for the forward class", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_module_import_not_at_top_level, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 begins here", 0, SFINAE_Suppress, false, false, 13)
+DIAG(note_namespace_defined_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "namespace %0 defined here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_neon_vector_initializer_non_portable, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "consider using vld1_%0%1() to initialize a vector from memory, or vcreate_%0%1() to initialize from an integer constant", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_neon_vector_initializer_non_portable_q, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "consider using vld1q_%0%1() to initialize a vector from memory, or vcombine_%0%1(vcreate_%0%1(), vcreate_%0%1()) to initialize from integer constants", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_deducible_parameter, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "non-deducible template parameter %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_instantiated_member_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "not-yet-instantiated member is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_base_class, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is not literal because it has base class %1 of non-literal type", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is not literal because it has data member %1 of %select{non-literal|volatile}3 type %2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_incomplete, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "incomplete type %0 is not a literal type", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_no_constexpr_ctors, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_nontrivial_dtor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is not literal because it has a non-trivial destructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_user_provided_dtor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is not literal because it has a user-provided destructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_non_literal_virtual_base, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{struct|interface|class}0 with virtual base %plural{1:class|:classes}1 is not a literal type", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontemplate_decl_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "non-templated declaration is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_default_arg, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because it has a default argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_has_virtual, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because type %0 has a virtual %select{member function|base class}1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_in_class_init, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because field %0 has an initializer", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_no_copy, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because no %select{<<ERROR>>|constructor|constructor|assignment operator|assignment operator|<<ERROR>>}2 can be used to %select{<<ERROR>>|copy|move|copy|move|<<ERROR>>}2 %select{base class|field|an object}0 of type %3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_no_def_ctor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because %select{base class of |field of |}0type %1 has no default constructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_objc_ownership, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because type %0 has a member with %select{no|no|__strong|__weak|__autoreleasing}1 ownership", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_param_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because its parameter is %diff{of type $, not $|of the wrong type}2,3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_subobject, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because the function selected to %select{construct|copy|move|copy|move|destroy}2 %select{base class|field}0 of type %1 is not trivial", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_user_provided, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because %select{base class of |field of |}0type %1 has a user-provided %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_variadic, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "because it is a variadic function", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nontrivial_virtual_dtor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "destructor for %0 is not trivial because it is virtual", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_noreturn_missing_first_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration missing '[[noreturn]]' attribute is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_not_found_by_two_phase_lookup, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 should be declared prior to the call site%select{| or in %2| or in an associated namespace of one of its arguments}1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_nullability_fix_it, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "insert '%select{_Nonnull|_Nullable|_Null_unspecified}0' if the %select{pointer|block pointer|member pointer|array parameter}1 %select{should never be null|may be null|should not declare nullability}0", 0, SFINAE_Suppress, false, false, 18)
+DIAG(note_nullability_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 specified here", 0, SFINAE_Suppress, false, false, 18)
+DIAG(note_nullability_type_specifier, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use nullability type specifier %0 to affect the innermost pointer type of %1", 0, SFINAE_Suppress, false, false, 18)
+DIAG(note_objc_circular_container_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'%0' declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_objc_designated_init_marked_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "method marked as designated initializer of the class here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_objc_literal_comparison_isequal, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use 'isEqual:' instead", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_objc_literal_method_param, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{first|second|third}0 parameter has unexpected type %1 (should be %2)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_objc_literal_method_return, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "method returns unexpected type %0 (should be an object type)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_objc_needs_superclass, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add a super class to fix this problem", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_objc_type_param_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "type parameter %0 declared here", 0, SFINAE_Suppress, false, false, 19)
+DIAG(note_objc_unsafe_perform_selector_method_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "method %0 that returns %1 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_omp_atomic_capture, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{expected assignment expression|expected compound statement|expected exactly two expression statements|expected in right hand side of the first expression}0", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_atomic_previous_clause, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'%0' clause used here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_atomic_read_write, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{expected an expression statement|expected built-in assignment operator|expected expression of scalar type|expected lvalue expression}0", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_atomic_update, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{expected an expression statement|expected built-in binary or unary operator|expected unary decrement/increment operation|expected expression of scalar type|expected assignment expression|expected built-in binary operator|expected one of '+', '*', '-', '/', '&', '^', '%|', '<<', or '>>' built-in operations|expected in right hand side of expression}0", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_collapse_ordered_expr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "as specified in %select{'collapse'|'ordered'|'collapse' and 'ordered'}0 clause%select{||s}0", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_conversion_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conversion to %select{integral|enumeration}0 type %1 declared here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_critical_hint_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{|previous }0'hint' clause with value '%1'", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_critical_no_hint, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{|previous }0directive with no 'hint' clause specified", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_explicit_dsa, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "defined as %0", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_implicit_dsa, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "implicitly determined as %0", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_loop_cond_requres_compatible_incr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "loop step is expected to be %select{negative|positive}0 due to this condition", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_nested_statement_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{statement|directive}0 outside teams construct here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_nested_teams_construct_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "nested teams construct here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_nowait_clause_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'nowait' clause is here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_ordered_param, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'ordered' clause with specified parameter", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_polymorphic_in_target, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "mappable type cannot be polymorphic", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_predetermined_dsa, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{static data member is predetermined as shared|variable with static storage duration is predetermined as shared|loop iteration variable is predetermined as private|loop iteration variable is predetermined as linear|loop iteration variable is predetermined as lastprivate|constant variable is predetermined as shared|global variable is predetermined as shared|non-shared variable in a task construct is predetermined as firstprivate|variable with automatic storage duration is predetermined as private}0%select{|; perhaps you forget to enclose 'omp %2' directive into a parallel or another task region?}1", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_previous_critical_region, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous 'critical' region starts here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_previous_grainsize_num_tasks, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'%0' clause is specified here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_previous_named_if_clause, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous clause with directive name modifier specified here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_referenced, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previously referenced here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_static_member_in_target, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "mappable type cannot contain static members", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_omp_task_predetermined_firstprivate_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "predetermined as a firstprivate in a task construct here", 0, SFINAE_Suppress, false, false, 11)
+DIAG(note_opencl_typedef_access_qualifier, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previously declared '%0' here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_operator_arrow_depth, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use -foperator-arrow-depth=N to increase 'operator->' limit", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_operator_arrow_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'operator->' declared here produces an object of type %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_operator_arrows_suppressed, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "(skipping %0 'operator->'%s0 in backtrace)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_overridden_method, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "overridden method is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_overridden_virtual_function, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "overridden virtual function is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_builtin_binary_candidate, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "built-in candidate %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_builtin_unary_candidate, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "built-in candidate %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |is the implicit default constructor|is the implicit copy constructor|is the implicit move constructor|is the implicit copy assignment operator|is the implicit move assignment operator|inherited constructor|inherited constructor }0%2%select{| has different class%diff{ (expected $ but has $)|}4,5| has different number of parameters (expected %4 but has %5)| has type mismatch at %ordinal4 parameter%diff{ (expected $ but has $)|}5,6| has different return type%diff{ ($ expected but has $)|}4,5| has different qualifiers (expected %select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}4 but found %select{none|const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}5)| has different exception specification}3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_arity, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function|function|constructor|constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor}0 %select{|template }1not viable: requires%select{ at least| at most|}2 %3 argument%s3, but %4 %plural{1:was|:were}4 provided", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_arity_one, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function|function|constructor|constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor}0 %select{|template }1not viable: %select{requires at least|allows at most single|requires single}2 argument %3, but %plural{0:no|:%4}4 arguments were provided", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_addrspace, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: %select{%ordinal6|'this'}5 argument (%2) is in address space %3, but parameter must be in address space %4", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_arc_conv, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: cannot implicitly convert argument %diff{of type $ to $|type to parameter type}2,3 for %select{%ordinal5 argument|object argument}4 under ARC", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_base_to_derived_conv, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: cannot %select{convert from|convert from|bind}2 %select{base class pointer|superclass|base class object of type}2 %3 to %select{derived class pointer|subclass|derived class reference}2 %4 for %ordinal5 argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_conv, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: no known conversion %diff{from $ to $|from argument type to parameter type}2,3 for %select{%ordinal5 argument|object argument}4%select{|; dereference the argument with *|; take the address of the argument with &|; remove *|; remove &}6", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_conv_incomplete, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: cannot convert argument of incomplete type %diff{$ to $|to parameter type}2,3 for %select{%ordinal5 argument|object argument}4%select{|; dereference the argument with *|; take the address of the argument with &|; remove *|; remove &}6", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_cvr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: %ordinal4 argument (%2) would lose %select{const|restrict|const and restrict|volatile|const and volatile|volatile and restrict|const, volatile, and restrict}3 qualifier%select{||s||s|s|s}3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_cvr_this, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{|function|||function|||||function (the implicit copy assignment operator)|function (the implicit move assignment operator)||}0 not viable: 'this' argument has type %2, but method is not marked %select{const|restrict|const or restrict|volatile|const or volatile|volatile or restrict|const, volatile, or restrict}3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_deduction, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: failed template argument deduction", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_gc, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: %select{%ordinal6|'this'}5 argument (%2) has %select{no|__weak|__strong}3 ownership, but parameter has %select{no|__weak|__strong}4 ownership", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_list_argument, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: cannot convert initializer list argument to %3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_lvalue, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: expects an l-value for %select{%ordinal3 argument|object argument}2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_overload, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: no overload of %3 matching %2 for %ordinal4 argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_ownership, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: %select{%ordinal6|'this'}5 argument (%2) has %select{no|__unsafe_unretained|__strong|__weak|__autoreleasing}3 ownership, but parameter has %select{no|__unsafe_unretained|__strong|__weak|__autoreleasing}4 ownership", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_target, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function|function|constructor|constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor}0 not viable: call to %select{__device__|__global__|__host__|__host__ __device__|invalid}1 function from %select{__device__|__global__|__host__|__host__ __device__|invalid}2 function", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_bad_unaligned, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 not viable: %ordinal4 argument (%2) would lose __unaligned qualifier", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_deduced_mismatch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: deduced type %diff{$ of %select{|element of }4%ordinal0 parameter does not match adjusted type $ of %select{|element of }4argument|of %select{|element of }4%ordinal0 parameter does not match adjusted type of %select{|element of }4argument}1,2%3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_deleted, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{function|function|constructor|function |function |constructor |constructor (the implicit default constructor)|constructor (the implicit copy constructor)|constructor (the implicit move constructor)|function (the implicit copy assignment operator)|function (the implicit move assignment operator)|inherited constructor|inherited constructor }0%1 has been %select{explicitly made unavailable|explicitly deleted|implicitly deleted}2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_disabled_by_enable_if, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: disabled by %0%1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_disabled_by_extension, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate disabled due to OpenCL extension", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_disabled_by_function_cond_attr, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate disabled: %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_explicit_arg_mismatch_named, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: invalid explicitly-specified argument for template parameter %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_explicit_arg_mismatch_unnamed, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: invalid explicitly-specified argument for %ordinal0 template parameter", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_has_pass_object_size_params, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate address cannot be taken because parameter %0 has pass_object_size attribute", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_illegal_constructor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{constructor|template}0 ignored: instantiation %select{takes|would take}0 its own class type by value", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_incomplete_deduction, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: couldn't infer template argument %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_inconsistent_deduction, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: deduced conflicting %select{types|values|templates}0 for parameter %1%diff{ ($ vs. $)|}2,3", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_inconsistent_deduction_types, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: deduced values %diff{of conflicting types for parameter %0 (%1 of type $ vs. %3 of type $)|%1 and %3 of conflicting types for parameter %0}2,4", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_inherited_constructor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "constructor from base class %0 inherited here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_inherited_constructor_slice, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate %select{constructor|template}0 ignored: inherited constructor cannot be used to %select{copy|move}1 object", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_instantiation_depth, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: substitution exceeded maximum template instantiation depth", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_non_deduced_mismatch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: could not match %diff{$ against $|types}0,1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_non_deduced_mismatch_qualified, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: could not match %q0 against %q1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_substitution_failure, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: substitution failure%0%1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_candidate_underqualified, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "candidate template ignored: cannot deduce a type for %0 that would make %2 equal %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_surrogate_cand, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conversion candidate of type %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ovl_too_many_candidates, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remaining %0 candidate%s0 omitted; pass -fshow-overloads=all to show them", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ownership_returns_index_mismatch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared with index %0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_parameter_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "passing argument to parameter here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_parameter_named_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "passing argument to parameter %0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_parameter_pack_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "parameter pack %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_parameter_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "parameter of type %0 is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_partial_availability_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicitly redeclare %0 to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_partial_spec_match, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "partial specialization matches %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_partial_spec_not_more_specialized_than_primary, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_partial_specialization_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicit specialization declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_performs_forbidden_arc_conversion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "inline function performs a conversion which is forbidden in ARC", 0, SFINAE_Suppress, false, false, 10)
+DIAG(note_possible_target_of_call, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "possible target for call", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_precedence_bitwise_first, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "place parentheses around the %0 expression to evaluate it first", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_precedence_conditional_first, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "place parentheses around the '?:' expression to evaluate it first", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_precedence_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "place parentheses around the '%0' expression to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_prev_module_definition, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previously defined here", 0, SFINAE_Suppress, false, false, 13)
+DIAG(note_prev_module_definition_from_ast_file, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "module loaded from '%0'", 0, SFINAE_Suppress, false, false, 13)
+DIAG(note_prev_partial_spec_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous declaration of class template partial specialization %0 is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_access_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previously declared '%1' here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_attribute, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous attribute is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_builtin_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is a builtin with type %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_exception_handler, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "for type %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_explicit_instantiation, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous explicit instantiation is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_initializer, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous initialization %select{|with side effects }0is here%select{| (side effects may not occur at run time)}0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_ms_inheritance, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous inheritance model specified here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_namespace_alias, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previously defined as an alias for %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_template_specialization, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous template specialization is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_previous_uuid, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous uuid specified here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_printf_c_str, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to call the %0 method?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_prior_template_arg_substitution, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "while substituting prior template arguments into %select{non-type|template}0 template parameter%1 %2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_private_extern, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use __attribute__((visibility(\"hidden\"))) attribute instead", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_property_attribute, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "property %0 is declared %select{deprecated|unavailable|partial}1 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_property_declare, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "property declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_property_synthesize, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "property synthesized here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by___block, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses setup of __block variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_cleanup, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of variable with __attribute__((cleanup))", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_constexpr_if, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump enters controlled statement of constexpr if", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_cxx_catch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of catch block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_cxx_try, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of try block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_if_available, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump enters controlled statement of if available", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_autoreleasepool, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses auto release push of @autoreleasepool block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_catch, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of @catch block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_finally, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of @finally block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_strong_init, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of __strong variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_synchronized, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of @synchronized block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_try, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of @try block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_objc_weak_init, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of __weak variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_seh_except, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of __except block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_seh_finally, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of __finally block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_seh_try, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of __try block", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_variable_init, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses variable initialization", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_variable_non_pod, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of non-POD variable", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_variable_nontriv_destructor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses variable with a non-trivial destructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_vla, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of variable length array", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_vla_type_alias, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of VLA type alias", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protected_by_vla_typedef, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "jump bypasses initialization of VLA typedef", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protocol_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "protocol is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protocol_decl_undefined, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "protocol %0 has no definition", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protocol_method, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "protocol method is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_protocol_property_declare, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "it could also be property of type %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_pure_qualified_call_kext, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "qualified call to %0::%1 is treated as a virtual call to %1 due to -fapple-kext", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_pure_virtual_function, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "unimplemented pure virtual method %0 in %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_receiver_class_declared, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "receiver is instance of class declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_receiver_expr_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "receiver expression is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_receiver_is_id, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "receiver is treated with 'id' type for purpose of method lookup", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ref_or_ptr_member_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{reference|pointer}0 member declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ref_subobject_of_member_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "member with reference subobject declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_ref_var_local_bind, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "binding reference variable %0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_refconst_member_not_initialized, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{const|reference}0 member %1 will never be initialized", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_reference_is_return_value, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 returns a reference", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_referenced_class_template, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class template declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_reinterpret_updowncast_use_static, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use 'static_cast' to adjust the pointer correctly while %select{upcasting|downcasting}0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_related_result_type_explicit, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{overridden|current}0 method is explicitly declared 'instancetype'%select{| and is expected to return an instance of its class type}0", 0, SFINAE_Suppress, false, false, 17)
+DIAG(note_related_result_type_family, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{overridden|current}0 method is part of the '%select{|alloc|copy|init|mutableCopy|new|autorelease|dealloc|finalize|release|retain|retainCount|self}1' method family%select{| and is expected to return an instance of its class type}0", 0, SFINAE_Suppress, false, false, 17)
+DIAG(note_related_result_type_inferred, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{class|instance}0 method %1 is assumed to return an instance of its receiver type (%2)", 0, SFINAE_Suppress, false, false, 17)
+DIAG(note_related_result_type_overridden, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "overridden method returns an instance of its class type", 0, SFINAE_Suppress, false, false, 17)
+DIAG(note_remove_abs, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove the call to '%0' since unsigned values cannot be negative", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_remove_max_call, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove call to max function and unsigned zero argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_remove_move, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove std::move call here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_replace_abs_function, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use function '%0' instead", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_sentinel_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{function|method|block}0 has been explicitly marked sentinel here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_shadow_field, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declared here", 0, SFINAE_Suppress, false, false, 0)
+DIAG(note_specialized_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "attempt to specialize declaration here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_specialized_entity, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "explicitly specialized declaration is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_string_plus_scalar_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use array indexing to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_strlcpycat_wrong_size, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "change size argument to be the size of the destination", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_strncat_wrong_size, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "change the argument to be the free space in the destination buffer minus the terminating null byte", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_struct_class_suggestion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean %select{struct|interface|class}0 here?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_suppressed_class_declare, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class with specified objc_requires_property_definitions attribute is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_surrounding_namespace_ends_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "surrounding namespace with visibility attribute ends here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_surrounding_namespace_starts_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "surrounding namespace with visibility attribute starts here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_switch_conversion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conversion to %select{integral|enumeration}0 type %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_arg_internal_object, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "non-type template argument refers to %select{function|object}0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_arg_refers_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "non-type template argument refers here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_arg_refers_here_func, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template argument refers to function template %0, here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_class_explicit_specialization_was_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class template %0 was explicitly specialized here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_class_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of template class %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_class_instantiation_was_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "class template %0 was instantiated here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_decl_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{function template|class template|variable template|type alias template|template template parameter}0 %1 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_default_arg_checking, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "while checking a default template argument used here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_enum_def_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of enumeration %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_exception_spec_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of exception specification for %0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_member_class_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of member class %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_member_function_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of member function %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_nontype_parm_different_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template non-type parameter has a different type %0 in template argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_nontype_parm_prev_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous non-type template parameter with type %0 is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_nsdmi_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of default member initializer %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_param_different_kind, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template parameter has a different kind in template argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_param_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "template parameter is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_param_list_different_arity, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{too few|too many}0 template parameters in template template argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_param_prev_default_arg, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous default template argument defined here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_parameter_pack_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous %select{template type|non-type template|template template}0 parameter%select{| pack}1 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_parameter_pack_non_pack, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{template type|non-type template|template template}0 parameter%select{| pack}1 does not match %select{template type|non-type template|template template}0 parameter%select{ pack|}1 in template argument", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_prev_declaration, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous template %select{declaration|template parameter}0 is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_recursion_depth, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use -ftemplate-depth=N to increase recursive template instantiation depth", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_static_data_member_def_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of static data member %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_type_alias_instantiation_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of template type alias %0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_unnamed_type_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "unnamed type used in template argument was declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_template_variable_def_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in instantiation of variable template specialization %q0 requested here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_thread_warning_in_fun, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "Thread warning in function '%0'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_transparent_union_first_field_size_align, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{alignment|size}0 of first field is %1 bits", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_type_incomplete, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%0 is incomplete", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_typecheck_assign_const, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{function %1 which returns const-qualified type %2 declared here|variable %1 declared const here|%select{non-|}1static data member %2 declared const here|member function %q1 is declared const here}0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_typecheck_member_reference_suggestion, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to use '.' instead?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_typedef_changes_linkage, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use a tag name here to establish linkage prior to definition", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_typename_refers_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "referenced member %0 is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_unguarded_available_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "enclose %0 in an @available check to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_uninit_fixit_remove_cond, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "remove the %select{'%1' if its condition|condition if it}0 is always %select{false|true}2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_uninit_in_this_constructor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "during field initialization in %select{this|the implicit default}0 constructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_uninit_reference_member, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "uninitialized reference member is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_uninit_var_use, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{uninitialized use occurs|variable is captured by block}0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_unreachable_silence, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "silence by adding parentheses to mark code as explicitly dead", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_use_non_reference_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use non-reference type %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_use_reference_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use reference type %0 to prevent copying", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_use_thread_local, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use 'thread_local' to allow this", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_use_type_or_non_reference, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use non-reference type %0 to keep the copy or type %1 to prevent copying", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_used_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "used here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_used_in_initialization_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "used in initialization here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_user_declared_ctor, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "implicit default constructor suppressed by user-declared constructor", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_using_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{|previous }0using declaration", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_using_decl_class_member_workaround, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "use %select{an alias declaration|a typedef declaration|a reference|a const variable|a constexpr variable}0 instead", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_using_decl_conflict, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "conflicting declaration", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_using_decl_target, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "target of using declaration", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_using_value_decl_missing_typename, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "add 'typename' to treat this using declaration as a type", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_value_initialization_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "in value-initialization of type %0 here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_var_declared_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "variable %0 is declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_var_explicitly_captured_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "variable %0 is%select{| explicitly}1 captured here", 0, SFINAE_Suppress, false, false, 3)
+DIAG(note_var_fixit_add_initialization, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "initialize the variable %0 to silence this warning", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_var_prev_partial_spec_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "previous declaration of variable template partial specialization is here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_vbase_moved_here, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "%select{%1 is a virtual base class of base class %2 declared here|virtual base class %1 declared here}0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_which_delegates_to, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "which delegates to", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_while_in_implementation, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "detected while default synthesizing properties in class implementation", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_widen_bitfield, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "widen this field to %0 bits to store all values of %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(note_within_field_of_type, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "within field of type %0 declared here", 0, SFINAE_Suppress, false, false, 2)
+DIAG(override_keyword_hides_virtual_member_function, CLASS_ERROR, (unsigned)diag::Severity::Error, "non-virtual member function marked '%0' hides virtual member %select{function|functions}1", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(override_keyword_only_allowed_on_virtual_member_functions, CLASS_ERROR, (unsigned)diag::Severity::Error, "only virtual member functions can be marked '%0'", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(warn_abs_too_small, CLASS_WARNING, (unsigned)diag::Severity::Warning, "absolute value function %0 given an argument of type %1 but has parameter of type %2 which may cause truncation of value", 8, SFINAE_Suppress, false, false, 2)
+DIAG(warn_abstract_final_class, CLASS_WARNING, (unsigned)diag::Severity::Warning, "abstract class is marked '%select{final|sealed}0'", 9, SFINAE_Suppress, false, false, 2)
+DIAG(warn_abstract_vbase_init_ignored, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "initializer for virtual base class %0 of abstract class %1 will never be used", 10, SFINAE_Suppress, false, false, 2)
+DIAG(warn_access_decl_deprecated, CLASS_WARNING, (unsigned)diag::Severity::Warning, "access declarations are deprecated; use using declarations instead", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_accessor_property_type_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "type of property %0 does not match type of accessor %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_acquire_requires_negative_cap, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "acquiring %0 '%1' requires negative capability '%2'", 591, SFINAE_Suppress, false, false, 2)
+DIAG(warn_acquired_before, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 '%1' must be acquired before '%2'", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_acquired_before_after_cycle, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "Cycle in acquired_before/after dependencies, starting with '%0'", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_addition_in_bitshift, CLASS_WARNING, (unsigned)diag::Severity::Warning, "operator '%0' has lower precedence than '%1'; '%1' will be evaluated first", 534, SFINAE_Suppress, false, false, 2)
+DIAG(warn_address_of_reference_bool_conversion, CLASS_WARNING, (unsigned)diag::Severity::Warning, "reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true", 604, SFINAE_Suppress, false, false, 22)
+DIAG(warn_address_of_reference_null_compare, CLASS_WARNING, (unsigned)diag::Severity::Warning, "reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to %select{true|false}0", 585, SFINAE_Suppress, false, false, 2)
+DIAG(warn_alias_to_weak_alias, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{alias|ifunc}2 will always resolve to %0 even if weak definition of %1 is overridden", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_alias_with_section, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{alias|ifunc}1 will not be in section '%0' but in the same section as the %select{aliasee|resolver}2", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_alloca_align_alignof, CLASS_WARNING, (unsigned)diag::Severity::Warning, "second argument to __builtin_alloca_with_align is supposed to be in bits", 17, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ambiguous_suitable_delete_function_found, CLASS_WARNING, (unsigned)diag::Severity::Warning, "multiple suitable %0 functions for %1; no 'operator delete' function will be invoked if initialization throws an exception", 18, SFINAE_Suppress, false, false, 2)
+DIAG(warn_anon_bitfield_width_exceeds_type_width, CLASS_WARNING, (unsigned)diag::Severity::Warning, "width of anonymous bit-field (%0 bits) exceeds width of its type; value will be truncated to %1 bit%s1", 56, SFINAE_Suppress, false, false, 2)
+DIAG(warn_arc_lifetime_result_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ARC %select{unused|__unsafe_unretained|__strong|__weak|__autoreleasing}0 lifetime qualifier on return type is ignored", 251, SFINAE_Suppress, false, false, 5)
+DIAG(warn_arc_literal_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "assigning %select{array literal|dictionary literal|numeric literal|boxed expression|<should not happen>|block literal}0 to a weak %select{property|variable}1; object will be released after assignment", 31, SFINAE_Suppress, false, false, 5)
+DIAG(warn_arc_object_memaccess, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{destination for|source of}0 this %1 call is a pointer to ownership-qualified type %2", 27, SFINAE_Suppress, false, false, 5)
+DIAG(warn_arc_perform_selector_leaks, CLASS_WARNING, (unsigned)diag::Severity::Warning, "performSelector may cause a leak because its selector is unknown", 28, SFINAE_Suppress, false, false, 2)
+DIAG(warn_arc_possible_repeated_use_of_weak, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "weak %select{variable|property|implicit property|instance variable}0 %1 may be accessed multiple times in this %select{function|method|block|lambda}2 and may be unpredictably set to nil; assign to a strong variable to keep the object alive", 26, SFINAE_Suppress, false, false, 2)
+DIAG(warn_arc_repeated_use_of_weak, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "weak %select{variable|property|implicit property|instance variable}0 %1 is accessed multiple times in this %select{function|method|block|lambda}2 but may be unpredictably set to nil; assign to a strong variable to keep the object alive", 29, SFINAE_Suppress, false, false, 2)
+DIAG(warn_arc_retain_cycle, CLASS_WARNING, (unsigned)diag::Severity::Warning, "capturing %0 strongly in this block is likely to lead to a retain cycle", 30, SFINAE_Suppress, false, false, 24)
+DIAG(warn_arc_retained_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "assigning retained object to %select{weak|unsafe_unretained}0 %select{property|variable}1; object will be released after assignment", 31, SFINAE_Suppress, false, false, 5)
+DIAG(warn_arc_retained_property_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "assigning retained object to unsafe property; object will be released after assignment", 31, SFINAE_Suppress, false, false, 5)
+DIAG(warn_arc_strong_pointer_objc_pointer, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "method parameter of type %0 with no explicit ownership", 185, SFINAE_Suppress, false, false, 10)
+DIAG(warn_arm_interrupt_calling_convention, CLASS_WARNING, (unsigned)diag::Severity::Warning, "call to function without interrupt attribute could clobber interruptee's VFP registers", 189, SFINAE_Suppress, false, false, 2)
+DIAG(warn_array_index_exceeds_bounds, CLASS_WARNING, (unsigned)diag::Severity::Warning, "array index %0 is past the end of the array (which contains %1 element%s2)", 32, SFINAE_Suppress, false, false, 2)
+DIAG(warn_array_index_precedes_bounds, CLASS_WARNING, (unsigned)diag::Severity::Warning, "array index %0 is before the beginning of the array", 32, SFINAE_Suppress, false, false, 2)
+DIAG(warn_asm_label_on_auto_decl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignored asm label '%0' on automatic variable", 0, SFINAE_Suppress, false, false, 12)
+DIAG(warn_asm_mismatched_size_modifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "value size does not match register size specified by the constraint and modifier", 36, SFINAE_Suppress, false, false, 12)
+DIAG(warn_assume_side_effects, CLASS_WARNING, (unsigned)diag::Severity::Warning, "the argument to %0 has side effects that will be discarded", 38, SFINAE_Suppress, false, false, 2)
+DIAG(warn_atomic_op_has_invalid_memory_order, CLASS_WARNING, (unsigned)diag::Severity::Warning, "memory order argument to atomic operation is invalid", 40, SFINAE_Suppress, false, false, 2)
+DIAG(warn_atomic_property_rule, CLASS_WARNING, (unsigned)diag::Severity::Warning, "writable atomic property %0 cannot pair a synthesized %select{getter|setter}1 with a user defined %select{getter|setter}2", 42, SFINAE_Suppress, false, false, 2)
+DIAG(warn_atprotocol_protocol, CLASS_WARNING, (unsigned)diag::Severity::Warning, "@protocol is using a forward protocol declaration of %0", 39, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attr_abi_tag_namespace, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'abi_tag' attribute on %select{non-inline|anonymous}0 namespace ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attr_on_unconsumable_class, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "consumed analysis attribute is attached to member of class '%0' which isn't marked as consumable", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_after_definition_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 after definition is ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_argument_n_negative, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute parameter %1 is negative and will be ignored", 124, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_dll_instantiated_base_class, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "propagating dll attribute to %select{already instantiated|explicitly specialized}0 base class template without dll attribute is not supported", 631, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_dll_redeclaration, CLASS_WARNING, (unsigned)diag::Severity::Warning, "redeclaration of %q0 should not add %q1 attribute", 154, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_dllexport_explicit_instantiation_decl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "explicit instantiation declaration should not be 'dllexport'", 155, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_dllimport_static_field_definition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "definition of dllimport static field", 156, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_iboutlet, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute can only be applied to instance variables or properties", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_ignored_on_inline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute ignored on inline function", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_invalid_on_definition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' attribute cannot be specified on a definition", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_nonnull_no_pointers, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'nonnull' attribute applied to function with no pointer arguments", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_nonnull_parm_no_args, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'nonnull' attribute when used on parameters takes no arguments", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_not_on_decl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute ignored when parsing type", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_packed_for_bitfield, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang", 43, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_pointer_or_reference_only, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to a pointer or reference (%1 is invalid)", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_pointers_only, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to%select{| constant}1 pointer arguments", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_precede_definition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute declaration must precede definition", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_protected_visibility, CLASS_WARNING, (unsigned)diag::Severity::Warning, "target does not support 'protected' visibility; using 'default'", 634, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_return_pointers_only, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to return values that are pointers", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_return_pointers_refs_only, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to return values that are pointers or references", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_sentinel_named_arguments, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'sentinel' attribute requires named arguments", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_sentinel_not_variadic, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'sentinel' attribute only supported for variadic %select{functions|blocks}0", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_type_not_supported, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute argument not supported: %1", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_unknown_visibility, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown visibility %0", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_void_function_method, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 cannot be applied to %select{functions|Objective-C method}1 without return value", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_weak_on_field, CLASS_WARNING, (unsigned)diag::Severity::Warning, "__weak attribute cannot be specified on a field declaration", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_weak_on_local, CLASS_WARNING, (unsigned)diag::Severity::Warning, "__weak attribute cannot be specified on an automatic variable when ARC is not enabled", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_attribute_wrong_decl_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to %select{functions|unions|variables and functions|functions and global variables|functions, variables, and Objective-C interfaces|functions and methods|parameters|functions, methods and blocks|functions, methods, and classes|functions, methods, and parameters|functions, methods, and global variables|classes|enums|variables|methods|fields and global variables|structs|parameters and typedefs|variables and typedefs|thread-local variables|variables and fields|variables, data members and tag types|types and namespaces|Objective-C interfaces|methods and properties|struct or union|struct, union or class|types|Objective-C instance methods|init methods of interface or class extension declarations|variables, functions and classes|functions, variables, classes, and Objective-C interfaces|Objective-C protocols|variables with static or thread storage duration|functions, methods, properties, and global variables|structs, unions, and typedefs|structs and typedefs|interface or protocol declarations|kernel functions|non-K&R-style functions|variables, enums, fields and typedefs|functions, methods, enums, and classes|structs, classes, variables, functions, and inline namespaces|variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members|classes and enumerations|named declarations}1", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_auto_implicit_atomic_property, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "property is assumed atomic when auto-synthesizing the property", 253, SFINAE_Suppress, false, false, 2)
+DIAG(warn_auto_readonly_iboutlet_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "readonly IBOutlet property %0 when auto-synthesized may not work correctly with 'nib' loader", 495, SFINAE_Suppress, false, false, 2)
+DIAG(warn_auto_storage_class, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'auto' storage class specifier is redundant and incompatible with C++11", 70, SFINAE_Suppress, false, false, 2)
+DIAG(warn_auto_synthesizing_protocol_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "auto property synthesis will not synthesize property %0 declared in protocol %1", 435, SFINAE_Suppress, false, false, 2)
+DIAG(warn_auto_var_is_id, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'auto' deduced as 'id' in declaration of %0", 48, SFINAE_Suppress, false, false, 2)
+DIAG(warn_autosynthesis_property_in_superclass, CLASS_WARNING, (unsigned)diag::Severity::Warning, "auto property synthesis will not synthesize property %0; it will be implemented by its superclass, use @dynamic to acknowledge intention", 433, SFINAE_Suppress, false, false, 2)
+DIAG(warn_autosynthesis_property_ivar_match, CLASS_WARNING, (unsigned)diag::Severity::Warning, "autosynthesized property %0 will use %select{|synthesized}1 instance variable %2, not existing instance variable %3", 414, SFINAE_Suppress, false, false, 2)
+DIAG(warn_availability_unknown_platform, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown platform %0 in availability macro", 49, SFINAE_Suppress, false, false, 2)
+DIAG(warn_availability_version_ordering, CLASS_WARNING, (unsigned)diag::Severity::Warning, "feature cannot be %select{introduced|deprecated|obsoleted}0 in %1 version %2 before it was %select{introduced|deprecated|obsoleted}3 in version %4; attribute ignored", 49, SFINAE_Suppress, false, false, 2)
+DIAG(warn_bad_function_cast, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cast from function call of type %0 to non-matching type %1", 52, SFINAE_Suppress, false, false, 2)
+DIAG(warn_bad_receiver_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "receiver type %0 is not 'id' or interface pointer, consider casting it to 'id'", 496, SFINAE_Suppress, false, false, 2)
+DIAG(warn_base_class_is_uninit, CLASS_WARNING, (unsigned)diag::Severity::Warning, "base class %0 is uninitialized when used here to access %q1", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_bind_ref_member_to_parameter, CLASS_WARNING, (unsigned)diag::Severity::Warning, "binding reference member %0 to stack allocated parameter %1", 127, SFINAE_Suppress, false, false, 2)
+DIAG(warn_bind_ref_member_to_temporary, CLASS_WARNING, (unsigned)diag::Severity::Warning, "binding reference %select{|subobject of }1member %0 to a temporary value", 127, SFINAE_Suppress, false, false, 2)
+DIAG(warn_binding_null_to_reference, CLASS_WARNING, (unsigned)diag::Severity::Warning, "binding dereferenced null pointer to reference has undefined behavior", 406, SFINAE_Suppress, false, false, 2)
+DIAG(warn_bitfield_too_small_for_enum, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "bit-field %0 is not wide enough to store all enumerators of %1", 55, SFINAE_Suppress, false, false, 22)
+DIAG(warn_bitfield_width_exceeds_type_width, CLASS_WARNING, (unsigned)diag::Severity::Warning, "width of bit-field %0 (%1 bits) exceeds the width of its type; value will be truncated to %2 bit%s2", 56, SFINAE_Suppress, false, false, 2)
+DIAG(warn_bitwise_op_in_bitwise_op, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' within '%1'", 57, SFINAE_Suppress, false, false, 2)
+DIAG(warn_block_capture_autoreleasing, CLASS_WARNING, (unsigned)diag::Severity::Warning, "block captures an autoreleasing out-parameter, which may result in use-after-free bugs", 58, SFINAE_Suppress, false, false, 5)
+DIAG(warn_block_literal_attributes_on_omitted_return_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 ignored, because it cannot be applied to omitted return type", 247, SFINAE_Suppress, false, false, 0)
+DIAG(warn_block_literal_qualifiers_on_omitted_return_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' qualifier on omitted return type %1 has no effect", 251, SFINAE_Suppress, false, false, 0)
+DIAG(warn_bool_switch_condition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "switch condition has boolean value", 576, SFINAE_Suppress, false, false, 2)
+DIAG(warn_braces_around_scalar_init, CLASS_WARNING, (unsigned)diag::Severity::Warning, "braces around scalar initializer", 61, SFINAE_Suppress, false, false, 2)
+DIAG(warn_break_binds_to_switch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'break' is bound to loop, GCC binds it to switch", 215, SFINAE_Suppress, false, false, 2)
+DIAG(warn_builtin_unknown, CLASS_WARNING, (unsigned)diag::Severity::Error, "use of unknown builtin %0", 258, SFINAE_Suppress, false, false, 2)
+DIAG(warn_call_to_pure_virtual_member_function_from_ctor_dtor, CLASS_WARNING, (unsigned)diag::Severity::Warning, "call to pure virtual member function %0 has undefined behavior; overrides of %0 in subclasses are not available in the %select{constructor|destructor}1 of %2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_call_wrong_number_of_arguments, CLASS_WARNING, (unsigned)diag::Severity::Warning, "too %select{few|many}0 arguments in call to %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cannot_pass_non_pod_arg_to_vararg, CLASS_WARNING, (unsigned)diag::Severity::Error, "cannot pass object of %select{non-POD|non-trivial}0 type %1 through variadic %select{function|block|method|constructor}2; call will abort at runtime", 396, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cannot_resolve_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cannot resolve lock expression", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_case_empty_range, CLASS_WARNING, (unsigned)diag::Severity::Warning, "empty case range specified", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_case_value_overflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "overflow converting case value to switch condition type (%0 to %1)", 575, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cast_align, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cast from %0 to %1 increases required alignment from %2 to %3", 98, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cast_calling_conv, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cast between incompatible calling conventions '%0' and '%1'; calls through this pointer may abort at runtime", 99, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cast_nonnull_to_bool, CLASS_WARNING, (unsigned)diag::Severity::Warning, "nonnull %select{function call|parameter}0 '%1' will evaluate to 'true' on first encounter", 475, SFINAE_Suppress, false, false, 22)
+DIAG(warn_cast_pointer_from_sel, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cast of type %0 to %1 is deprecated; use sel_getName instead", 100, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cast_qual, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cast from %0 to %1 drops %select{const and volatile qualifiers|const qualifier|volatile qualifier}2", 101, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cast_qual2, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cast from %0 to %1 must have all intermediate pointers const qualified to be safe", 101, SFINAE_Suppress, false, false, 2)
+DIAG(warn_category_method_impl_match, CLASS_WARNING, (unsigned)diag::Severity::Warning, "category is implementing a method which will also be implemented by its primary class", 434, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cconv_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "calling convention %0 ignored for this target", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cconv_knr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "function with no prototype cannot use the %0 calling convention", 369, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cconv_structors, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 calling convention ignored on constructor/destructor", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cconv_varargs, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 calling convention ignored on variadic function", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cdtor_function_try_handler_mem_expr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot refer to a non-static member from the handler of a %select{constructor|destructor}0 function try block", 181, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cfstring_truncated, CLASS_WARNING, (unsigned)diag::Severity::Warning, "input conversion stopped due to an input byte that does not belong to the input codeset UTF-8", 3, SFINAE_Suppress, false, false, 2)
+DIAG(warn_class_method_not_found, CLASS_WARNING, (unsigned)diag::Severity::Warning, "class method %objcclass0 not found (return type defaults to 'id')", 423, SFINAE_Suppress, false, false, 2)
+DIAG(warn_class_method_not_found_with_typo, CLASS_WARNING, (unsigned)diag::Severity::Warning, "class method %objcclass0 not found (return type defaults to 'id'); did you mean %objcclass2?", 423, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cleanup_ext, CLASS_WARNING, (unsigned)diag::Severity::Warning, "GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier", 215, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cocoa_naming_owned_rule, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property follows Cocoa naming convention for returning 'owned' objects", 431, SFINAE_Suppress, false, false, 2)
+DIAG(warn_collection_expr_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "collection expression type %0 may not respond to %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_comma_operator, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "possible misuse of comma operator here", 106, SFINAE_Suppress, false, false, 2)
+DIAG(warn_comparison_always, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{self-|array }0comparison always evaluates to %select{false|true|a constant}1", 581, SFINAE_Suppress, false, false, 2)
+DIAG(warn_comparison_bitwise_always, CLASS_WARNING, (unsigned)diag::Severity::Warning, "bitwise comparison always evaluates to %select{false|true}0", 581, SFINAE_Suppress, false, false, 2)
+DIAG(warn_comparison_of_mixed_enum_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison of two values with different enumeration types%diff{ ($ and $)|}0,1", 178, SFINAE_Suppress, false, false, 2)
+DIAG(warn_concatenated_nsarray_literal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "concatenated NSString literal for an NSArray expression - possibly missing a comma", 442, SFINAE_Suppress, false, false, 2)
+DIAG(warn_condition_is_assignment, CLASS_WARNING, (unsigned)diag::Severity::Warning, "using the result of an assignment as a condition without parentheses", 463, SFINAE_Suppress, false, false, 2)
+DIAG(warn_condition_is_idiomatic_assignment, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "using the result of an assignment as a condition without parentheses", 246, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_overriding_param_modifiers, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting distributed object modifiers on parameter type in declaration of %0", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_overriding_param_types, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting parameter types in declaration of %0%diff{: $ vs $|}1,2", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_overriding_ret_type_modifiers, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting distributed object modifiers on return type in declaration of %0", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_overriding_ret_types, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting return type in declaration of %0%diff{: $ vs $|}1,2", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_overriding_variadic, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting variadic declaration of method and its implementation", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_param_modifiers, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting distributed object modifiers on parameter type in implementation of %0", 151, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_param_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting parameter types in implementation of %0%diff{: $ vs $|}1,2", 358, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_ret_type_modifiers, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting distributed object modifiers on return type in implementation of %0", 151, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_ret_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting return type in implementation of %0%diff{: $ vs $|}1,2", 359, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conflicting_variadic, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conflicting variadic declaration of method and its implementation", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conv_to_base_not_used, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conversion function converting %0 to its base class %1 will never be used", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conv_to_self_not_used, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conversion function converting %0 to itself will never be used", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_conv_to_void_not_used, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conversion function converting %0 to %1 will never be used", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_coroutine_promise_unhandled_exception_required_with_exceptions, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is required to declare the member 'unhandled_exception()' when exceptions are enabled", 120, SFINAE_Suppress, false, false, 14)
+DIAG(warn_ctor_parm_shadows_field, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "constructor parameter %0 shadows the field %1 of %2", 527, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_compat_constexpr_body_invalid_stmt, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of this statement in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_compat_constexpr_body_multiple_return, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "multiple return statements in constexpr function is incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_compat_constexpr_body_no_return, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "constexpr function with no return statements is incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_compat_constexpr_local_var, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable declaration in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_compat_constexpr_type_definition, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "type definition in a constexpr %select{function|constructor}0 is incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_compat_init_capture, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "initialized lambda captures are incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 3)
+DIAG(warn_cxx11_compat_variable_template, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable templates are incompatible with C++ standards before C++14", 88, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx11_gnu_attribute_on_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 ignored, because it cannot be applied to a type", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx14_compat_constexpr_not_const, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior", 116, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx14_compat_decomp_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "decomposition declarations are incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx14_compat_inline_variable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "inline variables are incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx14_compat_star_this_lambda_capture, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "by value capture of '*this' is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 3)
+DIAG(warn_cxx14_compat_static_assert_no_message, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "static_assert with no message is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx14_compat_template_nontype_parm_auto_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-type template parameters declared with %0 are incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx1z_compat_exception_spec_in_signature, CLASS_WARNING, (unsigned)diag::Severity::Warning, "mangled name of %0 will change in C++17 due to non-throwing exception specification in function signature", 84, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_array_size_conversion, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion from array size expression of type %0 to %select{integral|enumeration}1 type %2 is incompatible with C++98", 93, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_auto_type_specifier, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'auto' type specifier is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_cast_fn_obj, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cast between pointer-to-function and pointer-to-object is incompatible with C++98", 93, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_constexpr, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'constexpr' specifier is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_ctor_list_init, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "constructor call from initializer list is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_delegating_ctor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "delegating constructors are incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_empty_scalar_initializer, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "scalar initialized from empty initializer list is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_enum_friend, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "befriending enumeration type %0 is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_enum_nested_name_spec, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "enumeration type in nested name specifier is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_explicit_conversion_functions, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicit conversion functions are incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_friend_is_member, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "friend declaration naming a member of the declaring class is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_goto_into_protected_scope, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "jump from this goto statement to its label is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_indirect_goto_in_protected_scope, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "jump from this indirect goto statement to one of its possible targets is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_initializer_list_init, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "initialization of initializer_list object is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_non_static_member_use, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of non-static data member %0 in an unevaluated context is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_nonclass_type_friend, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-class friend type %0 is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_nontrivial_union_or_anon_struct_member, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{anonymous struct|union}0 member %1 with a non-trivial %select{constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}2 is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_pass_non_pod_arg_to_vararg, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "passing object of trivial but non-POD type %0 through variadic %select{function|block|method|constructor}1 is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_reference_list_init, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "reference initialized from initializer list is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_sfinae_access_control, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "substitution failure due to access control is incompatible with C++98", 90, SFINAE_Report, false, false, 2)
+DIAG(warn_cxx98_compat_static_data_member_in_union, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "static data member %0 in union is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_switch_into_protected_scope, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "jump from switch statement to this case label is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_temp_copy, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{copying variable|copying parameter|returning object|throwing object|copying member subobject|copying array element|allocating object|copying temporary|initializing base subobject|initializing vector element}1 of type %2 when binding a reference to a temporary would %select{invoke an inaccessible constructor|find no viable constructor|find ambiguous constructors|invoke a deleted constructor}0 in C++98", 91, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_arg_extra_parens, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "redundant parentheses surrounding address non-type template argument are incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_arg_local_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "local type %0 as template argument is incompatible with C++98", 92, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_arg_null, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of null pointer as non-type template argument is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_arg_object_internal, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-type template argument referring to %select{function|object}0 %1 with internal linkage is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_arg_unnamed_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unnamed type as template argument is incompatible with C++98", 94, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_outside_of_template, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of 'template' keyword outside of a template is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_parameter_default_in_function_template, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "default template arguments for a function template are incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_template_spec_decl_out_of_scope, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{class template|class template partial|variable template|variable template partial|function template|member function|static data member|member class|member enumeration}0 specialization of %1 outside namespace %2 is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_typename_outside_of_template, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of 'typename' outside of a template is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_unelaborated_friend_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "befriending %1 without '%select{struct|interface|union|class|enum}0' keyword is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_unicode_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%0' type specifier is incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx98_compat_using_decl_constructor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "inheriting constructors are incompatible with C++98", 90, SFINAE_Suppress, false, false, 2)
+DIAG(warn_cxx_ms_struct, CLASS_WARNING, (unsigned)diag::Severity::Error, "ms_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions", 270, SFINAE_Suppress, false, false, 2)
+DIAG(warn_dangling_std_initializer_list, CLASS_WARNING, (unsigned)diag::Severity::Warning, "array backing the initializer list will be destroyed at the end of %select{the full-expression|the constructor}0", 128, SFINAE_Suppress, false, false, 2)
+DIAG(warn_dealloc_in_category, CLASS_WARNING, (unsigned)diag::Severity::Warning, "-dealloc is being overridden in a category", 130, SFINAE_Suppress, false, false, 2)
+DIAG(warn_decl_in_param_list, CLASS_WARNING, (unsigned)diag::Severity::Warning, "declaration of %0 will not be visible outside of this function", 666, SFINAE_Suppress, false, false, 2)
+DIAG(warn_decl_shadow, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration shadows a %select{local variable|variable in %2|static data member of %2|field of %2|typedef in %2|type alias in %2}1", 524, SFINAE_Suppress, false, false, 2)
+DIAG(warn_decl_shadow_uncaptured_local, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration shadows a %select{local variable|variable in %2|static data member of %2|field of %2|typedef in %2|type alias in %2}1", 530, SFINAE_Suppress, false, false, 2)
+DIAG(warn_declspec_attribute_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 is ignored, place it after \"%select{class|struct|interface|union|enum}1\" to apply attribute to type declaration", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_deep_exception_specs_differ, CLASS_WARNING, (unsigned)diag::Severity::Warning, "exception specifications of %select{return|argument}0 types differ", 267, SFINAE_Suppress, false, false, 2)
+DIAG(warn_def_missing_case, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%plural{1:enumeration value %1 not explicitly handled in switch|2:enumeration values %1 and %2 not explicitly handled in switch|3:enumeration values %1, %2, and %3 not explicitly handled in switch|:%0 enumeration values not explicitly handled in switch: %1, %2, %3...}0", 578, SFINAE_Suppress, false, false, 2)
+DIAG(warn_default_atomic_custom_getter_setter, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "atomic by default property %0 has a user defined %select{getter|setter}1 (property should be marked 'atomic' if this is intended)", 125, SFINAE_Suppress, false, false, 2)
+DIAG(warn_delegating_ctor_cycle, CLASS_WARNING, (unsigned)diag::Severity::Error, "constructor for %0 creates a delegation cycle", 133, SFINAE_Suppress, false, false, 2)
+DIAG(warn_delete_abstract_non_virtual_dtor, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{delete|destructor}0 called on %1 that is abstract but has non-virtual destructor", 135, SFINAE_Suppress, false, false, 2)
+DIAG(warn_delete_array_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'delete' applied to a pointer-to-array type %0 treated as 'delete[]'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_delete_incomplete, CLASS_WARNING, (unsigned)diag::Severity::Warning, "deleting pointer to incomplete type %0 may cause undefined behavior", 134, SFINAE_Suppress, false, false, 2)
+DIAG(warn_delete_non_virtual_dtor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{delete|destructor}0 called on non-final %1 that has virtual functions but non-virtual destructor", 135, SFINAE_Suppress, false, false, 2)
+DIAG(warn_deprecated, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is deprecated", 138, SFINAE_Suppress, false, false, 25)
+DIAG(warn_deprecated_anonymous_namespace, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'deprecated' attribute on anonymous namespace ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_deprecated_copy_operation, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "definition of implicit copy %select{constructor|assignment operator}1 for %0 is deprecated because it has a user-declared %select{copy %select{assignment operator|constructor}1|destructor}2", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_deprecated_def, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "Implementing deprecated %select{method|class|category}0", 140, SFINAE_Suppress, false, false, 2)
+DIAG(warn_deprecated_fwdclass_message, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 may be deprecated because the receiver type is unknown", 138, SFINAE_Suppress, false, false, 25)
+DIAG(warn_deprecated_message, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is deprecated: %1", 138, SFINAE_Suppress, false, false, 25)
+DIAG(warn_deprecated_redundant_constexpr_static_def, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_deprecated_register, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'register' storage class specifier is deprecated and incompatible with C++1z", 145, SFINAE_Suppress, false, false, 25)
+DIAG(warn_deprecated_string_literal_conversion, CLASS_WARNING, (unsigned)diag::Severity::Warning, "conversion from string literal to %0 is deprecated", 71, SFINAE_Suppress, false, false, 25)
+DIAG(warn_destructor_marked_not_override_overriding, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 overrides a destructor but is not marked 'override'", 279, SFINAE_Suppress, false, false, 2)
+DIAG(warn_diagnose_if_succeeded, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0", 659, SFINAE_Suppress, false, true, 2)
+DIAG(warn_direct_initialize_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "explicit call to +initialize results in duplicate call to +initialize", 184, SFINAE_Suppress, false, false, 2)
+DIAG(warn_direct_ivar_access, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "instance variable %0 is being directly accessed", 147, SFINAE_Suppress, false, false, 2)
+DIAG(warn_direct_super_initialize_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "explicit call to [super initialize] should only be in implementation of +initialize", 184, SFINAE_Suppress, false, false, 2)
+DIAG(warn_dllimport_dropped_from_inline_function, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%q0 redeclared inline; %1 attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_double_const_requires_fp64, CLASS_WARNING, (unsigned)diag::Severity::Warning, "double precision constant requires cl_khr_fp64, casting to single precision", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_double_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "acquiring %0 '%1' that is already held", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_dup_category_def, CLASS_WARNING, (unsigned)diag::Severity::Warning, "duplicate definition of category %1 on interface %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_duplicate_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 is already applied with different parameters", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_duplicate_attribute_exact, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute %0 is already applied", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_duplicate_declspec, CLASS_WARNING, (unsigned)diag::Severity::Warning, "duplicate '%0' declaration specifier", 164, SFINAE_Suppress, false, false, 2)
+DIAG(warn_duplicate_enum_values, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "element %0 has been implicitly assigned %1 which another element has been assigned", 165, SFINAE_Suppress, false, false, 2)
+DIAG(warn_duplicate_method_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "multiple declarations of method %0 found and ignored", 167, SFINAE_Suppress, false, false, 2)
+DIAG(warn_duplicate_protocol_def, CLASS_WARNING, (unsigned)diag::Severity::Warning, "duplicate protocol definition of %0 is ignored", 168, SFINAE_Suppress, false, false, 2)
+DIAG(warn_dyn_class_memaccess, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{destination for|source of|first operand of|second operand of}0 this %1 call is a pointer to %select{|class containing a }2dynamic class %3; vtable pointer will be %select{overwritten|copied|moved|compared}4", 169, SFINAE_Suppress, false, false, 2)
+DIAG(warn_empty_for_body, CLASS_WARNING, (unsigned)diag::Severity::Warning, "for loop has empty body", 173, SFINAE_Suppress, false, false, 2)
+DIAG(warn_empty_format_string, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format string is empty", 209, SFINAE_Suppress, false, false, 26)
+DIAG(warn_empty_if_body, CLASS_WARNING, (unsigned)diag::Severity::Warning, "if statement has empty body", 173, SFINAE_Suppress, false, false, 2)
+DIAG(warn_empty_parens_are_function_decl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "empty parentheses interpreted as a function declaration", 665, SFINAE_Suppress, false, false, 2)
+DIAG(warn_empty_range_based_for_body, CLASS_WARNING, (unsigned)diag::Severity::Warning, "range-based for loop has empty body", 173, SFINAE_Suppress, false, false, 2)
+DIAG(warn_empty_switch_body, CLASS_WARNING, (unsigned)diag::Severity::Warning, "switch statement has empty body", 173, SFINAE_Suppress, false, false, 2)
+DIAG(warn_empty_while_body, CLASS_WARNING, (unsigned)diag::Severity::Warning, "while loop has empty body", 173, SFINAE_Suppress, false, false, 2)
+DIAG(warn_enum_value_overflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "overflow in enumeration value", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_equality_with_extra_parens, CLASS_WARNING, (unsigned)diag::Severity::Warning, "equality comparison with extraneous parentheses", 464, SFINAE_Suppress, false, false, 2)
+DIAG(warn_exception_caught_by_earlier_handler, CLASS_WARNING, (unsigned)diag::Severity::Warning, "exception of type %0 will be caught by earlier handler", 181, SFINAE_Suppress, false, false, 2)
+DIAG(warn_exception_spec_deprecated, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "dynamic exception specifications are deprecated", 139, SFINAE_Suppress, false, false, 25)
+DIAG(warn_exit_time_destructor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration requires an exit-time destructor", 182, SFINAE_Suppress, false, false, 2)
+DIAG(warn_expecting_lock_held_on_loop, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "expecting %0 '%1' to be held at start of each loop", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_expecting_locked, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "expecting %0 '%1' to be held at the end of function", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_explicit_instantiation_after_specialization, CLASS_WARNING, (unsigned)diag::Severity::Warning, "explicit instantiation of %0 that occurs after an explicit specialization has no effect", 289, SFINAE_Suppress, false, false, 2)
+DIAG(warn_explicit_instantiation_inline_0x, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicit instantiation cannot be 'inline'", 70, SFINAE_Suppress, false, false, 2)
+DIAG(warn_explicit_instantiation_must_be_global_0x, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicit instantiation of %0 must occur at global scope", 70, SFINAE_Suppress, false, false, 2)
+DIAG(warn_explicit_instantiation_out_of_scope_0x, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicit instantiation of %0 not in a namespace enclosing %1", 70, SFINAE_Suppress, false, false, 2)
+DIAG(warn_explicit_instantiation_unqualified_wrong_namespace_0x, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicit instantiation of %q0 must occur in namespace %1", 70, SFINAE_Suppress, false, false, 2)
+DIAG(warn_extern_init, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'extern' variable has an initializer", 188, SFINAE_Suppress, false, false, 2)
+DIAG(warn_falloff_nonvoid_coroutine, CLASS_WARNING, (unsigned)diag::Severity::Warning, "control reaches end of non-void coroutine", 510, SFINAE_Suppress, false, false, 2)
+DIAG(warn_falloff_nonvoid_function, CLASS_WARNING, (unsigned)diag::Severity::Warning, "control reaches end of non-void function", 510, SFINAE_Suppress, false, false, 2)
+DIAG(warn_falloff_nonvoid_lambda, CLASS_WARNING, (unsigned)diag::Severity::Warning, "control reaches end of non-void lambda", 510, SFINAE_Suppress, false, false, 3)
+DIAG(warn_falloff_noreturn_function, CLASS_WARNING, (unsigned)diag::Severity::Warning, "function declared 'noreturn' should not return", 299, SFINAE_Suppress, false, false, 2)
+DIAG(warn_fallthrough_attr_unreachable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "fallthrough annotation in unreachable code", 256, SFINAE_Suppress, false, false, 2)
+DIAG(warn_field_is_uninit, CLASS_WARNING, (unsigned)diag::Severity::Warning, "field %0 is uninitialized when used here", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_flag_enum_constant_out_of_range, CLASS_WARNING, (unsigned)diag::Severity::Warning, "enumeration value %0 is out of range of flags in enumeration type %1", 194, SFINAE_Suppress, false, false, 2)
+DIAG(warn_float_overflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "magnitude of floating-point constant too large for type %0; maximum is %1", 315, SFINAE_Suppress, false, false, 2)
+DIAG(warn_float_underflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "magnitude of floating-point constant too small for type %0; minimum is %1", 315, SFINAE_Suppress, false, false, 2)
+DIAG(warn_floatingpoint_eq, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "comparing floating point with == or != is unsafe", 197, SFINAE_Suppress, false, false, 2)
+DIAG(warn_for_range_begin_end_types_differ, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'begin' and 'end' returning different types (%0 and %1) is incompatible with C++ standards before C++1z", 86, SFINAE_Suppress, false, false, 2)
+DIAG(warn_for_range_const_reference_copy, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "loop variable %0 %diff{has type $ but is initialized with type $| is initialized with a value of a different type}1,2 resulting in a copy", 494, SFINAE_Suppress, false, false, 2)
+DIAG(warn_for_range_copy, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "loop variable %0 of type %1 creates a copy from type %2", 494, SFINAE_Suppress, false, false, 2)
+DIAG(warn_for_range_variable_always_copy, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "loop variable %0 is always a copy because the range of type %1 does not return a reference", 494, SFINAE_Suppress, false, false, 2)
+DIAG(warn_format_P_no_precision, CLASS_WARNING, (unsigned)diag::Severity::Warning, "using '%%P' format specifier without precision", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_argument_needs_cast, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{values of type|enum values with underlying type}2 '%0' should not be used as format arguments; add an explicit cast to %1 instead", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_conversion_argument_type_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format specifies type %0 but the argument has %select{type|underlying type}2 %1", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_conversion_argument_type_mismatch_pedantic, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "format specifies type %0 but the argument has %select{type|underlying type}2 %1", 206, SFINAE_Suppress, false, false, 2)
+DIAG(warn_format_invalid_annotation, CLASS_WARNING, (unsigned)diag::Severity::Warning, "using '%0' format specifier annotation outside of os_log()/os_trace()", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_invalid_conversion, CLASS_WARNING, (unsigned)diag::Severity::Warning, "invalid conversion specifier '%0'", 203, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_invalid_positional_specifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "invalid position specified for %select{field width|field precision}0", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_mix_positional_nonpositional_args, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot mix positional and non-positional arguments in format string", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_non_standard, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%0' %select{length modifier|conversion specifier}1 is not supported by ISO C", 204, SFINAE_Suppress, false, false, 2)
+DIAG(warn_format_non_standard_conversion_spec, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "using length modifier '%0' with conversion specifier '%1' is not supported by ISO C", 204, SFINAE_Suppress, false, false, 2)
+DIAG(warn_format_non_standard_positional_arg, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "positional arguments are not supported by ISO C", 204, SFINAE_Suppress, false, false, 2)
+DIAG(warn_format_nonliteral, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "format string is not a string literal", 205, SFINAE_Suppress, false, false, 2)
+DIAG(warn_format_nonliteral_noargs, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format string is not a string literal (potentially insecure)", 207, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_nonsensical_length, CLASS_WARNING, (unsigned)diag::Severity::Warning, "length modifier '%0' results in undefined behavior or no effect with '%1' conversion specifier", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_string_is_wide_literal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format string should not be a wide string", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_format_zero_positional_specifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "position arguments in format strings start counting at 1 (not 0)", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_forward_class_redefinition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "redefinition of forward class %0 of a typedef name of an object type is ignored", 418, SFINAE_Suppress, false, false, 2)
+DIAG(warn_fun_excludes_mutex, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "cannot call function '%1' while %0 '%2' is held", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_fun_requires_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "calling function '%1' requires holding %0 %select{'%2'|'%2' exclusively}3", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_fun_requires_lock_precise, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "calling function '%1' requires holding %0 %select{'%2'|'%2' exclusively}3", 592, SFINAE_Suppress, false, false, 2)
+DIAG(warn_func_template_missing, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "instantiation of function %q0 required here, but no definition is available", 605, SFINAE_Suppress, false, false, 2)
+DIAG(warn_function_def_in_objc_container, CLASS_WARNING, (unsigned)diag::Severity::Warning, "function definition inside an Objective-C container is deprecated", 213, SFINAE_Suppress, false, false, 2)
+DIAG(warn_function_marked_not_override_overriding, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 overrides a member function but is not marked 'override'", 280, SFINAE_Suppress, false, false, 2)
+DIAG(warn_gc_attribute_weak_on_local, CLASS_WARNING, (unsigned)diag::Severity::Warning, "Objective-C GC does not allow weak variables on the stack", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_global_constructor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration requires a global constructor", 216, SFINAE_Suppress, false, false, 2)
+DIAG(warn_global_destructor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration requires a global destructor", 216, SFINAE_Suppress, false, false, 2)
+DIAG(warn_gnu_inline_attribute_requires_inline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'gnu_inline' attribute requires function to be marked 'inline', attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_guarded_pass_by_reference, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "passing variable '%1' by reference requires holding %0 %select{'%2'|'%2' exclusively}3", 593, SFINAE_Suppress, false, false, 2)
+DIAG(warn_iboutlet_object_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{instance variable|property}2 with %0 attribute must be an object type (invalid %1)", 297, SFINAE_Suppress, false, false, 2)
+DIAG(warn_iboutletcollection_property_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "IBOutletCollection properties should be copy/strong and not assign", 297, SFINAE_Suppress, false, false, 2)
+DIAG(warn_identity_field_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "assigning %select{field|instance variable}0 to itself", 518, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ignored_ms_inheritance, CLASS_WARNING, (unsigned)diag::Severity::Warning, "inheritance model ignored on %select{primary template|partial specialization}0", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_illegal_constant_array_size, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "size of static array must be an integer constant expression", 471, SFINAE_Suppress, false, false, 2)
+DIAG(warn_impcast_bitfield_precision_constant, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit truncation from %2 to bit-field changes value from %0 to %1", 54, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_bool_to_null_pointer, CLASS_WARNING, (unsigned)diag::Severity::Warning, "initialization of pointer of type %0 to null from a constant boolean expression", 59, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_complex_scalar, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion discards imaginary component: %0 to %1", 118, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_different_enum_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit conversion from enumeration type %0 to different enumeration type %1", 179, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_double_promotion, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion increases floating-point precision: %0 to %1", 163, SFINAE_Suppress, false, false, 2)
+DIAG(warn_impcast_float_integer, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion turns floating-point number into integer: %0 to %1", 196, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_float_precision, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion loses floating-point precision: %0 to %1", 118, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_float_to_integer, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion of out of range value from %0 to %1 changes value from %2 to %3", 198, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_float_to_integer_zero, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion from %0 to %1 changes non-zero value from %2 to %3", 199, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_floating_point_to_bool, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit conversion turns floating-point number into bool: %0 to %1", 254, SFINAE_Suppress, false, false, 2)
+DIAG(warn_impcast_integer_64_32, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion loses integer precision: %0 to %1", 537, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_integer_precision, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion loses integer precision: %0 to %1", 118, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_integer_precision_constant, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit conversion from %2 to %3 changes value from %0 to %1", 114, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_integer_sign, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion changes signedness: %0 to %1", 539, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_integer_sign_conditional, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "operand of ? changes signedness: %0 to %1", 539, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_literal_float_to_integer, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit conversion from %0 to %1 changes value from %2 to %3", 314, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_null_pointer_to_integer, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit conversion of %select{NULL|nullptr}0 constant to %1", 405, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_objective_c_literal_to_bool, CLASS_WARNING, (unsigned)diag::Severity::Warning, "implicit boolean conversion of Objective-C object literal always evaluates to true", 421, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_pointer_to_bool, CLASS_WARNING, (unsigned)diag::Severity::Warning, "address of%select{| function| array}0 '%1' will always evaluate to 'true'", 475, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_string_literal_to_bool, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion turns string literal into bool: %0 to %1", 569, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impcast_vector_scalar, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion turns vector to scalar: %0 to %1", 118, SFINAE_Suppress, false, false, 22)
+DIAG(warn_impl_required_for_class_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "class property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this class implementation", 429, SFINAE_Suppress, false, false, 2)
+DIAG(warn_impl_required_in_category_for_class_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "class property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this category", 429, SFINAE_Suppress, false, false, 2)
+DIAG(warn_implements_nscopying, CLASS_WARNING, (unsigned)diag::Severity::Warning, "default assign attribute on property %0 which implements NSCopying protocol is not appropriate with -fobjc-gc[-only]", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_implicit_atomic_property, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "property is assumed atomic by default", 253, SFINAE_Suppress, false, false, 2)
+DIAG(warn_implicit_decl_requires_sysheader, CLASS_WARNING, (unsigned)diag::Severity::Warning, "declaration of built-in function '%1' requires inclusion of the header <%0>", 65, SFINAE_Suppress, false, false, 2)
+DIAG(warn_implicit_function_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit declaration of function %0", 258, SFINAE_Suppress, false, false, 2)
+DIAG(warn_implicitly_retains_self, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior", 260, SFINAE_Suppress, false, false, 2)
+DIAG(warn_inaccessible_base_class, CLASS_WARNING, (unsigned)diag::Severity::Warning, "direct base %0 is inaccessible due to ambiguity:%1", 264, SFINAE_Suppress, false, false, 2)
+DIAG(warn_incompatible_exception_specs, CLASS_WARNING, (unsigned)diag::Severity::Warning, "target exception specification is not superset of source", 267, SFINAE_Suppress, false, false, 2)
+DIAG(warn_incompatible_qualified_id, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{%diff{assigning to $ from incompatible type $|assigning to type from incompatible type}0,1|%diff{passing $ to parameter of incompatible type $|passing type to parameter of incompatible type}0,1|%diff{returning $ from a function with incompatible result type $|returning type from a function with incompatible result type}0,1|%diff{converting $ to incompatible type $|converting type to incompatible type}0,1|%diff{initializing $ with an expression of incompatible type $|initializing type with an expression of incompatible type}0,1|%diff{sending $ to parameter of incompatible type $|sending type to parameter of incompatible type}0,1|%diff{casting $ to incompatible type $|casting type to incompatible type}0,1}2", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_incompatible_vectors, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "incompatible vector types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2", 663, SFINAE_Suppress, false, false, 2)
+DIAG(warn_incomplete_encoded_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "encoding of %0 type is incomplete because %1 component has unknown encoding", 176, SFINAE_Suppress, false, false, 2)
+DIAG(warn_increment_bool, CLASS_WARNING, (unsigned)diag::Severity::Warning, "incrementing expression of type bool is deprecated and incompatible with C++1z", 141, SFINAE_Suppress, false, false, 25)
+DIAG(warn_independentclass_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'objc_independent_class' attribute may be put on a typedef only; attribute is ignored", 5, SFINAE_Suppress, false, false, 2)
+DIAG(warn_indirection_through_null, CLASS_WARNING, (unsigned)diag::Severity::Warning, "indirection of non-volatile null pointer will be deleted, not trap", 406, SFINAE_Suppress, false, false, 2)
+DIAG(warn_infinite_recursive_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "all paths through this function will call itself", 282, SFINAE_Suppress, false, false, 2)
+DIAG(warn_init_list_constant_narrowing, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "constant expression evaluates to %0 which cannot be narrowed to type %1 in C++11", 78, SFINAE_Suppress, false, false, 2)
+DIAG(warn_init_list_type_narrowing, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "type %0 cannot be narrowed to %1 in initializer list in C++11", 78, SFINAE_Suppress, false, false, 2)
+DIAG(warn_init_list_variable_narrowing, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-constant-expression cannot be narrowed from type %0 to %1 in initializer list in C++11", 78, SFINAE_Suppress, false, false, 2)
+DIAG(warn_init_ptr_member_to_parameter_addr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "initializing pointer member %0 with the stack address of parameter %1", 127, SFINAE_Suppress, false, false, 2)
+DIAG(warn_initializer_out_of_order, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{field|base class}0 %1 will be initialized after %select{field|base}2 %3", 504, SFINAE_Suppress, false, false, 2)
+DIAG(warn_initializer_overrides, CLASS_WARNING, (unsigned)diag::Severity::Warning, "initializer overrides prior initialization of this subobject", 284, SFINAE_Suppress, false, false, 2)
+DIAG(warn_inline_namespace_reopened_noninline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "inline namespace reopened as a non-inline namespace", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_inst_method_not_found, CLASS_WARNING, (unsigned)diag::Severity::Warning, "instance method %objcinstance0 not found (return type defaults to 'id')", 423, SFINAE_Suppress, false, false, 2)
+DIAG(warn_instance_method_not_found_with_typo, CLASS_WARNING, (unsigned)diag::Severity::Warning, "instance method %objcinstance0 not found (return type defaults to 'id'); did you mean %objcinstance2?", 423, SFINAE_Suppress, false, false, 2)
+DIAG(warn_instance_method_on_class_found, CLASS_WARNING, (unsigned)diag::Severity::Warning, "instance method %0 found instead of class method %1", 423, SFINAE_Suppress, false, false, 2)
+DIAG(warn_int_to_pointer_cast, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cast to %1 from smaller integer type %0", 292, SFINAE_Suppress, false, false, 2)
+DIAG(warn_int_to_void_pointer_cast, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cast to %1 from smaller integer type %0", 293, SFINAE_Suppress, false, false, 2)
+DIAG(warn_internal_linkage_local_storage, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'internal_linkage' attribute on a non-static local variable is ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_invalid_asm_cast_lvalue, CLASS_WARNING, (unsigned)diag::Severity::Warning, "invalid use of a cast in an inline asm context requiring an l-value: accepted due to -fheinous-gnu-extensions, but clang may remove support for this in the future", 0, SFINAE_Suppress, false, false, 12)
+DIAG(warn_invalid_capability_name, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "invalid capability name '%0'; capability name must be 'mutex' or 'role'", 589, SFINAE_Suppress, false, false, 2)
+DIAG(warn_invalid_initializer_from_system_header, CLASS_WARNING, (unsigned)diag::Severity::Warning, "invalid constructor form class in system header, should not be explicit", 298, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ivar_use_hidden, CLASS_WARNING, (unsigned)diag::Severity::Warning, "local declaration of %0 hides instance variable", 529, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ivars_in_interface, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "declaration of instance variables in the interface is deprecated", 419, SFINAE_Suppress, false, false, 2)
+DIAG(warn_jump_out_of_seh_finally, CLASS_WARNING, (unsigned)diag::Severity::Warning, "jump out of __finally block has undefined behavior", 307, SFINAE_Suppress, false, false, 2)
+DIAG(warn_kern_is_inline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignored 'inline' attribute on kernel function %0", 124, SFINAE_Suppress, false, false, 2)
+DIAG(warn_kern_is_method, CLASS_EXTENSION, (unsigned)diag::Severity::Ignored, "kernel function %0 is a member function; this may not be accepted by nvcc", 124, SFINAE_Suppress, false, false, 2)
+DIAG(warn_lock_exclusive_and_shared, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 '%1' is acquired exclusively and shared in the same scope", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_lock_some_predecessors, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 '%1' is not held on every path through here", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_logical_and_in_logical_or, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'&&' within '||'", 318, SFINAE_Suppress, false, false, 2)
+DIAG(warn_logical_instead_of_bitwise, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of logical '%0' with constant operand", 115, SFINAE_Suppress, false, false, 2)
+DIAG(warn_logical_not_on_lhs_of_check, CLASS_WARNING, (unsigned)diag::Severity::Warning, "logical not is only applied to the left hand side of this %select{comparison|bitwise operator}0", 317, SFINAE_Suppress, false, false, 2)
+DIAG(warn_loop_ctrl_binds_to_inner, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' is bound to current loop, GCC binds it to the enclosing loop", 215, SFINAE_Suppress, false, false, 2)
+DIAG(warn_loop_state_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "state of variable '%0' must match at the entry and exit of loop", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_lunsigned_always_true_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison of unsigned%select{| enum}2 expression %0 is always %1", 581, SFINAE_Suppress, false, false, 2)
+DIAG(warn_main_one_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "only one parameter on 'main' declaration", 322, SFINAE_Suppress, false, false, 2)
+DIAG(warn_main_redefined, CLASS_WARNING, (unsigned)diag::Severity::Warning, "variable named 'main' with external linkage has undefined behavior", 322, SFINAE_Suppress, false, false, 2)
+DIAG(warn_main_returns_bool_literal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "bool literal returned from 'main'", 322, SFINAE_Suppress, false, false, 2)
+DIAG(warn_max_unsigned_zero, CLASS_WARNING, (unsigned)diag::Severity::Warning, "taking the max of %select{a value and unsigned zero|unsigned zero and a value}0 is always equal to the other value", 326, SFINAE_Suppress, false, false, 2)
+DIAG(warn_maybe_falloff_nonvoid_coroutine, CLASS_WARNING, (unsigned)diag::Severity::Warning, "control may reach end of non-void coroutine", 510, SFINAE_Suppress, false, false, 2)
+DIAG(warn_maybe_falloff_nonvoid_function, CLASS_WARNING, (unsigned)diag::Severity::Warning, "control may reach end of non-void function", 510, SFINAE_Suppress, false, false, 2)
+DIAG(warn_maybe_falloff_nonvoid_lambda, CLASS_WARNING, (unsigned)diag::Severity::Warning, "control may reach end of non-void lambda", 510, SFINAE_Suppress, false, false, 3)
+DIAG(warn_maybe_uninit_var, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable %0 may be uninitialized when %select{used here|captured by block}1", 112, SFINAE_Suppress, false, false, 2)
+DIAG(warn_maynot_respond, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 may not respond to %1", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_member_extra_qualification, CLASS_WARNING, (unsigned)diag::Severity::Warning, "extra qualification on member %0", 343, SFINAE_Suppress, false, false, 2)
+DIAG(warn_memcpy_chk_overflow, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 will always overflow destination buffer", 64, SFINAE_Suppress, false, false, 2)
+DIAG(warn_memsize_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "size argument in %0 call is a comparison", 327, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mips_interrupt_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "MIPS 'interrupt' attribute only applies to functions that have %select{no parameters|a 'void' return type}0", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mismatched_availability, CLASS_WARNING, (unsigned)diag::Severity::Warning, "availability does not match previous declaration", 49, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mismatched_availability_override, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{|overriding }4method %select{introduced after|deprecated before|obsoleted before}0 %select{the protocol method it implements|overridden method}4 on %1 (%2 vs. %3)", 49, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mismatched_availability_override_unavail, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{|overriding }1method cannot be unavailable on %0 when %select{the protocol method it implements|its overridden method}1 is available", 49, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mismatched_delete_new, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'delete%select{|[]}0' applied to a pointer that was allocated with 'new%select{[]|}0'; did you mean 'delete%select{[]|}0'?", 357, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mismatched_nullability_attr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "nullability specifier %0 conflicts with existing specifier %1", 407, SFINAE_Suppress, false, false, 18)
+DIAG(warn_mismatched_section, CLASS_WARNING, (unsigned)diag::Severity::Warning, "section does not match previous declaration", 514, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_braces, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "suggest braces around initialization of subobject", 361, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_case, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%plural{1:enumeration value %1 not handled in switch|2:enumeration values %1 and %2 not handled in switch|3:enumeration values %1, %2, and %3 not handled in switch|:%0 enumeration values not handled in switch: %1, %2, %3...}0", 575, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_case_for_condition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "no case matching constant switch condition '%0'", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_explicit_synthesis, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "auto property synthesis is synthesizing property not explicitly synthesized", 424, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_field_initializers, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "missing field %0 initializer", 364, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_format_string, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format string missing", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_missing_method_return_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "method has no return type specified; defaults to 'id'", 367, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_prototype, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "no previous prototype for function %0", 370, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_sentinel, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing sentinel in %select{function call|method dispatch|block call}0", 521, SFINAE_Suppress, false, false, 2)
+DIAG(warn_missing_variable_declarations, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "no previous extern declaration for non-static variable %0", 373, SFINAE_Suppress, false, false, 2)
+DIAG(warn_mixed_sign_comparison, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "comparison of integers of different signs: %0 and %1", 538, SFINAE_Suppress, false, false, 2)
+DIAG(warn_modifying_shadowing_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "modifying constructor parameter %0 that shadows a field of %1", 528, SFINAE_Suppress, false, false, 2)
+DIAG(warn_multiple_method_decl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "multiple methods named %0 found", 426, SFINAE_Suppress, false, false, 2)
+DIAG(warn_multiple_selectors, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "several methods with selector %0 of mismatched types are found for the @selector expression", 516, SFINAE_Suppress, false, false, 2)
+DIAG(warn_namespace_member_extra_qualification, CLASS_WARNING, (unsigned)diag::Severity::Warning, "extra qualification on member %0", 190, SFINAE_Suppress, false, false, 2)
+DIAG(warn_neon_vector_initializer_non_portable, CLASS_WARNING, (unsigned)diag::Severity::Warning, "vector initializers are not compatible with NEON intrinsics in big endian mode", 402, SFINAE_Suppress, false, false, 2)
+DIAG(warn_no_autosynthesis_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "auto property synthesis will not synthesize property %0 because it is 'readwrite' but it will be synthesized 'readonly' via another property", 433, SFINAE_Suppress, false, false, 2)
+DIAG(warn_no_autosynthesis_shared_ivar_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "auto property synthesis will not synthesize property %0 because it cannot share an ivar with another synthesized property", 433, SFINAE_Suppress, false, false, 2)
+DIAG(warn_no_constructor_for_refconst, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{struct|interface|union|class|enum}0 %1 does not declare any constructor to initialize its non-modifiable members", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_no_underlying_type_specified_for_enum_bitfield, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "enums in the Microsoft ABI are signed integers by default; consider giving the enum %0 an unsigned underlying type to make this code portable", 541, SFINAE_Suppress, false, false, 2)
+DIAG(warn_no_unlock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 '%1' is still held at the end of function", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_non_contravariant_overriding_param_types, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting parameter types in declaration of %0: %1 vs %2", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_non_contravariant_param_types, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting parameter types in implementation of %0: %1 vs %2", 328, SFINAE_Suppress, false, false, 2)
+DIAG(warn_non_covariant_overriding_ret_types, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting return type in declaration of %0: %1 vs %2", 459, SFINAE_Suppress, false, false, 2)
+DIAG(warn_non_covariant_ret_types, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "conflicting return type in implementation of %0: %1 vs %2", 328, SFINAE_Suppress, false, false, 2)
+DIAG(warn_non_literal_null_pointer, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expression which evaluates to zero treated as a null pointer constant of type %0", 393, SFINAE_Suppress, false, false, 22)
+DIAG(warn_non_pod_vararg_with_format_string, CLASS_WARNING, (unsigned)diag::Severity::Error, "cannot pass %select{non-POD|non-trivial}0 object of type %1 to variadic %select{function|block|method|constructor}2; expected type from format string was %3", 396, SFINAE_Suppress, false, false, 2)
+DIAG(warn_non_virtual_dtor, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 has virtual functions but non-virtual destructor", 397, SFINAE_Suppress, false, false, 2)
+DIAG(warn_nonnull_expr_compare, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison of nonnull %select{function call|parameter}0 '%1' %select{not |}2equal to a null pointer is '%select{true|false}2' on first encounter", 584, SFINAE_Suppress, false, false, 2)
+DIAG(warn_noreturn_function_has_return_expr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "function %0 declared 'noreturn' should not return", 299, SFINAE_Suppress, false, false, 2)
+DIAG(warn_not_a_doxygen_trailing_member_comment, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "not a Doxygen trailing comment", 157, SFINAE_Suppress, false, false, 23)
+DIAG(warn_not_compound_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of unary operator that may be intended as compound assignment (%0=)", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_not_enough_argument, CLASS_WARNING, (unsigned)diag::Severity::Warning, "not enough variable arguments in %0 declaration to fit a sentinel", 521, SFINAE_Suppress, false, false, 2)
+DIAG(warn_not_in_enum, CLASS_WARNING, (unsigned)diag::Severity::Warning, "case value not in enumerated type %0", 575, SFINAE_Suppress, false, false, 2)
+DIAG(warn_not_in_enum_assignment, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "integer constant not in range of enumerated type %0", 37, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ns_attribute_wrong_parameter_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to %select{Objective-C object|pointer|pointer-to-CF-pointer}1 parameters", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ns_attribute_wrong_return_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute only applies to %select{functions|methods|properties}1 that return %select{an Objective-C object|a pointer|a non-retainable pointer}2", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_nsobject_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'NSObject' attribute may be put on a typedef only; attribute is ignored", 6, SFINAE_Suppress, false, false, 2)
+DIAG(warn_null_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "null passed to a callee that requires a non-null argument", 398, SFINAE_Suppress, false, false, 26)
+DIAG(warn_null_in_arithmetic_operation, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of NULL in arithmetic operation", 403, SFINAE_Suppress, false, false, 2)
+DIAG(warn_null_in_comparison_operation, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison between NULL and non-pointer %select{(%1 and NULL)|(NULL and %1)}0", 403, SFINAE_Suppress, false, false, 2)
+DIAG(warn_null_pointer_compare, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison of %select{address of|function|array}0 '%1' %select{not |}2equal to a null pointer is always %select{true|false}2", 584, SFINAE_Suppress, false, false, 2)
+DIAG(warn_null_resettable_setter, CLASS_WARNING, (unsigned)diag::Severity::Warning, "synthesized setter %0 for null_resettable property %1 does not handle nil", 407, SFINAE_Suppress, false, false, 18)
+DIAG(warn_null_ret, CLASS_WARNING, (unsigned)diag::Severity::Warning, "null returned from %select{function|method}0 that requires a non-null return value", 398, SFINAE_Suppress, false, false, 26)
+DIAG(warn_nullability_declspec, CLASS_WARNING, (unsigned)diag::Severity::Error, "nullability specifier %0 cannot be applied to non-pointer type %1; did you mean to apply the specifier to the %select{pointer|block pointer|member pointer|function pointer|member function pointer}2?", 410, SFINAE_Suppress, false, false, 18)
+DIAG(warn_nullability_inferred_on_nested_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "inferring '_Nonnull' for pointer type within %select{array|reference}0 is deprecated", 412, SFINAE_Suppress, false, false, 18)
+DIAG(warn_nullability_lost, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "implicit conversion from nullable pointer %0 to non-nullable pointer type %1", 413, SFINAE_Suppress, false, false, 18)
+DIAG(warn_nullability_missing, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{pointer|block pointer|member pointer}0 is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)", 408, SFINAE_Suppress, false, false, 18)
+DIAG(warn_nullability_missing_array, CLASS_WARNING, (unsigned)diag::Severity::Warning, "array parameter is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)", 409, SFINAE_Suppress, false, false, 18)
+DIAG(warn_objc_cdirective_format_string, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "using %0 directive in %select{NSString|CFString}1 which is being passed as a formatting argument to the formatting %select{method|CFfunction}2", 122, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_circular_container, CLASS_WARNING, (unsigned)diag::Severity::Warning, "adding '%0' to '%1' might cause circular dependency in container", 415, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_collection_literal_element, CLASS_WARNING, (unsigned)diag::Severity::Warning, "object of type %0 is not compatible with %select{array element type|dictionary key type|dictionary value type}1 %2", 421, SFINAE_Suppress, false, false, 22)
+DIAG(warn_objc_designated_init_missing_super_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "designated initializer missing a 'super' call to a designated initializer of the super class", 417, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_designated_init_non_designated_init_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "designated initializer invoked a non-designated initializer", 417, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_designated_init_non_super_designated_init_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "designated initializer should only invoke a designated initializer on 'super'", 417, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_implementation_missing_designated_init_override, CLASS_WARNING, (unsigned)diag::Severity::Warning, "method override for the designated initializer of the superclass %objcinstance0 not found", 417, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_invalid_bridge, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 bridges to %1, not %2", 62, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_invalid_bridge_to_cf, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 cannot bridge to %1", 62, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_isa_assign, CLASS_WARNING, (unsigned)diag::Severity::Warning, "assignment to Objective-C's isa is deprecated in favor of object_setClass()", 142, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_isa_use, CLASS_WARNING, (unsigned)diag::Severity::Warning, "direct access to Objective-C's isa is deprecated in favor of object_getClass()", 142, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_literal_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "direct comparison of %select{an array literal|a dictionary literal|a numeric literal|a boxed expression|}0 has undefined behavior", 420, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_missing_super_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "method possibly missing a [super %0] call", 425, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_pointer_cxx_catch_fragile, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot catch an exception thrown with @throw in C++ in the non-unified exception model", 428, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_pointer_masking, CLASS_WARNING, (unsigned)diag::Severity::Warning, "bitmasking for introspection of Objective-C object pointers is strongly discouraged", 143, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_pointer_masking_performSelector, CLASS_WARNING, (unsigned)diag::Severity::Warning, "bitmasking for introspection of Objective-C object pointers is strongly discouraged", 144, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_precise_lifetime_meaningless, CLASS_ERROR, (unsigned)diag::Severity::Error, "objc_precise_lifetime is not meaningful for %select{__unsafe_unretained|__autoreleasing}0 objects", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(warn_objc_property_copy_missing_on_block, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'copy' attribute must be specified for the block property when -fobjc-gc-only is specified", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_property_default_assign_on_object, CLASS_WARNING, (unsigned)diag::Severity::Warning, "default property attribute 'assign' not appropriate for non-GC object", 432, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_property_no_assignment_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed", 432, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_property_retain_of_block, CLASS_WARNING, (unsigned)diag::Severity::Warning, "retain'ed block property does not copy the block - use copy attribute instead", 427, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_readonly_property_has_setter, CLASS_WARNING, (unsigned)diag::Severity::Warning, "setter cannot be specified for a readonly property", 437, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_redundant_literal_use, CLASS_WARNING, (unsigned)diag::Severity::Warning, "using %0 with a literal is redundant", 439, SFINAE_Suppress, false, false, 27)
+DIAG(warn_objc_redundant_qualified_class_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "parameterized class %0 already conforms to the protocols listed; did you forget a '*'?", 436, SFINAE_Suppress, false, false, 0)
+DIAG(warn_objc_requires_super_protocol, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute cannot be applied to %select{methods in protocols|dealloc}1", 505, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_root_class_missing, CLASS_WARNING, (unsigned)diag::Severity::Warning, "class %0 defined without specifying a base class", 440, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_secondary_init_missing_init_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "convenience initializer missing a 'self' call to another initializer", 417, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_secondary_init_super_init_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "convenience initializer should not invoke an initializer on 'super'", 417, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_string_literal_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "direct comparison of a string literal has undefined behavior", 441, SFINAE_Suppress, false, false, 2)
+DIAG(warn_objc_unsafe_perform_selector, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is incompatible with selectors that return a %select{struct|union|vector}1 type", 443, SFINAE_Suppress, false, false, 2)
+DIAG(warn_old_style_cast, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "use of old-style cast", 445, SFINAE_Suppress, false, false, 2)
+DIAG(warn_omp_alignment_not_power_of_two, CLASS_WARNING, (unsigned)diag::Severity::Warning, "aligned clause will be ignored because the requested alignment is not a power of 2", 448, SFINAE_Suppress, false, false, 11)
+DIAG(warn_omp_linear_step_zero, CLASS_WARNING, (unsigned)diag::Severity::Warning, "zero linear step (%0 %select{|and other variables in clause }1should probably be const)", 448, SFINAE_Suppress, false, false, 11)
+DIAG(warn_omp_loop_64_bit_var, CLASS_WARNING, (unsigned)diag::Severity::Warning, "OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed", 449, SFINAE_Suppress, false, false, 11)
+DIAG(warn_omp_nesting_simd, CLASS_WARNING, (unsigned)diag::Severity::Warning, "OpenMP only allows an ordered construct with the simd clause nested in a simd construct", 547, SFINAE_Suppress, false, false, 11)
+DIAG(warn_omp_not_in_target_context, CLASS_WARNING, (unsigned)diag::Severity::Warning, "declaration is not declared in any declare target region", 450, SFINAE_Suppress, false, false, 11)
+DIAG(warn_omp_section_is_char, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "array section %select{lower bound|length}0 is of type 'char'", 103, SFINAE_Suppress, false, false, 11)
+DIAG(warn_on_superclass_use, CLASS_WARNING, (unsigned)diag::Severity::Warning, "class implementation may not have super class", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_opencl_attr_deprecated_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 attribute is deprecated and ignored in OpenCL version %1", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_operator_new_returns_null, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 should not return a null pointer unless it is declared 'throw()'%select{| or 'noexcept'}1", 390, SFINAE_Suppress, false, false, 2)
+DIAG(warn_os_log_format_narg, CLASS_ERROR, (unsigned)diag::Severity::Error, "os_log() '%%n' format specifier is not allowed", 0, SFINAE_SubstitutionFailure, false, true, 2)
+DIAG(warn_out_of_range_compare, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison of %select{constant %0|true|false}1 with %select{expression of type %2|boolean expression}3 is always %select{false|true}4", 582, SFINAE_Suppress, false, false, 2)
+DIAG(warn_overaligned_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "type %0 requires %1 bytes of alignment and the default allocator only guarantees %2 bytes", 453, SFINAE_Suppress, false, false, 2)
+DIAG(warn_overloaded_shift_in_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "overloaded operator %select{>>|<<}0 has higher precedence than comparison operator", 456, SFINAE_Suppress, false, false, 2)
+DIAG(warn_overloaded_virtual, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%q0 hides overloaded virtual %select{function|functions}1", 457, SFINAE_Suppress, false, false, 2)
+DIAG(warn_padded_struct_anon_field, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%s2 to align anonymous bit-field", 462, SFINAE_Suppress, false, false, 2)
+DIAG(warn_padded_struct_field, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "padding %select{struct|interface|class}0 %1 with %2 %select{byte|bit}3%s2 to align %4", 462, SFINAE_Suppress, false, false, 2)
+DIAG(warn_padded_struct_size, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "padding size of %0 with %1 %select{byte|bit}2%s1 to alignment boundary", 462, SFINAE_Suppress, false, false, 2)
+DIAG(warn_param_return_typestate_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "parameter '%0' not in expected state when the function returns: expected '%1', observed '%2'", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_param_typestate_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "argument not in expected state; expected '%0', observed '%1'", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_parameter_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 is a large (%1 bytes) pass-by-value argument; pass it by reference instead ?", 312, SFINAE_Suppress, false, false, 2)
+DIAG(warn_parens_disambiguated_as_function_declaration, CLASS_WARNING, (unsigned)diag::Severity::Warning, "parentheses were disambiguated as a function declaration", 665, SFINAE_Suppress, false, false, 2)
+DIAG(warn_partial_availability, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 is only available conditionally", 611, SFINAE_Suppress, false, false, 2)
+DIAG(warn_partial_fwdclass_message, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 may be partial because the receiver type is unknown", 611, SFINAE_Suppress, false, false, 2)
+DIAG(warn_partial_message, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 is partial: %1", 611, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pass_class_arg_to_vararg, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "passing object of class type %0 through variadic %select{function|block|method|constructor}1%select{|; did you mean to call '%3'?}2", 105, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pessimizing_move_on_initialization, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "moving a temporary object prevents copy elision", 473, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pessimizing_move_on_return, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "moving a local object in a return statement prevents copy elision", 473, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pointer_abs, CLASS_WARNING, (unsigned)diag::Severity::Warning, "taking the absolute value of %select{pointer|function|array}0 type %1 is suspicious", 8, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pointer_indirection_from_incompatible_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "dereference of type %1 that was reinterpret_cast from type %0 has undefined behavior", 608, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_options_align_reset_failed, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#pragma options align=reset failed: %0", 250, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_pack_invalid_alignment, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expected #pragma pack parameter to be '1', '2', '4', '8', or '16'", 250, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_pack_pop_identifer_and_alignment, CLASS_WARNING, (unsigned)diag::Severity::Warning, "specifying both a name and alignment to 'pop' is undefined", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_pack_show, CLASS_WARNING, (unsigned)diag::Severity::Warning, "value of #pragma pack(show) == %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_pop_failed, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#pragma %0(pop, ...) failed: %1", 250, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_unused_expected_var_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "only variables can be arguments to '#pragma unused'", 250, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pragma_unused_undeclared_var, CLASS_WARNING, (unsigned)diag::Severity::Warning, "undeclared variable %0 used as an argument for '#pragma unused'", 250, SFINAE_Suppress, false, false, 2)
+DIAG(warn_precedence_bitwise_rel, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 has lower precedence than %1; %1 will be evaluated first", 463, SFINAE_Suppress, false, false, 2)
+DIAG(warn_precedence_conditional, CLASS_WARNING, (unsigned)diag::Severity::Warning, "operator '?:' has lower precedence than '%0'; '%0' will be evaluated first", 463, SFINAE_Suppress, false, false, 2)
+DIAG(warn_printf_ObjCflags_without_ObjCConversion, CLASS_WARNING, (unsigned)diag::Severity::Warning, "object format flags cannot be used with '%0' conversion specifier", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_asterisk_missing_arg, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%select{*|.*}0' specified field %select{width|precision}0 is missing a matching 'int' argument", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_asterisk_wrong_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "field %select{width|precision}0 should have type %1, but argument has type %2", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_data_arg_not_used, CLASS_WARNING, (unsigned)diag::Severity::Warning, "data argument not used by format string", 202, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_empty_objc_flag, CLASS_WARNING, (unsigned)diag::Severity::Warning, "missing object format flag", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_format_string_contains_null_char, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format string contains '\\0' within the string body", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_format_string_not_null_terminated, CLASS_WARNING, (unsigned)diag::Severity::Warning, "format string is not null-terminated", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_ignored_flag, CLASS_WARNING, (unsigned)diag::Severity::Warning, "flag '%0' is ignored when flag '%1' is present", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_incomplete_specifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "incomplete format specifier", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_insufficient_data_args, CLASS_WARNING, (unsigned)diag::Severity::Warning, "more '%%' conversions than data arguments", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_invalid_objc_flag, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' is not a valid object format flag", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_nonsensical_flag, CLASS_WARNING, (unsigned)diag::Severity::Warning, "flag '%0' results in undefined behavior with '%1' conversion specifier", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_nonsensical_optional_amount, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{field width|precision}0 used with '%1' conversion specifier, resulting in undefined behavior", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_printf_positional_arg_exceeds_data_args, CLASS_WARNING, (unsigned)diag::Severity::Warning, "data argument position '%0' exceeds the number of data arguments (%1)", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_private_extern, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated", 484, SFINAE_Suppress, false, false, 2)
+DIAG(warn_profile_data_out_of_date, CLASS_WARNING, (unsigned)diag::Severity::Warning, "profile data may be out of date: of %0 function%s0, %1 %plural{1:has|:have}1 no data and %2 %plural{1:has|:have}2 mismatched data that will be ignored", 487, SFINAE_Suppress, false, false, 29)
+DIAG(warn_profile_data_unprofiled, CLASS_WARNING, (unsigned)diag::Severity::Warning, "no profile data available for file \"%0\"", 488, SFINAE_Suppress, false, false, 29)
+DIAG(warn_property_access_suggest, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property %0 not found on object of type %1; did you mean to access property %2?", 489, SFINAE_Suppress, false, false, 2)
+DIAG(warn_property_attr_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property attribute in class extension does not match the primary class", 490, SFINAE_Suppress, false, false, 2)
+DIAG(warn_property_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%1' attribute on property %0 does not match the property inherited from %2", 490, SFINAE_Suppress, false, false, 2)
+DIAG(warn_property_getter_owning_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property declared as returning non-retained objects; getter returning retained objects", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_property_implicitly_mismatched, CLASS_WARNING, (unsigned)diag::Severity::Warning, "primary property declaration is implicitly strong while redeclaration in class extension is weak", 430, SFINAE_Suppress, false, false, 2)
+DIAG(warn_property_method_deprecated, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property access is using %0 method which is deprecated", 138, SFINAE_Suppress, false, false, 25)
+DIAG(warn_property_redecl_getter_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "getter name mismatch between property redeclaration (%1) and its original declaration (%0)", 490, SFINAE_Suppress, false, false, 2)
+DIAG(warn_property_types_are_incompatible, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property type %0 is incompatible with type %1 inherited from %2", 273, SFINAE_Suppress, false, false, 2)
+DIAG(warn_protocol_property_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property of type %0 was selected for synthesis", 492, SFINAE_Suppress, false, false, 2)
+DIAG(warn_pt_guarded_pass_by_reference, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "passing the value that '%1' points to by reference requires holding %0 %select{'%2'|'%2' exclusively}3", 593, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ptr_arith_exceeds_bounds, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "the pointer incremented by %0 refers past the end of the array (that contains %1 element%s2)", 33, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ptr_arith_precedes_bounds, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "the pointer decremented by %0 refers before the beginning of the array", 33, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ptr_independentclass_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'objc_independent_class' attribute may be put on Objective-C object pointer type only; attribute is ignored", 5, SFINAE_Suppress, false, false, 2)
+DIAG(warn_qual_return_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'%0' type qualifier%s1 on return type %plural{1:has|:have}1 no effect", 251, SFINAE_Suppress, false, false, 2)
+DIAG(warn_readonly_property, CLASS_WARNING, (unsigned)diag::Severity::Warning, "attribute 'readonly' of property %0 restricts attribute 'readwrite' of property inherited from %1", 490, SFINAE_Suppress, false, false, 2)
+DIAG(warn_receiver_forward_class, CLASS_WARNING, (unsigned)diag::Severity::Warning, "receiver %0 is a forward class and corresponding @interface may not exist", 497, SFINAE_Suppress, false, false, 2)
+DIAG(warn_receiver_forward_instance, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "receiver type %0 for instance message is a forward declaration", 497, SFINAE_Suppress, false, false, 5)
+DIAG(warn_redecl_library_builtin, CLASS_WARNING, (unsigned)diag::Severity::Warning, "incompatible redeclaration of library function %0", 269, SFINAE_Suppress, false, false, 2)
+DIAG(warn_redeclaration_without_attribute_prev_attribute_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%q0 redeclared without %1 attribute: previous %1 ignored", 278, SFINAE_Suppress, false, false, 2)
+DIAG(warn_redeclaration_without_import_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%q0 redeclared without 'dllimport' attribute: 'dllexport' attribute added", 278, SFINAE_Suppress, false, false, 2)
+DIAG(warn_redefine_extname_not_applied, CLASS_WARNING, (unsigned)diag::Severity::Warning, "#pragma redefine_extname is applicable to external C declarations only; not applied to %select{function|variable}0 %1", 482, SFINAE_Suppress, false, false, 2)
+DIAG(warn_redefinition_in_param_list, CLASS_WARNING, (unsigned)diag::Severity::Warning, "redefinition of %0 will not be visible outside of this function", 666, SFINAE_Suppress, false, false, 2)
+DIAG(warn_redundant_loop_iteration, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable %0 is %select{decremented|incremented}1 both in the loop header and in the loop body", 200, SFINAE_Suppress, false, false, 2)
+DIAG(warn_redundant_move_on_return, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "redundant move in return statement", 500, SFINAE_Suppress, false, false, 2)
+DIAG(warn_reference_field_is_uninit, CLASS_WARNING, (unsigned)diag::Severity::Warning, "reference %0 is not yet bound to a value when used here", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_register_objc_catch_parm, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'register' storage specifier on @catch parameter will be ignored", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_reinterpret_different_from_static, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'reinterpret_cast' %select{from|to}3 class %0 %select{to|from}3 its %select{virtual base|base at non-zero offset}2 %1 behaves differently from 'static_cast'", 502, SFINAE_Suppress, false, false, 2)
+DIAG(warn_related_result_type_compatibility_class, CLASS_WARNING, (unsigned)diag::Severity::Warning, "method is expected to return an instance of its class type %diff{$, but is declared to return $|, but is declared to return different type}0,1", 0, SFINAE_Suppress, false, false, 17)
+DIAG(warn_related_result_type_compatibility_protocol, CLASS_WARNING, (unsigned)diag::Severity::Warning, "protocol method is expected to return an instance of the implementing class, but is declared to return %0", 0, SFINAE_Suppress, false, false, 17)
+DIAG(warn_remainder_division_by_zero, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{remainder|division}0 by zero is undefined", 153, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ret_addr_label, CLASS_WARNING, (unsigned)diag::Severity::Warning, "returning address of label, which is local", 509, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ret_local_temp_addr_ref, CLASS_WARNING, (unsigned)diag::Severity::Warning, "returning %select{address of|reference to}0 local temporary object", 509, SFINAE_Suppress, false, false, 2)
+DIAG(warn_ret_stack_addr_ref, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{address of|reference to}0 stack memory associated with local variable %1 returned", 509, SFINAE_Suppress, false, false, 2)
+DIAG(warn_return_missing_expr, CLASS_WARNING, (unsigned)diag::Severity::Error, "non-void %select{function|method}1 %0 should return a value", 510, SFINAE_Suppress, false, false, 2)
+DIAG(warn_return_typestate_for_unconsumable_type, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "return state set for an unconsumable type '%0'", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_return_typestate_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "return value not in expected state; expected '%0', observed '%1'", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_return_value_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "return value of %0 is a large (%1 bytes) pass-by-value object; pass it by reference instead ?", 312, SFINAE_Suppress, false, false, 2)
+DIAG(warn_return_value_udt, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C", 511, SFINAE_Suppress, false, false, 2)
+DIAG(warn_return_value_udt_incomplete, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 has C-linkage specified, but returns incomplete type %1 which could be incompatible with C", 511, SFINAE_Suppress, false, false, 2)
+DIAG(warn_root_inst_method_not_found, CLASS_WARNING, (unsigned)diag::Severity::Warning, "instance method %0 is being used on 'Class' which is not in the root class", 423, SFINAE_Suppress, false, false, 2)
+DIAG(warn_runsigned_always_true_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "comparison of %0 unsigned%select{| enum}2 expression is always %1", 581, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sampler_initializer_invalid_bits, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "sampler initializer has invalid %0 bits", 548, SFINAE_Suppress, false, false, 2)
+DIAG(warn_scanf_nonzero_width, CLASS_WARNING, (unsigned)diag::Severity::Warning, "zero field width in scanf format string is unused", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_scanf_scanlist_incomplete, CLASS_WARNING, (unsigned)diag::Severity::Warning, "no closing ']' for '%%[' in scanf format string", 201, SFINAE_Suppress, false, false, 26)
+DIAG(warn_second_arg_of_va_start_not_last_named_param, CLASS_WARNING, (unsigned)diag::Severity::Warning, "second argument to 'va_start' is not the last named parameter", 660, SFINAE_Suppress, false, false, 2)
+DIAG(warn_second_parameter_to_va_arg_never_compatible, CLASS_WARNING, (unsigned)diag::Severity::Warning, "second argument to 'va_arg' is of promotable type %0; this va_arg has undefined behavior because arguments will be promoted to %1", 660, SFINAE_Suppress, false, false, 2)
+DIAG(warn_second_parameter_to_va_arg_not_pod, CLASS_WARNING, (unsigned)diag::Severity::Error, "second argument to 'va_arg' is of non-POD type %0", 396, SFINAE_Suppress, false, false, 2)
+DIAG(warn_second_parameter_to_va_arg_ownership_qualified, CLASS_WARNING, (unsigned)diag::Severity::Error, "second argument to 'va_arg' is of ARC ownership-qualified type %0", 396, SFINAE_Suppress, false, false, 2)
+DIAG(warn_self_assignment, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicitly assigning value of variable of type %0 to itself", 517, SFINAE_Suppress, false, false, 2)
+DIAG(warn_self_move, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicitly moving variable of type %0 to itself", 519, SFINAE_Suppress, false, false, 2)
+DIAG(warn_setter_getter_impl_required, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property %0 requires method %1 to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation", 429, SFINAE_Suppress, false, false, 2)
+DIAG(warn_setter_getter_impl_required_in_category, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property %0 requires method %1 to be defined - use @dynamic or provide a method implementation in this category", 429, SFINAE_Suppress, false, false, 2)
+DIAG(warn_shadow_field, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-static data member '%0' of '%1' shadows member inherited from type '%2'", 526, SFINAE_Suppress, false, false, 0)
+DIAG(warn_shift_gt_typewidth, CLASS_WARNING, (unsigned)diag::Severity::Warning, "shift count >= width of type", 532, SFINAE_Suppress, false, false, 2)
+DIAG(warn_shift_lhs_negative, CLASS_WARNING, (unsigned)diag::Severity::Warning, "shifting a negative signed value is undefined", 533, SFINAE_Suppress, false, false, 2)
+DIAG(warn_shift_negative, CLASS_WARNING, (unsigned)diag::Severity::Warning, "shift count is negative", 531, SFINAE_Suppress, false, false, 2)
+DIAG(warn_shift_result_gt_typewidth, CLASS_WARNING, (unsigned)diag::Severity::Warning, "signed shift result (%0) requires %1 bits to represent, but %2 only has %3 bits", 535, SFINAE_Suppress, false, false, 2)
+DIAG(warn_shift_result_sets_sign_bit, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "signed shift result (%0) sets the sign bit of the shift expression's type (%1) and becomes negative", 536, SFINAE_Suppress, false, false, 2)
+DIAG(warn_side_effects_typeid, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expression with side effects will be evaluated despite being used as an operand to 'typeid'", 479, SFINAE_Suppress, false, false, 30)
+DIAG(warn_side_effects_unevaluated_context, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expression with side effects has no effect in an unevaluated context", 610, SFINAE_Suppress, false, false, 30)
+DIAG(warn_signed_bitfield_enum_conversion, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "signed bit-field %0 needs an extra bit to represent the largest positive enumerators of %1", 55, SFINAE_Suppress, false, false, 22)
+DIAG(warn_sizeof_array_decay, CLASS_WARNING, (unsigned)diag::Severity::Warning, "sizeof on pointer operation will return size of %0 instead of %1", 543, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sizeof_array_param, CLASS_WARNING, (unsigned)diag::Severity::Warning, "sizeof on array function parameter will return size of %0 instead of %1", 542, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sizeof_pointer_expr_memaccess, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' call operates on objects of type %1 while the size is based on a different type %2", 544, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sizeof_pointer_expr_memaccess_note, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "did you mean to %select{dereference the argument to 'sizeof' (and multiply it by the number of elements)|remove the addressof in the argument to 'sizeof' (and multiply it by the number of elements)|provide an explicit length}0?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sizeof_pointer_type_memaccess, CLASS_WARNING, (unsigned)diag::Severity::Warning, "argument to 'sizeof' in %0 call is the same pointer type %1 as the %select{destination|source}2; expected %3 or an explicit length", 544, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sometimes_uninit_var, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable %0 is %select{used|captured}1 uninitialized whenever %select{'%3' condition is %select{true|false}4|'%3' loop %select{is entered|exits because its condition is false}4|'%3' loop %select{condition is true|exits because its condition is false}4|switch %3 is taken|its declaration is reached|%3 is called}2", 546, SFINAE_Suppress, false, false, 2)
+DIAG(warn_standalone_specifier, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' ignored on this declaration", 362, SFINAE_Suppress, false, false, 2)
+DIAG(warn_static_array_too_small, CLASS_WARNING, (unsigned)diag::Severity::Warning, "array argument is too small; contains %0 elements, callee requires at least %1", 32, SFINAE_Suppress, false, false, 2)
+DIAG(warn_static_local_in_extern_inline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "non-constant static local variable in inline function may be different in different files", 553, SFINAE_Suppress, false, false, 2)
+DIAG(warn_static_main, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'main' should not be declared static", 322, SFINAE_Suppress, false, false, 2)
+DIAG(warn_static_self_reference_in_init, CLASS_WARNING, (unsigned)diag::Severity::Warning, "static variable %0 is suspiciously used within its own initialization", 554, SFINAE_Suppress, false, false, 2)
+DIAG(warn_strict_multiple_method_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "multiple methods named %0 found", 567, SFINAE_Suppress, false, false, 2)
+DIAG(warn_strict_prototypes, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "this %select{function declaration is not|old-style function definition is not preceded by}0 a prototype", 566, SFINAE_Suppress, false, false, 2)
+DIAG(warn_string_plus_char, CLASS_WARNING, (unsigned)diag::Severity::Warning, "adding %0 to a string pointer does not append to the string", 570, SFINAE_Suppress, false, false, 2)
+DIAG(warn_string_plus_int, CLASS_WARNING, (unsigned)diag::Severity::Warning, "adding %0 to a string does not append to the string", 571, SFINAE_Suppress, false, false, 2)
+DIAG(warn_stringcompare, CLASS_WARNING, (unsigned)diag::Severity::Warning, "result of comparison against %select{a string literal|@encode}0 is unspecified (use strncmp instead)", 568, SFINAE_Suppress, false, false, 2)
+DIAG(warn_strlcpycat_wrong_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "size argument in %0 call appears to be size of the source; expected the size of the destination", 572, SFINAE_Suppress, false, false, 2)
+DIAG(warn_strncat_large_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "the value of the size argument in 'strncat' is too large, might lead to a buffer overflow", 573, SFINAE_Suppress, false, false, 2)
+DIAG(warn_strncat_src_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "size argument in 'strncat' call appears to be size of the source", 573, SFINAE_Suppress, false, false, 2)
+DIAG(warn_strncat_wrong_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "the value of the size argument to 'strncat' is wrong", 573, SFINAE_Suppress, false, false, 2)
+DIAG(warn_struct_class_previous_tag_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%2 defined as %select{a struct|an interface|a class}0%select{| template}1 here but previously declared as %select{a struct|an interface|a class}3%select{| template}1", 360, SFINAE_Suppress, false, false, 2)
+DIAG(warn_struct_class_tag_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{struct|interface|class}0%select{| template}1 %2 was previously declared as a %select{struct|interface|class}3%select{| template}1", 360, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sub_ptr_zero_size_types, CLASS_WARNING, (unsigned)diag::Severity::Warning, "subtraction of pointers to type %0 of zero size has undefined behavior", 474, SFINAE_Suppress, false, false, 2)
+DIAG(warn_subobject_initializer_overrides, CLASS_WARNING, (unsigned)diag::Severity::Warning, "subobject initialization overrides initialization of other fields within its enclosing subobject", 284, SFINAE_Suppress, false, false, 2)
+DIAG(warn_subscript_is_char, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "array subscript is of type 'char'", 103, SFINAE_Suppress, false, false, 2)
+DIAG(warn_suggest_noreturn_block, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "block could be declared with attribute 'noreturn'", 368, SFINAE_Suppress, false, false, 2)
+DIAG(warn_suggest_noreturn_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{function|method}0 %1 could be declared with attribute 'noreturn'", 368, SFINAE_Suppress, false, false, 2)
+DIAG(warn_sync_fetch_and_nand_semantics_change, CLASS_WARNING, (unsigned)diag::Severity::Warning, "the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here", 579, SFINAE_Suppress, false, false, 2)
+DIAG(warn_taking_address_of_packed_member, CLASS_WARNING, (unsigned)diag::Severity::Warning, "taking address of packed member %0 of class or structure %q1 may result in an unaligned pointer value", 13, SFINAE_Suppress, false, false, 2)
+DIAG(warn_tautological_overlap_comparison, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "overlapping comparisons always evaluate to %select{false|true}0", 583, SFINAE_Suppress, false, false, 2)
+DIAG(warn_template_arg_negative, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-type template argument with value '%0' converted to '%1' for unsigned template parameter of type %2", 118, SFINAE_Suppress, false, false, 22)
+DIAG(warn_template_arg_too_large, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "non-type template argument value '%0' truncated to '%1' for template parameter of type %2", 118, SFINAE_Suppress, false, false, 22)
+DIAG(warn_template_export_unsupported, CLASS_WARNING, (unsigned)diag::Severity::Warning, "exported templates are unsupported", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_template_qualified_friend_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "dependent nested name specifier '%0' for friend template declaration is not supported; ignoring this friend declaration", 632, SFINAE_Suppress, false, false, 2)
+DIAG(warn_template_qualified_friend_unsupported, CLASS_WARNING, (unsigned)diag::Severity::Warning, "dependent nested name specifier '%0' for friend class declaration is not supported; turning off access control for %1", 632, SFINAE_Suppress, false, false, 2)
+DIAG(warn_template_spec_extra_headers, CLASS_WARNING, (unsigned)diag::Severity::Warning, "extraneous template parameter list in template specialization", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_temporary_array_to_pointer_decay, CLASS_WARNING, (unsigned)diag::Severity::Warning, "pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression", 12, SFINAE_Suppress, false, false, 2)
+DIAG(warn_tentative_incomplete_array, CLASS_WARNING, (unsigned)diag::Severity::Warning, "tentative array definition assumed to have one element", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_this_bool_conversion, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true", 604, SFINAE_Suppress, false, false, 22)
+DIAG(warn_this_null_compare, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to %select{true|false}0", 585, SFINAE_Suppress, false, false, 2)
+DIAG(warn_thread_attribute_argument_not_lockable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 attribute requires arguments whose type is annotated with 'capability' attribute; type here is %1", 589, SFINAE_Suppress, false, false, 2)
+DIAG(warn_thread_attribute_decl_not_lockable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 attribute can only be applied in a context annotated with 'capability(\"mutex\")' attribute", 589, SFINAE_Suppress, false, false, 2)
+DIAG(warn_thread_attribute_decl_not_pointer, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 only applies to pointer types; type here is %1", 589, SFINAE_Suppress, false, false, 2)
+DIAG(warn_thread_attribute_ignored, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "ignoring %0 attribute because its argument is invalid", 589, SFINAE_Suppress, false, false, 2)
+DIAG(warn_thread_safety_beta, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "Thread safety beta warning.", 590, SFINAE_Suppress, false, false, 2)
+DIAG(warn_thread_safety_verbose, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "Thread safety verbose warning.", 594, SFINAE_Suppress, false, false, 2)
+DIAG(warn_transparent_union_attribute_field_size_align, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{alignment|size}0 of field %1 (%2 bits) does not match the %select{alignment|size}0 of the first field in transparent union; transparent_union attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_transparent_union_attribute_floating, CLASS_WARNING, (unsigned)diag::Severity::Warning, "first field of a transparent union cannot have %select{floating point|vector}0 type %1; transparent_union attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_transparent_union_attribute_not_definition, CLASS_WARNING, (unsigned)diag::Severity::Warning, "transparent_union attribute can only be applied to a union definition; attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_transparent_union_attribute_zero_fields, CLASS_WARNING, (unsigned)diag::Severity::Warning, "transparent union definition must contain at least one field; transparent_union attribute ignored", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_type_attribute_wrong_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' only applies to %select{function|pointer|Objective-C object or block pointer}1 types; type here is %2", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_type_safety_null_pointer_required, CLASS_WARNING, (unsigned)diag::Severity::Warning, "specified %0 type tag requires a null pointer", 597, SFINAE_Suppress, false, false, 2)
+DIAG(warn_type_safety_type_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Warning, "argument type %0 doesn't match specified %1 type tag %select{that requires %3|}2", 597, SFINAE_Suppress, false, false, 2)
+DIAG(warn_type_tag_for_datatype_wrong_kind, CLASS_WARNING, (unsigned)diag::Severity::Warning, "this type tag was not designed to be used with this function", 597, SFINAE_Suppress, false, false, 2)
+DIAG(warn_typecheck_function_qualifiers_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' qualifier on function type %1 has no effect", 251, SFINAE_Suppress, false, false, 2)
+DIAG(warn_typecheck_function_qualifiers_unspecified, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' qualifier on function type %1 has unspecified behavior", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_typecheck_reference_qualifiers, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'%0' qualifier on reference type %1 has no effect", 251, SFINAE_Suppress, false, false, 2)
+DIAG(warn_typecheck_vector_element_sizes_not_equal, CLASS_WARNING, (unsigned)diag::Severity::Error, "vector operands do not have the same elements sizes (%0 and %1)", 662, SFINAE_Suppress, false, false, 2)
+DIAG(warn_typecheck_zero_static_array_size, CLASS_WARNING, (unsigned)diag::Severity::Warning, "'static' has no effect on zero-length arrays", 32, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unannotated_fallthrough, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unannotated fall-through between switch labels", 256, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unannotated_fallthrough_per_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unannotated fall-through between switch labels in partly-annotated function", 257, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unavailable_fwdclass_message, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%0 may be unavailable because the receiver type is unknown", 601, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undeclared_selector, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "undeclared selector %0", 602, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undeclared_selector_with_typo, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "undeclared selector %0; did you mean %1?", 602, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undef_interface, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot find interface declaration for %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undef_interface_suggest, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot find interface declaration for %0; did you mean %1?", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undef_method_impl, CLASS_WARNING, (unsigned)diag::Severity::Warning, "method definition for %0 not found", 275, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undef_protocolref, CLASS_WARNING, (unsigned)diag::Severity::Warning, "cannot find protocol definition for %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undefined_inline, CLASS_WARNING, (unsigned)diag::Severity::Warning, "inline function %q0 is not defined", 606, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undefined_internal, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{function|variable}0 %q1 has internal linkage but is not defined", 607, SFINAE_Suppress, false, false, 2)
+DIAG(warn_undefined_reinterpret_cast, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "reinterpret_cast from %0 to %1 has undefined behavior", 608, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unguarded_availability, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 is only available on %1 %2 or newer", 611, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unhandled_ms_attribute_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "__declspec attribute %0 is not supported", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unimplemented_protocol_method, CLASS_WARNING, (unsigned)diag::Severity::Warning, "method %0 in protocol %1 not implemented", 491, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unimplemented_selector, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "no method with selector %0 is implemented in this translation unit", 515, SFINAE_Suppress, false, false, 2)
+DIAG(warn_uninit_byref_blockvar_captured_by_block, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "block pointer variable %0 is uninitialized when captured by block", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_uninit_self_reference_in_init, CLASS_WARNING, (unsigned)diag::Severity::Warning, "variable %0 is uninitialized when used within its own initialization", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_uninit_self_reference_in_reference_init, CLASS_WARNING, (unsigned)diag::Severity::Warning, "reference %0 is not yet bound to a value when used within its own initialization", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_uninit_var, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable %0 is uninitialized when %select{used here|captured by block}1", 614, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unknown_attribute_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown attribute %0 ignored", 616, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unknown_sanitizer_ignored, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unknown sanitizer '%0' ignored", 619, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unlock_but_no_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "releasing %0 '%1' that was not held", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unlock_kind_mismatch, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "releasing %0 '%1' using %select{shared|exclusive}2 access, expected %select{shared|exclusive}3 access", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unnecessary_packed, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "packed attribute is unnecessary for %0", 461, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unneeded_internal_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{function|variable}0 %1 is not needed and will not be emitted", 622, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unneeded_member_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "member function %0 is not needed and will not be emitted", 623, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unneeded_static_internal_decl, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'static' function %0 declared in header file should be declared 'static inline'", 622, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unreachable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "code will never be executed", 624, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unreachable_break, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'break' will never be executed", 626, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unreachable_default, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "default label in switch which covers all enumeration values", 121, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unreachable_loop_increment, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "loop will run at most once (loop increment never executed)", 627, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unreachable_return, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "'return' will never be executed", 628, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unsequenced_mod_mod, CLASS_WARNING, (unsigned)diag::Severity::Warning, "multiple unsequenced modifications to %0", 629, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unsequenced_mod_use, CLASS_WARNING, (unsigned)diag::Severity::Warning, "unsequenced modification and access to %0", 629, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unsigned_abs, CLASS_WARNING, (unsigned)diag::Severity::Warning, "taking the absolute value of unsigned type %0 has no effect", 8, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unsigned_bitfield_assigned_signed_enum, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "assigning value of signed enum type %1 to unsigned bit-field %0; negative enumerators of enum %1 will be converted to positive values", 55, SFINAE_Suppress, false, false, 22)
+DIAG(warn_unsupported_target_attribute, CLASS_WARNING, (unsigned)diag::Severity::Warning, "Ignoring unsupported '%0' in the target attribute string", 247, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unused_call, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring return value of function declared with %0 attribute", 654, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_comparison, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{%select{|in}1equality|relational}0 comparison result unused", 639, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_const_variable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused variable %0", 640, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_container_subscript_expr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "container access result unused - container access should not be used for side effects", 654, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_exception_param, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused exception parameter %0", 641, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unused_expr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expression result unused", 654, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused function %0", 642, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_label, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused label %0", 644, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_lambda_capture, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "lambda capture %0 is not %select{used|required to be captured for this use}1", 645, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_local_typedef, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused %select{typedef|type alias}0 %1", 646, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_member_function, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused member function %0", 649, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unused_parameter, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused parameter %0", 650, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unused_private_field, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "private field %0 is not used", 651, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_property_backing_ivar, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "ivar %0 which backs the property is not referenced in this property's accessor", 652, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_property_expr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "property access result unused - getters should not be used for side effects", 643, SFINAE_Suppress, false, false, 2)
+DIAG(warn_unused_result, CLASS_WARNING, (unsigned)diag::Severity::Warning, "ignoring return value of function declared with %0 attribute", 653, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_variable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "unused variable %0", 655, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_voidptr, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expression result unused; should this cast be to 'void'?", 654, SFINAE_Suppress, false, false, 30)
+DIAG(warn_unused_volatile, CLASS_WARNING, (unsigned)diag::Severity::Warning, "expression result unused; assign into a variable to force a volatile load", 656, SFINAE_Suppress, false, false, 2)
+DIAG(warn_use_in_invalid_state, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "invalid invocation of method '%0' on object '%1' while it is in the '%2' state", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_use_of_temp_in_invalid_state, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "invalid invocation of method '%0' on a temporary object while it is in the '%1' state", 117, SFINAE_Suppress, false, false, 2)
+DIAG(warn_use_out_of_scope_declaration, CLASS_WARNING, (unsigned)diag::Severity::Warning, "use of out-of-scope declaration of %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_used_but_marked_unused, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 was marked unused but was used", 657, SFINAE_Suppress, false, false, 2)
+DIAG(warn_user_literal_reserved, CLASS_WARNING, (unsigned)diag::Severity::Warning, "user-defined literal suffixes not starting with '_' are reserved%select{; no literal will invoke this operator|}0", 658, SFINAE_Suppress, false, false, 2)
+DIAG(warn_using_directive_in_header, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "using namespace directive in global context in header", 245, SFINAE_Suppress, false, false, 2)
+DIAG(warn_va_start_type_is_undefined, CLASS_WARNING, (unsigned)diag::Severity::Warning, "passing %select{an object that undergoes default argument promotion|an object of reference type|a parameter declared with the 'register' keyword}0 to 'va_start' has undefined behavior", 660, SFINAE_Suppress, false, false, 2)
+DIAG(warn_var_deref_requires_any_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{reading|writing}1 the value pointed to by '%0' requires holding %select{any mutex|any mutex exclusively}1", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_var_deref_requires_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{reading|writing}3 the value pointed to by '%1' requires holding %0 %select{'%2'|'%2' exclusively}3", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_var_deref_requires_lock_precise, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{reading|writing}3 the value pointed to by '%1' requires holding %0 %select{'%2'|'%2' exclusively}3", 592, SFINAE_Suppress, false, false, 2)
+DIAG(warn_var_template_missing, CLASS_WARNING, (unsigned)diag::Severity::Warning, "instantiation of variable %q0 required here, but no definition is available", 609, SFINAE_Suppress, false, false, 2)
+DIAG(warn_variable_requires_any_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{reading|writing}1 variable '%0' requires holding %select{any mutex|any mutex exclusively}1", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_variable_requires_lock, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{reading|writing}3 variable '%1' requires holding %0 %select{'%2'|'%2' exclusively}3", 588, SFINAE_Suppress, false, false, 2)
+DIAG(warn_variable_requires_lock_precise, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{reading|writing}3 variable '%1' requires holding %0 %select{'%2'|'%2' exclusively}3", 592, SFINAE_Suppress, false, false, 2)
+DIAG(warn_variables_not_in_loop_body, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 used in loop condition not modified in loop body", 200, SFINAE_Suppress, false, false, 2)
+DIAG(warn_vbase_moved_multiple_times, CLASS_WARNING, (unsigned)diag::Severity::Warning, "defaulted move assignment operator of %0 will move assign virtual base class %1 multiple times", 386, SFINAE_Suppress, false, false, 2)
+DIAG(warn_vector_long_decl_spec_combination, CLASS_WARNING, (unsigned)diag::Severity::Warning, "Use of 'long' with '__vector' is deprecated", 136, SFINAE_Suppress, false, false, 25)
+DIAG(warn_vector_mode_deprecated, CLASS_WARNING, (unsigned)diag::Severity::Warning, "specifying vector types with the 'mode' attribute is deprecated; use the 'vector_size' attribute instead", 137, SFINAE_Suppress, false, false, 25)
+DIAG(warn_vla_used, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "variable length array used", 667, SFINAE_Suppress, false, false, 2)
+DIAG(warn_weak_identifier_undeclared, CLASS_WARNING, (unsigned)diag::Severity::Warning, "weak identifier %0 never declared", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_weak_import, CLASS_WARNING, (unsigned)diag::Severity::Warning, "an already-declared variable is made a weak_import declaration %0", 0, SFINAE_Suppress, false, false, 2)
+DIAG(warn_weak_template_vtable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "explicit template instantiation %0 will emit a vtable in every translation unit", 671, SFINAE_Suppress, false, false, 2)
+DIAG(warn_weak_vtable, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%0 has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit", 672, SFINAE_Suppress, false, false, 2)
+DIAG(warn_wrong_absolute_value_type, CLASS_WARNING, (unsigned)diag::Severity::Warning, "using %select{integer|floating point|complex}1 absolute value function %0 when argument is of %select{integer|floating point|complex}2 type", 8, SFINAE_Suppress, false, false, 2)
+DIAG(warn_zero_size_struct_union_compat, CLASS_WARNING, (unsigned)diag::Severity::Ignored, "%select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++", 66, SFINAE_Suppress, false, false, 2)
+DIAG(warn_zero_size_struct_union_in_extern_c, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{|empty }0%select{struct|union}1 has size 0 in C, %select{size 1|non-zero size}2 in C++", 187, SFINAE_Suppress, false, false, 2)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticSerializationKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticSerializationKinds.inc
new file mode 100644
index 0000000..39620b7
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/DiagnosticSerializationKinds.inc
@@ -0,0 +1,53 @@
+#ifdef SERIALIZATIONSTART
+__SERIALIZATIONSTART = DIAG_START_SERIALIZATION,
+#undef SERIALIZATIONSTART
+#endif
+
+DIAG(err_fe_ast_file_modified, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%0' has been modified since the AST file '%1' was built", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_module_file_modified, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%0' has been modified since the module file '%1' was built", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_not_a_pch_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "input is not a PCH file: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_pch_file_modified, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%0' has been modified since the precompiled header '%1' was built", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_pch_file_overridden, CLASS_ERROR, (unsigned)diag::Severity::Error, "file '%0' from the precompiled header has been overridden", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_pch_malformed, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "malformed or corrupted AST file: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_pch_malformed_block, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "malformed block record in PCH file: '%0'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_fe_unable_to_read_pch_file, CLASS_ERROR, (unsigned)diag::Severity::Error, "unable to read PCH file %0: '%1'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_imported_module_modmap_changed, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' imported by AST file '%1' found in a different module map file (%2) than when the importing AST file was built (%3)", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_imported_module_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' in AST file '%1' (imported by AST file '%2') is not defined in any loaded module map file; maybe you need to load '%3'?", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_imported_module_relocated, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' was built in directory '%1' but now resides in directory '%2'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_different_modmap, CLASS_ERROR, (unsigned)diag::Severity::Error, "module '%0' %select{uses|does not use}1 additional module map '%2'%select{| not}1 used when the module was built", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_file_conflict, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "module '%0' is defined in both '%1' and '%2'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_file_invalid, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "file '%1' is not a valid precompiled %select{PCH|module|AST}0 file", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_file_not_found, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "%select{PCH|module|AST}0 file '%1' not found%select{|: %3}2", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_file_not_module, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "AST file '%0' was not built as a module", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_file_out_of_date, CLASS_ERROR, (unsigned)diag::Severity::Fatal, "%select{PCH|module|AST}0 file '%1' is out of date and needs to be rebuilt%select{|: %3}2", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_odr_violation_different_definitions, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 has different definitions in different modules; %select{definition in module '%2' is here|defined here}1", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_odr_violation_different_instantiations, CLASS_ERROR, (unsigned)diag::Severity::Error, "instantiation of %q0 is different in different modules", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_odr_violation_mismatch_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 has different definitions in different modules; first difference is %select{definition in module '%2'|defined here}1 found %select{end of class|public access specifier|private access specifier|protected access specifier|static assert|field|method}3", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_odr_violation_mismatch_decl_diff, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 has different definitions in different modules; first difference is %select{definition in module '%2'|defined here}1 found %select{static assert with condition|static assert with message|static assert with %select{|no }4message|field %4|field %4 with type %5|%select{non-|}5bitfield %4|bitfield %4 with one width expression|%select{non-|}5mutable field %4|field %4 with %select{no|an}5 initalizer|field %4 with an initializer|method %4|method %4 is %select{not deleted|deleted}5|method %4 is %select{|pure }5%select{not virtual|virtual}6|method %4 is %select{not static|static}5|method %4 is %select{not volatile|volatile}5|method %4 is %select{not const|const}5|method %4 is %select{not inline|inline}5}3", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_module_odr_violation_missing_decl, CLASS_ERROR, (unsigned)diag::Severity::Error, "%q0 from module '%1' is not present in definition of %q2%select{ in module '%4'| provided earlier}3", 0, SFINAE_Report, false, true, 15)
+DIAG(err_pch_diagopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 is currently enabled, but was not in the PCH file", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_different_branch, CLASS_ERROR, (unsigned)diag::Severity::Error, "PCH file built from a different branch (%0) than the compiler (%1)", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_langopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 was %select{disabled|enabled}1 in PCH file but is currently %select{disabled|enabled}2", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_langopt_value_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%0 differs in PCH file vs. current file", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_macro_def_conflict, CLASS_ERROR, (unsigned)diag::Severity::Error, "definition of macro '%0' differs between the precompiled header ('%1') and the command line ('%2')", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_macro_def_undef, CLASS_ERROR, (unsigned)diag::Severity::Error, "macro '%0' was %select{defined|undef'd}1 in the precompiled header but %select{undef'd|defined}1 on the command line", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_modulecache_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "PCH was compiled with module cache path '%0', but the path is currently '%1'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_pp_detailed_record, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{command line contains|precompiled header was built with}0 '-detailed-preprocessing-record' but %select{precompiled header was not built with it|it is not present on the command line}0", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_targetopt_feature_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{AST file|current translation unit}0 was compiled with the target feature'%1' but the %select{current translation unit is|AST file was}0 not", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_targetopt_mismatch, CLASS_ERROR, (unsigned)diag::Severity::Error, "PCH file was compiled for the %0 '%1' but the current translation unit is being compiled for target '%2'", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_undef, CLASS_ERROR, (unsigned)diag::Severity::Error, "%select{command line contains|precompiled header was built with}0 '-undef' but %select{precompiled header was not built with it|it is not present on the command line}0", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_version_too_new, CLASS_ERROR, (unsigned)diag::Severity::Error, "PCH file uses a newer PCH format that cannot be read", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_version_too_old, CLASS_ERROR, (unsigned)diag::Severity::Error, "PCH file uses an older PCH format that is no longer supported", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(err_pch_with_compiler_errors, CLASS_ERROR, (unsigned)diag::Severity::Error, "PCH file contains compiler errors", 0, SFINAE_SubstitutionFailure, false, true, 15)
+DIAG(note_module_cache_path, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "after modifying system headers, please delete the module cache at '%0'", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_module_file_imported_by, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "imported by %select{|module '%2' in }1'%0'", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_module_odr_violation_different_definitions, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "definition in module '%0' is here", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_module_odr_violation_mismatch_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "but in '%0' found %select{end of class|public access specifier|private access specifier|protected access specifier|static assert|field|method}1", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_module_odr_violation_mismatch_decl_diff, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "but in '%0' found %select{static assert with different condition|static assert with different message|static assert with %select{|no }2message|field %2|field %2 with type %3|%select{non-|}3bitfield %2|bitfield %2 with different width expression|%select{non-|}3mutable field %2|field %2 with %select{no|an}3 initializer|field %2 with a different initializer|method %2|method %2 is %select{not deleted|deleted}3|method %2 is %select{|pure }3%select{not virtual|virtual}4|method %2 is %select{not static|static}3|method %2 is %select{not volatile|volatile}3|method %2 is %select{not const|const}3|method %2 is %select{not inline|inline}3}1", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_module_odr_violation_no_possible_decls, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "definition has no member %0", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_module_odr_violation_possible_decl, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "declaration of %0 does not match", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_pch_rebuild_required, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "please rebuild precompiled header '%0'", 0, SFINAE_Suppress, false, false, 15)
+DIAG(note_pch_required_by, CLASS_NOTE, (unsigned)diag::Severity::Fatal, "'%0' required by '%1'", 0, SFINAE_Suppress, false, false, 15)
+DIAG(warn_duplicate_module_file_extension, CLASS_WARNING, (unsigned)diag::Severity::Warning, "duplicate module file extension block name '%0'", 377, SFINAE_Suppress, false, false, 15)
+DIAG(warn_module_system_bit_conflict, CLASS_WARNING, (unsigned)diag::Severity::Warning, "module file '%0' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored", 375, SFINAE_Suppress, false, false, 15)
+DIAG(warn_module_uses_date_time, CLASS_WARNING, (unsigned)diag::Severity::Warning, "%select{precompiled header|module}0 uses __DATE__ or __TIME__", 470, SFINAE_Suppress, false, false, 15)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/arm_neon.h b/clang-4053586/prebuilt_include/clang/include/clang/Basic/arm_neon.h
new file mode 100644
index 0000000..f5ca59b
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/arm_neon.h
@@ -0,0 +1,69231 @@
+/*===---- arm_neon.h - ARM Neon intrinsics ---------------------------------===
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *===-----------------------------------------------------------------------===
+ */
+
+#ifndef __ARM_NEON_H
+#define __ARM_NEON_H
+
+#if !defined(__ARM_NEON)
+#error "NEON support not enabled"
+#endif
+
+#include <stdint.h>
+
+typedef float float32_t;
+typedef __fp16 float16_t;
+#ifdef __aarch64__
+typedef double float64_t;
+#endif
+
+#ifdef __aarch64__
+typedef uint8_t poly8_t;
+typedef uint16_t poly16_t;
+typedef uint64_t poly64_t;
+typedef __uint128_t poly128_t;
+#else
+typedef int8_t poly8_t;
+typedef int16_t poly16_t;
+#endif
+typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t;
+typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t;
+typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t;
+typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t;
+typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t;
+typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t;
+typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t;
+typedef __attribute__((neon_vector_type(2))) int64_t int64x2_t;
+typedef __attribute__((neon_vector_type(8))) uint8_t uint8x8_t;
+typedef __attribute__((neon_vector_type(16))) uint8_t uint8x16_t;
+typedef __attribute__((neon_vector_type(4))) uint16_t uint16x4_t;
+typedef __attribute__((neon_vector_type(8))) uint16_t uint16x8_t;
+typedef __attribute__((neon_vector_type(2))) uint32_t uint32x2_t;
+typedef __attribute__((neon_vector_type(4))) uint32_t uint32x4_t;
+typedef __attribute__((neon_vector_type(1))) uint64_t uint64x1_t;
+typedef __attribute__((neon_vector_type(2))) uint64_t uint64x2_t;
+typedef __attribute__((neon_vector_type(4))) float16_t float16x4_t;
+typedef __attribute__((neon_vector_type(8))) float16_t float16x8_t;
+typedef __attribute__((neon_vector_type(2))) float32_t float32x2_t;
+typedef __attribute__((neon_vector_type(4))) float32_t float32x4_t;
+#ifdef __aarch64__
+typedef __attribute__((neon_vector_type(1))) float64_t float64x1_t;
+typedef __attribute__((neon_vector_type(2))) float64_t float64x2_t;
+#endif
+typedef __attribute__((neon_polyvector_type(8))) poly8_t poly8x8_t;
+typedef __attribute__((neon_polyvector_type(16))) poly8_t poly8x16_t;
+typedef __attribute__((neon_polyvector_type(4))) poly16_t poly16x4_t;
+typedef __attribute__((neon_polyvector_type(8))) poly16_t poly16x8_t;
+#ifdef __aarch64__
+typedef __attribute__((neon_polyvector_type(1))) poly64_t poly64x1_t;
+typedef __attribute__((neon_polyvector_type(2))) poly64_t poly64x2_t;
+#endif
+
+typedef struct int8x8x2_t {
+  int8x8_t val[2];
+} int8x8x2_t;
+
+typedef struct int8x16x2_t {
+  int8x16_t val[2];
+} int8x16x2_t;
+
+typedef struct int16x4x2_t {
+  int16x4_t val[2];
+} int16x4x2_t;
+
+typedef struct int16x8x2_t {
+  int16x8_t val[2];
+} int16x8x2_t;
+
+typedef struct int32x2x2_t {
+  int32x2_t val[2];
+} int32x2x2_t;
+
+typedef struct int32x4x2_t {
+  int32x4_t val[2];
+} int32x4x2_t;
+
+typedef struct int64x1x2_t {
+  int64x1_t val[2];
+} int64x1x2_t;
+
+typedef struct int64x2x2_t {
+  int64x2_t val[2];
+} int64x2x2_t;
+
+typedef struct uint8x8x2_t {
+  uint8x8_t val[2];
+} uint8x8x2_t;
+
+typedef struct uint8x16x2_t {
+  uint8x16_t val[2];
+} uint8x16x2_t;
+
+typedef struct uint16x4x2_t {
+  uint16x4_t val[2];
+} uint16x4x2_t;
+
+typedef struct uint16x8x2_t {
+  uint16x8_t val[2];
+} uint16x8x2_t;
+
+typedef struct uint32x2x2_t {
+  uint32x2_t val[2];
+} uint32x2x2_t;
+
+typedef struct uint32x4x2_t {
+  uint32x4_t val[2];
+} uint32x4x2_t;
+
+typedef struct uint64x1x2_t {
+  uint64x1_t val[2];
+} uint64x1x2_t;
+
+typedef struct uint64x2x2_t {
+  uint64x2_t val[2];
+} uint64x2x2_t;
+
+typedef struct float16x4x2_t {
+  float16x4_t val[2];
+} float16x4x2_t;
+
+typedef struct float16x8x2_t {
+  float16x8_t val[2];
+} float16x8x2_t;
+
+typedef struct float32x2x2_t {
+  float32x2_t val[2];
+} float32x2x2_t;
+
+typedef struct float32x4x2_t {
+  float32x4_t val[2];
+} float32x4x2_t;
+
+#ifdef __aarch64__
+typedef struct float64x1x2_t {
+  float64x1_t val[2];
+} float64x1x2_t;
+
+typedef struct float64x2x2_t {
+  float64x2_t val[2];
+} float64x2x2_t;
+
+#endif
+typedef struct poly8x8x2_t {
+  poly8x8_t val[2];
+} poly8x8x2_t;
+
+typedef struct poly8x16x2_t {
+  poly8x16_t val[2];
+} poly8x16x2_t;
+
+typedef struct poly16x4x2_t {
+  poly16x4_t val[2];
+} poly16x4x2_t;
+
+typedef struct poly16x8x2_t {
+  poly16x8_t val[2];
+} poly16x8x2_t;
+
+#ifdef __aarch64__
+typedef struct poly64x1x2_t {
+  poly64x1_t val[2];
+} poly64x1x2_t;
+
+typedef struct poly64x2x2_t {
+  poly64x2_t val[2];
+} poly64x2x2_t;
+
+#endif
+typedef struct int8x8x3_t {
+  int8x8_t val[3];
+} int8x8x3_t;
+
+typedef struct int8x16x3_t {
+  int8x16_t val[3];
+} int8x16x3_t;
+
+typedef struct int16x4x3_t {
+  int16x4_t val[3];
+} int16x4x3_t;
+
+typedef struct int16x8x3_t {
+  int16x8_t val[3];
+} int16x8x3_t;
+
+typedef struct int32x2x3_t {
+  int32x2_t val[3];
+} int32x2x3_t;
+
+typedef struct int32x4x3_t {
+  int32x4_t val[3];
+} int32x4x3_t;
+
+typedef struct int64x1x3_t {
+  int64x1_t val[3];
+} int64x1x3_t;
+
+typedef struct int64x2x3_t {
+  int64x2_t val[3];
+} int64x2x3_t;
+
+typedef struct uint8x8x3_t {
+  uint8x8_t val[3];
+} uint8x8x3_t;
+
+typedef struct uint8x16x3_t {
+  uint8x16_t val[3];
+} uint8x16x3_t;
+
+typedef struct uint16x4x3_t {
+  uint16x4_t val[3];
+} uint16x4x3_t;
+
+typedef struct uint16x8x3_t {
+  uint16x8_t val[3];
+} uint16x8x3_t;
+
+typedef struct uint32x2x3_t {
+  uint32x2_t val[3];
+} uint32x2x3_t;
+
+typedef struct uint32x4x3_t {
+  uint32x4_t val[3];
+} uint32x4x3_t;
+
+typedef struct uint64x1x3_t {
+  uint64x1_t val[3];
+} uint64x1x3_t;
+
+typedef struct uint64x2x3_t {
+  uint64x2_t val[3];
+} uint64x2x3_t;
+
+typedef struct float16x4x3_t {
+  float16x4_t val[3];
+} float16x4x3_t;
+
+typedef struct float16x8x3_t {
+  float16x8_t val[3];
+} float16x8x3_t;
+
+typedef struct float32x2x3_t {
+  float32x2_t val[3];
+} float32x2x3_t;
+
+typedef struct float32x4x3_t {
+  float32x4_t val[3];
+} float32x4x3_t;
+
+#ifdef __aarch64__
+typedef struct float64x1x3_t {
+  float64x1_t val[3];
+} float64x1x3_t;
+
+typedef struct float64x2x3_t {
+  float64x2_t val[3];
+} float64x2x3_t;
+
+#endif
+typedef struct poly8x8x3_t {
+  poly8x8_t val[3];
+} poly8x8x3_t;
+
+typedef struct poly8x16x3_t {
+  poly8x16_t val[3];
+} poly8x16x3_t;
+
+typedef struct poly16x4x3_t {
+  poly16x4_t val[3];
+} poly16x4x3_t;
+
+typedef struct poly16x8x3_t {
+  poly16x8_t val[3];
+} poly16x8x3_t;
+
+#ifdef __aarch64__
+typedef struct poly64x1x3_t {
+  poly64x1_t val[3];
+} poly64x1x3_t;
+
+typedef struct poly64x2x3_t {
+  poly64x2_t val[3];
+} poly64x2x3_t;
+
+#endif
+typedef struct int8x8x4_t {
+  int8x8_t val[4];
+} int8x8x4_t;
+
+typedef struct int8x16x4_t {
+  int8x16_t val[4];
+} int8x16x4_t;
+
+typedef struct int16x4x4_t {
+  int16x4_t val[4];
+} int16x4x4_t;
+
+typedef struct int16x8x4_t {
+  int16x8_t val[4];
+} int16x8x4_t;
+
+typedef struct int32x2x4_t {
+  int32x2_t val[4];
+} int32x2x4_t;
+
+typedef struct int32x4x4_t {
+  int32x4_t val[4];
+} int32x4x4_t;
+
+typedef struct int64x1x4_t {
+  int64x1_t val[4];
+} int64x1x4_t;
+
+typedef struct int64x2x4_t {
+  int64x2_t val[4];
+} int64x2x4_t;
+
+typedef struct uint8x8x4_t {
+  uint8x8_t val[4];
+} uint8x8x4_t;
+
+typedef struct uint8x16x4_t {
+  uint8x16_t val[4];
+} uint8x16x4_t;
+
+typedef struct uint16x4x4_t {
+  uint16x4_t val[4];
+} uint16x4x4_t;
+
+typedef struct uint16x8x4_t {
+  uint16x8_t val[4];
+} uint16x8x4_t;
+
+typedef struct uint32x2x4_t {
+  uint32x2_t val[4];
+} uint32x2x4_t;
+
+typedef struct uint32x4x4_t {
+  uint32x4_t val[4];
+} uint32x4x4_t;
+
+typedef struct uint64x1x4_t {
+  uint64x1_t val[4];
+} uint64x1x4_t;
+
+typedef struct uint64x2x4_t {
+  uint64x2_t val[4];
+} uint64x2x4_t;
+
+typedef struct float16x4x4_t {
+  float16x4_t val[4];
+} float16x4x4_t;
+
+typedef struct float16x8x4_t {
+  float16x8_t val[4];
+} float16x8x4_t;
+
+typedef struct float32x2x4_t {
+  float32x2_t val[4];
+} float32x2x4_t;
+
+typedef struct float32x4x4_t {
+  float32x4_t val[4];
+} float32x4x4_t;
+
+#ifdef __aarch64__
+typedef struct float64x1x4_t {
+  float64x1_t val[4];
+} float64x1x4_t;
+
+typedef struct float64x2x4_t {
+  float64x2_t val[4];
+} float64x2x4_t;
+
+#endif
+typedef struct poly8x8x4_t {
+  poly8x8_t val[4];
+} poly8x8x4_t;
+
+typedef struct poly8x16x4_t {
+  poly8x16_t val[4];
+} poly8x16x4_t;
+
+typedef struct poly16x4x4_t {
+  poly16x4_t val[4];
+} poly16x4x4_t;
+
+typedef struct poly16x8x4_t {
+  poly16x8_t val[4];
+} poly16x8x4_t;
+
+#ifdef __aarch64__
+typedef struct poly64x1x4_t {
+  poly64x1_t val[4];
+} poly64x1x4_t;
+
+typedef struct poly64x2x4_t {
+  poly64x2_t val[4];
+} poly64x2x4_t;
+
+#endif
+
+#define __ai static inline __attribute__((__always_inline__, __nodebug__))
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x16_t __noswap_vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vabdq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vabdq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vabdq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vabdq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vabdq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vabdq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vabdq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vabdq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x16_t __noswap_vabdq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vabdq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vabdq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabdq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vabdq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vabdq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabdq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vabdq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vabdq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vabd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vabd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vabd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vabd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vabd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vabd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vabd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vabd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vabd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vabd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vabd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vabd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vabd_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vabd_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vabd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vabd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vabd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vabd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vabd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vabd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vabd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vabsq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vabsq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vabsq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vabsq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabsq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vabsq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabsq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vabsq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vabs_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vabs_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vabs_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vabs_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vabs_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vabs_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vabs_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vabs_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vabs_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vabs_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vabs_v((int8x8_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vabs_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vabs_v((int8x8_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t vaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vaddq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai float32x4_t vaddq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int64x2_t vaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vadd_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t vadd_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vadd_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai float32x2_t vadd_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vadd_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int64x1_t vadd_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vaddhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vaddhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vaddhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vaddhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vaddhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vaddhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vaddhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vaddhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vaddhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vaddhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vaddhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vaddhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vaddhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vaddhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vaddhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vaddhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vaddhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vaddhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vaddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vandq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vandq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vandq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vandq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vandq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t vandq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vandq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vandq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vandq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vandq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vandq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vandq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vandq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int64x2_t vandq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vandq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vandq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vand_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vand_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vand_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vand_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vand_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t vand_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vand_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vand_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vand_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vand_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vand_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vand_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vand_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int64x1_t vand_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vand_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 & __p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vand_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 & __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vbicq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vbicq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vbicq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vbicq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vbicq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t vbicq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vbicq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vbicq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vbicq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vbicq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vbicq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vbicq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vbicq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int64x2_t vbicq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vbicq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vbicq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vbic_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vbic_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vbic_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vbic_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vbic_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t vbic_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vbic_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vbic_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vbic_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vbic_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vbic_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vbic_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vbic_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int64x1_t vbic_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vbic_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 & ~__p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vbic_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 & ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vbsl_p8(uint8x8_t __p0, poly8x8_t __p1, poly8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vbsl_p8(uint8x8_t __p0, poly8x8_t __p1, poly8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vbsl_p16(uint16x4_t __p0, poly16x4_t __p1, poly16x4_t __p2) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 5);
+  return __ret;
+}
+#else
+__ai poly16x4_t vbsl_p16(uint16x4_t __p0, poly16x4_t __p1, poly16x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = (poly16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vbslq_p8(uint8x16_t __p0, poly8x16_t __p1, poly8x16_t __p2) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vbslq_p8(uint8x16_t __p0, poly8x16_t __p1, poly8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vbslq_p16(uint16x8_t __p0, poly16x8_t __p1, poly16x8_t __p2) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 37);
+  return __ret;
+}
+#else
+__ai poly16x8_t vbslq_p16(uint16x8_t __p0, poly16x8_t __p1, poly16x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 37);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vbslq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vbslq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vbslq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vbslq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vbslq_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vbslq_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vbslq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vbslq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vbslq_s8(uint8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vbslq_s8(uint8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vbslq_f32(uint32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vbslq_f32(uint32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vbslq_s32(uint32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vbslq_s32(uint32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vbslq_s64(uint64x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vbslq_s64(uint64x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vbslq_s16(uint16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vbslq_s16(uint16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vbsl_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vbsl_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vbsl_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vbsl_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vbsl_u64(uint64x1_t __p0, uint64x1_t __p1, uint64x1_t __p2) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vbsl_u64(uint64x1_t __p0, uint64x1_t __p1, uint64x1_t __p2) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vbsl_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vbsl_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vbsl_s8(uint8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vbsl_s8(uint8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vbsl_f32(uint32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vbsl_f32(uint32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vbsl_s32(uint32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vbsl_s32(uint32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vbsl_s64(uint64x1_t __p0, int64x1_t __p1, int64x1_t __p2) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vbsl_s64(uint64x1_t __p0, int64x1_t __p1, int64x1_t __p2) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vbsl_s16(uint16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vbsl_s16(uint16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vbsl_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcageq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcageq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcageq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcageq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcage_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcage_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcage_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcagtq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcagtq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcagtq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcagtq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcagt_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcagt_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcagt_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcaleq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcaleq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcaleq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcaleq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcale_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcale_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcale_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcaltq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcaltq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcaltq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcaltq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcalt_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcalt_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcalt_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vceq_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vceq_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vceqq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vceqq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vceqq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vceqq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vceqq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vceqq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vceqq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vceqq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vceqq_s8(int8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vceqq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vceqq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vceqq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vceqq_s32(int32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vceqq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vceqq_s16(int16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vceqq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vceq_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vceq_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vceq_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vceq_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vceq_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vceq_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vceq_s8(int8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vceq_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vceq_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vceq_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vceq_s32(int32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vceq_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vceq_s16(int16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vceq_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcgeq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcgeq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgeq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgeq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcgeq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcgeq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcgeq_s8(int8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcgeq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgeq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgeq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgeq_s32(int32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgeq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcgeq_s16(int16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcgeq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcge_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcge_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcge_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcge_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcge_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcge_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcge_s8(int8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcge_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcge_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcge_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcge_s32(int32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcge_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcge_s16(int16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcge_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcgtq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcgtq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgtq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgtq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcgtq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcgtq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcgtq_s8(int8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcgtq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgtq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgtq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgtq_s32(int32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgtq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcgtq_s16(int16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcgtq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcgt_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcgt_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgt_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgt_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcgt_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcgt_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcgt_s8(int8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcgt_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgt_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgt_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgt_s32(int32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgt_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcgt_s16(int16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcgt_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcleq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcleq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcleq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcleq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcleq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcleq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcleq_s8(int8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcleq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcleq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcleq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcleq_s32(int32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcleq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcleq_s16(int16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcleq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcle_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcle_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcle_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcle_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcle_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcle_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcle_s8(int8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcle_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcle_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcle_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcle_s32(int32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcle_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcle_s16(int16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcle_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vclsq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vclsq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vclsq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vclsq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vclsq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vclsq_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vclsq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vclsq_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vclsq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vclsq_v((int8x16_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vclsq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vclsq_v((int8x16_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vcls_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vcls_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vcls_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vcls_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcls_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcls_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vcls_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcls_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vcls_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vcls_v((int8x8_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vcls_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vcls_v((int8x8_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcltq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcltq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcltq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcltq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcltq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcltq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcltq_s8(int8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcltq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcltq_f32(float32x4_t __p0, float32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcltq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcltq_s32(int32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcltq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcltq_s16(int16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcltq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vclt_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vclt_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vclt_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vclt_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vclt_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vclt_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vclt_s8(int8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint8x8_t vclt_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vclt_f32(float32x2_t __p0, float32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vclt_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vclt_s32(int32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vclt_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vclt_s16(int16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint16x4_t vclt_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vclzq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vclzq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vclzq_u32(uint32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vclzq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vclzq_u16(uint16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vclzq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vclzq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vclzq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vclzq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vclzq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vclzq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vclzq_v((int8x16_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vclzq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vclzq_v((int8x16_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vclz_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vclz_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vclz_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vclz_u32(uint32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vclz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vclz_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vclz_u16(uint16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vclz_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vclz_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vclz_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vclz_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vclz_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vclz_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vclz_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vclz_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vclz_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vclz_v((int8x8_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vclz_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vclz_v((int8x8_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vcnt_p8(poly8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vcnt_v((int8x8_t)__p0, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vcnt_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vcnt_v((int8x8_t)__rev0, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vcntq_p8(poly8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vcntq_v((int8x16_t)__p0, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vcntq_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vcntq_v((int8x16_t)__rev0, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcntq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcntq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcntq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcntq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vcntq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vcntq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vcntq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vcntq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcnt_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcnt_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcnt_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcnt_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vcnt_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vcnt_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vcnt_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vcnt_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vcombine_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#else
+__ai poly8x16_t vcombine_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vcombine_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai poly16x8_t vcombine_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcombine_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcombine_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x16_t __noswap_vcombine_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcombine_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcombine_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vcombine_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcombine_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcombine_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcombine_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcombine_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vcombine_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vcombine_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#else
+__ai int8x16_t vcombine_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x16_t __noswap_vcombine_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcombine_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai float32x4_t vcombine_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float32x4_t __noswap_vcombine_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vcombine_f16(float16x4_t __p0, float16x4_t __p1) {
+  float16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai float16x8_t vcombine_f16(float16x4_t __p0, float16x4_t __p1) {
+  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float16x8_t __noswap_vcombine_f16(float16x4_t __p0, float16x4_t __p1) {
+  float16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vcombine_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai int32x4_t vcombine_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vcombine_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vcombine_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  return __ret;
+}
+#else
+__ai int64x2_t vcombine_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vcombine_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai int16x8_t vcombine_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vcombine_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vcreate_p8(uint64_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vcreate_p8(uint64_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vcreate_p16(uint64_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vcreate_p16(uint64_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcreate_u8(uint64_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcreate_u8(uint64_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcreate_u32(uint64_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcreate_u32(uint64_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcreate_u64(uint64_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcreate_u64(uint64_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcreate_u16(uint64_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcreate_u16(uint64_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vcreate_s8(uint64_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vcreate_s8(uint64_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vcreate_f32(uint64_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vcreate_f32(uint64_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vcreate_f16(uint64_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vcreate_f16(uint64_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcreate_s32(uint64_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vcreate_s32(uint64_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vcreate_s64(uint64_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vcreate_s64(uint64_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vcreate_s16(uint64_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vcreate_s16(uint64_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvtq_f32_u32(uint32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai float32x4_t vcvtq_f32_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvtq_f32_s32(int32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai float32x4_t vcvtq_f32_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vcvt_f32_u32(uint32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai float32x2_t vcvt_f32_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vcvt_f32_s32(int32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai float32x2_t vcvt_f32_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_f32_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vcvtq_n_f32_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_f32_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vcvtq_n_f32_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vcvtq_n_f32_v((int8x16_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_f32_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vcvt_n_f32_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_f32_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vcvt_n_f32_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vcvt_n_f32_v((int8x8_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_s32_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vcvtq_n_s32_v((int8x16_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vcvtq_n_s32_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vcvtq_n_s32_v((int8x16_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_s32_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vcvt_n_s32_v((int8x8_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vcvt_n_s32_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vcvt_n_s32_v((int8x8_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_u32_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vcvtq_n_u32_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vcvtq_n_u32_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vcvtq_n_u32_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_u32_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vcvt_n_u32_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vcvt_n_u32_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vcvt_n_u32_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vcvtq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtq_s32_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vcvtq_s32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtq_s32_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcvt_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvt_s32_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vcvt_s32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvt_s32_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcvtq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtq_u32_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcvtq_u32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtq_u32_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcvt_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvt_u32_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcvt_u32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvt_u32_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x16_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x16_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vdup_n_p8(poly8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly8x8_t vdup_n_p8(poly8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vdup_n_p16(poly16_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly16x4_t vdup_n_p16(poly16_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vdupq_n_p8(poly8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly8x16_t vdupq_n_p8(poly8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vdupq_n_p16(poly16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly16x8_t vdupq_n_p16(poly16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vdupq_n_u8(uint8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint8x16_t vdupq_n_u8(uint8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vdupq_n_u32(uint32_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint32x4_t vdupq_n_u32(uint32_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vdupq_n_u64(uint64_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai uint64x2_t vdupq_n_u64(uint64_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vdupq_n_u16(uint16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint16x8_t vdupq_n_u16(uint16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vdupq_n_s8(int8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int8x16_t vdupq_n_s8(int8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vdupq_n_f32(float32_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai float32x4_t vdupq_n_f32(float32_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \
+  __ret; \
+})
+#else
+#define vdupq_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vdupq_n_s32(int32_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int32x4_t vdupq_n_s32(int32_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vdupq_n_s64(int64_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai int64x2_t vdupq_n_s64(int64_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vdupq_n_s16(int16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int16x8_t vdupq_n_s16(int16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vdup_n_u8(uint8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint8x8_t vdup_n_u8(uint8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vdup_n_u32(uint32_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai uint32x2_t vdup_n_u32(uint32_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vdup_n_u64(uint64_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai uint64x1_t vdup_n_u64(uint64_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vdup_n_u16(uint16_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint16x4_t vdup_n_u16(uint16_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vdup_n_s8(int8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int8x8_t vdup_n_s8(int8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vdup_n_f32(float32_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai float32x2_t vdup_n_f32(float32_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \
+  __ret; \
+})
+#else
+#define vdup_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vdup_n_s32(int32_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai int32x2_t vdup_n_s32(int32_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vdup_n_s64(int64_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai int64x1_t vdup_n_s64(int64_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vdup_n_s16(int16_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int16x4_t vdup_n_s16(int16_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t veorq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t veorq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t veorq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t veorq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t veorq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t veorq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t veorq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t veorq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t veorq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int8x16_t veorq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t veorq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int32x4_t veorq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t veorq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int64x2_t veorq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t veorq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int16x8_t veorq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t veor_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t veor_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t veor_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t veor_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t veor_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t veor_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t veor_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t veor_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t veor_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int8x8_t veor_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t veor_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int32x2_t veor_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t veor_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int64x1_t veor_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t veor_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 ^ __p1;
+  return __ret;
+}
+#else
+__ai int16x4_t veor_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 ^ __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 4); \
+  __ret; \
+})
+#else
+#define vext_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 4); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 5); \
+  __ret; \
+})
+#else
+#define vext_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 5); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 36); \
+  __ret; \
+})
+#else
+#define vextq_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 36); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 37); \
+  __ret; \
+})
+#else
+#define vextq_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 37); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \
+  __ret; \
+})
+#else
+#define vextq_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \
+  __ret; \
+})
+#else
+#define vextq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \
+  __ret; \
+})
+#else
+#define vextq_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \
+  __ret; \
+})
+#else
+#define vextq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \
+  __ret; \
+})
+#else
+#define vextq_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 41); \
+  __ret; \
+})
+#else
+#define vextq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 41); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \
+  __ret; \
+})
+#else
+#define vextq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \
+  __ret; \
+})
+#else
+#define vextq_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \
+  __ret; \
+})
+#else
+#define vextq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \
+  __ret; \
+})
+#else
+#define vext_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \
+  __ret; \
+})
+#else
+#define vext_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#else
+#define vext_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \
+  __ret; \
+})
+#else
+#define vext_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \
+  __ret; \
+})
+#else
+#define vext_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 9); \
+  __ret; \
+})
+#else
+#define vext_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 9); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \
+  __ret; \
+})
+#else
+#define vext_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#else
+#define vext_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \
+  __ret; \
+})
+#else
+#define vext_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vext_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vget_high_p8(poly8x16_t __p0) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#else
+__ai poly8x8_t vget_high_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 8, 9, 10, 11, 12, 13, 14, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai poly8x8_t __noswap_vget_high_p8(poly8x16_t __p0) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vget_high_p16(poly16x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai poly16x4_t vget_high_p16(poly16x8_t __p0) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vget_high_u8(uint8x16_t __p0) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#else
+__ai uint8x8_t vget_high_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 8, 9, 10, 11, 12, 13, 14, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vget_high_u8(uint8x16_t __p0) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vget_high_u32(uint32x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 2, 3);
+  return __ret;
+}
+#else
+__ai uint32x2_t vget_high_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vget_high_u32(uint32x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vget_high_u64(uint64x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vget_high_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vget_high_u16(uint16x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai uint16x4_t vget_high_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vget_high_u16(uint16x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vget_high_s8(int8x16_t __p0) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#else
+__ai int8x8_t vget_high_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 8, 9, 10, 11, 12, 13, 14, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vget_high_s8(int8x16_t __p0) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 8, 9, 10, 11, 12, 13, 14, 15);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vget_high_f32(float32x4_t __p0) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 2, 3);
+  return __ret;
+}
+#else
+__ai float32x2_t vget_high_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float32x2_t __noswap_vget_high_f32(float32x4_t __p0) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vget_high_f16(float16x8_t __p0) {
+  float16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai float16x4_t vget_high_f16(float16x8_t __p0) {
+  float16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  float16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float16x4_t __noswap_vget_high_f16(float16x8_t __p0) {
+  float16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vget_high_s32(int32x4_t __p0) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 2, 3);
+  return __ret;
+}
+#else
+__ai int32x2_t vget_high_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vget_high_s32(int32x4_t __p0) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 2, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vget_high_s64(int64x2_t __p0) {
+  int64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1);
+  return __ret;
+}
+#else
+__ai int64x1_t vget_high_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vget_high_s16(int16x8_t __p0) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai int16x4_t vget_high_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vget_high_s16(int16x8_t __p0) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 4, 5, 6, 7);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vget_lane_i8((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vget_lane_i16((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vgetq_lane_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vgetq_lane_f32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vgetq_lane_f32((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vgetq_lane_f32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vgetq_lane_i32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vgetq_lane_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vget_lane_i8((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vget_lane_i32((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vget_lane_i16((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vget_lane_i8((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vget_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vget_lane_f32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vget_lane_f32((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vget_lane_f32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vget_lane_i32((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vget_lane_i32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vget_lane_i16((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vget_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vget_low_p8(poly8x16_t __p0) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai poly8x8_t vget_low_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vget_low_p16(poly16x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai poly16x4_t vget_low_p16(poly16x8_t __p0) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vget_low_u8(uint8x16_t __p0) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai uint8x8_t vget_low_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vget_low_u32(uint32x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1);
+  return __ret;
+}
+#else
+__ai uint32x2_t vget_low_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vget_low_u64(uint64x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vget_low_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vget_low_u16(uint16x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai uint16x4_t vget_low_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vget_low_s8(int8x16_t __p0) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3, 4, 5, 6, 7);
+  return __ret;
+}
+#else
+__ai int8x8_t vget_low_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3, 4, 5, 6, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vget_low_f32(float32x4_t __p0) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1);
+  return __ret;
+}
+#else
+__ai float32x2_t vget_low_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vget_low_f16(float16x8_t __p0) {
+  float16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai float16x4_t vget_low_f16(float16x8_t __p0) {
+  float16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  float16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vget_low_s32(int32x4_t __p0) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1);
+  return __ret;
+}
+#else
+__ai int32x2_t vget_low_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vget_low_s64(int64x2_t __p0) {
+  int64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0);
+  return __ret;
+}
+#else
+__ai int64x1_t vget_low_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vget_low_s16(int16x8_t __p0) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0, 1, 2, 3);
+  return __ret;
+}
+#else
+__ai int16x4_t vget_low_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0, 1, 2, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vhaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vhaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vhaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vhaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vhaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vhaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vhadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vhadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vhadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vhadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vhadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vhadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vhadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vhadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vhadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vhadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vhadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vhadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vhsubq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vhsubq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vhsubq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vhsubq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vhsubq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vhsubq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vhsubq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vhsubq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vhsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vhsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vhsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vhsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vhsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vhsub_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vhsub_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vhsub_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vhsub_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vhsub_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vhsub_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vhsub_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vhsub_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vhsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vhsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vhsub_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vhsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p8(__p0) __extension__ ({ \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vld1_v(__p0, 4); \
+  __ret; \
+})
+#else
+#define vld1_p8(__p0) __extension__ ({ \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vld1_v(__p0, 4); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p16(__p0) __extension__ ({ \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vld1_v(__p0, 5); \
+  __ret; \
+})
+#else
+#define vld1_p16(__p0) __extension__ ({ \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vld1_v(__p0, 5); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p8(__p0) __extension__ ({ \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vld1q_v(__p0, 36); \
+  __ret; \
+})
+#else
+#define vld1q_p8(__p0) __extension__ ({ \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vld1q_v(__p0, 36); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p16(__p0) __extension__ ({ \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vld1q_v(__p0, 37); \
+  __ret; \
+})
+#else
+#define vld1q_p16(__p0) __extension__ ({ \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vld1q_v(__p0, 37); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u8(__p0) __extension__ ({ \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vld1q_v(__p0, 48); \
+  __ret; \
+})
+#else
+#define vld1q_u8(__p0) __extension__ ({ \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vld1q_v(__p0, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u32(__p0) __extension__ ({ \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vld1q_v(__p0, 50); \
+  __ret; \
+})
+#else
+#define vld1q_u32(__p0) __extension__ ({ \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vld1q_v(__p0, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u64(__p0) __extension__ ({ \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vld1q_v(__p0, 51); \
+  __ret; \
+})
+#else
+#define vld1q_u64(__p0) __extension__ ({ \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vld1q_v(__p0, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u16(__p0) __extension__ ({ \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vld1q_v(__p0, 49); \
+  __ret; \
+})
+#else
+#define vld1q_u16(__p0) __extension__ ({ \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vld1q_v(__p0, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s8(__p0) __extension__ ({ \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vld1q_v(__p0, 32); \
+  __ret; \
+})
+#else
+#define vld1q_s8(__p0) __extension__ ({ \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vld1q_v(__p0, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f32(__p0) __extension__ ({ \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vld1q_v(__p0, 41); \
+  __ret; \
+})
+#else
+#define vld1q_f32(__p0) __extension__ ({ \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vld1q_v(__p0, 41); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f16(__p0) __extension__ ({ \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \
+  __ret; \
+})
+#else
+#define vld1q_f16(__p0) __extension__ ({ \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s32(__p0) __extension__ ({ \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vld1q_v(__p0, 34); \
+  __ret; \
+})
+#else
+#define vld1q_s32(__p0) __extension__ ({ \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vld1q_v(__p0, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s64(__p0) __extension__ ({ \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vld1q_v(__p0, 35); \
+  __ret; \
+})
+#else
+#define vld1q_s64(__p0) __extension__ ({ \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vld1q_v(__p0, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s16(__p0) __extension__ ({ \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vld1q_v(__p0, 33); \
+  __ret; \
+})
+#else
+#define vld1q_s16(__p0) __extension__ ({ \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vld1q_v(__p0, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u8(__p0) __extension__ ({ \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vld1_v(__p0, 16); \
+  __ret; \
+})
+#else
+#define vld1_u8(__p0) __extension__ ({ \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vld1_v(__p0, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u32(__p0) __extension__ ({ \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vld1_v(__p0, 18); \
+  __ret; \
+})
+#else
+#define vld1_u32(__p0) __extension__ ({ \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vld1_v(__p0, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u64(__p0) __extension__ ({ \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vld1_v(__p0, 19); \
+  __ret; \
+})
+#else
+#define vld1_u64(__p0) __extension__ ({ \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vld1_v(__p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u16(__p0) __extension__ ({ \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vld1_v(__p0, 17); \
+  __ret; \
+})
+#else
+#define vld1_u16(__p0) __extension__ ({ \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vld1_v(__p0, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s8(__p0) __extension__ ({ \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vld1_v(__p0, 0); \
+  __ret; \
+})
+#else
+#define vld1_s8(__p0) __extension__ ({ \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vld1_v(__p0, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f32(__p0) __extension__ ({ \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vld1_v(__p0, 9); \
+  __ret; \
+})
+#else
+#define vld1_f32(__p0) __extension__ ({ \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vld1_v(__p0, 9); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f16(__p0) __extension__ ({ \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \
+  __ret; \
+})
+#else
+#define vld1_f16(__p0) __extension__ ({ \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s32(__p0) __extension__ ({ \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vld1_v(__p0, 2); \
+  __ret; \
+})
+#else
+#define vld1_s32(__p0) __extension__ ({ \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vld1_v(__p0, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s64(__p0) __extension__ ({ \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vld1_v(__p0, 3); \
+  __ret; \
+})
+#else
+#define vld1_s64(__p0) __extension__ ({ \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vld1_v(__p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s16(__p0) __extension__ ({ \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vld1_v(__p0, 1); \
+  __ret; \
+})
+#else
+#define vld1_s16(__p0) __extension__ ({ \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vld1_v(__p0, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_p8(__p0) __extension__ ({ \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vld1_dup_v(__p0, 4); \
+  __ret; \
+})
+#else
+#define vld1_dup_p8(__p0) __extension__ ({ \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vld1_dup_v(__p0, 4); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_p16(__p0) __extension__ ({ \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vld1_dup_v(__p0, 5); \
+  __ret; \
+})
+#else
+#define vld1_dup_p16(__p0) __extension__ ({ \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vld1_dup_v(__p0, 5); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_p8(__p0) __extension__ ({ \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vld1q_dup_v(__p0, 36); \
+  __ret; \
+})
+#else
+#define vld1q_dup_p8(__p0) __extension__ ({ \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vld1q_dup_v(__p0, 36); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_p16(__p0) __extension__ ({ \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vld1q_dup_v(__p0, 37); \
+  __ret; \
+})
+#else
+#define vld1q_dup_p16(__p0) __extension__ ({ \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vld1q_dup_v(__p0, 37); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_u8(__p0) __extension__ ({ \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vld1q_dup_v(__p0, 48); \
+  __ret; \
+})
+#else
+#define vld1q_dup_u8(__p0) __extension__ ({ \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vld1q_dup_v(__p0, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_u32(__p0) __extension__ ({ \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vld1q_dup_v(__p0, 50); \
+  __ret; \
+})
+#else
+#define vld1q_dup_u32(__p0) __extension__ ({ \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vld1q_dup_v(__p0, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_u64(__p0) __extension__ ({ \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vld1q_dup_v(__p0, 51); \
+  __ret; \
+})
+#else
+#define vld1q_dup_u64(__p0) __extension__ ({ \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vld1q_dup_v(__p0, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_u16(__p0) __extension__ ({ \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vld1q_dup_v(__p0, 49); \
+  __ret; \
+})
+#else
+#define vld1q_dup_u16(__p0) __extension__ ({ \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vld1q_dup_v(__p0, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_s8(__p0) __extension__ ({ \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vld1q_dup_v(__p0, 32); \
+  __ret; \
+})
+#else
+#define vld1q_dup_s8(__p0) __extension__ ({ \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vld1q_dup_v(__p0, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_f32(__p0) __extension__ ({ \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vld1q_dup_v(__p0, 41); \
+  __ret; \
+})
+#else
+#define vld1q_dup_f32(__p0) __extension__ ({ \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vld1q_dup_v(__p0, 41); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_f16(__p0) __extension__ ({ \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \
+  __ret; \
+})
+#else
+#define vld1q_dup_f16(__p0) __extension__ ({ \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_s32(__p0) __extension__ ({ \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vld1q_dup_v(__p0, 34); \
+  __ret; \
+})
+#else
+#define vld1q_dup_s32(__p0) __extension__ ({ \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vld1q_dup_v(__p0, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_s64(__p0) __extension__ ({ \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vld1q_dup_v(__p0, 35); \
+  __ret; \
+})
+#else
+#define vld1q_dup_s64(__p0) __extension__ ({ \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vld1q_dup_v(__p0, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_s16(__p0) __extension__ ({ \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vld1q_dup_v(__p0, 33); \
+  __ret; \
+})
+#else
+#define vld1q_dup_s16(__p0) __extension__ ({ \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vld1q_dup_v(__p0, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_u8(__p0) __extension__ ({ \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vld1_dup_v(__p0, 16); \
+  __ret; \
+})
+#else
+#define vld1_dup_u8(__p0) __extension__ ({ \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vld1_dup_v(__p0, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_u32(__p0) __extension__ ({ \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vld1_dup_v(__p0, 18); \
+  __ret; \
+})
+#else
+#define vld1_dup_u32(__p0) __extension__ ({ \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vld1_dup_v(__p0, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_u64(__p0) __extension__ ({ \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vld1_dup_v(__p0, 19); \
+  __ret; \
+})
+#else
+#define vld1_dup_u64(__p0) __extension__ ({ \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vld1_dup_v(__p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_u16(__p0) __extension__ ({ \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vld1_dup_v(__p0, 17); \
+  __ret; \
+})
+#else
+#define vld1_dup_u16(__p0) __extension__ ({ \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vld1_dup_v(__p0, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_s8(__p0) __extension__ ({ \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vld1_dup_v(__p0, 0); \
+  __ret; \
+})
+#else
+#define vld1_dup_s8(__p0) __extension__ ({ \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vld1_dup_v(__p0, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_f32(__p0) __extension__ ({ \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vld1_dup_v(__p0, 9); \
+  __ret; \
+})
+#else
+#define vld1_dup_f32(__p0) __extension__ ({ \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vld1_dup_v(__p0, 9); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_f16(__p0) __extension__ ({ \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \
+  __ret; \
+})
+#else
+#define vld1_dup_f16(__p0) __extension__ ({ \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_s32(__p0) __extension__ ({ \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vld1_dup_v(__p0, 2); \
+  __ret; \
+})
+#else
+#define vld1_dup_s32(__p0) __extension__ ({ \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vld1_dup_v(__p0, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_s64(__p0) __extension__ ({ \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vld1_dup_v(__p0, 3); \
+  __ret; \
+})
+#else
+#define vld1_dup_s64(__p0) __extension__ ({ \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vld1_dup_v(__p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_s16(__p0) __extension__ ({ \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vld1_dup_v(__p0, 1); \
+  __ret; \
+})
+#else
+#define vld1_dup_s16(__p0) __extension__ ({ \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vld1_dup_v(__p0, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 4); \
+  __ret; \
+})
+#else
+#define vld1_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 4); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 5); \
+  __ret; \
+})
+#else
+#define vld1_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 5); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 36); \
+  __ret; \
+})
+#else
+#define vld1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 36); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 37); \
+  __ret; \
+})
+#else
+#define vld1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 37); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 48); \
+  __ret; \
+})
+#else
+#define vld1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 50); \
+  __ret; \
+})
+#else
+#define vld1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 51); \
+  __ret; \
+})
+#else
+#define vld1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 49); \
+  __ret; \
+})
+#else
+#define vld1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 32); \
+  __ret; \
+})
+#else
+#define vld1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 41); \
+  __ret; \
+})
+#else
+#define vld1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 41); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8_t __s1 = __p1; \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \
+  __ret; \
+})
+#else
+#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8_t __s1 = __p1; \
+  float16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 34); \
+  __ret; \
+})
+#else
+#define vld1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 35); \
+  __ret; \
+})
+#else
+#define vld1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 33); \
+  __ret; \
+})
+#else
+#define vld1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 16); \
+  __ret; \
+})
+#else
+#define vld1_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 18); \
+  __ret; \
+})
+#else
+#define vld1_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#else
+#define vld1_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 17); \
+  __ret; \
+})
+#else
+#define vld1_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 0); \
+  __ret; \
+})
+#else
+#define vld1_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 9); \
+  __ret; \
+})
+#else
+#define vld1_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 9); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4_t __s1 = __p1; \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \
+  __ret; \
+})
+#else
+#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4_t __s1 = __p1; \
+  float16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 2); \
+  __ret; \
+})
+#else
+#define vld1_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#else
+#define vld1_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 1); \
+  __ret; \
+})
+#else
+#define vld1_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_p8(__p0) __extension__ ({ \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld2_p8(__p0) __extension__ ({ \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_p16(__p0) __extension__ ({ \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld2_p16(__p0) __extension__ ({ \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_p8(__p0) __extension__ ({ \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld2q_p8(__p0) __extension__ ({ \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_p16(__p0) __extension__ ({ \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld2q_p16(__p0) __extension__ ({ \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_u8(__p0) __extension__ ({ \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld2q_u8(__p0) __extension__ ({ \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_u32(__p0) __extension__ ({ \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld2q_u32(__p0) __extension__ ({ \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_u16(__p0) __extension__ ({ \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld2q_u16(__p0) __extension__ ({ \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_s8(__p0) __extension__ ({ \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld2q_s8(__p0) __extension__ ({ \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_f32(__p0) __extension__ ({ \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld2q_f32(__p0) __extension__ ({ \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_f16(__p0) __extension__ ({ \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld2q_f16(__p0) __extension__ ({ \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_s32(__p0) __extension__ ({ \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld2q_s32(__p0) __extension__ ({ \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_s16(__p0) __extension__ ({ \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld2q_s16(__p0) __extension__ ({ \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_u8(__p0) __extension__ ({ \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld2_u8(__p0) __extension__ ({ \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_u32(__p0) __extension__ ({ \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld2_u32(__p0) __extension__ ({ \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_u64(__p0) __extension__ ({ \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld2_u64(__p0) __extension__ ({ \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_u16(__p0) __extension__ ({ \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld2_u16(__p0) __extension__ ({ \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_s8(__p0) __extension__ ({ \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld2_s8(__p0) __extension__ ({ \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_f32(__p0) __extension__ ({ \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld2_f32(__p0) __extension__ ({ \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_f16(__p0) __extension__ ({ \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld2_f16(__p0) __extension__ ({ \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_s32(__p0) __extension__ ({ \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld2_s32(__p0) __extension__ ({ \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_s64(__p0) __extension__ ({ \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld2_s64(__p0) __extension__ ({ \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_s16(__p0) __extension__ ({ \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld2_s16(__p0) __extension__ ({ \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_p8(__p0) __extension__ ({ \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld2_dup_p8(__p0) __extension__ ({ \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_p16(__p0) __extension__ ({ \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld2_dup_p16(__p0) __extension__ ({ \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_u8(__p0) __extension__ ({ \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld2_dup_u8(__p0) __extension__ ({ \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_u32(__p0) __extension__ ({ \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld2_dup_u32(__p0) __extension__ ({ \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_u64(__p0) __extension__ ({ \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld2_dup_u64(__p0) __extension__ ({ \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_u16(__p0) __extension__ ({ \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld2_dup_u16(__p0) __extension__ ({ \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_s8(__p0) __extension__ ({ \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld2_dup_s8(__p0) __extension__ ({ \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_f32(__p0) __extension__ ({ \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld2_dup_f32(__p0) __extension__ ({ \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_f16(__p0) __extension__ ({ \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld2_dup_f16(__p0) __extension__ ({ \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_s32(__p0) __extension__ ({ \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld2_dup_s32(__p0) __extension__ ({ \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_s64(__p0) __extension__ ({ \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld2_dup_s64(__p0) __extension__ ({ \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_s16(__p0) __extension__ ({ \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld2_dup_s16(__p0) __extension__ ({ \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 4); \
+  __ret; \
+})
+#else
+#define vld2_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  poly8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 5); \
+  __ret; \
+})
+#else
+#define vld2_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  poly16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 37); \
+  __ret; \
+})
+#else
+#define vld2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  poly16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 50); \
+  __ret; \
+})
+#else
+#define vld2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  uint32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 49); \
+  __ret; \
+})
+#else
+#define vld2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  uint16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 41); \
+  __ret; \
+})
+#else
+#define vld2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  float32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 40); \
+  __ret; \
+})
+#else
+#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  float16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 34); \
+  __ret; \
+})
+#else
+#define vld2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  int32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 33); \
+  __ret; \
+})
+#else
+#define vld2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  int16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 16); \
+  __ret; \
+})
+#else
+#define vld2_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  uint8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 18); \
+  __ret; \
+})
+#else
+#define vld2_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  uint32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 17); \
+  __ret; \
+})
+#else
+#define vld2_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  uint16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 0); \
+  __ret; \
+})
+#else
+#define vld2_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  int8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 9); \
+  __ret; \
+})
+#else
+#define vld2_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  float32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 8); \
+  __ret; \
+})
+#else
+#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  float16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 2); \
+  __ret; \
+})
+#else
+#define vld2_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  int32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 1); \
+  __ret; \
+})
+#else
+#define vld2_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  int16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_p8(__p0) __extension__ ({ \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld3_p8(__p0) __extension__ ({ \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_p16(__p0) __extension__ ({ \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld3_p16(__p0) __extension__ ({ \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_p8(__p0) __extension__ ({ \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld3q_p8(__p0) __extension__ ({ \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_p16(__p0) __extension__ ({ \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld3q_p16(__p0) __extension__ ({ \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_u8(__p0) __extension__ ({ \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld3q_u8(__p0) __extension__ ({ \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_u32(__p0) __extension__ ({ \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld3q_u32(__p0) __extension__ ({ \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_u16(__p0) __extension__ ({ \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld3q_u16(__p0) __extension__ ({ \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_s8(__p0) __extension__ ({ \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld3q_s8(__p0) __extension__ ({ \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_f32(__p0) __extension__ ({ \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld3q_f32(__p0) __extension__ ({ \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_f16(__p0) __extension__ ({ \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld3q_f16(__p0) __extension__ ({ \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_s32(__p0) __extension__ ({ \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld3q_s32(__p0) __extension__ ({ \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_s16(__p0) __extension__ ({ \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld3q_s16(__p0) __extension__ ({ \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_u8(__p0) __extension__ ({ \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld3_u8(__p0) __extension__ ({ \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_u32(__p0) __extension__ ({ \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld3_u32(__p0) __extension__ ({ \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_u64(__p0) __extension__ ({ \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld3_u64(__p0) __extension__ ({ \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_u16(__p0) __extension__ ({ \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld3_u16(__p0) __extension__ ({ \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_s8(__p0) __extension__ ({ \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld3_s8(__p0) __extension__ ({ \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_f32(__p0) __extension__ ({ \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld3_f32(__p0) __extension__ ({ \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_f16(__p0) __extension__ ({ \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld3_f16(__p0) __extension__ ({ \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_s32(__p0) __extension__ ({ \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld3_s32(__p0) __extension__ ({ \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_s64(__p0) __extension__ ({ \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld3_s64(__p0) __extension__ ({ \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_s16(__p0) __extension__ ({ \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld3_s16(__p0) __extension__ ({ \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_p8(__p0) __extension__ ({ \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld3_dup_p8(__p0) __extension__ ({ \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_p16(__p0) __extension__ ({ \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld3_dup_p16(__p0) __extension__ ({ \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_u8(__p0) __extension__ ({ \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld3_dup_u8(__p0) __extension__ ({ \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_u32(__p0) __extension__ ({ \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld3_dup_u32(__p0) __extension__ ({ \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_u64(__p0) __extension__ ({ \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld3_dup_u64(__p0) __extension__ ({ \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_u16(__p0) __extension__ ({ \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld3_dup_u16(__p0) __extension__ ({ \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_s8(__p0) __extension__ ({ \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld3_dup_s8(__p0) __extension__ ({ \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_f32(__p0) __extension__ ({ \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld3_dup_f32(__p0) __extension__ ({ \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_f16(__p0) __extension__ ({ \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld3_dup_f16(__p0) __extension__ ({ \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_s32(__p0) __extension__ ({ \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld3_dup_s32(__p0) __extension__ ({ \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_s64(__p0) __extension__ ({ \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld3_dup_s64(__p0) __extension__ ({ \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_s16(__p0) __extension__ ({ \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld3_dup_s16(__p0) __extension__ ({ \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 4); \
+  __ret; \
+})
+#else
+#define vld3_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  poly8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 5); \
+  __ret; \
+})
+#else
+#define vld3_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  poly16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 37); \
+  __ret; \
+})
+#else
+#define vld3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  poly16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 50); \
+  __ret; \
+})
+#else
+#define vld3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  uint32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 49); \
+  __ret; \
+})
+#else
+#define vld3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  uint16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 41); \
+  __ret; \
+})
+#else
+#define vld3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  float32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \
+  __ret; \
+})
+#else
+#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  float16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 34); \
+  __ret; \
+})
+#else
+#define vld3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  int32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 33); \
+  __ret; \
+})
+#else
+#define vld3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  int16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 16); \
+  __ret; \
+})
+#else
+#define vld3_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  uint8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 18); \
+  __ret; \
+})
+#else
+#define vld3_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  uint32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 17); \
+  __ret; \
+})
+#else
+#define vld3_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  uint16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 0); \
+  __ret; \
+})
+#else
+#define vld3_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  int8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 9); \
+  __ret; \
+})
+#else
+#define vld3_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  float32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \
+  __ret; \
+})
+#else
+#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  float16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 2); \
+  __ret; \
+})
+#else
+#define vld3_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  int32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 1); \
+  __ret; \
+})
+#else
+#define vld3_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  int16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_p8(__p0) __extension__ ({ \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld4_p8(__p0) __extension__ ({ \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_p16(__p0) __extension__ ({ \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld4_p16(__p0) __extension__ ({ \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_p8(__p0) __extension__ ({ \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld4q_p8(__p0) __extension__ ({ \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_p16(__p0) __extension__ ({ \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld4q_p16(__p0) __extension__ ({ \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_u8(__p0) __extension__ ({ \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld4q_u8(__p0) __extension__ ({ \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_u32(__p0) __extension__ ({ \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld4q_u32(__p0) __extension__ ({ \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_u16(__p0) __extension__ ({ \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld4q_u16(__p0) __extension__ ({ \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_s8(__p0) __extension__ ({ \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld4q_s8(__p0) __extension__ ({ \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_f32(__p0) __extension__ ({ \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld4q_f32(__p0) __extension__ ({ \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_f16(__p0) __extension__ ({ \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld4q_f16(__p0) __extension__ ({ \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_s32(__p0) __extension__ ({ \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld4q_s32(__p0) __extension__ ({ \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_s16(__p0) __extension__ ({ \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld4q_s16(__p0) __extension__ ({ \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_u8(__p0) __extension__ ({ \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld4_u8(__p0) __extension__ ({ \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_u32(__p0) __extension__ ({ \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld4_u32(__p0) __extension__ ({ \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_u64(__p0) __extension__ ({ \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld4_u64(__p0) __extension__ ({ \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_u16(__p0) __extension__ ({ \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld4_u16(__p0) __extension__ ({ \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_s8(__p0) __extension__ ({ \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld4_s8(__p0) __extension__ ({ \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_f32(__p0) __extension__ ({ \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld4_f32(__p0) __extension__ ({ \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_f16(__p0) __extension__ ({ \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld4_f16(__p0) __extension__ ({ \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_s32(__p0) __extension__ ({ \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld4_s32(__p0) __extension__ ({ \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_s64(__p0) __extension__ ({ \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld4_s64(__p0) __extension__ ({ \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_s16(__p0) __extension__ ({ \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld4_s16(__p0) __extension__ ({ \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_p8(__p0) __extension__ ({ \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld4_dup_p8(__p0) __extension__ ({ \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_p16(__p0) __extension__ ({ \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld4_dup_p16(__p0) __extension__ ({ \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_u8(__p0) __extension__ ({ \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld4_dup_u8(__p0) __extension__ ({ \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_u32(__p0) __extension__ ({ \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld4_dup_u32(__p0) __extension__ ({ \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_u64(__p0) __extension__ ({ \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld4_dup_u64(__p0) __extension__ ({ \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_u16(__p0) __extension__ ({ \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld4_dup_u16(__p0) __extension__ ({ \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_s8(__p0) __extension__ ({ \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld4_dup_s8(__p0) __extension__ ({ \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_f32(__p0) __extension__ ({ \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld4_dup_f32(__p0) __extension__ ({ \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_f16(__p0) __extension__ ({ \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld4_dup_f16(__p0) __extension__ ({ \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_s32(__p0) __extension__ ({ \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld4_dup_s32(__p0) __extension__ ({ \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_s64(__p0) __extension__ ({ \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld4_dup_s64(__p0) __extension__ ({ \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_s16(__p0) __extension__ ({ \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld4_dup_s16(__p0) __extension__ ({ \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 4); \
+  __ret; \
+})
+#else
+#define vld4_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  poly8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 5); \
+  __ret; \
+})
+#else
+#define vld4_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  poly16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 37); \
+  __ret; \
+})
+#else
+#define vld4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  poly16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 50); \
+  __ret; \
+})
+#else
+#define vld4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  uint32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 49); \
+  __ret; \
+})
+#else
+#define vld4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  uint16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 41); \
+  __ret; \
+})
+#else
+#define vld4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  float32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \
+  __ret; \
+})
+#else
+#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  float16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 34); \
+  __ret; \
+})
+#else
+#define vld4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  int32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 33); \
+  __ret; \
+})
+#else
+#define vld4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  int16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 16); \
+  __ret; \
+})
+#else
+#define vld4_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  uint8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 18); \
+  __ret; \
+})
+#else
+#define vld4_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  uint32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 17); \
+  __ret; \
+})
+#else
+#define vld4_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  uint16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 0); \
+  __ret; \
+})
+#else
+#define vld4_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  int8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 9); \
+  __ret; \
+})
+#else
+#define vld4_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  float32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \
+  __ret; \
+})
+#else
+#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  float16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 2); \
+  __ret; \
+})
+#else
+#define vld4_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  int32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 1); \
+  __ret; \
+})
+#else
+#define vld4_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  int16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmaxq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vmaxq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmaxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vmaxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmaxq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vmaxq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmaxq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vmaxq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmax_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vmax_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmax_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vmax_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmax_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vmax_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmax_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vmax_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmax_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vmax_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmax_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vmax_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmax_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vmax_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vminq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vminq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vminq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vminq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vminq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vminq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vminq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vminq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vminq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vminq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vminq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vminq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vminq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vminq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmin_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vmin_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmin_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vmin_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmin_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vmin_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmin_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vmin_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmin_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vmin_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmin_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vmin_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmin_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vmin_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmlaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint8x16_t vmlaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmlaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int8x16_t vmlaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmlaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float32x4_t vmlaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int32x4_t vmlaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int16x8_t vmlaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmla_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint8x8_t vmla_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmla_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint32x2_t vmla_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmla_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint16x4_t vmla_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmla_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int8x8_t vmla_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmla_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float32x2_t vmla_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmla_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int32x2_t vmla_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmla_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int16x4_t vmla_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x8_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x2_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlaq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + __p1 * (uint32x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlaq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __rev1 * (uint32x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlaq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + __p1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlaq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __rev1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmlaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __ret;
+  __ret = __p0 + __p1 * (float32x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai float32x4_t vmlaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 + __rev1 * (float32x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlaq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + __p1 * (int32x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai int32x4_t vmlaq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __rev1 * (int32x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlaq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + __p1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai int16x8_t vmlaq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __rev1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmla_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint32x2_t __ret;
+  __ret = __p0 + __p1 * (uint32x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai uint32x2_t vmla_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 + __rev1 * (uint32x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmla_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint16x4_t __ret;
+  __ret = __p0 + __p1 * (uint16x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai uint16x4_t vmla_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 + __rev1 * (uint16x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmla_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __ret;
+  __ret = __p0 + __p1 * (float32x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai float32x2_t vmla_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 + __rev1 * (float32x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmla_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int32x2_t __ret;
+  __ret = __p0 + __p1 * (int32x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai int32x2_t vmla_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 + __rev1 * (int32x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmla_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int16x4_t __ret;
+  __ret = __p0 + __p1 * (int16x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai int16x4_t vmla_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 + __rev1 * (int16x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmlsq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint8x16_t vmlsq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlsq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlsq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlsq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlsq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmlsq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int8x16_t vmlsq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmlsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float32x4_t vmlsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlsq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int32x4_t vmlsq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlsq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int16x8_t vmlsq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmls_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint8x8_t vmls_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmls_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint32x2_t vmls_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmls_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai uint16x4_t vmls_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmls_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int8x8_t vmls_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmls_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float32x2_t vmls_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmls_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int32x2_t vmls_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmls_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai int16x4_t vmls_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x8_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x2_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlsq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 - __p1 * (uint32x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlsq_n_u32(uint32x4_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __rev1 * (uint32x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlsq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 - __p1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlsq_n_u16(uint16x8_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 - __rev1 * (uint16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmlsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __ret;
+  __ret = __p0 - __p1 * (float32x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai float32x4_t vmlsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 - __rev1 * (float32x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlsq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 - __p1 * (int32x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai int32x4_t vmlsq_n_s32(int32x4_t __p0, int32x4_t __p1, int32_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __rev1 * (int32x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlsq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 - __p1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai int16x8_t vmlsq_n_s16(int16x8_t __p0, int16x8_t __p1, int16_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 - __rev1 * (int16x8_t) {__p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmls_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint32x2_t __ret;
+  __ret = __p0 - __p1 * (uint32x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai uint32x2_t vmls_n_u32(uint32x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 - __rev1 * (uint32x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmls_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint16x4_t __ret;
+  __ret = __p0 - __p1 * (uint16x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai uint16x4_t vmls_n_u16(uint16x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 - __rev1 * (uint16x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmls_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __ret;
+  __ret = __p0 - __p1 * (float32x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai float32x2_t vmls_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 - __rev1 * (float32x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmls_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int32x2_t __ret;
+  __ret = __p0 - __p1 * (int32x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai int32x2_t vmls_n_s32(int32x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 - __rev1 * (int32x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmls_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int16x4_t __ret;
+  __ret = __p0 - __p1 * (int16x4_t) {__p2, __p2, __p2, __p2};
+  return __ret;
+}
+#else
+__ai int16x4_t vmls_n_s16(int16x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 - __rev1 * (int16x4_t) {__p2, __p2, __p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vmov_n_p8(poly8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly8x8_t vmov_n_p8(poly8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vmov_n_p16(poly16_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly16x4_t vmov_n_p16(poly16_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vmovq_n_p8(poly8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly8x16_t vmovq_n_p8(poly8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vmovq_n_p16(poly16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai poly16x8_t vmovq_n_p16(poly16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmovq_n_u8(uint8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint8x16_t vmovq_n_u8(uint8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmovq_n_u32(uint32_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint32x4_t vmovq_n_u32(uint32_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmovq_n_u64(uint64_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai uint64x2_t vmovq_n_u64(uint64_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmovq_n_u16(uint16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint16x8_t vmovq_n_u16(uint16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmovq_n_s8(int8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int8x16_t vmovq_n_s8(int8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmovq_n_f32(float32_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai float32x4_t vmovq_n_f32(float32_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmovq_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \
+  __ret; \
+})
+#else
+#define vmovq_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x8_t __ret; \
+  __ret = (float16x8_t) {__s0, __s0, __s0, __s0, __s0, __s0, __s0, __s0}; \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmovq_n_s32(int32_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int32x4_t vmovq_n_s32(int32_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmovq_n_s64(int64_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai int64x2_t vmovq_n_s64(int64_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmovq_n_s16(int16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int16x8_t vmovq_n_s16(int16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmov_n_u8(uint8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint8x8_t vmov_n_u8(uint8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmov_n_u32(uint32_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai uint32x2_t vmov_n_u32(uint32_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vmov_n_u64(uint64_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai uint64x1_t vmov_n_u64(uint64_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmov_n_u16(uint16_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai uint16x4_t vmov_n_u16(uint16_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmov_n_s8(int8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int8x8_t vmov_n_s8(int8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) {__p0, __p0, __p0, __p0, __p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmov_n_f32(float32_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai float32x2_t vmov_n_f32(float32_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmov_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \
+  __ret; \
+})
+#else
+#define vmov_n_f16(__p0) __extension__ ({ \
+  float16_t __s0 = __p0; \
+  float16x4_t __ret; \
+  __ret = (float16x4_t) {__s0, __s0, __s0, __s0}; \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmov_n_s32(int32_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai int32x2_t vmov_n_s32(int32_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vmov_n_s64(int64_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai int64x1_t vmov_n_s64(int64_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmov_n_s16(int16_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) {__p0, __p0, __p0, __p0};
+  return __ret;
+}
+#else
+__ai int16x4_t vmov_n_s16(int16_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) {__p0, __p0, __p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmovl_u8(uint8x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vmovl_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vmovl_u8(uint8x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 49);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmovl_u32(uint32x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmovl_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmovl_u32(uint32x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 51);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmovl_u16(uint16x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmovl_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmovl_u16(uint16x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 50);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmovl_s8(int8x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vmovl_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vmovl_s8(int8x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmovl_s32(int32x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vmovl_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmovl_s32(int32x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmovl_s16(int16x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vmovl_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmovl_v((int8x8_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmovl_s16(int16x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmovl_v((int8x8_t)__p0, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmovn_u32(uint32x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vmovn_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vmovn_u32(uint32x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmovn_u64(uint64x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vmovn_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vmovn_u64(uint64x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmovn_u16(uint16x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vmovn_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vmovn_u16(uint16x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmovn_s32(int32x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vmovn_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vmovn_s32(int32x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmovn_s64(int64x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vmovn_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vmovn_s64(int64x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmovn_s16(int16x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vmovn_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmovn_v((int8x16_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vmovn_s16(int16x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vmovn_v((int8x16_t)__p0, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmulq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vmulq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmulq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vmulq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmulq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vmulq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmulq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vmulq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmulq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai float32x4_t vmulq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmulq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vmulq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmulq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vmulq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmul_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vmul_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmul_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vmul_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmul_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vmul_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmul_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vmul_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmul_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai float32x2_t vmul_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmul_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vmul_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmul_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vmul_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vmul_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vmul_v((int8x8_t)__p0, (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vmul_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vmul_v((int8x8_t)__rev0, (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vmulq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vmulq_v((int8x16_t)__p0, (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vmulq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vmulq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmulq_n_u32(uint32x4_t __p0, uint32_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 * (uint32x4_t) {__p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai uint32x4_t vmulq_n_u32(uint32x4_t __p0, uint32_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 * (uint32x4_t) {__p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmulq_n_u16(uint16x8_t __p0, uint16_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 * (uint16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai uint16x8_t vmulq_n_u16(uint16x8_t __p0, uint16_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 * (uint16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmulq_n_f32(float32x4_t __p0, float32_t __p1) {
+  float32x4_t __ret;
+  __ret = __p0 * (float32x4_t) {__p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai float32x4_t vmulq_n_f32(float32x4_t __p0, float32_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 * (float32x4_t) {__p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmulq_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 * (int32x4_t) {__p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai int32x4_t vmulq_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 * (int32x4_t) {__p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmulq_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 * (int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai int16x8_t vmulq_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 * (int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmul_n_u32(uint32x2_t __p0, uint32_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 * (uint32x2_t) {__p1, __p1};
+  return __ret;
+}
+#else
+__ai uint32x2_t vmul_n_u32(uint32x2_t __p0, uint32_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 * (uint32x2_t) {__p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmul_n_u16(uint16x4_t __p0, uint16_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 * (uint16x4_t) {__p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai uint16x4_t vmul_n_u16(uint16x4_t __p0, uint16_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 * (uint16x4_t) {__p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmul_n_f32(float32x2_t __p0, float32_t __p1) {
+  float32x2_t __ret;
+  __ret = __p0 * (float32x2_t) {__p1, __p1};
+  return __ret;
+}
+#else
+__ai float32x2_t vmul_n_f32(float32x2_t __p0, float32_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 * (float32x2_t) {__p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmul_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 * (int32x2_t) {__p1, __p1};
+  return __ret;
+}
+#else
+__ai int32x2_t vmul_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 * (int32x2_t) {__p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmul_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 * (int16x4_t) {__p1, __p1, __p1, __p1};
+  return __ret;
+}
+#else
+__ai int16x4_t vmul_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 * (int16x4_t) {__p1, __p1, __p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vmull_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 37);
+  return __ret;
+}
+#else
+__ai poly16x8_t vmull_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 37);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai poly16x8_t __noswap_vmull_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 37);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmull_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vmull_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vmull_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 49);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmull_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmull_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmull_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 51);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmull_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmull_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmull_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 50);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmull_s8(int8x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vmull_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vmull_s8(int8x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmull_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vmull_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmull_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmull_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vmull_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmull_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = vmull_u32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __noswap_vmull_u32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = vmull_u16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __noswap_vmull_u16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmull_n_u32(uint32x2_t __p0, uint32_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint32x2_t) {__p1, __p1}, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmull_n_u32(uint32x2_t __p0, uint32_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(uint32x2_t) {__p1, __p1}, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmull_n_u32(uint32x2_t __p0, uint32_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint32x2_t) {__p1, __p1}, 51);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmull_n_u16(uint16x4_t __p0, uint16_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint16x4_t) {__p1, __p1, __p1, __p1}, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmull_n_u16(uint16x4_t __p0, uint16_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(uint16x4_t) {__p1, __p1, __p1, __p1}, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmull_n_u16(uint16x4_t __p0, uint16_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(uint16x4_t) {__p1, __p1, __p1, __p1}, 50);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmull_n_s32(int32x2_t __p0, int32_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vmull_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmull_n_s32(int32x2_t __p0, int32_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmull_n_s16(int16x4_t __p0, int16_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vmull_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmull_n_s16(int16x4_t __p0, int16_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vmvn_p8(poly8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai poly8x8_t vmvn_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vmvnq_p8(poly8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai poly8x16_t vmvnq_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmvnq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai uint8x16_t vmvnq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmvnq_u32(uint32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai uint32x4_t vmvnq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmvnq_u16(uint16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai uint16x8_t vmvnq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmvnq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai int8x16_t vmvnq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmvnq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai int32x4_t vmvnq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmvnq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai int16x8_t vmvnq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vmvn_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai uint8x8_t vmvn_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vmvn_u32(uint32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai uint32x2_t vmvn_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vmvn_u16(uint16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai uint16x4_t vmvn_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vmvn_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai int8x8_t vmvn_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vmvn_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai int32x2_t vmvn_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vmvn_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = ~__p0;
+  return __ret;
+}
+#else
+__ai int16x4_t vmvn_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = ~__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vnegq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int8x16_t vnegq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vnegq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai float32x4_t vnegq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vnegq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int32x4_t vnegq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vnegq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int16x8_t vnegq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vneg_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int8x8_t vneg_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vneg_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai float32x2_t vneg_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vneg_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int32x2_t vneg_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vneg_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int16x4_t vneg_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vornq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vornq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vornq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vornq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vornq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t vornq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vornq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vornq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vornq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vornq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vornq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vornq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vornq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int64x2_t vornq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vornq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vornq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vorn_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vorn_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vorn_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vorn_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vorn_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t vorn_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vorn_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vorn_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vorn_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vorn_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vorn_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vorn_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vorn_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int64x1_t vorn_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vorn_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 | ~__p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vorn_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 | ~__rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vorrq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vorrq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vorrq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vorrq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vorrq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t vorrq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vorrq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vorrq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vorrq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vorrq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vorrq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vorrq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vorrq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int64x2_t vorrq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vorrq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vorrq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vorr_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vorr_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vorr_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vorr_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vorr_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t vorr_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vorr_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vorr_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vorr_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vorr_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vorr_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vorr_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vorr_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int64x1_t vorr_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vorr_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 | __p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vorr_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 | __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vpadalq_u8(uint16x8_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vpadalq_u8(uint16x8_t __p0, uint8x16_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vpadalq_u32(uint64x2_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vpadalq_u32(uint64x2_t __p0, uint32x4_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vpadalq_u16(uint32x4_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vpadalq_u16(uint32x4_t __p0, uint16x8_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vpadalq_s8(int16x8_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vpadalq_s8(int16x8_t __p0, int8x16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vpadalq_s32(int64x2_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vpadalq_s32(int64x2_t __p0, int32x4_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vpadalq_s16(int32x4_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vpadalq_s16(int32x4_t __p0, int16x8_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpadalq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vpadal_u8(uint16x4_t __p0, uint8x8_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vpadal_u8(uint16x4_t __p0, uint8x8_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vpadal_u32(uint64x1_t __p0, uint32x2_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vpadal_u32(uint64x1_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__rev1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vpadal_u16(uint32x2_t __p0, uint16x4_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vpadal_u16(uint32x2_t __p0, uint16x4_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vpadal_s8(int16x4_t __p0, int8x8_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vpadal_s8(int16x4_t __p0, int8x8_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vpadal_s32(int64x1_t __p0, int32x2_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vpadal_s32(int64x1_t __p0, int32x2_t __p1) {
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__rev1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vpadal_s16(int32x2_t __p0, int16x4_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpadal_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vpadal_s16(int32x2_t __p0, int16x4_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpadal_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vpadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vpadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vpadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vpadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vpadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vpadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vpadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vpadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vpadd_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vpadd_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vpadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vpadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vpadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vpadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vpaddlq_u8(uint8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vpaddlq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vpaddlq_u32(uint32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vpaddlq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vpaddlq_u16(uint16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vpaddlq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vpaddlq_s8(int8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vpaddlq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vpaddlq_s32(int32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vpaddlq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vpaddlq_s16(int16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vpaddlq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpaddlq_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vpaddl_u8(uint8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vpaddl_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vpaddl_u32(uint32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vpaddl_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vpaddl_u16(uint16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vpaddl_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vpaddl_s8(int8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vpaddl_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vpaddl_s32(int32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vpaddl_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vpaddl_s16(int16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vpaddl_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpaddl_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vpmax_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vpmax_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vpmax_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vpmax_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vpmax_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vpmax_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vpmax_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vpmax_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vpmax_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vpmax_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vpmax_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vpmax_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vpmax_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpmax_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vpmax_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpmax_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vpmin_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vpmin_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vpmin_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vpmin_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vpmin_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vpmin_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vpmin_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vpmin_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vpmin_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vpmin_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vpmin_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vpmin_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vpmin_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpmin_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vpmin_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vpmin_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqabsq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqabsq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqabsq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqabsq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqabsq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqabsq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqabs_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqabs_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqabs_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqabs_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqabs_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqabs_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqabs_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqabs_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqabs_v((int8x8_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vqaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vqadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vqadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vqadd_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vqadd_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vqadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vqadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vqadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vqadd_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vqadd_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vqadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vqdmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlal_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlal_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlal_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlal_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vqdmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlal_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vqdmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlsl_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlsl_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlsl_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlsl_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vqdmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int32x2_t) {__p2, __p2}, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__rev0, (int8x8_t)__rev1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmlsl_v((int8x16_t)__p0, (int8x8_t)__p1, (int8x8_t)(int16x4_t) {__p2, __p2, __p2, __p2}, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmulhq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmulhq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmulhq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqdmulhq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqdmulhq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vqdmulhq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqdmulh_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqdmulh_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vqdmulh_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqdmulh_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqdmulh_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vqdmulh_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = vqdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = vqdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = vqdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmulhq_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmulhq_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqdmulhq_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__p0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqdmulhq_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqdmulh_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqdmulh_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqdmulh_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqdmulh_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqdmulh_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmull_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmull_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vqdmull_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmull_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmull_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmull_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vqdmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqdmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmull_n_s32(int32x2_t __p0, int32_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmull_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vqdmull_n_s32(int32x2_t __p0, int32_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 35);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmull_n_s16(int16x4_t __p0, int16_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmull_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqdmull_n_s16(int16x4_t __p0, int16_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqdmull_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vqmovn_u32(uint32x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vqmovn_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vqmovn_u32(uint32x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vqmovn_u64(uint64x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vqmovn_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vqmovn_u64(uint64x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqmovn_u16(uint16x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqmovn_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vqmovn_u16(uint16x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqmovn_s32(int32x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqmovn_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vqmovn_s32(int32x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqmovn_s64(int64x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqmovn_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vqmovn_s64(int64x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqmovn_s16(int16x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqmovn_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vqmovn_s16(int16x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqmovn_v((int8x16_t)__p0, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vqmovun_s32(int32x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vqmovun_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqmovun_v((int8x16_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vqmovun_s32(int32x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vqmovun_s64(int64x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vqmovun_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqmovun_v((int8x16_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vqmovun_s64(int64x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqmovun_s16(int16x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqmovun_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqmovun_v((int8x16_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vqmovun_s16(int16x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqmovun_v((int8x16_t)__p0, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqnegq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqnegq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqnegq_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqnegq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqnegq_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqnegq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqneg_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqneg_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqneg_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqneg_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqneg_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqneg_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqneg_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqneg_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqneg_v((int8x8_t)__rev0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqrdmulhq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqrdmulhq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqrdmulhq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqrdmulhq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqrdmulhq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vqrdmulhq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqrdmulh_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqrdmulh_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vqrdmulh_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqrdmulh_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqrdmulh_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vqrdmulh_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqrdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulhq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqrdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = vqrdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulhq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqrdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = vqrdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulh_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqrdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = vqrdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulh_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqrdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqrdmulhq_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqrdmulhq_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int32x4_t) {__p1, __p1, __p1, __p1}, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqrdmulhq_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__p0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqrdmulhq_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrdmulhq_v((int8x16_t)__rev0, (int8x16_t)(int16x8_t) {__p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1}, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqrdmulh_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqrdmulh_n_s32(int32x2_t __p0, int32_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)(int32x2_t) {__p1, __p1}, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqrdmulh_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__p0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqrdmulh_n_s16(int16x4_t __p0, int16_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrdmulh_v((int8x8_t)__rev0, (int8x8_t)(int16x4_t) {__p1, __p1, __p1, __p1}, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqrshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqrshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vqrshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vqrshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vqrshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vqrshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vqrshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vqrshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqrshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqrshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqrshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqrshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqrshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqrshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqrshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqrshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqrshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqrshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vqrshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vqrshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vqrshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vqrshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vqrshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vqrshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqrshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqrshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqrshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqrshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vqrshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vqrshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqrshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqrshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vqrshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vqrshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vqrshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vqrshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vqrshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vqrshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqrshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrun_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vqrshrun_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrun_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrun_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vqrshrun_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrun_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrun_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vqrshrun_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqrshrun_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqrshrun_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vqshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vqshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vqshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vqshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vqshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vqshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vqshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vqshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vqshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vqshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vqshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vqshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vqshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vqshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 48); \
+  __ret; \
+})
+#else
+#define vqshlq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vqshlq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vqshlq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 49); \
+  __ret; \
+})
+#else
+#define vqshlq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 32); \
+  __ret; \
+})
+#else
+#define vqshlq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vqshlq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vqshlq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__s0, __p1, 33); \
+  __ret; \
+})
+#else
+#define vqshlq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vqshlq_n_v((int8x16_t)__rev0, __p1, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vqshl_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vqshl_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vqshl_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vqshl_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vqshl_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vqshl_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#else
+#define vqshl_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshl_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vqshl_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqshl_n_v((int8x8_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshluq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 48); \
+  __ret; \
+})
+#else
+#define vqshluq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshluq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vqshluq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshluq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vqshluq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshluq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vqshluq_n_v((int8x16_t)__s0, __p1, 49); \
+  __ret; \
+})
+#else
+#define vqshluq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vqshluq_n_v((int8x16_t)__rev0, __p1, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlu_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vqshlu_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshlu_n_v((int8x8_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlu_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vqshlu_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshlu_n_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlu_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vqshlu_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlu_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshlu_n_v((int8x8_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vqshlu_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshlu_n_v((int8x8_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vqshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vqshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vqshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vqshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vqshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vqshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vqshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrun_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vqshrun_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshrun_n_v((int8x16_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrun_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrun_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vqshrun_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshrun_n_v((int8x16_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrun_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrun_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vqshrun_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshrun_n_v((int8x16_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vqshrun_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vqshrun_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqsubq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqsubq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vqsubq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vqsubq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vqsubq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vqsubq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vqsubq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vqsubq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqsubq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqsubq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vqsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vqsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqsubq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqsubq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vqsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vqsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vqsubq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqsub_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqsub_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vqsub_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vqsub_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vqsub_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vqsub_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vqsub_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vqsub_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqsub_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqsub_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vqsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vqsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vqsub_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vqsub_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vqsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqsub_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vqsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vqsub_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vraddhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vraddhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vraddhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vraddhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vraddhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vraddhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vraddhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vraddhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vraddhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vraddhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vraddhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vraddhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vraddhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vraddhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vraddhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vraddhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vraddhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vraddhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vraddhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vrecpeq_u32(uint32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vrecpeq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrecpeq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrecpeq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vrecpe_u32(uint32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vrecpe_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrecpe_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrecpe_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrecpe_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrecpsq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrecpsq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrecpsq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrecpsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrecps_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrecps_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrecps_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vrev16_p8(poly8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6);
+  return __ret;
+}
+#else
+__ai poly8x8_t vrev16_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vrev16q_p8(poly8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
+  return __ret;
+}
+#else
+__ai poly8x16_t vrev16q_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrev16q_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
+  return __ret;
+}
+#else
+__ai uint8x16_t vrev16q_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrev16q_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
+  return __ret;
+}
+#else
+__ai int8x16_t vrev16q_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrev16_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrev16_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrev16_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6);
+  return __ret;
+}
+#else
+__ai int8x8_t vrev16_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vrev32_p8(poly8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vrev32_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vrev32_p16(poly16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2);
+  return __ret;
+}
+#else
+__ai poly16x4_t vrev32_p16(poly16x4_t __p0) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vrev32q_p8(poly8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
+  return __ret;
+}
+#else
+__ai poly8x16_t vrev32q_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vrev32q_p16(poly16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6);
+  return __ret;
+}
+#else
+__ai poly16x8_t vrev32q_p16(poly16x8_t __p0) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrev32q_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
+  return __ret;
+}
+#else
+__ai uint8x16_t vrev32q_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vrev32q_u16(uint16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6);
+  return __ret;
+}
+#else
+__ai uint16x8_t vrev32q_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrev32q_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
+  return __ret;
+}
+#else
+__ai int8x16_t vrev32q_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vrev32q_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2, 5, 4, 7, 6);
+  return __ret;
+}
+#else
+__ai int16x8_t vrev32q_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2, 5, 4, 7, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrev32_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrev32_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vrev32_u16(uint16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2);
+  return __ret;
+}
+#else
+__ai uint16x4_t vrev32_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrev32_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4);
+  return __ret;
+}
+#else
+__ai int8x8_t vrev32_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vrev32_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2);
+  return __ret;
+}
+#else
+__ai int16x4_t vrev32_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vrev64_p8(poly8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vrev64_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vrev64_p16(poly16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vrev64_p16(poly16x4_t __p0) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vrev64q_p8(poly8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
+  return __ret;
+}
+#else
+__ai poly8x16_t vrev64q_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vrev64q_p16(poly16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4);
+  return __ret;
+}
+#else
+__ai poly16x8_t vrev64q_p16(poly16x8_t __p0) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrev64q_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
+  return __ret;
+}
+#else
+__ai uint8x16_t vrev64q_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vrev64q_u32(uint32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vrev64q_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vrev64q_u16(uint16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4);
+  return __ret;
+}
+#else
+__ai uint16x8_t vrev64q_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrev64q_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
+  return __ret;
+}
+#else
+__ai int8x16_t vrev64q_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrev64q_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2);
+  return __ret;
+}
+#else
+__ai float32x4_t vrev64q_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vrev64q_s32(int32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0, 3, 2);
+  return __ret;
+}
+#else
+__ai int32x4_t vrev64q_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0, 3, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vrev64q_s16(int16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0, 7, 6, 5, 4);
+  return __ret;
+}
+#else
+__ai int16x8_t vrev64q_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0, 7, 6, 5, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrev64_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrev64_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vrev64_u32(uint32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vrev64_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vrev64_u16(uint16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vrev64_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrev64_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vrev64_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrev64_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0);
+  return __ret;
+}
+#else
+__ai float32x2_t vrev64_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vrev64_s32(int32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1, 0);
+  return __ret;
+}
+#else
+__ai int32x2_t vrev64_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vrev64_s16(int16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  return __ret;
+}
+#else
+__ai int16x4_t vrev64_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 3, 2, 1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vrhaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vrhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vrhaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vrhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vrhaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrhaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vrhaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vrhaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vrhaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vrhaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vrhaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vrhaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrhadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrhadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vrhadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vrhadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vrhadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vrhadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrhadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vrhadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vrhadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vrhadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vrhadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vrhadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrhadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vrshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vrshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vrshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vrshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vrshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vrshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vrshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vrshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vrshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vrshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vrshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vrshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vrshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vrshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vrshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vrshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vrshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vrshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vrshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vrshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vrshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vrshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vrshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vrshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vrshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vrshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vrshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vrshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 48); \
+  __ret; \
+})
+#else
+#define vrshrq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vrshrq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vrshrq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 49); \
+  __ret; \
+})
+#else
+#define vrshrq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 32); \
+  __ret; \
+})
+#else
+#define vrshrq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vrshrq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vrshrq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__s0, __p1, 33); \
+  __ret; \
+})
+#else
+#define vrshrq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vrshrq_n_v((int8x16_t)__rev0, __p1, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vrshr_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vrshr_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vrshr_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vrshr_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vrshr_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vrshr_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#else
+#define vrshr_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshr_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vrshr_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrshr_n_v((int8x8_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vrshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vrshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vrshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vrshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vrshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vrshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vrshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vrshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vrshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vrshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vrshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vrshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vrsqrteq_u32(uint32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vrsqrteq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrsqrteq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrsqrteq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vrsqrte_u32(uint32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vrsqrte_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrsqrte_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrsqrte_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrsqrte_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrsqrtsq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrsqrtsq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrsqrts_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrsqrts_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrsqrts_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \
+  __ret; \
+})
+#else
+#define vrsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \
+  __ret; \
+})
+#else
+#define vrsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \
+  __ret; \
+})
+#else
+#define vrsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \
+  __ret; \
+})
+#else
+#define vrsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \
+  __ret; \
+})
+#else
+#define vrsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \
+  __ret; \
+})
+#else
+#define vrsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \
+  __ret; \
+})
+#else
+#define vrsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \
+  __ret; \
+})
+#else
+#define vrsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vrsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \
+  __ret; \
+})
+#else
+#define vrsra_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \
+  __ret; \
+})
+#else
+#define vrsra_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#else
+#define vrsra_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \
+  __ret; \
+})
+#else
+#define vrsra_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \
+  __ret; \
+})
+#else
+#define vrsra_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \
+  __ret; \
+})
+#else
+#define vrsra_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#else
+#define vrsra_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsra_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \
+  __ret; \
+})
+#else
+#define vrsra_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vrsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vrsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vrsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vrsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vrsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vrsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vrsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vrsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vrsubhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vrsubhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vrsubhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vrsubhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vrsubhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vrsubhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrsubhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vrsubhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vrsubhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsetq_lane_i8(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vsetq_lane_f32(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vsetq_lane_f32(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vsetq_lane_f32(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsetq_lane_i32(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsetq_lane_i16(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#define __noswap_vset_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vset_lane_i8(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vset_lane_f32(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vset_lane_f32(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vset_lane_f32(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vset_lane_i32(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#define __noswap_vset_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vset_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vset_lane_i16(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vshlq_u8(uint8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vshlq_u32(uint32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vshlq_u64(uint64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vshlq_u16(uint16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vshlq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vshlq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vshlq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vshlq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vshlq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vshlq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vshl_u8(uint8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vshl_u32(uint32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vshl_u64(uint64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vshl_u16(uint16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vshl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vshl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vshl_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vshl_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vshl_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 48); \
+  __ret; \
+})
+#else
+#define vshlq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vshlq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vshlq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 49); \
+  __ret; \
+})
+#else
+#define vshlq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 32); \
+  __ret; \
+})
+#else
+#define vshlq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vshlq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vshlq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshlq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 33); \
+  __ret; \
+})
+#else
+#define vshlq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshlq_n_v((int8x16_t)__rev0, __p1, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vshl_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vshl_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vshl_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vshl_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vshl_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vshl_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#else
+#define vshl_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshl_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vshl_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshl_n_v((int8x8_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 49); \
+  __ret; \
+})
+#else
+#define vshll_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshll_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 49); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vshll_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshll_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 51); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vshll_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshll_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 50); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 33); \
+  __ret; \
+})
+#else
+#define vshll_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshll_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 33); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vshll_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshll_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 35); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vshll_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshll_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshll_n_v((int8x8_t)__s0, __p1, 34); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 48); \
+  __ret; \
+})
+#else
+#define vshrq_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 50); \
+  __ret; \
+})
+#else
+#define vshrq_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vshrq_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 49); \
+  __ret; \
+})
+#else
+#define vshrq_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 32); \
+  __ret; \
+})
+#else
+#define vshrq_n_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 34); \
+  __ret; \
+})
+#else
+#define vshrq_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vshrq_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__s0, __p1, 33); \
+  __ret; \
+})
+#else
+#define vshrq_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vshrq_n_v((int8x16_t)__rev0, __p1, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vshr_n_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vshr_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vshr_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vshr_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vshr_n_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vshr_n_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#else
+#define vshr_n_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshr_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vshr_n_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshr_n_v((int8x8_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#else
+#define vshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshrn_n_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 17); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#else
+#define vshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshrn_n_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 18); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#else
+#define vshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshrn_n_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 16); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#else
+#define vshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshrn_n_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#else
+#define vshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshrn_n_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#else
+#define vshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__rev0, __p1, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vshrn_n_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vshrn_n_v((int8x16_t)__s0, __p1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 4); \
+  __ret; \
+})
+#else
+#define vsli_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 4); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 5); \
+  __ret; \
+})
+#else
+#define vsli_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 5); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 36); \
+  __ret; \
+})
+#else
+#define vsliq_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 36); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 37); \
+  __ret; \
+})
+#else
+#define vsliq_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 37); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \
+  __ret; \
+})
+#else
+#define vsliq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \
+  __ret; \
+})
+#else
+#define vsliq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \
+  __ret; \
+})
+#else
+#define vsliq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \
+  __ret; \
+})
+#else
+#define vsliq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \
+  __ret; \
+})
+#else
+#define vsliq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \
+  __ret; \
+})
+#else
+#define vsliq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \
+  __ret; \
+})
+#else
+#define vsliq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \
+  __ret; \
+})
+#else
+#define vsliq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \
+  __ret; \
+})
+#else
+#define vsli_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \
+  __ret; \
+})
+#else
+#define vsli_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#else
+#define vsli_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \
+  __ret; \
+})
+#else
+#define vsli_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \
+  __ret; \
+})
+#else
+#define vsli_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \
+  __ret; \
+})
+#else
+#define vsli_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#else
+#define vsli_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \
+  __ret; \
+})
+#else
+#define vsli_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vsli_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \
+  __ret; \
+})
+#else
+#define vsraq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \
+  __ret; \
+})
+#else
+#define vsraq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \
+  __ret; \
+})
+#else
+#define vsraq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \
+  __ret; \
+})
+#else
+#define vsraq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \
+  __ret; \
+})
+#else
+#define vsraq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \
+  __ret; \
+})
+#else
+#define vsraq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \
+  __ret; \
+})
+#else
+#define vsraq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \
+  __ret; \
+})
+#else
+#define vsraq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsraq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \
+  __ret; \
+})
+#else
+#define vsra_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \
+  __ret; \
+})
+#else
+#define vsra_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#else
+#define vsra_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \
+  __ret; \
+})
+#else
+#define vsra_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \
+  __ret; \
+})
+#else
+#define vsra_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \
+  __ret; \
+})
+#else
+#define vsra_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#else
+#define vsra_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsra_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \
+  __ret; \
+})
+#else
+#define vsra_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vsra_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 4); \
+  __ret; \
+})
+#else
+#define vsri_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = (poly8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 4); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 5); \
+  __ret; \
+})
+#else
+#define vsri_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = (poly16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 5); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 36); \
+  __ret; \
+})
+#else
+#define vsriq_n_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = (poly8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 36); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 37); \
+  __ret; \
+})
+#else
+#define vsriq_n_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = (poly16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 37); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 48); \
+  __ret; \
+})
+#else
+#define vsriq_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = (uint8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 48); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 50); \
+  __ret; \
+})
+#else
+#define vsriq_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = (uint32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 50); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 51); \
+  __ret; \
+})
+#else
+#define vsriq_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 49); \
+  __ret; \
+})
+#else
+#define vsriq_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = (uint16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 49); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 32); \
+  __ret; \
+})
+#else
+#define vsriq_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = (int8x16_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 32); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 34); \
+  __ret; \
+})
+#else
+#define vsriq_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = (int32x4_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 34); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 35); \
+  __ret; \
+})
+#else
+#define vsriq_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 33); \
+  __ret; \
+})
+#else
+#define vsriq_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = (int16x8_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 33); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 16); \
+  __ret; \
+})
+#else
+#define vsri_n_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = (uint8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 16); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 18); \
+  __ret; \
+})
+#else
+#define vsri_n_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = (uint32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 18); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#else
+#define vsri_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64x1_t __s1 = __p1; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 17); \
+  __ret; \
+})
+#else
+#define vsri_n_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = (uint16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 17); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 0); \
+  __ret; \
+})
+#else
+#define vsri_n_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = (int8x8_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 0); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 2); \
+  __ret; \
+})
+#else
+#define vsri_n_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __ret; \
+  __ret = (int32x2_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#else
+#define vsri_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64x1_t __s1 = __p1; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 1); \
+  __ret; \
+})
+#else
+#define vsri_n_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = (int16x4_t) __builtin_neon_vsri_n_v((int8x8_t)__rev0, (int8x8_t)__rev1, __p2, 1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 4); \
+})
+#else
+#define vst1_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 5); \
+})
+#else
+#define vst1_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 36); \
+})
+#else
+#define vst1q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 37); \
+})
+#else
+#define vst1q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 48); \
+})
+#else
+#define vst1q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 50); \
+})
+#else
+#define vst1q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 51); \
+})
+#else
+#define vst1q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 49); \
+})
+#else
+#define vst1q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 32); \
+})
+#else
+#define vst1q_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 41); \
+})
+#else
+#define vst1q_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f16(__p0, __p1) __extension__ ({ \
+  float16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 40); \
+})
+#else
+#define vst1q_f16(__p0, __p1) __extension__ ({ \
+  float16x8_t __s1 = __p1; \
+  float16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 34); \
+})
+#else
+#define vst1q_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 35); \
+})
+#else
+#define vst1q_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 33); \
+})
+#else
+#define vst1q_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 16); \
+})
+#else
+#define vst1_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 18); \
+})
+#else
+#define vst1_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 19); \
+})
+#else
+#define vst1_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 17); \
+})
+#else
+#define vst1_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 0); \
+})
+#else
+#define vst1_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 9); \
+})
+#else
+#define vst1_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f16(__p0, __p1) __extension__ ({ \
+  float16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 8); \
+})
+#else
+#define vst1_f16(__p0, __p1) __extension__ ({ \
+  float16x4_t __s1 = __p1; \
+  float16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 2); \
+})
+#else
+#define vst1_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 3); \
+})
+#else
+#define vst1_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 1); \
+})
+#else
+#define vst1_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 4); \
+})
+#else
+#define vst1_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8_t __s1 = __p1; \
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 5); \
+})
+#else
+#define vst1_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4_t __s1 = __p1; \
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 36); \
+})
+#else
+#define vst1q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16_t __s1 = __p1; \
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 37); \
+})
+#else
+#define vst1q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8_t __s1 = __p1; \
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 48); \
+})
+#else
+#define vst1q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16_t __s1 = __p1; \
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 50); \
+})
+#else
+#define vst1q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 51); \
+})
+#else
+#define vst1q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2_t __s1 = __p1; \
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 49); \
+})
+#else
+#define vst1q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 32); \
+})
+#else
+#define vst1q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16_t __s1 = __p1; \
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 41); \
+})
+#else
+#define vst1q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \
+})
+#else
+#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8_t __s1 = __p1; \
+  float16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 34); \
+})
+#else
+#define vst1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 35); \
+})
+#else
+#define vst1q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2_t __s1 = __p1; \
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 33); \
+})
+#else
+#define vst1q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 16); \
+})
+#else
+#define vst1_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8_t __s1 = __p1; \
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 18); \
+})
+#else
+#define vst1_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \
+})
+#else
+#define vst1_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 17); \
+})
+#else
+#define vst1_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 0); \
+})
+#else
+#define vst1_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8_t __s1 = __p1; \
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 9); \
+})
+#else
+#define vst1_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \
+})
+#else
+#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4_t __s1 = __p1; \
+  float16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 2); \
+})
+#else
+#define vst1_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \
+})
+#else
+#define vst1_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 1); \
+})
+#else
+#define vst1_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_p8(__p0, __p1) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 4); \
+})
+#else
+#define vst2_p8(__p0, __p1) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  poly8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_p16(__p0, __p1) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 5); \
+})
+#else
+#define vst2_p16(__p0, __p1) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  poly16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 36); \
+})
+#else
+#define vst2q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  poly8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 37); \
+})
+#else
+#define vst2q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  poly16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 48); \
+})
+#else
+#define vst2q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  uint8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 50); \
+})
+#else
+#define vst2q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  uint32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 49); \
+})
+#else
+#define vst2q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  uint16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_s8(__p0, __p1) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 32); \
+})
+#else
+#define vst2q_s8(__p0, __p1) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  int8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_f32(__p0, __p1) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 41); \
+})
+#else
+#define vst2q_f32(__p0, __p1) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  float32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_f16(__p0, __p1) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 40); \
+})
+#else
+#define vst2q_f16(__p0, __p1) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  float16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_s32(__p0, __p1) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 34); \
+})
+#else
+#define vst2q_s32(__p0, __p1) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  int32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_s16(__p0, __p1) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 33); \
+})
+#else
+#define vst2q_s16(__p0, __p1) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  int16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_u8(__p0, __p1) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 16); \
+})
+#else
+#define vst2_u8(__p0, __p1) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  uint8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_u32(__p0, __p1) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 18); \
+})
+#else
+#define vst2_u32(__p0, __p1) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  uint32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_u64(__p0, __p1) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \
+})
+#else
+#define vst2_u64(__p0, __p1) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_u16(__p0, __p1) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 17); \
+})
+#else
+#define vst2_u16(__p0, __p1) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  uint16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_s8(__p0, __p1) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 0); \
+})
+#else
+#define vst2_s8(__p0, __p1) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  int8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_f32(__p0, __p1) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 9); \
+})
+#else
+#define vst2_f32(__p0, __p1) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  float32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_f16(__p0, __p1) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 8); \
+})
+#else
+#define vst2_f16(__p0, __p1) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  float16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_s32(__p0, __p1) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 2); \
+})
+#else
+#define vst2_s32(__p0, __p1) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  int32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_s64(__p0, __p1) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 3); \
+})
+#else
+#define vst2_s64(__p0, __p1) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_s16(__p0, __p1) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 1); \
+})
+#else
+#define vst2_s16(__p0, __p1) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  int16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 4); \
+})
+#else
+#define vst2_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  poly8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 5); \
+})
+#else
+#define vst2_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  poly16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 37); \
+})
+#else
+#define vst2q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  poly16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 50); \
+})
+#else
+#define vst2q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  uint32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 49); \
+})
+#else
+#define vst2q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  uint16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 41); \
+})
+#else
+#define vst2q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  float32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 40); \
+})
+#else
+#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  float16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 34); \
+})
+#else
+#define vst2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  int32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 33); \
+})
+#else
+#define vst2q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  int16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 16); \
+})
+#else
+#define vst2_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  uint8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 18); \
+})
+#else
+#define vst2_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  uint32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 17); \
+})
+#else
+#define vst2_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  uint16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 0); \
+})
+#else
+#define vst2_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  int8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], __p2, 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 9); \
+})
+#else
+#define vst2_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  float32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 8); \
+})
+#else
+#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  float16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 2); \
+})
+#else
+#define vst2_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  int32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 1); \
+})
+#else
+#define vst2_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  int16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_p8(__p0, __p1) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 4); \
+})
+#else
+#define vst3_p8(__p0, __p1) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  poly8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_p16(__p0, __p1) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 5); \
+})
+#else
+#define vst3_p16(__p0, __p1) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  poly16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 36); \
+})
+#else
+#define vst3q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  poly8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 37); \
+})
+#else
+#define vst3q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  poly16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 48); \
+})
+#else
+#define vst3q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  uint8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 50); \
+})
+#else
+#define vst3q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  uint32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 49); \
+})
+#else
+#define vst3q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  uint16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_s8(__p0, __p1) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 32); \
+})
+#else
+#define vst3q_s8(__p0, __p1) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  int8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_f32(__p0, __p1) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 41); \
+})
+#else
+#define vst3q_f32(__p0, __p1) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  float32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_f16(__p0, __p1) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \
+})
+#else
+#define vst3q_f16(__p0, __p1) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  float16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_s32(__p0, __p1) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 34); \
+})
+#else
+#define vst3q_s32(__p0, __p1) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  int32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_s16(__p0, __p1) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 33); \
+})
+#else
+#define vst3q_s16(__p0, __p1) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  int16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_u8(__p0, __p1) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 16); \
+})
+#else
+#define vst3_u8(__p0, __p1) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  uint8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_u32(__p0, __p1) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 18); \
+})
+#else
+#define vst3_u32(__p0, __p1) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  uint32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_u64(__p0, __p1) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \
+})
+#else
+#define vst3_u64(__p0, __p1) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_u16(__p0, __p1) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 17); \
+})
+#else
+#define vst3_u16(__p0, __p1) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  uint16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_s8(__p0, __p1) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 0); \
+})
+#else
+#define vst3_s8(__p0, __p1) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  int8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_f32(__p0, __p1) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 9); \
+})
+#else
+#define vst3_f32(__p0, __p1) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  float32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_f16(__p0, __p1) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \
+})
+#else
+#define vst3_f16(__p0, __p1) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  float16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_s32(__p0, __p1) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 2); \
+})
+#else
+#define vst3_s32(__p0, __p1) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  int32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_s64(__p0, __p1) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \
+})
+#else
+#define vst3_s64(__p0, __p1) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_s16(__p0, __p1) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 1); \
+})
+#else
+#define vst3_s16(__p0, __p1) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  int16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 4); \
+})
+#else
+#define vst3_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  poly8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 5); \
+})
+#else
+#define vst3_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  poly16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 37); \
+})
+#else
+#define vst3q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  poly16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 50); \
+})
+#else
+#define vst3q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  uint32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 49); \
+})
+#else
+#define vst3q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  uint16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 41); \
+})
+#else
+#define vst3q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  float32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \
+})
+#else
+#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  float16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 34); \
+})
+#else
+#define vst3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  int32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 33); \
+})
+#else
+#define vst3q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  int16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 16); \
+})
+#else
+#define vst3_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  uint8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 18); \
+})
+#else
+#define vst3_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  uint32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 17); \
+})
+#else
+#define vst3_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  uint16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 0); \
+})
+#else
+#define vst3_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  int8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], __p2, 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 9); \
+})
+#else
+#define vst3_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  float32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \
+})
+#else
+#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  float16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 2); \
+})
+#else
+#define vst3_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  int32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 1); \
+})
+#else
+#define vst3_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  int16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_p8(__p0, __p1) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 4); \
+})
+#else
+#define vst4_p8(__p0, __p1) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  poly8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_p16(__p0, __p1) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 5); \
+})
+#else
+#define vst4_p16(__p0, __p1) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  poly16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 36); \
+})
+#else
+#define vst4q_p8(__p0, __p1) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  poly8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 37); \
+})
+#else
+#define vst4q_p16(__p0, __p1) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  poly16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 48); \
+})
+#else
+#define vst4q_u8(__p0, __p1) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  uint8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 50); \
+})
+#else
+#define vst4q_u32(__p0, __p1) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  uint32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 49); \
+})
+#else
+#define vst4q_u16(__p0, __p1) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  uint16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_s8(__p0, __p1) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 32); \
+})
+#else
+#define vst4q_s8(__p0, __p1) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  int8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_f32(__p0, __p1) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 41); \
+})
+#else
+#define vst4q_f32(__p0, __p1) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  float32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_f16(__p0, __p1) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \
+})
+#else
+#define vst4q_f16(__p0, __p1) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  float16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_s32(__p0, __p1) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 34); \
+})
+#else
+#define vst4q_s32(__p0, __p1) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  int32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_s16(__p0, __p1) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 33); \
+})
+#else
+#define vst4q_s16(__p0, __p1) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  int16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_u8(__p0, __p1) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 16); \
+})
+#else
+#define vst4_u8(__p0, __p1) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  uint8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_u32(__p0, __p1) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 18); \
+})
+#else
+#define vst4_u32(__p0, __p1) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  uint32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_u64(__p0, __p1) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \
+})
+#else
+#define vst4_u64(__p0, __p1) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_u16(__p0, __p1) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 17); \
+})
+#else
+#define vst4_u16(__p0, __p1) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  uint16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_s8(__p0, __p1) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 0); \
+})
+#else
+#define vst4_s8(__p0, __p1) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  int8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_f32(__p0, __p1) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 9); \
+})
+#else
+#define vst4_f32(__p0, __p1) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  float32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_f16(__p0, __p1) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \
+})
+#else
+#define vst4_f16(__p0, __p1) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  float16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_s32(__p0, __p1) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 2); \
+})
+#else
+#define vst4_s32(__p0, __p1) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  int32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_s64(__p0, __p1) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \
+})
+#else
+#define vst4_s64(__p0, __p1) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_s16(__p0, __p1) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 1); \
+})
+#else
+#define vst4_s16(__p0, __p1) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  int16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 4); \
+})
+#else
+#define vst4_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  poly8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 5); \
+})
+#else
+#define vst4_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  poly16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 37); \
+})
+#else
+#define vst4q_lane_p16(__p0, __p1, __p2) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  poly16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 50); \
+})
+#else
+#define vst4q_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  uint32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 49); \
+})
+#else
+#define vst4q_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  uint16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 41); \
+})
+#else
+#define vst4q_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  float32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \
+})
+#else
+#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  float16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 34); \
+})
+#else
+#define vst4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  int32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 33); \
+})
+#else
+#define vst4q_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  int16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 16); \
+})
+#else
+#define vst4_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  uint8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 18); \
+})
+#else
+#define vst4_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  uint32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 17); \
+})
+#else
+#define vst4_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  uint16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 0); \
+})
+#else
+#define vst4_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  int8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], __p2, 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 9); \
+})
+#else
+#define vst4_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  float32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \
+})
+#else
+#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  float16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 2); \
+})
+#else
+#define vst4_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  int32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 1); \
+})
+#else
+#define vst4_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  int16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vsubq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint8x16_t vsubq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsubq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint32x4_t vsubq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vsubq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint64x2_t vsubq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsubq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint16x8_t vsubq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vsubq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int8x16_t vsubq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vsubq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai float32x4_t vsubq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int32x4_t vsubq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vsubq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int64x2_t vsubq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int16x8_t vsubq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vsub_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint8x8_t vsub_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vsub_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint32x2_t vsub_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vsub_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint64x1_t vsub_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vsub_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai uint16x4_t vsub_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vsub_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int8x8_t vsub_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vsub_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai float32x2_t vsub_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int32x2_t vsub_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vsub_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int64x1_t vsub_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai int16x4_t vsub_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x4_t __noswap_vsubhn_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 17);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint32x2_t __noswap_vsubhn_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 18);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint8x8_t __noswap_vsubhn_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 16);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vsubhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vsubhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x4_t __noswap_vsubhn_s32(int32x4_t __p0, int32x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vsubhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vsubhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int32x2_t __noswap_vsubhn_s64(int64x2_t __p0, int64x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vsubhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vsubhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__rev0, (int8x16_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int8x8_t __noswap_vsubhn_s16(int16x8_t __p0, int16x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vsubhn_v((int8x16_t)__p0, (int8x16_t)__p1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsubl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = vmovl_u8(__p0) - vmovl_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vsubl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmovl_u8(__rev0) - __noswap_vmovl_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vsubl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = vmovl_u32(__p0) - vmovl_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vsubl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmovl_u32(__rev0) - __noswap_vmovl_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsubl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = vmovl_u16(__p0) - vmovl_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsubl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmovl_u16(__rev0) - __noswap_vmovl_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vsubl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = vmovl_s8(__p0) - vmovl_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vsubl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmovl_s8(__rev0) - __noswap_vmovl_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vsubl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = vmovl_s32(__p0) - vmovl_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vsubl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmovl_s32(__rev0) - __noswap_vmovl_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vsubl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = vmovl_s16(__p0) - vmovl_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vsubl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmovl_s16(__rev0) - __noswap_vmovl_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsubw_u8(uint16x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 - vmovl_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vsubw_u8(uint16x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 - __noswap_vmovl_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vsubw_u32(uint64x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 - vmovl_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vsubw_u32(uint64x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 - __noswap_vmovl_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsubw_u16(uint32x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 - vmovl_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsubw_u16(uint32x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __noswap_vmovl_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vsubw_s8(int16x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 - vmovl_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vsubw_s8(int16x8_t __p0, int8x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 - __noswap_vmovl_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vsubw_s32(int64x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 - vmovl_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vsubw_s32(int64x2_t __p0, int32x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 - __noswap_vmovl_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vsubw_s16(int32x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 - vmovl_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vsubw_s16(int32x4_t __p0, int16x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __noswap_vmovl_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbl1_p8(poly8x8_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__p0, (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbl1_p8(poly8x8_t __p0, uint8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__rev0, (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbl1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbl1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbl1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbl1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl1_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbl2_p8(poly8x8x2_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbl2_p8(poly8x8x2_t __p0, uint8x8_t __p1) {
+  poly8x8x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbl2_u8(uint8x8x2_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbl2_u8(uint8x8x2_t __p0, uint8x8_t __p1) {
+  uint8x8x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbl2_s8(int8x8x2_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbl2_s8(int8x8x2_t __p0, int8x8_t __p1) {
+  int8x8x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl2_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbl3_p8(poly8x8x3_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbl3_p8(poly8x8x3_t __p0, uint8x8_t __p1) {
+  poly8x8x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbl3_u8(uint8x8x3_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbl3_u8(uint8x8x3_t __p0, uint8x8_t __p1) {
+  uint8x8x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbl3_s8(int8x8x3_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbl3_s8(int8x8x3_t __p0, int8x8_t __p1) {
+  int8x8x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl3_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbl4_p8(poly8x8x4_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p0.val[3], (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbl4_p8(poly8x8x4_t __p0, uint8x8_t __p1) {
+  poly8x8x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev0.val[3], (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbl4_u8(uint8x8x4_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p0.val[3], (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbl4_u8(uint8x8x4_t __p0, uint8x8_t __p1) {
+  uint8x8x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev0.val[3], (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbl4_s8(int8x8x4_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__p0.val[0], (int8x8_t)__p0.val[1], (int8x8_t)__p0.val[2], (int8x8_t)__p0.val[3], (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbl4_s8(int8x8x4_t __p0, int8x8_t __p1) {
+  int8x8x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbl4_v((int8x8_t)__rev0.val[0], (int8x8_t)__rev0.val[1], (int8x8_t)__rev0.val[2], (int8x8_t)__rev0.val[3], (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbx1_p8(poly8x8_t __p0, poly8x8_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbx1_p8(poly8x8_t __p0, poly8x8_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbx1_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbx1_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbx1_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbx1_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx1_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbx2_p8(poly8x8_t __p0, poly8x8x2_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbx2_p8(poly8x8_t __p0, poly8x8x2_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbx2_u8(uint8x8_t __p0, uint8x8x2_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbx2_u8(uint8x8_t __p0, uint8x8x2_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbx2_s8(int8x8_t __p0, int8x8x2_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbx2_s8(int8x8_t __p0, int8x8x2_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx2_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbx3_p8(poly8x8_t __p0, poly8x8x3_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbx3_p8(poly8x8_t __p0, poly8x8x3_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbx3_u8(uint8x8_t __p0, uint8x8x3_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbx3_u8(uint8x8_t __p0, uint8x8x3_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbx3_s8(int8x8_t __p0, int8x8x3_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbx3_s8(int8x8_t __p0, int8x8x3_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx3_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtbx4_p8(poly8x8_t __p0, poly8x8x4_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p1.val[3], (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtbx4_p8(poly8x8_t __p0, poly8x8x4_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtbx4_u8(uint8x8_t __p0, uint8x8x4_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p1.val[3], (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtbx4_u8(uint8x8_t __p0, uint8x8x4_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtbx4_s8(int8x8_t __p0, int8x8x4_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__p0, (int8x8_t)__p1.val[0], (int8x8_t)__p1.val[1], (int8x8_t)__p1.val[2], (int8x8_t)__p1.val[3], (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vtbx4_s8(int8x8_t __p0, int8x8x4_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vtbx4_v((int8x8_t)__rev0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8x2_t vtrn_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8x2_t vtrn_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 4);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4x2_t vtrn_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 5);
+  return __ret;
+}
+#else
+__ai poly16x4x2_t vtrn_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 5);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16x2_t vtrnq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16x2_t vtrnq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 36);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8x2_t vtrnq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 37);
+  return __ret;
+}
+#else
+__ai poly16x8x2_t vtrnq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 37);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16x2_t vtrnq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16x2_t vtrnq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4x2_t vtrnq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4x2_t vtrnq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8x2_t vtrnq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8x2_t vtrnq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16x2_t vtrnq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16x2_t vtrnq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4x2_t vtrnq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4x2_t vtrnq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4x2_t vtrnq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4x2_t vtrnq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8x2_t vtrnq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8x2_t vtrnq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8x2_t __ret;
+  __builtin_neon_vtrnq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8x2_t vtrn_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8x2_t vtrn_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2x2_t vtrn_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2x2_t vtrn_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4x2_t vtrn_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4x2_t vtrn_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8x2_t vtrn_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8x2_t vtrn_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2x2_t vtrn_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2x2_t vtrn_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2x2_t vtrn_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2x2_t vtrn_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4x2_t vtrn_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4x2_t vtrn_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4x2_t __ret;
+  __builtin_neon_vtrn_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtst_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtst_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vtst_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vtst_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vtstq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vtstq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vtstq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vtstq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vtstq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vtstq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vtstq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vtstq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vtstq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vtstq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vtstq_s8(int8x16_t __p0, int8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vtstq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vtstq_s32(int32x4_t __p0, int32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vtstq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vtstq_s16(int16x8_t __p0, int16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vtstq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtst_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtst_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vtst_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vtst_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vtst_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vtst_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtst_s8(int8x8_t __p0, int8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtst_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vtst_s32(int32x2_t __p0, int32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vtst_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vtst_s16(int16x4_t __p0, int16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vtst_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vtst_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8x2_t vuzp_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8x2_t vuzp_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 4);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4x2_t vuzp_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 5);
+  return __ret;
+}
+#else
+__ai poly16x4x2_t vuzp_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 5);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16x2_t vuzpq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16x2_t vuzpq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 36);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8x2_t vuzpq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 37);
+  return __ret;
+}
+#else
+__ai poly16x8x2_t vuzpq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 37);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16x2_t vuzpq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16x2_t vuzpq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4x2_t vuzpq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4x2_t vuzpq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8x2_t vuzpq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8x2_t vuzpq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16x2_t vuzpq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16x2_t vuzpq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4x2_t vuzpq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4x2_t vuzpq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4x2_t vuzpq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4x2_t vuzpq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8x2_t vuzpq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8x2_t vuzpq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8x2_t __ret;
+  __builtin_neon_vuzpq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8x2_t vuzp_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8x2_t vuzp_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2x2_t vuzp_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2x2_t vuzp_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4x2_t vuzp_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4x2_t vuzp_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8x2_t vuzp_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8x2_t vuzp_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2x2_t vuzp_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2x2_t vuzp_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2x2_t vuzp_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2x2_t vuzp_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4x2_t vuzp_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4x2_t vuzp_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4x2_t __ret;
+  __builtin_neon_vuzp_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8x2_t vzip_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8x2_t vzip_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 4);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4x2_t vzip_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 5);
+  return __ret;
+}
+#else
+__ai poly16x4x2_t vzip_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 5);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16x2_t vzipq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16x2_t vzipq_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 36);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8x2_t vzipq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 37);
+  return __ret;
+}
+#else
+__ai poly16x8x2_t vzipq_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 37);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16x2_t vzipq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16x2_t vzipq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4x2_t vzipq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4x2_t vzipq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8x2_t vzipq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8x2_t vzipq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16x2_t vzipq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16x2_t vzipq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4x2_t vzipq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4x2_t vzipq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4x2_t vzipq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4x2_t vzipq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8x2_t vzipq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8x2_t vzipq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8x2_t __ret;
+  __builtin_neon_vzipq_v(&__ret, (int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8x2_t vzip_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8x2_t vzip_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2x2_t vzip_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2x2_t vzip_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4x2_t vzip_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4x2_t vzip_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8x2_t vzip_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8x2_t vzip_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2x2_t vzip_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2x2_t vzip_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2x2_t vzip_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2x2_t vzip_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4x2_t vzip_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4x2_t vzip_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4x2_t __ret;
+  __builtin_neon_vzip_v(&__ret, (int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0);
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#if !defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#endif
+#if (__ARM_FP & 2)
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8);
+  return __ret;
+}
+#else
+__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float16x4_t __ret;
+  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__rev0, 8);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float16x4_t __noswap_vcvt_f16_f32(float32x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) {
+  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float32x4_t __noswap_vcvt_f32_f16(float16x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_ARCH >= 8
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vcvtaq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtaq_s32_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vcvtaq_s32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtaq_s32_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcvta_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvta_s32_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vcvta_s32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvta_s32_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcvtaq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtaq_u32_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcvtaq_u32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtaq_u32_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcvta_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvta_u32_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcvta_u32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvta_u32_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vcvtmq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtmq_s32_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vcvtmq_s32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtmq_s32_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcvtm_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvtm_s32_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vcvtm_s32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvtm_s32_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcvtmq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtmq_u32_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcvtmq_u32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtmq_u32_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcvtm_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvtm_u32_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcvtm_u32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvtm_u32_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vcvtnq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtnq_s32_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vcvtnq_s32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtnq_s32_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcvtn_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvtn_s32_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vcvtn_s32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvtn_s32_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcvtnq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtnq_u32_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcvtnq_u32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtnq_u32_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcvtn_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvtn_u32_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcvtn_u32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvtn_u32_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vcvtpq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtpq_s32_v((int8x16_t)__p0, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vcvtpq_s32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vcvtpq_s32_v((int8x16_t)__rev0, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vcvtp_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvtp_s32_v((int8x8_t)__p0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vcvtp_s32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vcvtp_s32_v((int8x8_t)__rev0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcvtpq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtpq_u32_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcvtpq_u32_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcvtpq_u32_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcvtp_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvtp_u32_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcvtp_u32_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcvtp_u32_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_DIRECTED_ROUNDING)
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrnd_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrnd_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrnd_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndaq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndaq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndaq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndaq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrnda_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrnda_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrnda_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndmq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndmq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndmq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndmq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrndm_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrndm_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndm_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndnq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndnq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndnq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndnq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrndn_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrndn_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndn_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndpq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndpq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndpq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndpq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrndp_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrndp_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndp_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndxq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndxq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndxq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndxq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrndx_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrndx_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndx_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_ARCH >= 8 && defined(__ARM_FEATURE_NUMERIC_MAXMIN)
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmaxnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vmaxnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmaxnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vminnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vminnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vminnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vminnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vminnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_ARCH >= 8 && defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vcvtaq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtaq_s64_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vcvtaq_s64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtaq_s64_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vcvta_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvta_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vcvta_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvta_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcvtaq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtaq_u64_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcvtaq_u64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtaq_u64_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcvta_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvta_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcvta_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvta_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vcvtmq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtmq_s64_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vcvtmq_s64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtmq_s64_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vcvtm_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvtm_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vcvtm_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvtm_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcvtmq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtmq_u64_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcvtmq_u64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtmq_u64_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcvtm_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvtm_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcvtm_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvtm_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vcvtnq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtnq_s64_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vcvtnq_s64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtnq_s64_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vcvtn_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvtn_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vcvtn_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvtn_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcvtnq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtnq_u64_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcvtnq_u64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtnq_u64_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcvtn_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvtn_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcvtn_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvtn_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vcvtpq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtpq_s64_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vcvtpq_s64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtpq_s64_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vcvtp_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvtp_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vcvtp_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvtp_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcvtpq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtpq_u64_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcvtpq_u64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtpq_u64_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcvtp_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvtp_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcvtp_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvtp_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_p64(poly64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_p64(poly64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_p16(poly16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u8(uint8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u32(uint32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u64(uint64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_u16(uint16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s8(int8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_f64(float64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_f64(float64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_f32(float32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_f16(float16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s32(int32x2_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s64(int64x1_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x8_t vreinterpret_p8_s16(int16x4_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_p8(poly8x8_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_p8(poly8x8_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_p16(poly16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_p16(poly16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_u8(uint8x8_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_u8(uint8x8_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_u32(uint32x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_u32(uint32x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_u64(uint64x1_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_u64(uint64x1_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_u16(uint16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_u16(uint16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_s8(int8x8_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_s8(int8x8_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_f64(float64x1_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_f64(float64x1_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_f32(float32x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_f32(float32x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_f16(float16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_f16(float16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_s32(int32x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_s32(int32x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_s64(int64x1_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_s64(int64x1_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vreinterpret_p64_s16(int16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vreinterpret_p64_s16(int16x4_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_p8(poly8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_p64(poly64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_p64(poly64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u8(uint8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u32(uint32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u64(uint64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_u16(uint16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s8(int8x8_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_f64(float64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_f64(float64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_f32(float32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_f16(float16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s32(int32x2_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s64(int64x1_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x4_t vreinterpret_p16_s16(int16x4_t __p0) {
+  poly16x4_t __ret;
+  __ret = (poly16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_p128(poly128_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_p128(poly128_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_p64(poly64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_p64(poly64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_p16(poly16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u8(uint8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u32(uint32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u64(uint64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_u16(uint16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s8(int8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_f64(float64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_f64(float64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_f32(float32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_f16(float16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s32(int32x4_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s64(int64x2_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly8x16_t vreinterpretq_p8_s16(int16x8_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_p8(poly8x16_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_p8(poly8x16_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_p64(poly64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_p64(poly64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_p16(poly16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_p16(poly16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_u8(uint8x16_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_u8(uint8x16_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_u32(uint32x4_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_u32(uint32x4_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_u64(uint64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_u64(uint64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_u16(uint16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_u16(uint16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_s8(int8x16_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_s8(int8x16_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_f64(float64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_f64(float64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_f32(float32x4_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_f32(float32x4_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_f16(float16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_f16(float16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_s32(int32x4_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_s32(int32x4_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_s64(int64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_s64(int64x2_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vreinterpretq_p128_s16(int16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly128_t vreinterpretq_p128_s16(int16x8_t __p0) {
+  poly128_t __ret;
+  __ret = (poly128_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_p8(poly8x16_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_p8(poly8x16_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_p128(poly128_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_p128(poly128_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_p16(poly16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_p16(poly16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_u8(uint8x16_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_u8(uint8x16_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_u32(uint32x4_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_u32(uint32x4_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_u64(uint64x2_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_u64(uint64x2_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_u16(uint16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_u16(uint16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_s8(int8x16_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_s8(int8x16_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_f64(float64x2_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_f64(float64x2_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_f32(float32x4_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_f32(float32x4_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_f16(float16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_f16(float16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_s32(int32x4_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_s32(int32x4_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_s64(int64x2_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_s64(int64x2_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vreinterpretq_p64_s16(int16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x2_t vreinterpretq_p64_s16(int16x8_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_p8(poly8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_p128(poly128_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_p128(poly128_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_p64(poly64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_p64(poly64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u8(uint8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u32(uint32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u64(uint64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_u16(uint16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s8(int8x16_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_f64(float64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_f64(float64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_f32(float32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_f16(float16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s32(int32x4_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s64(int64x2_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly16x8_t vreinterpretq_p16_s16(int16x8_t __p0) {
+  poly16x8_t __ret;
+  __ret = (poly16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_p8(poly8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_p128(poly128_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_p128(poly128_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_p64(poly64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_p64(poly64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_p16(poly16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_u32(uint32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_u64(uint64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_u16(uint16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_f64(float64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_f64(float64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_f32(float32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_f16(float16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s32(int32x4_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s64(int64x2_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x16_t vreinterpretq_u8_s16(int16x8_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_p8(poly8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_p128(poly128_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_p128(poly128_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_p64(poly64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_p64(poly64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_p16(poly16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_u8(uint8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_u64(uint64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_u16(uint16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s8(int8x16_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_f64(float64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_f64(float64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_f16(float16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s64(int64x2_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x4_t vreinterpretq_u32_s16(int16x8_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_p8(poly8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_p128(poly128_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_p128(poly128_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_p64(poly64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_p64(poly64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_p16(poly16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_u8(uint8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_u32(uint32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_u16(uint16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s8(int8x16_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_f32(float32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_f16(float16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s32(int32x4_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x2_t vreinterpretq_u64_s16(int16x8_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_p8(poly8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_p128(poly128_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_p128(poly128_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_p64(poly64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_p64(poly64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_p16(poly16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_u8(uint8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_u32(uint32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_u64(uint64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s8(int8x16_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_f64(float64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_f64(float64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_f32(float32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_f16(float16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s32(int32x4_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s64(int64x2_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x8_t vreinterpretq_u16_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_p8(poly8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_p128(poly128_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_p128(poly128_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_p64(poly64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_p64(poly64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_p16(poly16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u8(uint8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u32(uint32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u64(uint64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_u16(uint16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_f64(float64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_f64(float64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_f32(float32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_f16(float16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_s32(int32x4_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_s64(int64x2_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x16_t vreinterpretq_s8_s16(int16x8_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_p8(poly8x16_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_p8(poly8x16_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_p128(poly128_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_p128(poly128_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_p64(poly64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_p64(poly64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_p16(poly16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_p16(poly16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_u8(uint8x16_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_u8(uint8x16_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_u32(uint32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_u32(uint32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_u64(uint64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_u64(uint64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_u16(uint16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_u16(uint16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_s8(int8x16_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_s8(int8x16_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_f32(float32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_f32(float32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_f16(float16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_f16(float16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_s32(int32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_s32(int32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_s64(int64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_s64(int64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vreinterpretq_f64_s16(int16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x2_t vreinterpretq_f64_s16(int16x8_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_p8(poly8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_p128(poly128_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_p128(poly128_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_p64(poly64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_p64(poly64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_p16(poly16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u8(uint8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u32(uint32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u64(uint64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_u16(uint16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s8(int8x16_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_f64(float64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_f64(float64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_f16(float16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s32(int32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s64(int64x2_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x4_t vreinterpretq_f32_s16(int16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_p8(poly8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_p128(poly128_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_p128(poly128_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_p64(poly64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_p64(poly64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_p16(poly16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u8(uint8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u32(uint32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u64(uint64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_u16(uint16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s8(int8x16_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_f64(float64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_f64(float64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_f32(float32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s32(int32x4_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s64(int64x2_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x8_t vreinterpretq_f16_s16(int16x8_t __p0) {
+  float16x8_t __ret;
+  __ret = (float16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_p8(poly8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_p128(poly128_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_p128(poly128_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_p64(poly64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_p64(poly64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_p16(poly16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u8(uint8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u32(uint32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u64(uint64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_u16(uint16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_s8(int8x16_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_f64(float64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_f64(float64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_f32(float32x4_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_f16(float16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_s64(int64x2_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x4_t vreinterpretq_s32_s16(int16x8_t __p0) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_p8(poly8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_p128(poly128_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_p128(poly128_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_p64(poly64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_p64(poly64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_p16(poly16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u8(uint8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u32(uint32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u64(uint64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_u16(uint16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_s8(int8x16_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_f32(float32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_f16(float16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_s32(int32x4_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x2_t vreinterpretq_s64_s16(int16x8_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_p8(poly8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_p128(poly128_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_p128(poly128_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_p64(poly64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_p64(poly64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_p16(poly16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u8(uint8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u32(uint32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u64(uint64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_u16(uint16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_s8(int8x16_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_f64(float64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_f64(float64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_f32(float32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_f16(float16x8_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_s32(int32x4_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x8_t vreinterpretq_s16_s64(int64x2_t __p0) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_p8(poly8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_p64(poly64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_p64(poly64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_p16(poly16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_u32(uint32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_u64(uint64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_u16(uint16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_f64(float64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_f64(float64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_f32(float32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_f16(float16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s32(int32x2_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s64(int64x1_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint8x8_t vreinterpret_u8_s16(int16x4_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_p8(poly8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_p64(poly64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_p64(poly64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_p16(poly16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_u8(uint8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_u64(uint64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_u16(uint16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s8(int8x8_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_f64(float64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_f64(float64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_f16(float16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s64(int64x1_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint32x2_t vreinterpret_u32_s16(int16x4_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_p8(poly8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_p64(poly64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_p64(poly64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_p16(poly16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_u8(uint8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_u32(uint32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_u16(uint16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s8(int8x8_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_f32(float32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_f16(float16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s32(int32x2_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint64x1_t vreinterpret_u64_s16(int16x4_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_p8(poly8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_p64(poly64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_p64(poly64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_p16(poly16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_u8(uint8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_u32(uint32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_u64(uint64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s8(int8x8_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_f64(float64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_f64(float64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_f32(float32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_f16(float16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s32(int32x2_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s64(int64x1_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai uint16x4_t vreinterpret_u16_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_p8(poly8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_p64(poly64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_p64(poly64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_p16(poly16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u8(uint8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u32(uint32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u64(uint64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_u16(uint16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_f64(float64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_f64(float64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_f32(float32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_f16(float16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_s32(int32x2_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_s64(int64x1_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#else
+__ai int8x8_t vreinterpret_s8_s16(int16x4_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_p8(poly8x8_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_p8(poly8x8_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_p64(poly64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_p64(poly64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_p16(poly16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_p16(poly16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_u8(uint8x8_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_u8(uint8x8_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_u32(uint32x2_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_u32(uint32x2_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_u64(uint64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_u64(uint64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_u16(uint16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_u16(uint16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_s8(int8x8_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_s8(int8x8_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_f32(float32x2_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_f32(float32x2_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_f16(float16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_f16(float16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_s32(int32x2_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_s32(int32x2_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_s64(int64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_s64(int64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vreinterpret_f64_s16(int16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vreinterpret_f64_s16(int16x4_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_p8(poly8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_p64(poly64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_p64(poly64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_p16(poly16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u8(uint8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u32(uint32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u64(uint64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_u16(uint16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s8(int8x8_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_f64(float64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_f64(float64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_f16(float16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s32(int32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s64(int64x1_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai float32x2_t vreinterpret_f32_s16(int16x4_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_p8(poly8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_p64(poly64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_p64(poly64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_p16(poly16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u8(uint8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u32(uint32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u64(uint64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_u16(uint16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s8(int8x8_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_f64(float64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_f64(float64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_f32(float32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s32(int32x2_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s64(int64x1_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai float16x4_t vreinterpret_f16_s16(int16x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_p8(poly8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_p64(poly64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_p64(poly64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_p16(poly16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u8(uint8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u32(uint32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u64(uint64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_u16(uint16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_s8(int8x8_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_f64(float64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_f64(float64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_f32(float32x2_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_f16(float16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_s64(int64x1_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#else
+__ai int32x2_t vreinterpret_s32_s16(int16x4_t __p0) {
+  int32x2_t __ret;
+  __ret = (int32x2_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_p8(poly8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_p64(poly64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_p64(poly64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_p16(poly16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u8(uint8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u32(uint32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u64(uint64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_u16(uint16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_s8(int8x8_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_f32(float32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_f16(float16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_s32(int32x2_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai int64x1_t vreinterpret_s64_s16(int16x4_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_p8(poly8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_p64(poly64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_p64(poly64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_p16(poly16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u8(uint8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u32(uint32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u64(uint64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_u16(uint16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_s8(int8x8_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_f64(float64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_f64(float64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_f32(float32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_f16(float16x4_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_s32(int32x2_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#else
+__ai int16x4_t vreinterpret_s16_s64(int64x1_t __p0) {
+  int16x4_t __ret;
+  __ret = (int16x4_t)(__p0);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_ARCH >= 8 && defined(__aarch64__) && defined(__ARM_FEATURE_DIRECTED_ROUNDING)
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrnd_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrnd_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrnd_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndaq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndaq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndaq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndaq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrnda_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrnda_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrnda_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndiq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndiq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndiq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndiq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vrndiq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndiq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vrndiq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vrndiq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrndi_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrndi_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vrndi_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndi_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vrndi_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vrndi_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndmq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndmq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndmq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndmq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrndm_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrndm_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndm_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndnq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndnq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndnq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndnq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrndn_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrndn_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndn_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndpq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndpq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndpq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndpq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrndp_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrndp_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndp_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrndxq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndxq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrndxq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrndxq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrndx_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrndx_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrndx_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_ARCH >= 8 && defined(__aarch64__) && defined(__ARM_FEATURE_NUMERIC_MAXMIN)
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmaxnm_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vmaxnm_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vminnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vminnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vminnm_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vminnm_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#endif
+#if __ARM_FEATURE_CRYPTO
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vaesdq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaesdq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vaesdq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaesdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vaeseq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaeseq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vaeseq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaeseq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vaesimcq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaesimcq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vaesimcq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaesimcq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vaesmcq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaesmcq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vaesmcq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vaesmcq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha1cq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1cq_u32((int8x16_t)__p0, __p1, (int8x16_t)__p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha1cq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1cq_u32((int8x16_t)__rev0, __p1, (int8x16_t)__rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vsha1h_u32(uint32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vsha1h_u32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vsha1h_u32(uint32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vsha1h_u32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha1mq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1mq_u32((int8x16_t)__p0, __p1, (int8x16_t)__p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha1mq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1mq_u32((int8x16_t)__rev0, __p1, (int8x16_t)__rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha1pq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1pq_u32((int8x16_t)__p0, __p1, (int8x16_t)__p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha1pq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1pq_u32((int8x16_t)__rev0, __p1, (int8x16_t)__rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha1su0q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1su0q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha1su0q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1su0q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha1su1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1su1q_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha1su1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha1su1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha256hq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256hq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha256hq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256hq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha256h2q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256h2q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha256h2q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256h2q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha256su0q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256su0q_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha256su0q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256su0q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsha256su1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256su1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsha256su1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsha256su1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+#if defined(__ARM_FEATURE_FMA)
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vfmaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vfmaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vfmaq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float32x4_t __noswap_vfmaq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vfma_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vfma_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vfma_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float32x2_t __noswap_vfma_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vfmsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = vfmaq_f32(__p0, -__p1, __p2);
+  return __ret;
+}
+#else
+__ai float32x4_t vfmsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __noswap_vfmaq_f32(__rev0, -__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = vfma_f32(__p0, -__p1, __p2);
+  return __ret;
+}
+#else
+__ai float32x2_t vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float32x2_t __ret;
+  __ret = __noswap_vfma_f32(__rev0, -__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+#if defined(__ARM_FEATURE_QRDMX)
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqrdmlahq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __ret;
+  __ret = vqaddq_s32(__p0, vqrdmulhq_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vqrdmlahq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqaddq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqrdmlahq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __ret;
+  __ret = vqaddq_s16(__p0, vqrdmulhq_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vqrdmlahq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vqaddq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqrdmlah_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __ret;
+  __ret = vqadd_s32(__p0, vqrdmulh_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x2_t vqrdmlah_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x2_t __ret;
+  __ret = __noswap_vqadd_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqrdmlah_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __ret;
+  __ret = vqadd_s16(__p0, vqrdmulh_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x4_t vqrdmlah_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __noswap_vqadd_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqaddq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlahq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqaddq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = vqaddq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlahq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqaddq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlah_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = vqadd_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlah_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqadd_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlah_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = vqadd_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlah_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqadd_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqrdmlshq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __ret;
+  __ret = vqsubq_s32(__p0, vqrdmulhq_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vqrdmlshq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqsubq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqrdmlshq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __ret;
+  __ret = vqsubq_s16(__p0, vqrdmulhq_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vqrdmlshq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vqsubq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vqrdmlsh_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __ret;
+  __ret = vqsub_s32(__p0, vqrdmulh_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x2_t vqrdmlsh_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x2_t __ret;
+  __ret = __noswap_vqsub_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vqrdmlsh_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __ret;
+  __ret = vqsub_s16(__p0, vqrdmulh_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x4_t vqrdmlsh_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __noswap_vqsub_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqsubq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlshq_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqsubq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = vqsubq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlshq_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqsubq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlsh_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = vqsub_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlsh_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqsub_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlsh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = vqsub_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlsh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqsub_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#endif
+#if defined(__ARM_FEATURE_QRDMX) && defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqaddq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlahq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqaddq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = vqaddq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlahq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqaddq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlah_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = vqadd_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlah_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqadd_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlah_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = vqadd_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlah_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqadd_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqsubq_s32(__s0, vqrdmulhq_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlshq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqsubq_s32(__rev0, __noswap_vqrdmulhq_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = vqsubq_s16(__s0, vqrdmulhq_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlshq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqsubq_s16(__rev0, __noswap_vqrdmulhq_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlsh_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = vqsub_s32(__s0, vqrdmulh_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlsh_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqsub_s32(__rev0, __noswap_vqrdmulh_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlsh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = vqsub_s16(__s0, vqrdmulh_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3))); \
+  __ret; \
+})
+#else
+#define vqrdmlsh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqsub_s16(__rev0, __noswap_vqrdmulh_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3))); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#endif
+#if defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vabdq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vabdq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vabdq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vabdq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vabd_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vabd_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vabd_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vabdd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vabdd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float64_t vabdd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vabdd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vabds_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vabds_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float32_t vabds_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vabds_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vabsq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vabsq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vabsq_s64(int64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vabsq_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vabsq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vabsq_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vabs_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vabs_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vabs_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vabs_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vabs_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vabsd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vabsd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vabsd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vabsd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vaddq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai float64x2_t vaddq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 + __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vadd_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#else
+__ai float64x1_t vadd_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 + __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vaddd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vaddd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vaddd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vaddd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vaddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16(__p0, vaddhn_u32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vaddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16(__rev0, __noswap_vaddhn_u32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vaddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32(__p0, vaddhn_u64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vaddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32(__rev0, __noswap_vaddhn_u64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vaddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8(__p0, vaddhn_u16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint8x16_t vaddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8(__rev0, __noswap_vaddhn_u16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vaddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x8_t __ret;
+  __ret = vcombine_s16(__p0, vaddhn_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vaddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vcombine_s16(__rev0, __noswap_vaddhn_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vaddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x4_t __ret;
+  __ret = vcombine_s32(__p0, vaddhn_s64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vaddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vcombine_s32(__rev0, __noswap_vaddhn_s64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vaddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x16_t __ret;
+  __ret = vcombine_s8(__p0, vaddhn_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int8x16_t vaddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __noswap_vcombine_s8(__rev0, __noswap_vaddhn_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vaddlvq_u8(uint8x16_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddlvq_u8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vaddlvq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddlvq_u8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vaddlvq_u32(uint32x4_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddlvq_u32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vaddlvq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddlvq_u32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vaddlvq_u16(uint16x8_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddlvq_u16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vaddlvq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddlvq_u16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vaddlvq_s8(int8x16_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddlvq_s8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vaddlvq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddlvq_s8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vaddlvq_s32(int32x4_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddlvq_s32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int64_t vaddlvq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddlvq_s32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vaddlvq_s16(int16x8_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddlvq_s16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vaddlvq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddlvq_s16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vaddlv_u8(uint8x8_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddlv_u8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vaddlv_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddlv_u8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vaddlv_u32(uint32x2_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddlv_u32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vaddlv_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddlv_u32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vaddlv_u16(uint16x4_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddlv_u16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vaddlv_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddlv_u16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vaddlv_s8(int8x8_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddlv_s8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vaddlv_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddlv_s8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vaddlv_s32(int32x2_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddlv_s32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int64_t vaddlv_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddlv_s32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vaddlv_s16(int16x4_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddlv_s16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vaddlv_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddlv_s16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vaddvq_u8(uint8x16_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vaddvq_u8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vaddvq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vaddvq_u8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vaddvq_u32(uint32x4_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddvq_u32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vaddvq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddvq_u32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vaddvq_u64(uint64x2_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddvq_u64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vaddvq_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vaddvq_u64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vaddvq_u16(uint16x8_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddvq_u16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vaddvq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddvq_u16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vaddvq_s8(int8x16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vaddvq_s8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int8_t vaddvq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vaddvq_s8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vaddvq_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vaddvq_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vaddvq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vaddvq_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vaddvq_f32(float32x4_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vaddvq_f32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vaddvq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vaddvq_f32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vaddvq_s32(int32x4_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddvq_s32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vaddvq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddvq_s32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vaddvq_s64(int64x2_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddvq_s64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int64_t vaddvq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vaddvq_s64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vaddvq_s16(int16x8_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddvq_s16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vaddvq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddvq_s16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vaddv_u8(uint8x8_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vaddv_u8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vaddv_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vaddv_u8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vaddv_u32(uint32x2_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddv_u32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vaddv_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vaddv_u32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vaddv_u16(uint16x4_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddv_u16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vaddv_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vaddv_u16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vaddv_s8(int8x8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vaddv_s8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int8_t vaddv_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vaddv_s8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vaddv_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vaddv_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vaddv_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vaddv_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vaddv_s32(int32x2_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddv_s32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vaddv_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vaddv_s32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vaddv_s16(int16x4_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddv_s16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vaddv_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vaddv_s16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vbsl_p64(uint64x1_t __p0, poly64x1_t __p1, poly64x1_t __p2) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 6);
+  return __ret;
+}
+#else
+__ai poly64x1_t vbsl_p64(uint64x1_t __p0, poly64x1_t __p1, poly64x1_t __p2) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 6);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vbslq_p64(uint64x2_t __p0, poly64x2_t __p1, poly64x2_t __p2) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 38);
+  return __ret;
+}
+#else
+__ai poly64x2_t vbslq_p64(uint64x2_t __p0, poly64x2_t __p1, poly64x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  poly64x2_t __ret;
+  __ret = (poly64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 38);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vbslq_f64(uint64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vbslq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vbslq_f64(uint64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vbslq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vbsl_f64(uint64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vbsl_f64(uint64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vbsl_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcageq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcageq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcageq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcageq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcage_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcage_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcage_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcaged_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcaged_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcaged_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcaged_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcages_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcages_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcages_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcages_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcagtq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcagtq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcagtq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcagtq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcagt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcagt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcagt_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcagtd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcagtd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcagtd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcagtd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcagts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcagts_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcagts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcagts_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcaleq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcaleq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcaleq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcaleq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcale_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcale_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcale_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcaled_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcaled_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcaled_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcaled_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcales_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcales_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcales_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcales_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcaltq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcaltq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcaltq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcaltq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcalt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcalt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcalt_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcaltd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcaltd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcaltd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcaltd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcalts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcalts_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcalts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcalts_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceq_p64(poly64x1_t __p0, poly64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceq_p64(poly64x1_t __p0, poly64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqq_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqq_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqq_s64(int64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 == __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceq_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceq_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceq_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceq_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceq_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceq_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 == __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vceqd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vceqd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vceqd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vceqd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vceqd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vceqd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vceqd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vceqd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vceqs_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vceqs_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vceqs_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vceqs_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vceqz_p8(poly8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vceqz_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceqz_p64(poly64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceqz_p64(poly64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vceqz_p16(poly16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vceqz_p16(poly16x4_t __p0) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vceqzq_p8(poly8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vceqzq_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqzq_p64(poly64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqzq_p64(poly64x2_t __p0) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vceqzq_p16(poly16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vceqzq_p16(poly16x8_t __p0) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vceqzq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vceqzq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vceqzq_u32(uint32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vceqzq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqzq_u64(uint64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqzq_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vceqzq_u16(uint16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vceqzq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vceqzq_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vceqzq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqzq_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqzq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vceqzq_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vceqzq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vceqzq_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vceqzq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vceqzq_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vceqzq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vceqzq_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vceqzq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vceqzq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vceqz_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vceqz_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vceqz_u32(uint32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vceqz_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceqz_u64(uint64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceqz_u64(uint64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vceqz_u16(uint16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vceqz_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vceqz_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vceqz_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceqz_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceqz_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vceqz_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vceqz_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vceqz_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vceqz_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vceqz_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vceqz_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vceqz_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vceqz_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vceqz_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vceqzd_u64(uint64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqzd_u64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vceqzd_u64(uint64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqzd_u64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vceqzd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vceqzd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vceqzd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vceqzd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vceqzd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqzd_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vceqzd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vceqzd_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vceqzs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vceqzs_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vceqzs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vceqzs_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgeq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgeq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgeq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgeq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgeq_s64(int64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgeq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 >= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcge_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcge_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 >= __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcge_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcge_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 >= __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcge_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 >= __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcge_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 >= __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcged_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcged_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vcged_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcged_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcged_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcged_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcged_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcged_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcged_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcged_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcged_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcged_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcges_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcges_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcges_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcges_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcgezq_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcgezq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgezq_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgezq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgezq_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgezq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgezq_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgezq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgezq_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgezq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcgezq_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vcgezq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcgezq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vcgezq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcgez_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcgez_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgez_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgez_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgez_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgez_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgez_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgez_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgez_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgez_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcgez_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vcgez_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcgez_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vcgez_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcgezd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcgezd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcgezd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcgezd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcgezd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgezd_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcgezd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgezd_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcgezs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcgezs_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcgezs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcgezs_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgtq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgtq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgtq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgtq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgtq_s64(int64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgtq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 > __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgt_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgt_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 > __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 > __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgt_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 > __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgt_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 > __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcgtd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcgtd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vcgtd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcgtd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcgtd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgtd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcgtd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgtd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcgtd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgtd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcgtd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgtd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcgts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcgts_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcgts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcgts_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcgtzq_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcgtzq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgtzq_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgtzq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgtzq_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgtzq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcgtzq_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcgtzq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcgtzq_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcgtzq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcgtzq_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vcgtzq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcgtzq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vcgtzq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcgtz_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcgtz_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgtz_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgtz_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgtz_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgtz_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcgtz_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcgtz_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcgtz_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcgtz_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcgtz_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vcgtz_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcgtz_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vcgtz_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcgtzd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcgtzd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcgtzd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcgtzd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcgtzd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgtzd_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcgtzd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcgtzd_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcgtzs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcgtzs_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcgtzs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcgtzs_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcleq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcleq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcleq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcleq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcleq_s64(int64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcleq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 <= __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcle_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcle_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 <= __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcle_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcle_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 <= __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcle_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 <= __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcle_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 <= __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcled_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcled_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcled_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcled_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcled_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcled_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vcled_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcled_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcled_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcled_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcled_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcled_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcles_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcles_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vcles_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcles_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vclezq_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vclezq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vclezq_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vclezq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vclezq_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vclezq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vclezq_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vclezq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vclezq_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vclezq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vclezq_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vclezq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vclezq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vclezq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vclez_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vclez_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vclez_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vclez_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vclez_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vclez_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vclez_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vclez_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vclez_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vclez_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vclez_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vclez_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vclez_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vclez_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vclez_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vclez_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vclezd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vclezd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vclezd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vclezd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vclezd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vclezd_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vclezd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vclezd_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vclezs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vclezs_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vclezs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vclezs_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcltq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcltq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcltq_f64(float64x2_t __p0, float64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcltq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcltq_s64(int64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcltq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__rev0 < __rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vclt_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vclt_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 < __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vclt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vclt_f64(float64x1_t __p0, float64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 < __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vclt_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 < __p1);
+  return __ret;
+}
+#else
+__ai uint64x1_t vclt_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t)(__p0 < __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcltd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcltd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcltd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcltd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcltd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcltd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vcltd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcltd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcltd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcltd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vcltd_f64(float64_t __p0, float64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcltd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vclts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vclts_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vclts_f32(float32_t __p0, float32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vclts_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vcltzq_s8(int8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vcltzq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcltzq_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcltzq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcltzq_f32(float32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcltzq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vcltzq_s32(int32x4_t __p0) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vcltzq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcltzq_s64(int64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcltzq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vcltzq_s16(int16x8_t __p0) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vcltzq_v((int8x16_t)__p0, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vcltzq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vcltzq_v((int8x16_t)__rev0, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vcltz_s8(int8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vcltz_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcltz_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcltz_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcltz_f32(float32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcltz_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vcltz_s32(int32x2_t __p0) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vcltz_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcltz_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcltz_s64(int64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vcltz_s16(int16x4_t __p0) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vcltz_v((int8x8_t)__p0, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vcltz_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vcltz_v((int8x8_t)__rev0, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcltzd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcltzd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcltzd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcltzd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcltzd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcltzd_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcltzd_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcltzd_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcltzs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcltzs_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcltzs_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcltzs_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vcombine_p64(poly64x1_t __p0, poly64x1_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  return __ret;
+}
+#else
+__ai poly64x2_t vcombine_p64(poly64x1_t __p0, poly64x1_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vcombine_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  return __ret;
+}
+#else
+__ai float64x2_t vcombine_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_p8(__p0_0, __p1_0, __p2_0, __p3_0) __extension__ ({ \
+  poly8x16_t __s0_0 = __p0_0; \
+  poly8x8_t __s2_0 = __p2_0; \
+  poly8x16_t __ret_0; \
+  __ret_0 = vsetq_lane_p8(vget_lane_p8(__s2_0, __p3_0), __s0_0, __p1_0); \
+  __ret_0; \
+})
+#else
+#define vcopyq_lane_p8(__p0_1, __p1_1, __p2_1, __p3_1) __extension__ ({ \
+  poly8x16_t __s0_1 = __p0_1; \
+  poly8x8_t __s2_1 = __p2_1; \
+  poly8x16_t __rev0_1;  __rev0_1 = __builtin_shufflevector(__s0_1, __s0_1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __rev2_1;  __rev2_1 = __builtin_shufflevector(__s2_1, __s2_1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret_1; \
+  __ret_1 = __noswap_vsetq_lane_p8(__noswap_vget_lane_p8(__rev2_1, __p3_1), __rev0_1, __p1_1); \
+  __ret_1 = __builtin_shufflevector(__ret_1, __ret_1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_1; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_p16(__p0_2, __p1_2, __p2_2, __p3_2) __extension__ ({ \
+  poly16x8_t __s0_2 = __p0_2; \
+  poly16x4_t __s2_2 = __p2_2; \
+  poly16x8_t __ret_2; \
+  __ret_2 = vsetq_lane_p16(vget_lane_p16(__s2_2, __p3_2), __s0_2, __p1_2); \
+  __ret_2; \
+})
+#else
+#define vcopyq_lane_p16(__p0_3, __p1_3, __p2_3, __p3_3) __extension__ ({ \
+  poly16x8_t __s0_3 = __p0_3; \
+  poly16x4_t __s2_3 = __p2_3; \
+  poly16x8_t __rev0_3;  __rev0_3 = __builtin_shufflevector(__s0_3, __s0_3, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x4_t __rev2_3;  __rev2_3 = __builtin_shufflevector(__s2_3, __s2_3, 3, 2, 1, 0); \
+  poly16x8_t __ret_3; \
+  __ret_3 = __noswap_vsetq_lane_p16(__noswap_vget_lane_p16(__rev2_3, __p3_3), __rev0_3, __p1_3); \
+  __ret_3 = __builtin_shufflevector(__ret_3, __ret_3, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_3; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_u8(__p0_4, __p1_4, __p2_4, __p3_4) __extension__ ({ \
+  uint8x16_t __s0_4 = __p0_4; \
+  uint8x8_t __s2_4 = __p2_4; \
+  uint8x16_t __ret_4; \
+  __ret_4 = vsetq_lane_u8(vget_lane_u8(__s2_4, __p3_4), __s0_4, __p1_4); \
+  __ret_4; \
+})
+#else
+#define vcopyq_lane_u8(__p0_5, __p1_5, __p2_5, __p3_5) __extension__ ({ \
+  uint8x16_t __s0_5 = __p0_5; \
+  uint8x8_t __s2_5 = __p2_5; \
+  uint8x16_t __rev0_5;  __rev0_5 = __builtin_shufflevector(__s0_5, __s0_5, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev2_5;  __rev2_5 = __builtin_shufflevector(__s2_5, __s2_5, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret_5; \
+  __ret_5 = __noswap_vsetq_lane_u8(__noswap_vget_lane_u8(__rev2_5, __p3_5), __rev0_5, __p1_5); \
+  __ret_5 = __builtin_shufflevector(__ret_5, __ret_5, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_5; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_u32(__p0_6, __p1_6, __p2_6, __p3_6) __extension__ ({ \
+  uint32x4_t __s0_6 = __p0_6; \
+  uint32x2_t __s2_6 = __p2_6; \
+  uint32x4_t __ret_6; \
+  __ret_6 = vsetq_lane_u32(vget_lane_u32(__s2_6, __p3_6), __s0_6, __p1_6); \
+  __ret_6; \
+})
+#else
+#define vcopyq_lane_u32(__p0_7, __p1_7, __p2_7, __p3_7) __extension__ ({ \
+  uint32x4_t __s0_7 = __p0_7; \
+  uint32x2_t __s2_7 = __p2_7; \
+  uint32x4_t __rev0_7;  __rev0_7 = __builtin_shufflevector(__s0_7, __s0_7, 3, 2, 1, 0); \
+  uint32x2_t __rev2_7;  __rev2_7 = __builtin_shufflevector(__s2_7, __s2_7, 1, 0); \
+  uint32x4_t __ret_7; \
+  __ret_7 = __noswap_vsetq_lane_u32(__noswap_vget_lane_u32(__rev2_7, __p3_7), __rev0_7, __p1_7); \
+  __ret_7 = __builtin_shufflevector(__ret_7, __ret_7, 3, 2, 1, 0); \
+  __ret_7; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_u64(__p0_8, __p1_8, __p2_8, __p3_8) __extension__ ({ \
+  uint64x2_t __s0_8 = __p0_8; \
+  uint64x1_t __s2_8 = __p2_8; \
+  uint64x2_t __ret_8; \
+  __ret_8 = vsetq_lane_u64(vget_lane_u64(__s2_8, __p3_8), __s0_8, __p1_8); \
+  __ret_8; \
+})
+#else
+#define vcopyq_lane_u64(__p0_9, __p1_9, __p2_9, __p3_9) __extension__ ({ \
+  uint64x2_t __s0_9 = __p0_9; \
+  uint64x1_t __s2_9 = __p2_9; \
+  uint64x2_t __rev0_9;  __rev0_9 = __builtin_shufflevector(__s0_9, __s0_9, 1, 0); \
+  uint64x2_t __ret_9; \
+  __ret_9 = __noswap_vsetq_lane_u64(__noswap_vget_lane_u64(__s2_9, __p3_9), __rev0_9, __p1_9); \
+  __ret_9 = __builtin_shufflevector(__ret_9, __ret_9, 1, 0); \
+  __ret_9; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_u16(__p0_10, __p1_10, __p2_10, __p3_10) __extension__ ({ \
+  uint16x8_t __s0_10 = __p0_10; \
+  uint16x4_t __s2_10 = __p2_10; \
+  uint16x8_t __ret_10; \
+  __ret_10 = vsetq_lane_u16(vget_lane_u16(__s2_10, __p3_10), __s0_10, __p1_10); \
+  __ret_10; \
+})
+#else
+#define vcopyq_lane_u16(__p0_11, __p1_11, __p2_11, __p3_11) __extension__ ({ \
+  uint16x8_t __s0_11 = __p0_11; \
+  uint16x4_t __s2_11 = __p2_11; \
+  uint16x8_t __rev0_11;  __rev0_11 = __builtin_shufflevector(__s0_11, __s0_11, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev2_11;  __rev2_11 = __builtin_shufflevector(__s2_11, __s2_11, 3, 2, 1, 0); \
+  uint16x8_t __ret_11; \
+  __ret_11 = __noswap_vsetq_lane_u16(__noswap_vget_lane_u16(__rev2_11, __p3_11), __rev0_11, __p1_11); \
+  __ret_11 = __builtin_shufflevector(__ret_11, __ret_11, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_11; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_s8(__p0_12, __p1_12, __p2_12, __p3_12) __extension__ ({ \
+  int8x16_t __s0_12 = __p0_12; \
+  int8x8_t __s2_12 = __p2_12; \
+  int8x16_t __ret_12; \
+  __ret_12 = vsetq_lane_s8(vget_lane_s8(__s2_12, __p3_12), __s0_12, __p1_12); \
+  __ret_12; \
+})
+#else
+#define vcopyq_lane_s8(__p0_13, __p1_13, __p2_13, __p3_13) __extension__ ({ \
+  int8x16_t __s0_13 = __p0_13; \
+  int8x8_t __s2_13 = __p2_13; \
+  int8x16_t __rev0_13;  __rev0_13 = __builtin_shufflevector(__s0_13, __s0_13, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev2_13;  __rev2_13 = __builtin_shufflevector(__s2_13, __s2_13, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_13; \
+  __ret_13 = __noswap_vsetq_lane_s8(__noswap_vget_lane_s8(__rev2_13, __p3_13), __rev0_13, __p1_13); \
+  __ret_13 = __builtin_shufflevector(__ret_13, __ret_13, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_13; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_f32(__p0_14, __p1_14, __p2_14, __p3_14) __extension__ ({ \
+  float32x4_t __s0_14 = __p0_14; \
+  float32x2_t __s2_14 = __p2_14; \
+  float32x4_t __ret_14; \
+  __ret_14 = vsetq_lane_f32(vget_lane_f32(__s2_14, __p3_14), __s0_14, __p1_14); \
+  __ret_14; \
+})
+#else
+#define vcopyq_lane_f32(__p0_15, __p1_15, __p2_15, __p3_15) __extension__ ({ \
+  float32x4_t __s0_15 = __p0_15; \
+  float32x2_t __s2_15 = __p2_15; \
+  float32x4_t __rev0_15;  __rev0_15 = __builtin_shufflevector(__s0_15, __s0_15, 3, 2, 1, 0); \
+  float32x2_t __rev2_15;  __rev2_15 = __builtin_shufflevector(__s2_15, __s2_15, 1, 0); \
+  float32x4_t __ret_15; \
+  __ret_15 = __noswap_vsetq_lane_f32(__noswap_vget_lane_f32(__rev2_15, __p3_15), __rev0_15, __p1_15); \
+  __ret_15 = __builtin_shufflevector(__ret_15, __ret_15, 3, 2, 1, 0); \
+  __ret_15; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_s32(__p0_16, __p1_16, __p2_16, __p3_16) __extension__ ({ \
+  int32x4_t __s0_16 = __p0_16; \
+  int32x2_t __s2_16 = __p2_16; \
+  int32x4_t __ret_16; \
+  __ret_16 = vsetq_lane_s32(vget_lane_s32(__s2_16, __p3_16), __s0_16, __p1_16); \
+  __ret_16; \
+})
+#else
+#define vcopyq_lane_s32(__p0_17, __p1_17, __p2_17, __p3_17) __extension__ ({ \
+  int32x4_t __s0_17 = __p0_17; \
+  int32x2_t __s2_17 = __p2_17; \
+  int32x4_t __rev0_17;  __rev0_17 = __builtin_shufflevector(__s0_17, __s0_17, 3, 2, 1, 0); \
+  int32x2_t __rev2_17;  __rev2_17 = __builtin_shufflevector(__s2_17, __s2_17, 1, 0); \
+  int32x4_t __ret_17; \
+  __ret_17 = __noswap_vsetq_lane_s32(__noswap_vget_lane_s32(__rev2_17, __p3_17), __rev0_17, __p1_17); \
+  __ret_17 = __builtin_shufflevector(__ret_17, __ret_17, 3, 2, 1, 0); \
+  __ret_17; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_s64(__p0_18, __p1_18, __p2_18, __p3_18) __extension__ ({ \
+  int64x2_t __s0_18 = __p0_18; \
+  int64x1_t __s2_18 = __p2_18; \
+  int64x2_t __ret_18; \
+  __ret_18 = vsetq_lane_s64(vget_lane_s64(__s2_18, __p3_18), __s0_18, __p1_18); \
+  __ret_18; \
+})
+#else
+#define vcopyq_lane_s64(__p0_19, __p1_19, __p2_19, __p3_19) __extension__ ({ \
+  int64x2_t __s0_19 = __p0_19; \
+  int64x1_t __s2_19 = __p2_19; \
+  int64x2_t __rev0_19;  __rev0_19 = __builtin_shufflevector(__s0_19, __s0_19, 1, 0); \
+  int64x2_t __ret_19; \
+  __ret_19 = __noswap_vsetq_lane_s64(__noswap_vget_lane_s64(__s2_19, __p3_19), __rev0_19, __p1_19); \
+  __ret_19 = __builtin_shufflevector(__ret_19, __ret_19, 1, 0); \
+  __ret_19; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_s16(__p0_20, __p1_20, __p2_20, __p3_20) __extension__ ({ \
+  int16x8_t __s0_20 = __p0_20; \
+  int16x4_t __s2_20 = __p2_20; \
+  int16x8_t __ret_20; \
+  __ret_20 = vsetq_lane_s16(vget_lane_s16(__s2_20, __p3_20), __s0_20, __p1_20); \
+  __ret_20; \
+})
+#else
+#define vcopyq_lane_s16(__p0_21, __p1_21, __p2_21, __p3_21) __extension__ ({ \
+  int16x8_t __s0_21 = __p0_21; \
+  int16x4_t __s2_21 = __p2_21; \
+  int16x8_t __rev0_21;  __rev0_21 = __builtin_shufflevector(__s0_21, __s0_21, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2_21;  __rev2_21 = __builtin_shufflevector(__s2_21, __s2_21, 3, 2, 1, 0); \
+  int16x8_t __ret_21; \
+  __ret_21 = __noswap_vsetq_lane_s16(__noswap_vget_lane_s16(__rev2_21, __p3_21), __rev0_21, __p1_21); \
+  __ret_21 = __builtin_shufflevector(__ret_21, __ret_21, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_21; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_p8(__p0_22, __p1_22, __p2_22, __p3_22) __extension__ ({ \
+  poly8x8_t __s0_22 = __p0_22; \
+  poly8x8_t __s2_22 = __p2_22; \
+  poly8x8_t __ret_22; \
+  __ret_22 = vset_lane_p8(vget_lane_p8(__s2_22, __p3_22), __s0_22, __p1_22); \
+  __ret_22; \
+})
+#else
+#define vcopy_lane_p8(__p0_23, __p1_23, __p2_23, __p3_23) __extension__ ({ \
+  poly8x8_t __s0_23 = __p0_23; \
+  poly8x8_t __s2_23 = __p2_23; \
+  poly8x8_t __rev0_23;  __rev0_23 = __builtin_shufflevector(__s0_23, __s0_23, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __rev2_23;  __rev2_23 = __builtin_shufflevector(__s2_23, __s2_23, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret_23; \
+  __ret_23 = __noswap_vset_lane_p8(__noswap_vget_lane_p8(__rev2_23, __p3_23), __rev0_23, __p1_23); \
+  __ret_23 = __builtin_shufflevector(__ret_23, __ret_23, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_23; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_p16(__p0_24, __p1_24, __p2_24, __p3_24) __extension__ ({ \
+  poly16x4_t __s0_24 = __p0_24; \
+  poly16x4_t __s2_24 = __p2_24; \
+  poly16x4_t __ret_24; \
+  __ret_24 = vset_lane_p16(vget_lane_p16(__s2_24, __p3_24), __s0_24, __p1_24); \
+  __ret_24; \
+})
+#else
+#define vcopy_lane_p16(__p0_25, __p1_25, __p2_25, __p3_25) __extension__ ({ \
+  poly16x4_t __s0_25 = __p0_25; \
+  poly16x4_t __s2_25 = __p2_25; \
+  poly16x4_t __rev0_25;  __rev0_25 = __builtin_shufflevector(__s0_25, __s0_25, 3, 2, 1, 0); \
+  poly16x4_t __rev2_25;  __rev2_25 = __builtin_shufflevector(__s2_25, __s2_25, 3, 2, 1, 0); \
+  poly16x4_t __ret_25; \
+  __ret_25 = __noswap_vset_lane_p16(__noswap_vget_lane_p16(__rev2_25, __p3_25), __rev0_25, __p1_25); \
+  __ret_25 = __builtin_shufflevector(__ret_25, __ret_25, 3, 2, 1, 0); \
+  __ret_25; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_u8(__p0_26, __p1_26, __p2_26, __p3_26) __extension__ ({ \
+  uint8x8_t __s0_26 = __p0_26; \
+  uint8x8_t __s2_26 = __p2_26; \
+  uint8x8_t __ret_26; \
+  __ret_26 = vset_lane_u8(vget_lane_u8(__s2_26, __p3_26), __s0_26, __p1_26); \
+  __ret_26; \
+})
+#else
+#define vcopy_lane_u8(__p0_27, __p1_27, __p2_27, __p3_27) __extension__ ({ \
+  uint8x8_t __s0_27 = __p0_27; \
+  uint8x8_t __s2_27 = __p2_27; \
+  uint8x8_t __rev0_27;  __rev0_27 = __builtin_shufflevector(__s0_27, __s0_27, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __rev2_27;  __rev2_27 = __builtin_shufflevector(__s2_27, __s2_27, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret_27; \
+  __ret_27 = __noswap_vset_lane_u8(__noswap_vget_lane_u8(__rev2_27, __p3_27), __rev0_27, __p1_27); \
+  __ret_27 = __builtin_shufflevector(__ret_27, __ret_27, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_27; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_u32(__p0_28, __p1_28, __p2_28, __p3_28) __extension__ ({ \
+  uint32x2_t __s0_28 = __p0_28; \
+  uint32x2_t __s2_28 = __p2_28; \
+  uint32x2_t __ret_28; \
+  __ret_28 = vset_lane_u32(vget_lane_u32(__s2_28, __p3_28), __s0_28, __p1_28); \
+  __ret_28; \
+})
+#else
+#define vcopy_lane_u32(__p0_29, __p1_29, __p2_29, __p3_29) __extension__ ({ \
+  uint32x2_t __s0_29 = __p0_29; \
+  uint32x2_t __s2_29 = __p2_29; \
+  uint32x2_t __rev0_29;  __rev0_29 = __builtin_shufflevector(__s0_29, __s0_29, 1, 0); \
+  uint32x2_t __rev2_29;  __rev2_29 = __builtin_shufflevector(__s2_29, __s2_29, 1, 0); \
+  uint32x2_t __ret_29; \
+  __ret_29 = __noswap_vset_lane_u32(__noswap_vget_lane_u32(__rev2_29, __p3_29), __rev0_29, __p1_29); \
+  __ret_29 = __builtin_shufflevector(__ret_29, __ret_29, 1, 0); \
+  __ret_29; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_u64(__p0_30, __p1_30, __p2_30, __p3_30) __extension__ ({ \
+  uint64x1_t __s0_30 = __p0_30; \
+  uint64x1_t __s2_30 = __p2_30; \
+  uint64x1_t __ret_30; \
+  __ret_30 = vset_lane_u64(vget_lane_u64(__s2_30, __p3_30), __s0_30, __p1_30); \
+  __ret_30; \
+})
+#else
+#define vcopy_lane_u64(__p0_31, __p1_31, __p2_31, __p3_31) __extension__ ({ \
+  uint64x1_t __s0_31 = __p0_31; \
+  uint64x1_t __s2_31 = __p2_31; \
+  uint64x1_t __ret_31; \
+  __ret_31 = __noswap_vset_lane_u64(__noswap_vget_lane_u64(__s2_31, __p3_31), __s0_31, __p1_31); \
+  __ret_31; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_u16(__p0_32, __p1_32, __p2_32, __p3_32) __extension__ ({ \
+  uint16x4_t __s0_32 = __p0_32; \
+  uint16x4_t __s2_32 = __p2_32; \
+  uint16x4_t __ret_32; \
+  __ret_32 = vset_lane_u16(vget_lane_u16(__s2_32, __p3_32), __s0_32, __p1_32); \
+  __ret_32; \
+})
+#else
+#define vcopy_lane_u16(__p0_33, __p1_33, __p2_33, __p3_33) __extension__ ({ \
+  uint16x4_t __s0_33 = __p0_33; \
+  uint16x4_t __s2_33 = __p2_33; \
+  uint16x4_t __rev0_33;  __rev0_33 = __builtin_shufflevector(__s0_33, __s0_33, 3, 2, 1, 0); \
+  uint16x4_t __rev2_33;  __rev2_33 = __builtin_shufflevector(__s2_33, __s2_33, 3, 2, 1, 0); \
+  uint16x4_t __ret_33; \
+  __ret_33 = __noswap_vset_lane_u16(__noswap_vget_lane_u16(__rev2_33, __p3_33), __rev0_33, __p1_33); \
+  __ret_33 = __builtin_shufflevector(__ret_33, __ret_33, 3, 2, 1, 0); \
+  __ret_33; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_s8(__p0_34, __p1_34, __p2_34, __p3_34) __extension__ ({ \
+  int8x8_t __s0_34 = __p0_34; \
+  int8x8_t __s2_34 = __p2_34; \
+  int8x8_t __ret_34; \
+  __ret_34 = vset_lane_s8(vget_lane_s8(__s2_34, __p3_34), __s0_34, __p1_34); \
+  __ret_34; \
+})
+#else
+#define vcopy_lane_s8(__p0_35, __p1_35, __p2_35, __p3_35) __extension__ ({ \
+  int8x8_t __s0_35 = __p0_35; \
+  int8x8_t __s2_35 = __p2_35; \
+  int8x8_t __rev0_35;  __rev0_35 = __builtin_shufflevector(__s0_35, __s0_35, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __rev2_35;  __rev2_35 = __builtin_shufflevector(__s2_35, __s2_35, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret_35; \
+  __ret_35 = __noswap_vset_lane_s8(__noswap_vget_lane_s8(__rev2_35, __p3_35), __rev0_35, __p1_35); \
+  __ret_35 = __builtin_shufflevector(__ret_35, __ret_35, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_35; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_f32(__p0_36, __p1_36, __p2_36, __p3_36) __extension__ ({ \
+  float32x2_t __s0_36 = __p0_36; \
+  float32x2_t __s2_36 = __p2_36; \
+  float32x2_t __ret_36; \
+  __ret_36 = vset_lane_f32(vget_lane_f32(__s2_36, __p3_36), __s0_36, __p1_36); \
+  __ret_36; \
+})
+#else
+#define vcopy_lane_f32(__p0_37, __p1_37, __p2_37, __p3_37) __extension__ ({ \
+  float32x2_t __s0_37 = __p0_37; \
+  float32x2_t __s2_37 = __p2_37; \
+  float32x2_t __rev0_37;  __rev0_37 = __builtin_shufflevector(__s0_37, __s0_37, 1, 0); \
+  float32x2_t __rev2_37;  __rev2_37 = __builtin_shufflevector(__s2_37, __s2_37, 1, 0); \
+  float32x2_t __ret_37; \
+  __ret_37 = __noswap_vset_lane_f32(__noswap_vget_lane_f32(__rev2_37, __p3_37), __rev0_37, __p1_37); \
+  __ret_37 = __builtin_shufflevector(__ret_37, __ret_37, 1, 0); \
+  __ret_37; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_s32(__p0_38, __p1_38, __p2_38, __p3_38) __extension__ ({ \
+  int32x2_t __s0_38 = __p0_38; \
+  int32x2_t __s2_38 = __p2_38; \
+  int32x2_t __ret_38; \
+  __ret_38 = vset_lane_s32(vget_lane_s32(__s2_38, __p3_38), __s0_38, __p1_38); \
+  __ret_38; \
+})
+#else
+#define vcopy_lane_s32(__p0_39, __p1_39, __p2_39, __p3_39) __extension__ ({ \
+  int32x2_t __s0_39 = __p0_39; \
+  int32x2_t __s2_39 = __p2_39; \
+  int32x2_t __rev0_39;  __rev0_39 = __builtin_shufflevector(__s0_39, __s0_39, 1, 0); \
+  int32x2_t __rev2_39;  __rev2_39 = __builtin_shufflevector(__s2_39, __s2_39, 1, 0); \
+  int32x2_t __ret_39; \
+  __ret_39 = __noswap_vset_lane_s32(__noswap_vget_lane_s32(__rev2_39, __p3_39), __rev0_39, __p1_39); \
+  __ret_39 = __builtin_shufflevector(__ret_39, __ret_39, 1, 0); \
+  __ret_39; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_s64(__p0_40, __p1_40, __p2_40, __p3_40) __extension__ ({ \
+  int64x1_t __s0_40 = __p0_40; \
+  int64x1_t __s2_40 = __p2_40; \
+  int64x1_t __ret_40; \
+  __ret_40 = vset_lane_s64(vget_lane_s64(__s2_40, __p3_40), __s0_40, __p1_40); \
+  __ret_40; \
+})
+#else
+#define vcopy_lane_s64(__p0_41, __p1_41, __p2_41, __p3_41) __extension__ ({ \
+  int64x1_t __s0_41 = __p0_41; \
+  int64x1_t __s2_41 = __p2_41; \
+  int64x1_t __ret_41; \
+  __ret_41 = __noswap_vset_lane_s64(__noswap_vget_lane_s64(__s2_41, __p3_41), __s0_41, __p1_41); \
+  __ret_41; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_s16(__p0_42, __p1_42, __p2_42, __p3_42) __extension__ ({ \
+  int16x4_t __s0_42 = __p0_42; \
+  int16x4_t __s2_42 = __p2_42; \
+  int16x4_t __ret_42; \
+  __ret_42 = vset_lane_s16(vget_lane_s16(__s2_42, __p3_42), __s0_42, __p1_42); \
+  __ret_42; \
+})
+#else
+#define vcopy_lane_s16(__p0_43, __p1_43, __p2_43, __p3_43) __extension__ ({ \
+  int16x4_t __s0_43 = __p0_43; \
+  int16x4_t __s2_43 = __p2_43; \
+  int16x4_t __rev0_43;  __rev0_43 = __builtin_shufflevector(__s0_43, __s0_43, 3, 2, 1, 0); \
+  int16x4_t __rev2_43;  __rev2_43 = __builtin_shufflevector(__s2_43, __s2_43, 3, 2, 1, 0); \
+  int16x4_t __ret_43; \
+  __ret_43 = __noswap_vset_lane_s16(__noswap_vget_lane_s16(__rev2_43, __p3_43), __rev0_43, __p1_43); \
+  __ret_43 = __builtin_shufflevector(__ret_43, __ret_43, 3, 2, 1, 0); \
+  __ret_43; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_p8(__p0_44, __p1_44, __p2_44, __p3_44) __extension__ ({ \
+  poly8x16_t __s0_44 = __p0_44; \
+  poly8x16_t __s2_44 = __p2_44; \
+  poly8x16_t __ret_44; \
+  __ret_44 = vsetq_lane_p8(vgetq_lane_p8(__s2_44, __p3_44), __s0_44, __p1_44); \
+  __ret_44; \
+})
+#else
+#define vcopyq_laneq_p8(__p0_45, __p1_45, __p2_45, __p3_45) __extension__ ({ \
+  poly8x16_t __s0_45 = __p0_45; \
+  poly8x16_t __s2_45 = __p2_45; \
+  poly8x16_t __rev0_45;  __rev0_45 = __builtin_shufflevector(__s0_45, __s0_45, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __rev2_45;  __rev2_45 = __builtin_shufflevector(__s2_45, __s2_45, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret_45; \
+  __ret_45 = __noswap_vsetq_lane_p8(__noswap_vgetq_lane_p8(__rev2_45, __p3_45), __rev0_45, __p1_45); \
+  __ret_45 = __builtin_shufflevector(__ret_45, __ret_45, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_45; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_p16(__p0_46, __p1_46, __p2_46, __p3_46) __extension__ ({ \
+  poly16x8_t __s0_46 = __p0_46; \
+  poly16x8_t __s2_46 = __p2_46; \
+  poly16x8_t __ret_46; \
+  __ret_46 = vsetq_lane_p16(vgetq_lane_p16(__s2_46, __p3_46), __s0_46, __p1_46); \
+  __ret_46; \
+})
+#else
+#define vcopyq_laneq_p16(__p0_47, __p1_47, __p2_47, __p3_47) __extension__ ({ \
+  poly16x8_t __s0_47 = __p0_47; \
+  poly16x8_t __s2_47 = __p2_47; \
+  poly16x8_t __rev0_47;  __rev0_47 = __builtin_shufflevector(__s0_47, __s0_47, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __rev2_47;  __rev2_47 = __builtin_shufflevector(__s2_47, __s2_47, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret_47; \
+  __ret_47 = __noswap_vsetq_lane_p16(__noswap_vgetq_lane_p16(__rev2_47, __p3_47), __rev0_47, __p1_47); \
+  __ret_47 = __builtin_shufflevector(__ret_47, __ret_47, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_47; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_u8(__p0_48, __p1_48, __p2_48, __p3_48) __extension__ ({ \
+  uint8x16_t __s0_48 = __p0_48; \
+  uint8x16_t __s2_48 = __p2_48; \
+  uint8x16_t __ret_48; \
+  __ret_48 = vsetq_lane_u8(vgetq_lane_u8(__s2_48, __p3_48), __s0_48, __p1_48); \
+  __ret_48; \
+})
+#else
+#define vcopyq_laneq_u8(__p0_49, __p1_49, __p2_49, __p3_49) __extension__ ({ \
+  uint8x16_t __s0_49 = __p0_49; \
+  uint8x16_t __s2_49 = __p2_49; \
+  uint8x16_t __rev0_49;  __rev0_49 = __builtin_shufflevector(__s0_49, __s0_49, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev2_49;  __rev2_49 = __builtin_shufflevector(__s2_49, __s2_49, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret_49; \
+  __ret_49 = __noswap_vsetq_lane_u8(__noswap_vgetq_lane_u8(__rev2_49, __p3_49), __rev0_49, __p1_49); \
+  __ret_49 = __builtin_shufflevector(__ret_49, __ret_49, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_49; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_u32(__p0_50, __p1_50, __p2_50, __p3_50) __extension__ ({ \
+  uint32x4_t __s0_50 = __p0_50; \
+  uint32x4_t __s2_50 = __p2_50; \
+  uint32x4_t __ret_50; \
+  __ret_50 = vsetq_lane_u32(vgetq_lane_u32(__s2_50, __p3_50), __s0_50, __p1_50); \
+  __ret_50; \
+})
+#else
+#define vcopyq_laneq_u32(__p0_51, __p1_51, __p2_51, __p3_51) __extension__ ({ \
+  uint32x4_t __s0_51 = __p0_51; \
+  uint32x4_t __s2_51 = __p2_51; \
+  uint32x4_t __rev0_51;  __rev0_51 = __builtin_shufflevector(__s0_51, __s0_51, 3, 2, 1, 0); \
+  uint32x4_t __rev2_51;  __rev2_51 = __builtin_shufflevector(__s2_51, __s2_51, 3, 2, 1, 0); \
+  uint32x4_t __ret_51; \
+  __ret_51 = __noswap_vsetq_lane_u32(__noswap_vgetq_lane_u32(__rev2_51, __p3_51), __rev0_51, __p1_51); \
+  __ret_51 = __builtin_shufflevector(__ret_51, __ret_51, 3, 2, 1, 0); \
+  __ret_51; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_u64(__p0_52, __p1_52, __p2_52, __p3_52) __extension__ ({ \
+  uint64x2_t __s0_52 = __p0_52; \
+  uint64x2_t __s2_52 = __p2_52; \
+  uint64x2_t __ret_52; \
+  __ret_52 = vsetq_lane_u64(vgetq_lane_u64(__s2_52, __p3_52), __s0_52, __p1_52); \
+  __ret_52; \
+})
+#else
+#define vcopyq_laneq_u64(__p0_53, __p1_53, __p2_53, __p3_53) __extension__ ({ \
+  uint64x2_t __s0_53 = __p0_53; \
+  uint64x2_t __s2_53 = __p2_53; \
+  uint64x2_t __rev0_53;  __rev0_53 = __builtin_shufflevector(__s0_53, __s0_53, 1, 0); \
+  uint64x2_t __rev2_53;  __rev2_53 = __builtin_shufflevector(__s2_53, __s2_53, 1, 0); \
+  uint64x2_t __ret_53; \
+  __ret_53 = __noswap_vsetq_lane_u64(__noswap_vgetq_lane_u64(__rev2_53, __p3_53), __rev0_53, __p1_53); \
+  __ret_53 = __builtin_shufflevector(__ret_53, __ret_53, 1, 0); \
+  __ret_53; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_u16(__p0_54, __p1_54, __p2_54, __p3_54) __extension__ ({ \
+  uint16x8_t __s0_54 = __p0_54; \
+  uint16x8_t __s2_54 = __p2_54; \
+  uint16x8_t __ret_54; \
+  __ret_54 = vsetq_lane_u16(vgetq_lane_u16(__s2_54, __p3_54), __s0_54, __p1_54); \
+  __ret_54; \
+})
+#else
+#define vcopyq_laneq_u16(__p0_55, __p1_55, __p2_55, __p3_55) __extension__ ({ \
+  uint16x8_t __s0_55 = __p0_55; \
+  uint16x8_t __s2_55 = __p2_55; \
+  uint16x8_t __rev0_55;  __rev0_55 = __builtin_shufflevector(__s0_55, __s0_55, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev2_55;  __rev2_55 = __builtin_shufflevector(__s2_55, __s2_55, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret_55; \
+  __ret_55 = __noswap_vsetq_lane_u16(__noswap_vgetq_lane_u16(__rev2_55, __p3_55), __rev0_55, __p1_55); \
+  __ret_55 = __builtin_shufflevector(__ret_55, __ret_55, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_55; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_s8(__p0_56, __p1_56, __p2_56, __p3_56) __extension__ ({ \
+  int8x16_t __s0_56 = __p0_56; \
+  int8x16_t __s2_56 = __p2_56; \
+  int8x16_t __ret_56; \
+  __ret_56 = vsetq_lane_s8(vgetq_lane_s8(__s2_56, __p3_56), __s0_56, __p1_56); \
+  __ret_56; \
+})
+#else
+#define vcopyq_laneq_s8(__p0_57, __p1_57, __p2_57, __p3_57) __extension__ ({ \
+  int8x16_t __s0_57 = __p0_57; \
+  int8x16_t __s2_57 = __p2_57; \
+  int8x16_t __rev0_57;  __rev0_57 = __builtin_shufflevector(__s0_57, __s0_57, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev2_57;  __rev2_57 = __builtin_shufflevector(__s2_57, __s2_57, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_57; \
+  __ret_57 = __noswap_vsetq_lane_s8(__noswap_vgetq_lane_s8(__rev2_57, __p3_57), __rev0_57, __p1_57); \
+  __ret_57 = __builtin_shufflevector(__ret_57, __ret_57, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_57; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_f32(__p0_58, __p1_58, __p2_58, __p3_58) __extension__ ({ \
+  float32x4_t __s0_58 = __p0_58; \
+  float32x4_t __s2_58 = __p2_58; \
+  float32x4_t __ret_58; \
+  __ret_58 = vsetq_lane_f32(vgetq_lane_f32(__s2_58, __p3_58), __s0_58, __p1_58); \
+  __ret_58; \
+})
+#else
+#define vcopyq_laneq_f32(__p0_59, __p1_59, __p2_59, __p3_59) __extension__ ({ \
+  float32x4_t __s0_59 = __p0_59; \
+  float32x4_t __s2_59 = __p2_59; \
+  float32x4_t __rev0_59;  __rev0_59 = __builtin_shufflevector(__s0_59, __s0_59, 3, 2, 1, 0); \
+  float32x4_t __rev2_59;  __rev2_59 = __builtin_shufflevector(__s2_59, __s2_59, 3, 2, 1, 0); \
+  float32x4_t __ret_59; \
+  __ret_59 = __noswap_vsetq_lane_f32(__noswap_vgetq_lane_f32(__rev2_59, __p3_59), __rev0_59, __p1_59); \
+  __ret_59 = __builtin_shufflevector(__ret_59, __ret_59, 3, 2, 1, 0); \
+  __ret_59; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_s32(__p0_60, __p1_60, __p2_60, __p3_60) __extension__ ({ \
+  int32x4_t __s0_60 = __p0_60; \
+  int32x4_t __s2_60 = __p2_60; \
+  int32x4_t __ret_60; \
+  __ret_60 = vsetq_lane_s32(vgetq_lane_s32(__s2_60, __p3_60), __s0_60, __p1_60); \
+  __ret_60; \
+})
+#else
+#define vcopyq_laneq_s32(__p0_61, __p1_61, __p2_61, __p3_61) __extension__ ({ \
+  int32x4_t __s0_61 = __p0_61; \
+  int32x4_t __s2_61 = __p2_61; \
+  int32x4_t __rev0_61;  __rev0_61 = __builtin_shufflevector(__s0_61, __s0_61, 3, 2, 1, 0); \
+  int32x4_t __rev2_61;  __rev2_61 = __builtin_shufflevector(__s2_61, __s2_61, 3, 2, 1, 0); \
+  int32x4_t __ret_61; \
+  __ret_61 = __noswap_vsetq_lane_s32(__noswap_vgetq_lane_s32(__rev2_61, __p3_61), __rev0_61, __p1_61); \
+  __ret_61 = __builtin_shufflevector(__ret_61, __ret_61, 3, 2, 1, 0); \
+  __ret_61; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_s64(__p0_62, __p1_62, __p2_62, __p3_62) __extension__ ({ \
+  int64x2_t __s0_62 = __p0_62; \
+  int64x2_t __s2_62 = __p2_62; \
+  int64x2_t __ret_62; \
+  __ret_62 = vsetq_lane_s64(vgetq_lane_s64(__s2_62, __p3_62), __s0_62, __p1_62); \
+  __ret_62; \
+})
+#else
+#define vcopyq_laneq_s64(__p0_63, __p1_63, __p2_63, __p3_63) __extension__ ({ \
+  int64x2_t __s0_63 = __p0_63; \
+  int64x2_t __s2_63 = __p2_63; \
+  int64x2_t __rev0_63;  __rev0_63 = __builtin_shufflevector(__s0_63, __s0_63, 1, 0); \
+  int64x2_t __rev2_63;  __rev2_63 = __builtin_shufflevector(__s2_63, __s2_63, 1, 0); \
+  int64x2_t __ret_63; \
+  __ret_63 = __noswap_vsetq_lane_s64(__noswap_vgetq_lane_s64(__rev2_63, __p3_63), __rev0_63, __p1_63); \
+  __ret_63 = __builtin_shufflevector(__ret_63, __ret_63, 1, 0); \
+  __ret_63; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_s16(__p0_64, __p1_64, __p2_64, __p3_64) __extension__ ({ \
+  int16x8_t __s0_64 = __p0_64; \
+  int16x8_t __s2_64 = __p2_64; \
+  int16x8_t __ret_64; \
+  __ret_64 = vsetq_lane_s16(vgetq_lane_s16(__s2_64, __p3_64), __s0_64, __p1_64); \
+  __ret_64; \
+})
+#else
+#define vcopyq_laneq_s16(__p0_65, __p1_65, __p2_65, __p3_65) __extension__ ({ \
+  int16x8_t __s0_65 = __p0_65; \
+  int16x8_t __s2_65 = __p2_65; \
+  int16x8_t __rev0_65;  __rev0_65 = __builtin_shufflevector(__s0_65, __s0_65, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2_65;  __rev2_65 = __builtin_shufflevector(__s2_65, __s2_65, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret_65; \
+  __ret_65 = __noswap_vsetq_lane_s16(__noswap_vgetq_lane_s16(__rev2_65, __p3_65), __rev0_65, __p1_65); \
+  __ret_65 = __builtin_shufflevector(__ret_65, __ret_65, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_65; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_p8(__p0_66, __p1_66, __p2_66, __p3_66) __extension__ ({ \
+  poly8x8_t __s0_66 = __p0_66; \
+  poly8x16_t __s2_66 = __p2_66; \
+  poly8x8_t __ret_66; \
+  __ret_66 = vset_lane_p8(vgetq_lane_p8(__s2_66, __p3_66), __s0_66, __p1_66); \
+  __ret_66; \
+})
+#else
+#define vcopy_laneq_p8(__p0_67, __p1_67, __p2_67, __p3_67) __extension__ ({ \
+  poly8x8_t __s0_67 = __p0_67; \
+  poly8x16_t __s2_67 = __p2_67; \
+  poly8x8_t __rev0_67;  __rev0_67 = __builtin_shufflevector(__s0_67, __s0_67, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __rev2_67;  __rev2_67 = __builtin_shufflevector(__s2_67, __s2_67, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret_67; \
+  __ret_67 = __noswap_vset_lane_p8(__noswap_vgetq_lane_p8(__rev2_67, __p3_67), __rev0_67, __p1_67); \
+  __ret_67 = __builtin_shufflevector(__ret_67, __ret_67, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_67; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_p16(__p0_68, __p1_68, __p2_68, __p3_68) __extension__ ({ \
+  poly16x4_t __s0_68 = __p0_68; \
+  poly16x8_t __s2_68 = __p2_68; \
+  poly16x4_t __ret_68; \
+  __ret_68 = vset_lane_p16(vgetq_lane_p16(__s2_68, __p3_68), __s0_68, __p1_68); \
+  __ret_68; \
+})
+#else
+#define vcopy_laneq_p16(__p0_69, __p1_69, __p2_69, __p3_69) __extension__ ({ \
+  poly16x4_t __s0_69 = __p0_69; \
+  poly16x8_t __s2_69 = __p2_69; \
+  poly16x4_t __rev0_69;  __rev0_69 = __builtin_shufflevector(__s0_69, __s0_69, 3, 2, 1, 0); \
+  poly16x8_t __rev2_69;  __rev2_69 = __builtin_shufflevector(__s2_69, __s2_69, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x4_t __ret_69; \
+  __ret_69 = __noswap_vset_lane_p16(__noswap_vgetq_lane_p16(__rev2_69, __p3_69), __rev0_69, __p1_69); \
+  __ret_69 = __builtin_shufflevector(__ret_69, __ret_69, 3, 2, 1, 0); \
+  __ret_69; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_u8(__p0_70, __p1_70, __p2_70, __p3_70) __extension__ ({ \
+  uint8x8_t __s0_70 = __p0_70; \
+  uint8x16_t __s2_70 = __p2_70; \
+  uint8x8_t __ret_70; \
+  __ret_70 = vset_lane_u8(vgetq_lane_u8(__s2_70, __p3_70), __s0_70, __p1_70); \
+  __ret_70; \
+})
+#else
+#define vcopy_laneq_u8(__p0_71, __p1_71, __p2_71, __p3_71) __extension__ ({ \
+  uint8x8_t __s0_71 = __p0_71; \
+  uint8x16_t __s2_71 = __p2_71; \
+  uint8x8_t __rev0_71;  __rev0_71 = __builtin_shufflevector(__s0_71, __s0_71, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __rev2_71;  __rev2_71 = __builtin_shufflevector(__s2_71, __s2_71, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret_71; \
+  __ret_71 = __noswap_vset_lane_u8(__noswap_vgetq_lane_u8(__rev2_71, __p3_71), __rev0_71, __p1_71); \
+  __ret_71 = __builtin_shufflevector(__ret_71, __ret_71, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_71; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_u32(__p0_72, __p1_72, __p2_72, __p3_72) __extension__ ({ \
+  uint32x2_t __s0_72 = __p0_72; \
+  uint32x4_t __s2_72 = __p2_72; \
+  uint32x2_t __ret_72; \
+  __ret_72 = vset_lane_u32(vgetq_lane_u32(__s2_72, __p3_72), __s0_72, __p1_72); \
+  __ret_72; \
+})
+#else
+#define vcopy_laneq_u32(__p0_73, __p1_73, __p2_73, __p3_73) __extension__ ({ \
+  uint32x2_t __s0_73 = __p0_73; \
+  uint32x4_t __s2_73 = __p2_73; \
+  uint32x2_t __rev0_73;  __rev0_73 = __builtin_shufflevector(__s0_73, __s0_73, 1, 0); \
+  uint32x4_t __rev2_73;  __rev2_73 = __builtin_shufflevector(__s2_73, __s2_73, 3, 2, 1, 0); \
+  uint32x2_t __ret_73; \
+  __ret_73 = __noswap_vset_lane_u32(__noswap_vgetq_lane_u32(__rev2_73, __p3_73), __rev0_73, __p1_73); \
+  __ret_73 = __builtin_shufflevector(__ret_73, __ret_73, 1, 0); \
+  __ret_73; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_u64(__p0_74, __p1_74, __p2_74, __p3_74) __extension__ ({ \
+  uint64x1_t __s0_74 = __p0_74; \
+  uint64x2_t __s2_74 = __p2_74; \
+  uint64x1_t __ret_74; \
+  __ret_74 = vset_lane_u64(vgetq_lane_u64(__s2_74, __p3_74), __s0_74, __p1_74); \
+  __ret_74; \
+})
+#else
+#define vcopy_laneq_u64(__p0_75, __p1_75, __p2_75, __p3_75) __extension__ ({ \
+  uint64x1_t __s0_75 = __p0_75; \
+  uint64x2_t __s2_75 = __p2_75; \
+  uint64x2_t __rev2_75;  __rev2_75 = __builtin_shufflevector(__s2_75, __s2_75, 1, 0); \
+  uint64x1_t __ret_75; \
+  __ret_75 = __noswap_vset_lane_u64(__noswap_vgetq_lane_u64(__rev2_75, __p3_75), __s0_75, __p1_75); \
+  __ret_75; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_u16(__p0_76, __p1_76, __p2_76, __p3_76) __extension__ ({ \
+  uint16x4_t __s0_76 = __p0_76; \
+  uint16x8_t __s2_76 = __p2_76; \
+  uint16x4_t __ret_76; \
+  __ret_76 = vset_lane_u16(vgetq_lane_u16(__s2_76, __p3_76), __s0_76, __p1_76); \
+  __ret_76; \
+})
+#else
+#define vcopy_laneq_u16(__p0_77, __p1_77, __p2_77, __p3_77) __extension__ ({ \
+  uint16x4_t __s0_77 = __p0_77; \
+  uint16x8_t __s2_77 = __p2_77; \
+  uint16x4_t __rev0_77;  __rev0_77 = __builtin_shufflevector(__s0_77, __s0_77, 3, 2, 1, 0); \
+  uint16x8_t __rev2_77;  __rev2_77 = __builtin_shufflevector(__s2_77, __s2_77, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __ret_77; \
+  __ret_77 = __noswap_vset_lane_u16(__noswap_vgetq_lane_u16(__rev2_77, __p3_77), __rev0_77, __p1_77); \
+  __ret_77 = __builtin_shufflevector(__ret_77, __ret_77, 3, 2, 1, 0); \
+  __ret_77; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_s8(__p0_78, __p1_78, __p2_78, __p3_78) __extension__ ({ \
+  int8x8_t __s0_78 = __p0_78; \
+  int8x16_t __s2_78 = __p2_78; \
+  int8x8_t __ret_78; \
+  __ret_78 = vset_lane_s8(vgetq_lane_s8(__s2_78, __p3_78), __s0_78, __p1_78); \
+  __ret_78; \
+})
+#else
+#define vcopy_laneq_s8(__p0_79, __p1_79, __p2_79, __p3_79) __extension__ ({ \
+  int8x8_t __s0_79 = __p0_79; \
+  int8x16_t __s2_79 = __p2_79; \
+  int8x8_t __rev0_79;  __rev0_79 = __builtin_shufflevector(__s0_79, __s0_79, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __rev2_79;  __rev2_79 = __builtin_shufflevector(__s2_79, __s2_79, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret_79; \
+  __ret_79 = __noswap_vset_lane_s8(__noswap_vgetq_lane_s8(__rev2_79, __p3_79), __rev0_79, __p1_79); \
+  __ret_79 = __builtin_shufflevector(__ret_79, __ret_79, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_79; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_f32(__p0_80, __p1_80, __p2_80, __p3_80) __extension__ ({ \
+  float32x2_t __s0_80 = __p0_80; \
+  float32x4_t __s2_80 = __p2_80; \
+  float32x2_t __ret_80; \
+  __ret_80 = vset_lane_f32(vgetq_lane_f32(__s2_80, __p3_80), __s0_80, __p1_80); \
+  __ret_80; \
+})
+#else
+#define vcopy_laneq_f32(__p0_81, __p1_81, __p2_81, __p3_81) __extension__ ({ \
+  float32x2_t __s0_81 = __p0_81; \
+  float32x4_t __s2_81 = __p2_81; \
+  float32x2_t __rev0_81;  __rev0_81 = __builtin_shufflevector(__s0_81, __s0_81, 1, 0); \
+  float32x4_t __rev2_81;  __rev2_81 = __builtin_shufflevector(__s2_81, __s2_81, 3, 2, 1, 0); \
+  float32x2_t __ret_81; \
+  __ret_81 = __noswap_vset_lane_f32(__noswap_vgetq_lane_f32(__rev2_81, __p3_81), __rev0_81, __p1_81); \
+  __ret_81 = __builtin_shufflevector(__ret_81, __ret_81, 1, 0); \
+  __ret_81; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_s32(__p0_82, __p1_82, __p2_82, __p3_82) __extension__ ({ \
+  int32x2_t __s0_82 = __p0_82; \
+  int32x4_t __s2_82 = __p2_82; \
+  int32x2_t __ret_82; \
+  __ret_82 = vset_lane_s32(vgetq_lane_s32(__s2_82, __p3_82), __s0_82, __p1_82); \
+  __ret_82; \
+})
+#else
+#define vcopy_laneq_s32(__p0_83, __p1_83, __p2_83, __p3_83) __extension__ ({ \
+  int32x2_t __s0_83 = __p0_83; \
+  int32x4_t __s2_83 = __p2_83; \
+  int32x2_t __rev0_83;  __rev0_83 = __builtin_shufflevector(__s0_83, __s0_83, 1, 0); \
+  int32x4_t __rev2_83;  __rev2_83 = __builtin_shufflevector(__s2_83, __s2_83, 3, 2, 1, 0); \
+  int32x2_t __ret_83; \
+  __ret_83 = __noswap_vset_lane_s32(__noswap_vgetq_lane_s32(__rev2_83, __p3_83), __rev0_83, __p1_83); \
+  __ret_83 = __builtin_shufflevector(__ret_83, __ret_83, 1, 0); \
+  __ret_83; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_s64(__p0_84, __p1_84, __p2_84, __p3_84) __extension__ ({ \
+  int64x1_t __s0_84 = __p0_84; \
+  int64x2_t __s2_84 = __p2_84; \
+  int64x1_t __ret_84; \
+  __ret_84 = vset_lane_s64(vgetq_lane_s64(__s2_84, __p3_84), __s0_84, __p1_84); \
+  __ret_84; \
+})
+#else
+#define vcopy_laneq_s64(__p0_85, __p1_85, __p2_85, __p3_85) __extension__ ({ \
+  int64x1_t __s0_85 = __p0_85; \
+  int64x2_t __s2_85 = __p2_85; \
+  int64x2_t __rev2_85;  __rev2_85 = __builtin_shufflevector(__s2_85, __s2_85, 1, 0); \
+  int64x1_t __ret_85; \
+  __ret_85 = __noswap_vset_lane_s64(__noswap_vgetq_lane_s64(__rev2_85, __p3_85), __s0_85, __p1_85); \
+  __ret_85; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_s16(__p0_86, __p1_86, __p2_86, __p3_86) __extension__ ({ \
+  int16x4_t __s0_86 = __p0_86; \
+  int16x8_t __s2_86 = __p2_86; \
+  int16x4_t __ret_86; \
+  __ret_86 = vset_lane_s16(vgetq_lane_s16(__s2_86, __p3_86), __s0_86, __p1_86); \
+  __ret_86; \
+})
+#else
+#define vcopy_laneq_s16(__p0_87, __p1_87, __p2_87, __p3_87) __extension__ ({ \
+  int16x4_t __s0_87 = __p0_87; \
+  int16x8_t __s2_87 = __p2_87; \
+  int16x4_t __rev0_87;  __rev0_87 = __builtin_shufflevector(__s0_87, __s0_87, 3, 2, 1, 0); \
+  int16x8_t __rev2_87;  __rev2_87 = __builtin_shufflevector(__s2_87, __s2_87, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret_87; \
+  __ret_87 = __noswap_vset_lane_s16(__noswap_vgetq_lane_s16(__rev2_87, __p3_87), __rev0_87, __p1_87); \
+  __ret_87 = __builtin_shufflevector(__ret_87, __ret_87, 3, 2, 1, 0); \
+  __ret_87; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vcreate_p64(uint64_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vcreate_p64(uint64_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vcreate_f64(uint64_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#else
+__ai float64x1_t vcreate_f64(uint64_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t)(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vcvts_f32_s32(int32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vcvts_f32_s32(__p0);
+  return __ret;
+}
+#else
+__ai float32_t vcvts_f32_s32(int32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vcvts_f32_s32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vcvts_f32_u32(uint32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vcvts_f32_u32(__p0);
+  return __ret;
+}
+#else
+__ai float32_t vcvts_f32_u32(uint32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vcvts_f32_u32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vcvt_f32_f64(float64x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_f64((int8x16_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vcvt_f32_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_f64((int8x16_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float32x2_t __noswap_vcvt_f32_f64(float64x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvt_f32_f64((int8x16_t)__p0, 9);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vcvtd_f64_s64(int64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vcvtd_f64_s64(__p0);
+  return __ret;
+}
+#else
+__ai float64_t vcvtd_f64_s64(int64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vcvtd_f64_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vcvtd_f64_u64(uint64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vcvtd_f64_u64(__p0);
+  return __ret;
+}
+#else
+__ai float64_t vcvtd_f64_u64(uint64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vcvtd_f64_u64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vcvtq_f64_u64(uint64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai float64x2_t vcvtq_f64_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vcvtq_f64_s64(int64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai float64x2_t vcvtq_f64_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvtq_f64_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vcvt_f64_u64(uint64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai float64x1_t vcvt_f64_u64(uint64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vcvt_f64_s64(int64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai float64x1_t vcvt_f64_s64(int64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vcvt_f64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vcvt_f64_f32(float32x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvt_f64_f32((int8x8_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vcvt_f64_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvt_f64_f32((int8x8_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float64x2_t __noswap_vcvt_f64_f32(float32x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vcvt_f64_f32((int8x8_t)__p0, 42);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float16x8_t vcvt_high_f16_f32(float16x4_t __p0, float32x4_t __p1) {
+  float16x8_t __ret;
+  __ret = vcombine_f16(__p0, vcvt_f16_f32(__p1));
+  return __ret;
+}
+#else
+__ai float16x8_t vcvt_high_f16_f32(float16x4_t __p0, float32x4_t __p1) {
+  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float16x8_t __ret;
+  __ret = __noswap_vcombine_f16(__rev0, __noswap_vcvt_f16_f32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvt_high_f32_f16(float16x8_t __p0) {
+  float32x4_t __ret;
+  __ret = vcvt_f32_f16(vget_high_f16(__p0));
+  return __ret;
+}
+#else
+__ai float32x4_t vcvt_high_f32_f16(float16x8_t __p0) {
+  float16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __noswap_vcvt_f32_f16(__noswap_vget_high_f16(__rev0));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvt_high_f32_f64(float32x2_t __p0, float64x2_t __p1) {
+  float32x4_t __ret;
+  __ret = vcombine_f32(__p0, vcvt_f32_f64(__p1));
+  return __ret;
+}
+#else
+__ai float32x4_t vcvt_high_f32_f64(float32x2_t __p0, float64x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x4_t __ret;
+  __ret = __noswap_vcombine_f32(__rev0, __noswap_vcvt_f32_f64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vcvt_high_f64_f32(float32x4_t __p0) {
+  float64x2_t __ret;
+  __ret = vcvt_f64_f32(vget_high_f32(__p0));
+  return __ret;
+}
+#else
+__ai float64x2_t vcvt_high_f64_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float64x2_t __ret;
+  __ret = __noswap_vcvt_f64_f32(__noswap_vget_high_f32(__rev0));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvts_n_f32_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vcvts_n_f32_u32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvts_n_f32_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vcvts_n_f32_u32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvts_n_f32_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vcvts_n_f32_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvts_n_f32_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vcvts_n_f32_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_f64_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vcvtq_n_f64_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_f64_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vcvtq_n_f64_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vcvtq_n_f64_v((int8x16_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_f64_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vcvt_n_f64_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_f64_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#else
+#define vcvt_n_f64_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vcvt_n_f64_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtd_n_f64_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vcvtd_n_f64_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvtd_n_f64_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vcvtd_n_f64_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtd_n_f64_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vcvtd_n_f64_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvtd_n_f64_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vcvtd_n_f64_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvts_n_s32_f32(__p0, __p1) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vcvts_n_s32_f32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvts_n_s32_f32(__p0, __p1) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vcvts_n_s32_f32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_s64_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vcvtq_n_s64_v((int8x16_t)__s0, __p1, 35); \
+  __ret; \
+})
+#else
+#define vcvtq_n_s64_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = (int64x2_t) __builtin_neon_vcvtq_n_s64_v((int8x16_t)__rev0, __p1, 35); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_s64_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vcvt_n_s64_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#else
+#define vcvt_n_s64_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = (int64x1_t) __builtin_neon_vcvt_n_s64_v((int8x8_t)__s0, __p1, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtd_n_s64_f64(__p0, __p1) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vcvtd_n_s64_f64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvtd_n_s64_f64(__p0, __p1) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vcvtd_n_s64_f64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvts_n_u32_f32(__p0, __p1) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vcvts_n_u32_f32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvts_n_u32_f32(__p0, __p1) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vcvts_n_u32_f32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtq_n_u64_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vcvtq_n_u64_v((int8x16_t)__s0, __p1, 51); \
+  __ret; \
+})
+#else
+#define vcvtq_n_u64_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = (uint64x2_t) __builtin_neon_vcvtq_n_u64_v((int8x16_t)__rev0, __p1, 51); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvt_n_u64_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vcvt_n_u64_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#else
+#define vcvt_n_u64_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = (uint64x1_t) __builtin_neon_vcvt_n_u64_v((int8x8_t)__s0, __p1, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcvtd_n_u64_f64(__p0, __p1) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vcvtd_n_u64_f64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vcvtd_n_u64_f64(__p0, __p1) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vcvtd_n_u64_f64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vcvts_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvts_s32_f32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vcvts_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvts_s32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcvtd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtd_s64_f64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcvtd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtd_s64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vcvtq_s64_f64(float64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtq_s64_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vcvtq_s64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vcvtq_s64_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vcvt_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvt_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vcvt_s64_f64(float64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vcvt_s64_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcvts_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvts_u32_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcvts_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvts_u32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcvtd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtd_u64_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcvtd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtd_u64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vcvtq_u64_f64(float64x2_t __p0) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtq_u64_v((int8x16_t)__p0, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vcvtq_u64_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vcvtq_u64_v((int8x16_t)__rev0, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vcvt_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvt_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vcvt_u64_f64(float64x1_t __p0) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vcvt_u64_v((int8x8_t)__p0, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vcvtas_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtas_s32_f32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vcvtas_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtas_s32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcvtad_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtad_s64_f64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcvtad_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtad_s64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcvtas_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtas_u32_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcvtas_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtas_u32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcvtad_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtad_u64_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcvtad_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtad_u64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vcvtms_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtms_s32_f32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vcvtms_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtms_s32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcvtmd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtmd_s64_f64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcvtmd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtmd_s64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcvtms_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtms_u32_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcvtms_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtms_u32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcvtmd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtmd_u64_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcvtmd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtmd_u64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vcvtns_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtns_s32_f32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vcvtns_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtns_s32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcvtnd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtnd_s64_f64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcvtnd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtnd_s64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcvtns_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtns_u32_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcvtns_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtns_u32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcvtnd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtnd_u64_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcvtnd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtnd_u64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vcvtps_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtps_s32_f32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vcvtps_s32_f32(float32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vcvtps_s32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vcvtpd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtpd_s64_f64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vcvtpd_s64_f64(float64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vcvtpd_s64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vcvtps_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtps_u32_f32(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vcvtps_u32_f32(float32_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vcvtps_u32_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vcvtpd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtpd_u64_f64(__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vcvtpd_u64_f64(float64_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vcvtpd_u64_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vcvtxd_f32_f64(float64_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vcvtxd_f32_f64(__p0);
+  return __ret;
+}
+#else
+__ai float32_t vcvtxd_f32_f64(float64_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vcvtxd_f32_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vcvtx_f32_f64(float64x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvtx_f32_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float32x2_t vcvtx_f32_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvtx_f32_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float32x2_t __noswap_vcvtx_f32_f64(float64x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vcvtx_f32_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvtx_high_f32_f64(float32x2_t __p0, float64x2_t __p1) {
+  float32x4_t __ret;
+  __ret = vcombine_f32(__p0, vcvtx_f32_f64(__p1));
+  return __ret;
+}
+#else
+__ai float32x4_t vcvtx_high_f32_f64(float32x2_t __p0, float64x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x4_t __ret;
+  __ret = __noswap_vcombine_f32(__rev0, __noswap_vcvtx_f32_f64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vdivq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __p0 / __p1;
+  return __ret;
+}
+#else
+__ai float64x2_t vdivq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 / __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vdivq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __p0 / __p1;
+  return __ret;
+}
+#else
+__ai float32x4_t vdivq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __rev0 / __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vdiv_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 / __p1;
+  return __ret;
+}
+#else
+__ai float64x1_t vdiv_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 / __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vdiv_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __p0 / __p1;
+  return __ret;
+}
+#else
+__ai float32x2_t vdiv_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __rev0 / __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupb_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupb_lane_p8(__p0, __p1) __extension__ ({ \
+  poly8x8_t __s0 = __p0; \
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vduph_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vduph_lane_p16(__p0, __p1) __extension__ ({ \
+  poly16x4_t __s0 = __p0; \
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupb_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupb_lane_u8(__p0, __p1) __extension__ ({ \
+  uint8x8_t __s0 = __p0; \
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdups_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdups_lane_u32(__p0, __p1) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupd_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupd_lane_u64(__p0, __p1) __extension__ ({ \
+  uint64x1_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vduph_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vduph_lane_u16(__p0, __p1) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupb_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupb_lane_s8(__p0, __p1) __extension__ ({ \
+  int8x8_t __s0 = __p0; \
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vdupb_lane_i8((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupd_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vdupd_lane_f64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupd_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vdupd_lane_f64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdups_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vdups_lane_f32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdups_lane_f32(__p0, __p1) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vdups_lane_f32((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdups_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdups_lane_s32(__p0, __p1) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vdups_lane_i32((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupd_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupd_lane_s64(__p0, __p1) __extension__ ({ \
+  int64x1_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vdupd_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vduph_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vduph_lane_s16(__p0, __p1) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vduph_lane_i16((int8x8_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_lane_f16(__p0, __p1) __extension__ ({ \
+  float16x4_t __s0 = __p0; \
+  float16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_lane_f16(__p0, __p1) __extension__ ({ \
+  float16x4_t __s0 = __p0; \
+  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_lane_f16(__p0, __p1) __extension__ ({ \
+  float16x4_t __s0 = __p0; \
+  float16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_lane_f16(__p0, __p1) __extension__ ({ \
+  float16x4_t __s0 = __p0; \
+  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupb_laneq_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupb_laneq_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8_t __ret; \
+  __ret = (poly8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vduph_laneq_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vduph_laneq_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16_t __ret; \
+  __ret = (poly16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupb_laneq_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupb_laneq_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdups_laneq_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdups_laneq_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupd_laneq_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupd_laneq_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vduph_laneq_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vduph_laneq_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupb_laneq_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupb_laneq_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vdupb_laneq_i8((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupd_laneq_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vdupd_laneq_f64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupd_laneq_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vdupd_laneq_f64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdups_laneq_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vdups_laneq_f32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdups_laneq_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vdups_laneq_f32((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdups_laneq_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdups_laneq_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vdups_laneq_i32((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupd_laneq_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vdupd_laneq_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vdupd_laneq_i64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vduph_laneq_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vduph_laneq_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vduph_laneq_i16((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  poly64x1_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_p8(__p0, __p1) __extension__ ({ \
+  poly8x16_t __s0 = __p0; \
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  poly64x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_p16(__p0, __p1) __extension__ ({ \
+  poly16x8_t __s0 = __p0; \
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_f16(__p0, __p1) __extension__ ({ \
+  float16x8_t __s0 = __p0; \
+  float16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_f16(__p0, __p1) __extension__ ({ \
+  float16x8_t __s0 = __p0; \
+  float16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdupq_laneq_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdupq_laneq_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_u8(__p0, __p1) __extension__ ({ \
+  uint8x16_t __s0 = __p0; \
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_u32(__p0, __p1) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_u64(__p0, __p1) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint64x1_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_u16(__p0, __p1) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x8_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_s8(__p0, __p1) __extension__ ({ \
+  int8x16_t __s0 = __p0; \
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x8_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x1_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_f32(__p0, __p1) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_f16(__p0, __p1) __extension__ ({ \
+  float16x8_t __s0 = __p0; \
+  float16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_f16(__p0, __p1) __extension__ ({ \
+  float16x8_t __s0 = __p0; \
+  float16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_s32(__p0, __p1) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x1_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_s64(__p0, __p1) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int64x1_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vdup_laneq_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __ret; \
+  __ret = __builtin_shufflevector(__s0, __s0, __p1, __p1, __p1, __p1); \
+  __ret; \
+})
+#else
+#define vdup_laneq_s16(__p0, __p1) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __builtin_shufflevector(__rev0, __rev0, __p1, __p1, __p1, __p1); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vdup_n_p64(poly64_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai poly64x1_t vdup_n_p64(poly64_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vdupq_n_p64(poly64_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai poly64x2_t vdupq_n_p64(poly64_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vdupq_n_f64(float64_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai float64x2_t vdupq_n_f64(float64_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vdup_n_f64(float64_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai float64x1_t vdup_n_f64(float64_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#else
+#define vext_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 38); \
+  __ret; \
+})
+#else
+#define vextq_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 38); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vextq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vextq_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 42); \
+  __ret; \
+})
+#else
+#define vextq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vextq_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 42); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vext_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \
+  __ret; \
+})
+#else
+#define vext_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vext_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vfmaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vfmaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vfmaq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float64x2_t __noswap_vfmaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vfmaq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  return __ret;
+}
+__ai float64x1_t __noswap_vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmad_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vfmad_lane_f64(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vfmad_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vfmad_lane_f64(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#define __noswap_vfmad_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vfmad_lane_f64(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmas_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vfmas_lane_f32(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vfmas_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vfmas_lane_f32(__s0, __s1, (int8x8_t)__rev2, __p3); \
+  __ret; \
+})
+#define __noswap_vfmas_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vfmas_lane_f32(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmaq_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 42); \
+  __ret; \
+})
+#else
+#define vfmaq_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__s2, __p3, 42); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vfmaq_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 42); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 41); \
+  __ret; \
+})
+#else
+#define vfmaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, __p3, 41); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vfmaq_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vfmaq_lane_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x8_t)__s2, __p3, 41); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfma_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 10); \
+  __ret; \
+})
+#else
+#define vfma_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 10); \
+  __ret; \
+})
+#define __noswap_vfma_lane_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __s2 = __p2; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfma_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 9); \
+  __ret; \
+})
+#else
+#define vfma_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vfma_lane_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, __p3, 9); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vfma_lane_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vfma_lane_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x8_t)__s2, __p3, 9); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmad_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vfmad_laneq_f64(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vfmad_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vfmad_laneq_f64(__s0, __s1, (int8x16_t)__rev2, __p3); \
+  __ret; \
+})
+#define __noswap_vfmad_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vfmad_laneq_f64(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmas_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vfmas_laneq_f32(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vfmas_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vfmas_laneq_f32(__s0, __s1, (int8x16_t)__rev2, __p3); \
+  __ret; \
+})
+#define __noswap_vfmas_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32_t __s0 = __p0; \
+  float32_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32_t __ret; \
+  __ret = (float32_t) __builtin_neon_vfmas_laneq_f32(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmaq_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 42); \
+  __ret; \
+})
+#else
+#define vfmaq_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, __p3, 42); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vfmaq_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 42); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 41); \
+  __ret; \
+})
+#else
+#define vfmaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, __p3, 41); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#define __noswap_vfmaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = (float32x4_t) __builtin_neon_vfmaq_laneq_v((int8x16_t)__s0, (int8x16_t)__s1, (int8x16_t)__s2, __p3, 41); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfma_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 10); \
+  __ret; \
+})
+#else
+#define vfma_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__rev2, __p3, 10); \
+  __ret; \
+})
+#define __noswap_vfma_laneq_f64(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __s2 = __p2; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfma_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 9); \
+  __ret; \
+})
+#else
+#define vfma_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vfma_laneq_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x16_t)__rev2, __p3, 9); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vfma_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = (float32x2_t) __builtin_neon_vfma_laneq_v((int8x8_t)__s0, (int8x8_t)__s1, (int8x16_t)__s2, __p3, 9); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vfmaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __ret;
+  __ret = vfmaq_f64(__p0, __p1, (float64x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai float64x2_t vfmaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __noswap_vfmaq_f64(__rev0, __rev1, (float64x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vfmaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __ret;
+  __ret = vfmaq_f32(__p0, __p1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#else
+__ai float32x4_t vfmaq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __noswap_vfmaq_f32(__rev0, __rev1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vfma_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __ret;
+  __ret = vfma_f32(__p0, __p1, (float32x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai float32x2_t vfma_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __noswap_vfma_f32(__rev0, __rev1, (float32x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vfmsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = vfmaq_f64(__p0, -__p1, __p2);
+  return __ret;
+}
+#else
+__ai float64x2_t vfmsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float64x2_t __ret;
+  __ret = __noswap_vfmaq_f64(__rev0, -__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = vfma_f64(__p0, -__p1, __p2);
+  return __ret;
+}
+#else
+__ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = __noswap_vfma_f64(__p0, -__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmsd_lane_f64(__p0_88, __p1_88, __p2_88, __p3_88) __extension__ ({ \
+  float64_t __s0_88 = __p0_88; \
+  float64_t __s1_88 = __p1_88; \
+  float64x1_t __s2_88 = __p2_88; \
+  float64_t __ret_88; \
+  __ret_88 = vfmad_lane_f64(__s0_88, -__s1_88, __s2_88, __p3_88); \
+  __ret_88; \
+})
+#else
+#define vfmsd_lane_f64(__p0_89, __p1_89, __p2_89, __p3_89) __extension__ ({ \
+  float64_t __s0_89 = __p0_89; \
+  float64_t __s1_89 = __p1_89; \
+  float64x1_t __s2_89 = __p2_89; \
+  float64_t __ret_89; \
+  __ret_89 = __noswap_vfmad_lane_f64(__s0_89, -__s1_89, __s2_89, __p3_89); \
+  __ret_89; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmss_lane_f32(__p0_90, __p1_90, __p2_90, __p3_90) __extension__ ({ \
+  float32_t __s0_90 = __p0_90; \
+  float32_t __s1_90 = __p1_90; \
+  float32x2_t __s2_90 = __p2_90; \
+  float32_t __ret_90; \
+  __ret_90 = vfmas_lane_f32(__s0_90, -__s1_90, __s2_90, __p3_90); \
+  __ret_90; \
+})
+#else
+#define vfmss_lane_f32(__p0_91, __p1_91, __p2_91, __p3_91) __extension__ ({ \
+  float32_t __s0_91 = __p0_91; \
+  float32_t __s1_91 = __p1_91; \
+  float32x2_t __s2_91 = __p2_91; \
+  float32x2_t __rev2_91;  __rev2_91 = __builtin_shufflevector(__s2_91, __s2_91, 1, 0); \
+  float32_t __ret_91; \
+  __ret_91 = __noswap_vfmas_lane_f32(__s0_91, -__s1_91, __rev2_91, __p3_91); \
+  __ret_91; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmsq_lane_f64(__p0_92, __p1_92, __p2_92, __p3_92) __extension__ ({ \
+  float64x2_t __s0_92 = __p0_92; \
+  float64x2_t __s1_92 = __p1_92; \
+  float64x1_t __s2_92 = __p2_92; \
+  float64x2_t __ret_92; \
+  __ret_92 = vfmaq_lane_f64(__s0_92, -__s1_92, __s2_92, __p3_92); \
+  __ret_92; \
+})
+#else
+#define vfmsq_lane_f64(__p0_93, __p1_93, __p2_93, __p3_93) __extension__ ({ \
+  float64x2_t __s0_93 = __p0_93; \
+  float64x2_t __s1_93 = __p1_93; \
+  float64x1_t __s2_93 = __p2_93; \
+  float64x2_t __rev0_93;  __rev0_93 = __builtin_shufflevector(__s0_93, __s0_93, 1, 0); \
+  float64x2_t __rev1_93;  __rev1_93 = __builtin_shufflevector(__s1_93, __s1_93, 1, 0); \
+  float64x2_t __ret_93; \
+  __ret_93 = __noswap_vfmaq_lane_f64(__rev0_93, -__rev1_93, __s2_93, __p3_93); \
+  __ret_93 = __builtin_shufflevector(__ret_93, __ret_93, 1, 0); \
+  __ret_93; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmsq_lane_f32(__p0_94, __p1_94, __p2_94, __p3_94) __extension__ ({ \
+  float32x4_t __s0_94 = __p0_94; \
+  float32x4_t __s1_94 = __p1_94; \
+  float32x2_t __s2_94 = __p2_94; \
+  float32x4_t __ret_94; \
+  __ret_94 = vfmaq_lane_f32(__s0_94, -__s1_94, __s2_94, __p3_94); \
+  __ret_94; \
+})
+#else
+#define vfmsq_lane_f32(__p0_95, __p1_95, __p2_95, __p3_95) __extension__ ({ \
+  float32x4_t __s0_95 = __p0_95; \
+  float32x4_t __s1_95 = __p1_95; \
+  float32x2_t __s2_95 = __p2_95; \
+  float32x4_t __rev0_95;  __rev0_95 = __builtin_shufflevector(__s0_95, __s0_95, 3, 2, 1, 0); \
+  float32x4_t __rev1_95;  __rev1_95 = __builtin_shufflevector(__s1_95, __s1_95, 3, 2, 1, 0); \
+  float32x2_t __rev2_95;  __rev2_95 = __builtin_shufflevector(__s2_95, __s2_95, 1, 0); \
+  float32x4_t __ret_95; \
+  __ret_95 = __noswap_vfmaq_lane_f32(__rev0_95, -__rev1_95, __rev2_95, __p3_95); \
+  __ret_95 = __builtin_shufflevector(__ret_95, __ret_95, 3, 2, 1, 0); \
+  __ret_95; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfms_lane_f64(__p0_96, __p1_96, __p2_96, __p3_96) __extension__ ({ \
+  float64x1_t __s0_96 = __p0_96; \
+  float64x1_t __s1_96 = __p1_96; \
+  float64x1_t __s2_96 = __p2_96; \
+  float64x1_t __ret_96; \
+  __ret_96 = vfma_lane_f64(__s0_96, -__s1_96, __s2_96, __p3_96); \
+  __ret_96; \
+})
+#else
+#define vfms_lane_f64(__p0_97, __p1_97, __p2_97, __p3_97) __extension__ ({ \
+  float64x1_t __s0_97 = __p0_97; \
+  float64x1_t __s1_97 = __p1_97; \
+  float64x1_t __s2_97 = __p2_97; \
+  float64x1_t __ret_97; \
+  __ret_97 = __noswap_vfma_lane_f64(__s0_97, -__s1_97, __s2_97, __p3_97); \
+  __ret_97; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfms_lane_f32(__p0_98, __p1_98, __p2_98, __p3_98) __extension__ ({ \
+  float32x2_t __s0_98 = __p0_98; \
+  float32x2_t __s1_98 = __p1_98; \
+  float32x2_t __s2_98 = __p2_98; \
+  float32x2_t __ret_98; \
+  __ret_98 = vfma_lane_f32(__s0_98, -__s1_98, __s2_98, __p3_98); \
+  __ret_98; \
+})
+#else
+#define vfms_lane_f32(__p0_99, __p1_99, __p2_99, __p3_99) __extension__ ({ \
+  float32x2_t __s0_99 = __p0_99; \
+  float32x2_t __s1_99 = __p1_99; \
+  float32x2_t __s2_99 = __p2_99; \
+  float32x2_t __rev0_99;  __rev0_99 = __builtin_shufflevector(__s0_99, __s0_99, 1, 0); \
+  float32x2_t __rev1_99;  __rev1_99 = __builtin_shufflevector(__s1_99, __s1_99, 1, 0); \
+  float32x2_t __rev2_99;  __rev2_99 = __builtin_shufflevector(__s2_99, __s2_99, 1, 0); \
+  float32x2_t __ret_99; \
+  __ret_99 = __noswap_vfma_lane_f32(__rev0_99, -__rev1_99, __rev2_99, __p3_99); \
+  __ret_99 = __builtin_shufflevector(__ret_99, __ret_99, 1, 0); \
+  __ret_99; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmsd_laneq_f64(__p0_100, __p1_100, __p2_100, __p3_100) __extension__ ({ \
+  float64_t __s0_100 = __p0_100; \
+  float64_t __s1_100 = __p1_100; \
+  float64x2_t __s2_100 = __p2_100; \
+  float64_t __ret_100; \
+  __ret_100 = vfmad_laneq_f64(__s0_100, -__s1_100, __s2_100, __p3_100); \
+  __ret_100; \
+})
+#else
+#define vfmsd_laneq_f64(__p0_101, __p1_101, __p2_101, __p3_101) __extension__ ({ \
+  float64_t __s0_101 = __p0_101; \
+  float64_t __s1_101 = __p1_101; \
+  float64x2_t __s2_101 = __p2_101; \
+  float64x2_t __rev2_101;  __rev2_101 = __builtin_shufflevector(__s2_101, __s2_101, 1, 0); \
+  float64_t __ret_101; \
+  __ret_101 = __noswap_vfmad_laneq_f64(__s0_101, -__s1_101, __rev2_101, __p3_101); \
+  __ret_101; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmss_laneq_f32(__p0_102, __p1_102, __p2_102, __p3_102) __extension__ ({ \
+  float32_t __s0_102 = __p0_102; \
+  float32_t __s1_102 = __p1_102; \
+  float32x4_t __s2_102 = __p2_102; \
+  float32_t __ret_102; \
+  __ret_102 = vfmas_laneq_f32(__s0_102, -__s1_102, __s2_102, __p3_102); \
+  __ret_102; \
+})
+#else
+#define vfmss_laneq_f32(__p0_103, __p1_103, __p2_103, __p3_103) __extension__ ({ \
+  float32_t __s0_103 = __p0_103; \
+  float32_t __s1_103 = __p1_103; \
+  float32x4_t __s2_103 = __p2_103; \
+  float32x4_t __rev2_103;  __rev2_103 = __builtin_shufflevector(__s2_103, __s2_103, 3, 2, 1, 0); \
+  float32_t __ret_103; \
+  __ret_103 = __noswap_vfmas_laneq_f32(__s0_103, -__s1_103, __rev2_103, __p3_103); \
+  __ret_103; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmsq_laneq_f64(__p0_104, __p1_104, __p2_104, __p3_104) __extension__ ({ \
+  float64x2_t __s0_104 = __p0_104; \
+  float64x2_t __s1_104 = __p1_104; \
+  float64x2_t __s2_104 = __p2_104; \
+  float64x2_t __ret_104; \
+  __ret_104 = vfmaq_laneq_f64(__s0_104, -__s1_104, __s2_104, __p3_104); \
+  __ret_104; \
+})
+#else
+#define vfmsq_laneq_f64(__p0_105, __p1_105, __p2_105, __p3_105) __extension__ ({ \
+  float64x2_t __s0_105 = __p0_105; \
+  float64x2_t __s1_105 = __p1_105; \
+  float64x2_t __s2_105 = __p2_105; \
+  float64x2_t __rev0_105;  __rev0_105 = __builtin_shufflevector(__s0_105, __s0_105, 1, 0); \
+  float64x2_t __rev1_105;  __rev1_105 = __builtin_shufflevector(__s1_105, __s1_105, 1, 0); \
+  float64x2_t __rev2_105;  __rev2_105 = __builtin_shufflevector(__s2_105, __s2_105, 1, 0); \
+  float64x2_t __ret_105; \
+  __ret_105 = __noswap_vfmaq_laneq_f64(__rev0_105, -__rev1_105, __rev2_105, __p3_105); \
+  __ret_105 = __builtin_shufflevector(__ret_105, __ret_105, 1, 0); \
+  __ret_105; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfmsq_laneq_f32(__p0_106, __p1_106, __p2_106, __p3_106) __extension__ ({ \
+  float32x4_t __s0_106 = __p0_106; \
+  float32x4_t __s1_106 = __p1_106; \
+  float32x4_t __s2_106 = __p2_106; \
+  float32x4_t __ret_106; \
+  __ret_106 = vfmaq_laneq_f32(__s0_106, -__s1_106, __s2_106, __p3_106); \
+  __ret_106; \
+})
+#else
+#define vfmsq_laneq_f32(__p0_107, __p1_107, __p2_107, __p3_107) __extension__ ({ \
+  float32x4_t __s0_107 = __p0_107; \
+  float32x4_t __s1_107 = __p1_107; \
+  float32x4_t __s2_107 = __p2_107; \
+  float32x4_t __rev0_107;  __rev0_107 = __builtin_shufflevector(__s0_107, __s0_107, 3, 2, 1, 0); \
+  float32x4_t __rev1_107;  __rev1_107 = __builtin_shufflevector(__s1_107, __s1_107, 3, 2, 1, 0); \
+  float32x4_t __rev2_107;  __rev2_107 = __builtin_shufflevector(__s2_107, __s2_107, 3, 2, 1, 0); \
+  float32x4_t __ret_107; \
+  __ret_107 = __noswap_vfmaq_laneq_f32(__rev0_107, -__rev1_107, __rev2_107, __p3_107); \
+  __ret_107 = __builtin_shufflevector(__ret_107, __ret_107, 3, 2, 1, 0); \
+  __ret_107; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfms_laneq_f64(__p0_108, __p1_108, __p2_108, __p3_108) __extension__ ({ \
+  float64x1_t __s0_108 = __p0_108; \
+  float64x1_t __s1_108 = __p1_108; \
+  float64x2_t __s2_108 = __p2_108; \
+  float64x1_t __ret_108; \
+  __ret_108 = vfma_laneq_f64(__s0_108, -__s1_108, __s2_108, __p3_108); \
+  __ret_108; \
+})
+#else
+#define vfms_laneq_f64(__p0_109, __p1_109, __p2_109, __p3_109) __extension__ ({ \
+  float64x1_t __s0_109 = __p0_109; \
+  float64x1_t __s1_109 = __p1_109; \
+  float64x2_t __s2_109 = __p2_109; \
+  float64x2_t __rev2_109;  __rev2_109 = __builtin_shufflevector(__s2_109, __s2_109, 1, 0); \
+  float64x1_t __ret_109; \
+  __ret_109 = __noswap_vfma_laneq_f64(__s0_109, -__s1_109, __rev2_109, __p3_109); \
+  __ret_109; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vfms_laneq_f32(__p0_110, __p1_110, __p2_110, __p3_110) __extension__ ({ \
+  float32x2_t __s0_110 = __p0_110; \
+  float32x2_t __s1_110 = __p1_110; \
+  float32x4_t __s2_110 = __p2_110; \
+  float32x2_t __ret_110; \
+  __ret_110 = vfma_laneq_f32(__s0_110, -__s1_110, __s2_110, __p3_110); \
+  __ret_110; \
+})
+#else
+#define vfms_laneq_f32(__p0_111, __p1_111, __p2_111, __p3_111) __extension__ ({ \
+  float32x2_t __s0_111 = __p0_111; \
+  float32x2_t __s1_111 = __p1_111; \
+  float32x4_t __s2_111 = __p2_111; \
+  float32x2_t __rev0_111;  __rev0_111 = __builtin_shufflevector(__s0_111, __s0_111, 1, 0); \
+  float32x2_t __rev1_111;  __rev1_111 = __builtin_shufflevector(__s1_111, __s1_111, 1, 0); \
+  float32x4_t __rev2_111;  __rev2_111 = __builtin_shufflevector(__s2_111, __s2_111, 3, 2, 1, 0); \
+  float32x2_t __ret_111; \
+  __ret_111 = __noswap_vfma_laneq_f32(__rev0_111, -__rev1_111, __rev2_111, __p3_111); \
+  __ret_111 = __builtin_shufflevector(__ret_111, __ret_111, 1, 0); \
+  __ret_111; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vfmsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __ret;
+  __ret = vfmaq_f64(__p0, -__p1, (float64x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai float64x2_t vfmsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __noswap_vfmaq_f64(__rev0, -__rev1, (float64x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vfmsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __ret;
+  __ret = vfmaq_f32(__p0, -__p1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#else
+__ai float32x4_t vfmsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __noswap_vfmaq_f32(__rev0, -__rev1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vfms_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __ret;
+  __ret = vfma_f32(__p0, -__p1, (float32x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai float32x2_t vfms_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __noswap_vfma_f32(__rev0, -__rev1, (float32x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vget_high_p64(poly64x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1);
+  return __ret;
+}
+#else
+__ai poly64x1_t vget_high_p64(poly64x2_t __p0) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1);
+  return __ret;
+}
+__ai poly64x1_t __noswap_vget_high_p64(poly64x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vget_high_f64(float64x2_t __p0) {
+  float64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 1);
+  return __ret;
+}
+#else
+__ai float64x1_t vget_high_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64_t __ret; \
+  __ret = (poly64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64_t __ret; \
+  __ret = (poly64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64_t __ret; \
+  __ret = (poly64_t) __builtin_neon_vget_lane_i64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64_t __ret; \
+  __ret = (poly64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  poly64_t __ret; \
+  __ret = (poly64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64_t __ret; \
+  __ret = (poly64_t) __builtin_neon_vgetq_lane_i64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vgetq_lane_f64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vgetq_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vgetq_lane_f64((int8x16_t)__rev0, __p1); \
+  __ret; \
+})
+#define __noswap_vgetq_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vgetq_lane_f64((int8x16_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vget_lane_f64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#else
+#define vget_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vget_lane_f64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#define __noswap_vget_lane_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64_t __ret; \
+  __ret = (float64_t) __builtin_neon_vget_lane_f64((int8x8_t)__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vget_low_p64(poly64x2_t __p0) {
+  poly64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0);
+  return __ret;
+}
+#else
+__ai poly64x1_t vget_low_p64(poly64x2_t __p0) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vget_low_f64(float64x2_t __p0) {
+  float64x1_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p0, 0);
+  return __ret;
+}
+#else
+__ai float64x1_t vget_low_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x1_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev0, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p64(__p0) __extension__ ({ \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vld1_v(__p0, 6); \
+  __ret; \
+})
+#else
+#define vld1_p64(__p0) __extension__ ({ \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vld1_v(__p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p64(__p0) __extension__ ({ \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vld1q_v(__p0, 38); \
+  __ret; \
+})
+#else
+#define vld1q_p64(__p0) __extension__ ({ \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vld1q_v(__p0, 38); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f64(__p0) __extension__ ({ \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vld1q_v(__p0, 42); \
+  __ret; \
+})
+#else
+#define vld1q_f64(__p0) __extension__ ({ \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vld1q_v(__p0, 42); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f64(__p0) __extension__ ({ \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vld1_v(__p0, 10); \
+  __ret; \
+})
+#else
+#define vld1_f64(__p0) __extension__ ({ \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vld1_v(__p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_p64(__p0) __extension__ ({ \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vld1_dup_v(__p0, 6); \
+  __ret; \
+})
+#else
+#define vld1_dup_p64(__p0) __extension__ ({ \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vld1_dup_v(__p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_p64(__p0) __extension__ ({ \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vld1q_dup_v(__p0, 38); \
+  __ret; \
+})
+#else
+#define vld1q_dup_p64(__p0) __extension__ ({ \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vld1q_dup_v(__p0, 38); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_dup_f64(__p0) __extension__ ({ \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vld1q_dup_v(__p0, 42); \
+  __ret; \
+})
+#else
+#define vld1q_dup_f64(__p0) __extension__ ({ \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vld1q_dup_v(__p0, 42); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_dup_f64(__p0) __extension__ ({ \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vld1_dup_v(__p0, 10); \
+  __ret; \
+})
+#else
+#define vld1_dup_f64(__p0) __extension__ ({ \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vld1_dup_v(__p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#else
+#define vld1_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 38); \
+  __ret; \
+})
+#else
+#define vld1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 38); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 42); \
+  __ret; \
+})
+#else
+#define vld1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 42); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \
+  __ret; \
+})
+#else
+#define vld1_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p8_x2(__p0) __extension__ ({ \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld1_p8_x2(__p0) __extension__ ({ \
+  poly8x8x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p64_x2(__p0) __extension__ ({ \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld1_p64_x2(__p0) __extension__ ({ \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p16_x2(__p0) __extension__ ({ \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld1_p16_x2(__p0) __extension__ ({ \
+  poly16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p8_x2(__p0) __extension__ ({ \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld1q_p8_x2(__p0) __extension__ ({ \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p64_x2(__p0) __extension__ ({ \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld1q_p64_x2(__p0) __extension__ ({ \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p16_x2(__p0) __extension__ ({ \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld1q_p16_x2(__p0) __extension__ ({ \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u8_x2(__p0) __extension__ ({ \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld1q_u8_x2(__p0) __extension__ ({ \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u32_x2(__p0) __extension__ ({ \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld1q_u32_x2(__p0) __extension__ ({ \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u64_x2(__p0) __extension__ ({ \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld1q_u64_x2(__p0) __extension__ ({ \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u16_x2(__p0) __extension__ ({ \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld1q_u16_x2(__p0) __extension__ ({ \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s8_x2(__p0) __extension__ ({ \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld1q_s8_x2(__p0) __extension__ ({ \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f64_x2(__p0) __extension__ ({ \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld1q_f64_x2(__p0) __extension__ ({ \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f32_x2(__p0) __extension__ ({ \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld1q_f32_x2(__p0) __extension__ ({ \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f16_x2(__p0) __extension__ ({ \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld1q_f16_x2(__p0) __extension__ ({ \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s32_x2(__p0) __extension__ ({ \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld1q_s32_x2(__p0) __extension__ ({ \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s64_x2(__p0) __extension__ ({ \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld1q_s64_x2(__p0) __extension__ ({ \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s16_x2(__p0) __extension__ ({ \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld1q_s16_x2(__p0) __extension__ ({ \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld1q_x2_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u8_x2(__p0) __extension__ ({ \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld1_u8_x2(__p0) __extension__ ({ \
+  uint8x8x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u32_x2(__p0) __extension__ ({ \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld1_u32_x2(__p0) __extension__ ({ \
+  uint32x2x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u64_x2(__p0) __extension__ ({ \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld1_u64_x2(__p0) __extension__ ({ \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u16_x2(__p0) __extension__ ({ \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld1_u16_x2(__p0) __extension__ ({ \
+  uint16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s8_x2(__p0) __extension__ ({ \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld1_s8_x2(__p0) __extension__ ({ \
+  int8x8x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f64_x2(__p0) __extension__ ({ \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld1_f64_x2(__p0) __extension__ ({ \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f32_x2(__p0) __extension__ ({ \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld1_f32_x2(__p0) __extension__ ({ \
+  float32x2x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f16_x2(__p0) __extension__ ({ \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld1_f16_x2(__p0) __extension__ ({ \
+  float16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s32_x2(__p0) __extension__ ({ \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld1_s32_x2(__p0) __extension__ ({ \
+  int32x2x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s64_x2(__p0) __extension__ ({ \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld1_s64_x2(__p0) __extension__ ({ \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s16_x2(__p0) __extension__ ({ \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld1_s16_x2(__p0) __extension__ ({ \
+  int16x4x2_t __ret; \
+  __builtin_neon_vld1_x2_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p8_x3(__p0) __extension__ ({ \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld1_p8_x3(__p0) __extension__ ({ \
+  poly8x8x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p64_x3(__p0) __extension__ ({ \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld1_p64_x3(__p0) __extension__ ({ \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p16_x3(__p0) __extension__ ({ \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld1_p16_x3(__p0) __extension__ ({ \
+  poly16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p8_x3(__p0) __extension__ ({ \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld1q_p8_x3(__p0) __extension__ ({ \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p64_x3(__p0) __extension__ ({ \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld1q_p64_x3(__p0) __extension__ ({ \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p16_x3(__p0) __extension__ ({ \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld1q_p16_x3(__p0) __extension__ ({ \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u8_x3(__p0) __extension__ ({ \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld1q_u8_x3(__p0) __extension__ ({ \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u32_x3(__p0) __extension__ ({ \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld1q_u32_x3(__p0) __extension__ ({ \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u64_x3(__p0) __extension__ ({ \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld1q_u64_x3(__p0) __extension__ ({ \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u16_x3(__p0) __extension__ ({ \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld1q_u16_x3(__p0) __extension__ ({ \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s8_x3(__p0) __extension__ ({ \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld1q_s8_x3(__p0) __extension__ ({ \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f64_x3(__p0) __extension__ ({ \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld1q_f64_x3(__p0) __extension__ ({ \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f32_x3(__p0) __extension__ ({ \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld1q_f32_x3(__p0) __extension__ ({ \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f16_x3(__p0) __extension__ ({ \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld1q_f16_x3(__p0) __extension__ ({ \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s32_x3(__p0) __extension__ ({ \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld1q_s32_x3(__p0) __extension__ ({ \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s64_x3(__p0) __extension__ ({ \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld1q_s64_x3(__p0) __extension__ ({ \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s16_x3(__p0) __extension__ ({ \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld1q_s16_x3(__p0) __extension__ ({ \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld1q_x3_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u8_x3(__p0) __extension__ ({ \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld1_u8_x3(__p0) __extension__ ({ \
+  uint8x8x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u32_x3(__p0) __extension__ ({ \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld1_u32_x3(__p0) __extension__ ({ \
+  uint32x2x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u64_x3(__p0) __extension__ ({ \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld1_u64_x3(__p0) __extension__ ({ \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u16_x3(__p0) __extension__ ({ \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld1_u16_x3(__p0) __extension__ ({ \
+  uint16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s8_x3(__p0) __extension__ ({ \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld1_s8_x3(__p0) __extension__ ({ \
+  int8x8x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f64_x3(__p0) __extension__ ({ \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld1_f64_x3(__p0) __extension__ ({ \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f32_x3(__p0) __extension__ ({ \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld1_f32_x3(__p0) __extension__ ({ \
+  float32x2x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f16_x3(__p0) __extension__ ({ \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld1_f16_x3(__p0) __extension__ ({ \
+  float16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s32_x3(__p0) __extension__ ({ \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld1_s32_x3(__p0) __extension__ ({ \
+  int32x2x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s64_x3(__p0) __extension__ ({ \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld1_s64_x3(__p0) __extension__ ({ \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s16_x3(__p0) __extension__ ({ \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld1_s16_x3(__p0) __extension__ ({ \
+  int16x4x3_t __ret; \
+  __builtin_neon_vld1_x3_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p8_x4(__p0) __extension__ ({ \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 4); \
+  __ret; \
+})
+#else
+#define vld1_p8_x4(__p0) __extension__ ({ \
+  poly8x8x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 4); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p64_x4(__p0) __extension__ ({ \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld1_p64_x4(__p0) __extension__ ({ \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_p16_x4(__p0) __extension__ ({ \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 5); \
+  __ret; \
+})
+#else
+#define vld1_p16_x4(__p0) __extension__ ({ \
+  poly16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 5); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p8_x4(__p0) __extension__ ({ \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld1q_p8_x4(__p0) __extension__ ({ \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p64_x4(__p0) __extension__ ({ \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld1q_p64_x4(__p0) __extension__ ({ \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_p16_x4(__p0) __extension__ ({ \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld1q_p16_x4(__p0) __extension__ ({ \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u8_x4(__p0) __extension__ ({ \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld1q_u8_x4(__p0) __extension__ ({ \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u32_x4(__p0) __extension__ ({ \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld1q_u32_x4(__p0) __extension__ ({ \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u64_x4(__p0) __extension__ ({ \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld1q_u64_x4(__p0) __extension__ ({ \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_u16_x4(__p0) __extension__ ({ \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld1q_u16_x4(__p0) __extension__ ({ \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s8_x4(__p0) __extension__ ({ \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld1q_s8_x4(__p0) __extension__ ({ \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f64_x4(__p0) __extension__ ({ \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld1q_f64_x4(__p0) __extension__ ({ \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f32_x4(__p0) __extension__ ({ \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld1q_f32_x4(__p0) __extension__ ({ \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_f16_x4(__p0) __extension__ ({ \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld1q_f16_x4(__p0) __extension__ ({ \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s32_x4(__p0) __extension__ ({ \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld1q_s32_x4(__p0) __extension__ ({ \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s64_x4(__p0) __extension__ ({ \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld1q_s64_x4(__p0) __extension__ ({ \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1q_s16_x4(__p0) __extension__ ({ \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld1q_s16_x4(__p0) __extension__ ({ \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld1q_x4_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u8_x4(__p0) __extension__ ({ \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 16); \
+  __ret; \
+})
+#else
+#define vld1_u8_x4(__p0) __extension__ ({ \
+  uint8x8x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 16); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u32_x4(__p0) __extension__ ({ \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 18); \
+  __ret; \
+})
+#else
+#define vld1_u32_x4(__p0) __extension__ ({ \
+  uint32x2x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 18); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u64_x4(__p0) __extension__ ({ \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#else
+#define vld1_u64_x4(__p0) __extension__ ({ \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_u16_x4(__p0) __extension__ ({ \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 17); \
+  __ret; \
+})
+#else
+#define vld1_u16_x4(__p0) __extension__ ({ \
+  uint16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 17); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s8_x4(__p0) __extension__ ({ \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 0); \
+  __ret; \
+})
+#else
+#define vld1_s8_x4(__p0) __extension__ ({ \
+  int8x8x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 0); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f64_x4(__p0) __extension__ ({ \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld1_f64_x4(__p0) __extension__ ({ \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f32_x4(__p0) __extension__ ({ \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 9); \
+  __ret; \
+})
+#else
+#define vld1_f32_x4(__p0) __extension__ ({ \
+  float32x2x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 9); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_f16_x4(__p0) __extension__ ({ \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \
+  __ret; \
+})
+#else
+#define vld1_f16_x4(__p0) __extension__ ({ \
+  float16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s32_x4(__p0) __extension__ ({ \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 2); \
+  __ret; \
+})
+#else
+#define vld1_s32_x4(__p0) __extension__ ({ \
+  int32x2x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 2); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s64_x4(__p0) __extension__ ({ \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#else
+#define vld1_s64_x4(__p0) __extension__ ({ \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld1_s16_x4(__p0) __extension__ ({ \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 1); \
+  __ret; \
+})
+#else
+#define vld1_s16_x4(__p0) __extension__ ({ \
+  int16x4x4_t __ret; \
+  __builtin_neon_vld1_x4_v(&__ret, __p0, 1); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_p64(__p0) __extension__ ({ \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld2_p64(__p0) __extension__ ({ \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_p64(__p0) __extension__ ({ \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld2q_p64(__p0) __extension__ ({ \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_u64(__p0) __extension__ ({ \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld2q_u64(__p0) __extension__ ({ \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_f64(__p0) __extension__ ({ \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld2q_f64(__p0) __extension__ ({ \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_s64(__p0) __extension__ ({ \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld2q_s64(__p0) __extension__ ({ \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld2q_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_f64(__p0) __extension__ ({ \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld2_f64(__p0) __extension__ ({ \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld2_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_p64(__p0) __extension__ ({ \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld2_dup_p64(__p0) __extension__ ({ \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_p8(__p0) __extension__ ({ \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld2q_dup_p8(__p0) __extension__ ({ \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_p64(__p0) __extension__ ({ \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld2q_dup_p64(__p0) __extension__ ({ \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_p16(__p0) __extension__ ({ \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld2q_dup_p16(__p0) __extension__ ({ \
+  poly16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_u8(__p0) __extension__ ({ \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld2q_dup_u8(__p0) __extension__ ({ \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_u32(__p0) __extension__ ({ \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld2q_dup_u32(__p0) __extension__ ({ \
+  uint32x4x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_u64(__p0) __extension__ ({ \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld2q_dup_u64(__p0) __extension__ ({ \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_u16(__p0) __extension__ ({ \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld2q_dup_u16(__p0) __extension__ ({ \
+  uint16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_s8(__p0) __extension__ ({ \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld2q_dup_s8(__p0) __extension__ ({ \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_f64(__p0) __extension__ ({ \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld2q_dup_f64(__p0) __extension__ ({ \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_f32(__p0) __extension__ ({ \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld2q_dup_f32(__p0) __extension__ ({ \
+  float32x4x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_f16(__p0) __extension__ ({ \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld2q_dup_f16(__p0) __extension__ ({ \
+  float16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_s32(__p0) __extension__ ({ \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld2q_dup_s32(__p0) __extension__ ({ \
+  int32x4x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_s64(__p0) __extension__ ({ \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld2q_dup_s64(__p0) __extension__ ({ \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_dup_s16(__p0) __extension__ ({ \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld2q_dup_s16(__p0) __extension__ ({ \
+  int16x8x2_t __ret; \
+  __builtin_neon_vld2q_dup_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_dup_f64(__p0) __extension__ ({ \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld2_dup_f64(__p0) __extension__ ({ \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld2_dup_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \
+  __ret; \
+})
+#else
+#define vld2_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  poly64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 36); \
+  __ret; \
+})
+#else
+#define vld2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  poly8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 38); \
+  __ret; \
+})
+#else
+#define vld2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  poly64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  poly64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 48); \
+  __ret; \
+})
+#else
+#define vld2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  uint8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 51); \
+  __ret; \
+})
+#else
+#define vld2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  uint64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  uint64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 32); \
+  __ret; \
+})
+#else
+#define vld2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  int8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 42); \
+  __ret; \
+})
+#else
+#define vld2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  float64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  float64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 35); \
+  __ret; \
+})
+#else
+#define vld2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  int64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  int64x2x2_t __ret; \
+  __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \
+  __ret; \
+})
+#else
+#define vld2_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  uint64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 10); \
+  __ret; \
+})
+#else
+#define vld2_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  float64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld2_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 3); \
+  __ret; \
+})
+#else
+#define vld2_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  int64x1x2_t __ret; \
+  __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_p64(__p0) __extension__ ({ \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld3_p64(__p0) __extension__ ({ \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_p64(__p0) __extension__ ({ \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld3q_p64(__p0) __extension__ ({ \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_u64(__p0) __extension__ ({ \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld3q_u64(__p0) __extension__ ({ \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_f64(__p0) __extension__ ({ \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld3q_f64(__p0) __extension__ ({ \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_s64(__p0) __extension__ ({ \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld3q_s64(__p0) __extension__ ({ \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld3q_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_f64(__p0) __extension__ ({ \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld3_f64(__p0) __extension__ ({ \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld3_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_p64(__p0) __extension__ ({ \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld3_dup_p64(__p0) __extension__ ({ \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_p8(__p0) __extension__ ({ \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld3q_dup_p8(__p0) __extension__ ({ \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_p64(__p0) __extension__ ({ \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld3q_dup_p64(__p0) __extension__ ({ \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_p16(__p0) __extension__ ({ \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld3q_dup_p16(__p0) __extension__ ({ \
+  poly16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_u8(__p0) __extension__ ({ \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld3q_dup_u8(__p0) __extension__ ({ \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_u32(__p0) __extension__ ({ \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld3q_dup_u32(__p0) __extension__ ({ \
+  uint32x4x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_u64(__p0) __extension__ ({ \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld3q_dup_u64(__p0) __extension__ ({ \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_u16(__p0) __extension__ ({ \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld3q_dup_u16(__p0) __extension__ ({ \
+  uint16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_s8(__p0) __extension__ ({ \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld3q_dup_s8(__p0) __extension__ ({ \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_f64(__p0) __extension__ ({ \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld3q_dup_f64(__p0) __extension__ ({ \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_f32(__p0) __extension__ ({ \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld3q_dup_f32(__p0) __extension__ ({ \
+  float32x4x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_f16(__p0) __extension__ ({ \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld3q_dup_f16(__p0) __extension__ ({ \
+  float16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_s32(__p0) __extension__ ({ \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld3q_dup_s32(__p0) __extension__ ({ \
+  int32x4x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_s64(__p0) __extension__ ({ \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld3q_dup_s64(__p0) __extension__ ({ \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_dup_s16(__p0) __extension__ ({ \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld3q_dup_s16(__p0) __extension__ ({ \
+  int16x8x3_t __ret; \
+  __builtin_neon_vld3q_dup_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_dup_f64(__p0) __extension__ ({ \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld3_dup_f64(__p0) __extension__ ({ \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld3_dup_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \
+  __ret; \
+})
+#else
+#define vld3_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  poly64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 36); \
+  __ret; \
+})
+#else
+#define vld3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  poly8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 38); \
+  __ret; \
+})
+#else
+#define vld3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  poly64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  poly64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 48); \
+  __ret; \
+})
+#else
+#define vld3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  uint8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 51); \
+  __ret; \
+})
+#else
+#define vld3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  uint64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  uint64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 32); \
+  __ret; \
+})
+#else
+#define vld3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  int8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 42); \
+  __ret; \
+})
+#else
+#define vld3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  float64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  float64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 35); \
+  __ret; \
+})
+#else
+#define vld3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  int64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  int64x2x3_t __ret; \
+  __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \
+  __ret; \
+})
+#else
+#define vld3_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  uint64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \
+  __ret; \
+})
+#else
+#define vld3_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  float64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld3_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \
+  __ret; \
+})
+#else
+#define vld3_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  int64x1x3_t __ret; \
+  __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_p64(__p0) __extension__ ({ \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld4_p64(__p0) __extension__ ({ \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_p64(__p0) __extension__ ({ \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld4q_p64(__p0) __extension__ ({ \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_u64(__p0) __extension__ ({ \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld4q_u64(__p0) __extension__ ({ \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_f64(__p0) __extension__ ({ \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld4q_f64(__p0) __extension__ ({ \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_s64(__p0) __extension__ ({ \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld4q_s64(__p0) __extension__ ({ \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld4q_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_f64(__p0) __extension__ ({ \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld4_f64(__p0) __extension__ ({ \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld4_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_p64(__p0) __extension__ ({ \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#else
+#define vld4_dup_p64(__p0) __extension__ ({ \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_p8(__p0) __extension__ ({ \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 36); \
+  __ret; \
+})
+#else
+#define vld4q_dup_p8(__p0) __extension__ ({ \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_p64(__p0) __extension__ ({ \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 38); \
+  __ret; \
+})
+#else
+#define vld4q_dup_p64(__p0) __extension__ ({ \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_p16(__p0) __extension__ ({ \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 37); \
+  __ret; \
+})
+#else
+#define vld4q_dup_p16(__p0) __extension__ ({ \
+  poly16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 37); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_u8(__p0) __extension__ ({ \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 48); \
+  __ret; \
+})
+#else
+#define vld4q_dup_u8(__p0) __extension__ ({ \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_u32(__p0) __extension__ ({ \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 50); \
+  __ret; \
+})
+#else
+#define vld4q_dup_u32(__p0) __extension__ ({ \
+  uint32x4x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 50); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_u64(__p0) __extension__ ({ \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 51); \
+  __ret; \
+})
+#else
+#define vld4q_dup_u64(__p0) __extension__ ({ \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_u16(__p0) __extension__ ({ \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 49); \
+  __ret; \
+})
+#else
+#define vld4q_dup_u16(__p0) __extension__ ({ \
+  uint16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 49); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_s8(__p0) __extension__ ({ \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 32); \
+  __ret; \
+})
+#else
+#define vld4q_dup_s8(__p0) __extension__ ({ \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_f64(__p0) __extension__ ({ \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 42); \
+  __ret; \
+})
+#else
+#define vld4q_dup_f64(__p0) __extension__ ({ \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_f32(__p0) __extension__ ({ \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 41); \
+  __ret; \
+})
+#else
+#define vld4q_dup_f32(__p0) __extension__ ({ \
+  float32x4x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 41); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_f16(__p0) __extension__ ({ \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \
+  __ret; \
+})
+#else
+#define vld4q_dup_f16(__p0) __extension__ ({ \
+  float16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_s32(__p0) __extension__ ({ \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 34); \
+  __ret; \
+})
+#else
+#define vld4q_dup_s32(__p0) __extension__ ({ \
+  int32x4x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 34); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_s64(__p0) __extension__ ({ \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 35); \
+  __ret; \
+})
+#else
+#define vld4q_dup_s64(__p0) __extension__ ({ \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_dup_s16(__p0) __extension__ ({ \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 33); \
+  __ret; \
+})
+#else
+#define vld4q_dup_s16(__p0) __extension__ ({ \
+  int16x8x4_t __ret; \
+  __builtin_neon_vld4q_dup_v(&__ret, __p0, 33); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_dup_f64(__p0) __extension__ ({ \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#else
+#define vld4_dup_f64(__p0) __extension__ ({ \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld4_dup_v(&__ret, __p0, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \
+  __ret; \
+})
+#else
+#define vld4_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  poly64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 36); \
+  __ret; \
+})
+#else
+#define vld4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  poly8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  poly8x16x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 36); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 38); \
+  __ret; \
+})
+#else
+#define vld4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  poly64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  poly64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 38); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 48); \
+  __ret; \
+})
+#else
+#define vld4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  uint8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 48); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 51); \
+  __ret; \
+})
+#else
+#define vld4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  uint64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  uint64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 51); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 32); \
+  __ret; \
+})
+#else
+#define vld4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  int8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 32); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 42); \
+  __ret; \
+})
+#else
+#define vld4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  float64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  float64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 42); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 35); \
+  __ret; \
+})
+#else
+#define vld4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  int64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  int64x2x4_t __ret; \
+  __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 35); \
+ \
+  __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 1, 0); \
+  __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 1, 0); \
+  __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 1, 0); \
+  __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \
+  __ret; \
+})
+#else
+#define vld4_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  uint64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \
+  __ret; \
+})
+#else
+#define vld4_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  float64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vld4_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \
+  __ret; \
+})
+#else
+#define vld4_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  int64x1x4_t __ret; \
+  __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vldrq_p128(__p0) __extension__ ({ \
+  poly128_t __ret; \
+  __ret = (poly128_t) __builtin_neon_vldrq_p128(__p0); \
+  __ret; \
+})
+#else
+#define vldrq_p128(__p0) __extension__ ({ \
+  poly128_t __ret; \
+  __ret = (poly128_t) __builtin_neon_vldrq_p128(__p0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmaxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vmaxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmax_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vmax_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmax_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vmaxnmvq_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmaxnmvq_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vmaxnmvq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmaxnmvq_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vmaxnmvq_f32(float32x4_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxnmvq_f32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vmaxnmvq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxnmvq_f32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vmaxnmv_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxnmv_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vmaxnmv_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxnmv_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vmaxvq_u8(uint8x16_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vmaxvq_u8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vmaxvq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vmaxvq_u8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vmaxvq_u32(uint32x4_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vmaxvq_u32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vmaxvq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vmaxvq_u32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vmaxvq_u16(uint16x8_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vmaxvq_u16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vmaxvq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vmaxvq_u16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vmaxvq_s8(int8x16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vmaxvq_s8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int8_t vmaxvq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vmaxvq_s8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vmaxvq_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmaxvq_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vmaxvq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmaxvq_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vmaxvq_f32(float32x4_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxvq_f32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vmaxvq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxvq_f32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vmaxvq_s32(int32x4_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vmaxvq_s32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vmaxvq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vmaxvq_s32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vmaxvq_s16(int16x8_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vmaxvq_s16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vmaxvq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vmaxvq_s16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vmaxv_u8(uint8x8_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vmaxv_u8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vmaxv_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vmaxv_u8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vmaxv_u32(uint32x2_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vmaxv_u32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vmaxv_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vmaxv_u32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vmaxv_u16(uint16x4_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vmaxv_u16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vmaxv_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vmaxv_u16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vmaxv_s8(int8x8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vmaxv_s8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int8_t vmaxv_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vmaxv_s8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vmaxv_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxv_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vmaxv_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmaxv_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vmaxv_s32(int32x2_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vmaxv_s32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vmaxv_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vmaxv_s32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vmaxv_s16(int16x4_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vmaxv_s16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vmaxv_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vmaxv_s16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vminq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vminq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vminq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmin_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vmin_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmin_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vminnmvq_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vminnmvq_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vminnmvq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vminnmvq_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vminnmvq_f32(float32x4_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminnmvq_f32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vminnmvq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminnmvq_f32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vminnmv_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminnmv_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vminnmv_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminnmv_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vminvq_u8(uint8x16_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vminvq_u8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vminvq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vminvq_u8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vminvq_u32(uint32x4_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vminvq_u32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vminvq_u32(uint32x4_t __p0) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vminvq_u32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vminvq_u16(uint16x8_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vminvq_u16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vminvq_u16(uint16x8_t __p0) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vminvq_u16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vminvq_s8(int8x16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vminvq_s8((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int8_t vminvq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vminvq_s8((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vminvq_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vminvq_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vminvq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vminvq_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vminvq_f32(float32x4_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminvq_f32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vminvq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminvq_f32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vminvq_s32(int32x4_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vminvq_s32((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vminvq_s32(int32x4_t __p0) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vminvq_s32((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vminvq_s16(int16x8_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vminvq_s16((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vminvq_s16(int16x8_t __p0) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vminvq_s16((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vminv_u8(uint8x8_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vminv_u8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vminv_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vminv_u8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vminv_u32(uint32x2_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vminv_u32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vminv_u32(uint32x2_t __p0) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vminv_u32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vminv_u16(uint16x4_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vminv_u16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vminv_u16(uint16x4_t __p0) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vminv_u16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vminv_s8(int8x8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vminv_s8((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int8_t vminv_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vminv_s8((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vminv_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminv_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vminv_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vminv_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vminv_s32(int32x2_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vminv_s32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int32_t vminv_s32(int32x2_t __p0) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vminv_s32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vminv_s16(int16x4_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vminv_s16((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai int16_t vminv_s16(int16x4_t __p0) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vminv_s16((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmlaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float64x2_t vmlaq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 + __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmla_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float64x1_t vmla_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = __p0 + __p1 * __p2;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x8_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlaq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlaq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x2_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmla_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = __s0 + __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmla_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __rev0 + __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmlaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __ret;
+  __ret = __p0 + __p1 * (float64x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai float64x2_t vmlaq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 + __rev1 * (float64x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 + vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 + vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 + vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 + vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 + vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 + vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 + vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 + vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 + vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 + vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 + vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 + vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmlsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float64x2_t vmlsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 - __rev1 * __rev2;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmls_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#else
+__ai float64x1_t vmls_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
+  float64x1_t __ret;
+  __ret = __p0 - __p1 * __p2;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x8_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmlsq_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x2_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_laneq_f32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __s2 = __p2; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmls_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __ret; \
+  __ret = __s0 - __s1 * __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3); \
+  __ret; \
+})
+#else
+#define vmls_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __rev0 - __rev1 * __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmlsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __ret;
+  __ret = __p0 - __p1 * (float64x2_t) {__p2, __p2};
+  return __ret;
+}
+#else
+__ai float64x2_t vmlsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 - __rev1 * (float64x2_t) {__p2, __p2};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 - vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 - vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 - vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 - vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 - vmull_u32(vget_high_u32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u32(__noswap_vget_high_u32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 - vmull_u16(vget_high_u16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u16(__noswap_vget_high_u16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 - vmull_s32(vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s32(__noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 - vmull_s16(vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s16(__noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 - vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_laneq_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 - vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_laneq_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 - vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 - vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x1_t vmov_n_p64(poly64_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai poly64x1_t vmov_n_p64(poly64_t __p0) {
+  poly64x1_t __ret;
+  __ret = (poly64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vmovq_n_p64(poly64_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai poly64x2_t vmovq_n_p64(poly64_t __p0) {
+  poly64x2_t __ret;
+  __ret = (poly64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmovq_n_f64(float64_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) {__p0, __p0};
+  return __ret;
+}
+#else
+__ai float64x2_t vmovq_n_f64(float64_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) {__p0, __p0};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmov_n_f64(float64_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) {__p0};
+  return __ret;
+}
+#else
+__ai float64x1_t vmov_n_f64(float64_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) {__p0};
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmovl_high_u8(uint8x16_t __p0_112) {
+  uint16x8_t __ret_112;
+  uint8x8_t __a1_112 = vget_high_u8(__p0_112);
+  __ret_112 = (uint16x8_t)(vshll_n_u8(__a1_112, 0));
+  return __ret_112;
+}
+#else
+__ai uint16x8_t vmovl_high_u8(uint8x16_t __p0_113) {
+  uint8x16_t __rev0_113;  __rev0_113 = __builtin_shufflevector(__p0_113, __p0_113, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret_113;
+  uint8x8_t __a1_113 = __noswap_vget_high_u8(__rev0_113);
+  __ret_113 = (uint16x8_t)(__noswap_vshll_n_u8(__a1_113, 0));
+  __ret_113 = __builtin_shufflevector(__ret_113, __ret_113, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret_113;
+}
+__ai uint16x8_t __noswap_vmovl_high_u8(uint8x16_t __p0_114) {
+  uint16x8_t __ret_114;
+  uint8x8_t __a1_114 = __noswap_vget_high_u8(__p0_114);
+  __ret_114 = (uint16x8_t)(__noswap_vshll_n_u8(__a1_114, 0));
+  return __ret_114;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmovl_high_u32(uint32x4_t __p0_115) {
+  uint64x2_t __ret_115;
+  uint32x2_t __a1_115 = vget_high_u32(__p0_115);
+  __ret_115 = (uint64x2_t)(vshll_n_u32(__a1_115, 0));
+  return __ret_115;
+}
+#else
+__ai uint64x2_t vmovl_high_u32(uint32x4_t __p0_116) {
+  uint32x4_t __rev0_116;  __rev0_116 = __builtin_shufflevector(__p0_116, __p0_116, 3, 2, 1, 0);
+  uint64x2_t __ret_116;
+  uint32x2_t __a1_116 = __noswap_vget_high_u32(__rev0_116);
+  __ret_116 = (uint64x2_t)(__noswap_vshll_n_u32(__a1_116, 0));
+  __ret_116 = __builtin_shufflevector(__ret_116, __ret_116, 1, 0);
+  return __ret_116;
+}
+__ai uint64x2_t __noswap_vmovl_high_u32(uint32x4_t __p0_117) {
+  uint64x2_t __ret_117;
+  uint32x2_t __a1_117 = __noswap_vget_high_u32(__p0_117);
+  __ret_117 = (uint64x2_t)(__noswap_vshll_n_u32(__a1_117, 0));
+  return __ret_117;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmovl_high_u16(uint16x8_t __p0_118) {
+  uint32x4_t __ret_118;
+  uint16x4_t __a1_118 = vget_high_u16(__p0_118);
+  __ret_118 = (uint32x4_t)(vshll_n_u16(__a1_118, 0));
+  return __ret_118;
+}
+#else
+__ai uint32x4_t vmovl_high_u16(uint16x8_t __p0_119) {
+  uint16x8_t __rev0_119;  __rev0_119 = __builtin_shufflevector(__p0_119, __p0_119, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret_119;
+  uint16x4_t __a1_119 = __noswap_vget_high_u16(__rev0_119);
+  __ret_119 = (uint32x4_t)(__noswap_vshll_n_u16(__a1_119, 0));
+  __ret_119 = __builtin_shufflevector(__ret_119, __ret_119, 3, 2, 1, 0);
+  return __ret_119;
+}
+__ai uint32x4_t __noswap_vmovl_high_u16(uint16x8_t __p0_120) {
+  uint32x4_t __ret_120;
+  uint16x4_t __a1_120 = __noswap_vget_high_u16(__p0_120);
+  __ret_120 = (uint32x4_t)(__noswap_vshll_n_u16(__a1_120, 0));
+  return __ret_120;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmovl_high_s8(int8x16_t __p0_121) {
+  int16x8_t __ret_121;
+  int8x8_t __a1_121 = vget_high_s8(__p0_121);
+  __ret_121 = (int16x8_t)(vshll_n_s8(__a1_121, 0));
+  return __ret_121;
+}
+#else
+__ai int16x8_t vmovl_high_s8(int8x16_t __p0_122) {
+  int8x16_t __rev0_122;  __rev0_122 = __builtin_shufflevector(__p0_122, __p0_122, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret_122;
+  int8x8_t __a1_122 = __noswap_vget_high_s8(__rev0_122);
+  __ret_122 = (int16x8_t)(__noswap_vshll_n_s8(__a1_122, 0));
+  __ret_122 = __builtin_shufflevector(__ret_122, __ret_122, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret_122;
+}
+__ai int16x8_t __noswap_vmovl_high_s8(int8x16_t __p0_123) {
+  int16x8_t __ret_123;
+  int8x8_t __a1_123 = __noswap_vget_high_s8(__p0_123);
+  __ret_123 = (int16x8_t)(__noswap_vshll_n_s8(__a1_123, 0));
+  return __ret_123;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmovl_high_s32(int32x4_t __p0_124) {
+  int64x2_t __ret_124;
+  int32x2_t __a1_124 = vget_high_s32(__p0_124);
+  __ret_124 = (int64x2_t)(vshll_n_s32(__a1_124, 0));
+  return __ret_124;
+}
+#else
+__ai int64x2_t vmovl_high_s32(int32x4_t __p0_125) {
+  int32x4_t __rev0_125;  __rev0_125 = __builtin_shufflevector(__p0_125, __p0_125, 3, 2, 1, 0);
+  int64x2_t __ret_125;
+  int32x2_t __a1_125 = __noswap_vget_high_s32(__rev0_125);
+  __ret_125 = (int64x2_t)(__noswap_vshll_n_s32(__a1_125, 0));
+  __ret_125 = __builtin_shufflevector(__ret_125, __ret_125, 1, 0);
+  return __ret_125;
+}
+__ai int64x2_t __noswap_vmovl_high_s32(int32x4_t __p0_126) {
+  int64x2_t __ret_126;
+  int32x2_t __a1_126 = __noswap_vget_high_s32(__p0_126);
+  __ret_126 = (int64x2_t)(__noswap_vshll_n_s32(__a1_126, 0));
+  return __ret_126;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmovl_high_s16(int16x8_t __p0_127) {
+  int32x4_t __ret_127;
+  int16x4_t __a1_127 = vget_high_s16(__p0_127);
+  __ret_127 = (int32x4_t)(vshll_n_s16(__a1_127, 0));
+  return __ret_127;
+}
+#else
+__ai int32x4_t vmovl_high_s16(int16x8_t __p0_128) {
+  int16x8_t __rev0_128;  __rev0_128 = __builtin_shufflevector(__p0_128, __p0_128, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret_128;
+  int16x4_t __a1_128 = __noswap_vget_high_s16(__rev0_128);
+  __ret_128 = (int32x4_t)(__noswap_vshll_n_s16(__a1_128, 0));
+  __ret_128 = __builtin_shufflevector(__ret_128, __ret_128, 3, 2, 1, 0);
+  return __ret_128;
+}
+__ai int32x4_t __noswap_vmovl_high_s16(int16x8_t __p0_129) {
+  int32x4_t __ret_129;
+  int16x4_t __a1_129 = __noswap_vget_high_s16(__p0_129);
+  __ret_129 = (int32x4_t)(__noswap_vshll_n_s16(__a1_129, 0));
+  return __ret_129;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16(__p0, vmovn_u32(__p1));
+  return __ret;
+}
+#else
+__ai uint16x8_t vmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16(__rev0, __noswap_vmovn_u32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32(__p0, vmovn_u64(__p1));
+  return __ret;
+}
+#else
+__ai uint32x4_t vmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32(__rev0, __noswap_vmovn_u64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8(__p0, vmovn_u16(__p1));
+  return __ret;
+}
+#else
+__ai uint8x16_t vmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8(__rev0, __noswap_vmovn_u16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmovn_high_s32(int16x4_t __p0, int32x4_t __p1) {
+  int16x8_t __ret;
+  __ret = vcombine_s16(__p0, vmovn_s32(__p1));
+  return __ret;
+}
+#else
+__ai int16x8_t vmovn_high_s32(int16x4_t __p0, int32x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vcombine_s16(__rev0, __noswap_vmovn_s32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmovn_high_s64(int32x2_t __p0, int64x2_t __p1) {
+  int32x4_t __ret;
+  __ret = vcombine_s32(__p0, vmovn_s64(__p1));
+  return __ret;
+}
+#else
+__ai int32x4_t vmovn_high_s64(int32x2_t __p0, int64x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vcombine_s32(__rev0, __noswap_vmovn_s64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vmovn_high_s16(int8x8_t __p0, int16x8_t __p1) {
+  int8x16_t __ret;
+  __ret = vcombine_s8(__p0, vmovn_s16(__p1));
+  return __ret;
+}
+#else
+__ai int8x16_t vmovn_high_s16(int8x8_t __p0, int16x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __noswap_vcombine_s8(__rev0, __noswap_vmovn_s16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmulq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai float64x2_t vmulq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 * __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmul_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#else
+__ai float64x1_t vmul_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 * __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmuld_lane_f64(__p0_130, __p1_130, __p2_130) __extension__ ({ \
+  float64_t __s0_130 = __p0_130; \
+  float64x1_t __s1_130 = __p1_130; \
+  float64_t __ret_130; \
+  __ret_130 = __s0_130 * vget_lane_f64(__s1_130, __p2_130); \
+  __ret_130; \
+})
+#else
+#define vmuld_lane_f64(__p0_131, __p1_131, __p2_131) __extension__ ({ \
+  float64_t __s0_131 = __p0_131; \
+  float64x1_t __s1_131 = __p1_131; \
+  float64_t __ret_131; \
+  __ret_131 = __s0_131 * __noswap_vget_lane_f64(__s1_131, __p2_131); \
+  __ret_131; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmuls_lane_f32(__p0_132, __p1_132, __p2_132) __extension__ ({ \
+  float32_t __s0_132 = __p0_132; \
+  float32x2_t __s1_132 = __p1_132; \
+  float32_t __ret_132; \
+  __ret_132 = __s0_132 * vget_lane_f32(__s1_132, __p2_132); \
+  __ret_132; \
+})
+#else
+#define vmuls_lane_f32(__p0_133, __p1_133, __p2_133) __extension__ ({ \
+  float32_t __s0_133 = __p0_133; \
+  float32x2_t __s1_133 = __p1_133; \
+  float32x2_t __rev1_133;  __rev1_133 = __builtin_shufflevector(__s1_133, __s1_133, 1, 0); \
+  float32_t __ret_133; \
+  __ret_133 = __s0_133 * __noswap_vget_lane_f32(__rev1_133, __p2_133); \
+  __ret_133; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vmul_lane_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \
+  __ret; \
+})
+#else
+#define vmul_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vmul_lane_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmuld_laneq_f64(__p0_134, __p1_134, __p2_134) __extension__ ({ \
+  float64_t __s0_134 = __p0_134; \
+  float64x2_t __s1_134 = __p1_134; \
+  float64_t __ret_134; \
+  __ret_134 = __s0_134 * vgetq_lane_f64(__s1_134, __p2_134); \
+  __ret_134; \
+})
+#else
+#define vmuld_laneq_f64(__p0_135, __p1_135, __p2_135) __extension__ ({ \
+  float64_t __s0_135 = __p0_135; \
+  float64x2_t __s1_135 = __p1_135; \
+  float64x2_t __rev1_135;  __rev1_135 = __builtin_shufflevector(__s1_135, __s1_135, 1, 0); \
+  float64_t __ret_135; \
+  __ret_135 = __s0_135 * __noswap_vgetq_lane_f64(__rev1_135, __p2_135); \
+  __ret_135; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmuls_laneq_f32(__p0_136, __p1_136, __p2_136) __extension__ ({ \
+  float32_t __s0_136 = __p0_136; \
+  float32x4_t __s1_136 = __p1_136; \
+  float32_t __ret_136; \
+  __ret_136 = __s0_136 * vgetq_lane_f32(__s1_136, __p2_136); \
+  __ret_136; \
+})
+#else
+#define vmuls_laneq_f32(__p0_137, __p1_137, __p2_137) __extension__ ({ \
+  float32_t __s0_137 = __p0_137; \
+  float32x4_t __s1_137 = __p1_137; \
+  float32x4_t __rev1_137;  __rev1_137 = __builtin_shufflevector(__s1_137, __s1_137, 3, 2, 1, 0); \
+  float32_t __ret_137; \
+  __ret_137 = __s0_137 * __noswap_vgetq_lane_f32(__rev1_137, __p2_137); \
+  __ret_137; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_laneq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vmul_laneq_v((int8x8_t)__s0, (int8x16_t)__s1, __p2, 10); \
+  __ret; \
+})
+#else
+#define vmul_laneq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vmul_laneq_v((int8x8_t)__s0, (int8x16_t)__rev1, __p2, 10); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmulq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmul_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = __s0 * __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2); \
+  __ret; \
+})
+#else
+#define vmul_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __rev0 * __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmul_n_f64(float64x1_t __p0, float64_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmul_n_f64((int8x8_t)__p0, __p1);
+  return __ret;
+}
+#else
+__ai float64x1_t vmul_n_f64(float64x1_t __p0, float64_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmul_n_f64((int8x8_t)__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmulq_n_f64(float64x2_t __p0, float64_t __p1) {
+  float64x2_t __ret;
+  __ret = __p0 * (float64x2_t) {__p1, __p1};
+  return __ret;
+}
+#else
+__ai float64x2_t vmulq_n_f64(float64x2_t __p0, float64_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 * (float64x2_t) {__p1, __p1};
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vmull_p64(poly64_t __p0, poly64_t __p1) {
+  poly128_t __ret;
+  __ret = (poly128_t) __builtin_neon_vmull_p64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai poly128_t vmull_p64(poly64_t __p0, poly64_t __p1) {
+  poly128_t __ret;
+  __ret = (poly128_t) __builtin_neon_vmull_p64(__p0, __p1);
+  return __ret;
+}
+__ai poly128_t __noswap_vmull_p64(poly64_t __p0, poly64_t __p1) {
+  poly128_t __ret;
+  __ret = (poly128_t) __builtin_neon_vmull_p64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vmull_high_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly16x8_t __ret;
+  __ret = vmull_p8(vget_high_p8(__p0), vget_high_p8(__p1));
+  return __ret;
+}
+#else
+__ai poly16x8_t vmull_high_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __noswap_vmull_p8(__noswap_vget_high_p8(__rev0), __noswap_vget_high_p8(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmull_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = vmull_u8(vget_high_u8(__p0), vget_high_u8(__p1));
+  return __ret;
+}
+#else
+__ai uint16x8_t vmull_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmull_u8(__noswap_vget_high_u8(__rev0), __noswap_vget_high_u8(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmull_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = vmull_u32(vget_high_u32(__p0), vget_high_u32(__p1));
+  return __ret;
+}
+#else
+__ai uint64x2_t vmull_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmull_u32(__noswap_vget_high_u32(__rev0), __noswap_vget_high_u32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmull_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = vmull_u16(vget_high_u16(__p0), vget_high_u16(__p1));
+  return __ret;
+}
+#else
+__ai uint32x4_t vmull_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmull_u16(__noswap_vget_high_u16(__rev0), __noswap_vget_high_u16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmull_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = vmull_s8(vget_high_s8(__p0), vget_high_s8(__p1));
+  return __ret;
+}
+#else
+__ai int16x8_t vmull_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmull_s8(__noswap_vget_high_s8(__rev0), __noswap_vget_high_s8(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmull_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = vmull_s32(vget_high_s32(__p0), vget_high_s32(__p1));
+  return __ret;
+}
+#else
+__ai int64x2_t vmull_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmull_s32(__noswap_vget_high_s32(__rev0), __noswap_vget_high_s32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmull_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = vmull_s16(vget_high_s16(__p0), vget_high_s16(__p1));
+  return __ret;
+}
+#else
+__ai int32x4_t vmull_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmull_s16(__noswap_vget_high_s16(__rev0), __noswap_vget_high_s16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly128_t vmull_high_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly128_t __ret;
+  __ret = vmull_p64((poly64_t)(vget_high_p64(__p0)), (poly64_t)(vget_high_p64(__p1)));
+  return __ret;
+}
+#else
+__ai poly128_t vmull_high_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly128_t __ret;
+  __ret = __noswap_vmull_p64((poly64_t)(__noswap_vget_high_p64(__rev0)), (poly64_t)(__noswap_vget_high_p64(__rev1)));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = vmull_u32(vget_high_u32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_lane_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __noswap_vmull_u32(__noswap_vget_high_u32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = vmull_u16(vget_high_u16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_lane_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __noswap_vmull_u16(__noswap_vget_high_u16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = vmull_u32(vget_high_u32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __noswap_vmull_u32(__noswap_vget_high_u32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = vmull_u16(vget_high_u16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x8_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __noswap_vmull_u16(__noswap_vget_high_u16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmull_high_n_u32(uint32x4_t __p0, uint32_t __p1) {
+  uint64x2_t __ret;
+  __ret = vmull_n_u32(vget_high_u32(__p0), __p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmull_high_n_u32(uint32x4_t __p0, uint32_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmull_n_u32(__noswap_vget_high_u32(__rev0), __p1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmull_high_n_u16(uint16x8_t __p0, uint16_t __p1) {
+  uint32x4_t __ret;
+  __ret = vmull_n_u16(vget_high_u16(__p0), __p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmull_high_n_u16(uint16x8_t __p0, uint16_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmull_n_u16(__noswap_vget_high_u16(__rev0), __p1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmull_high_n_s32(int32x4_t __p0, int32_t __p1) {
+  int64x2_t __ret;
+  __ret = vmull_n_s32(vget_high_s32(__p0), __p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vmull_high_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmull_n_s32(__noswap_vget_high_s32(__rev0), __p1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmull_high_n_s16(int16x8_t __p0, int16_t __p1) {
+  int32x4_t __ret;
+  __ret = vmull_n_s16(vget_high_s16(__p0), __p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vmull_high_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmull_n_s16(__noswap_vget_high_s16(__rev0), __p1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint64x2_t __ret; \
+  __ret = vmull_u32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_laneq_u32(__p0, __p1, __p2) __extension__ ({ \
+  uint32x2_t __s0 = __p0; \
+  uint32x4_t __s1 = __p1; \
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __noswap_vmull_u32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint32x4_t __ret; \
+  __ret = vmull_u16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_laneq_u16(__p0, __p1, __p2) __extension__ ({ \
+  uint16x4_t __s0 = __p0; \
+  uint16x8_t __s1 = __p1; \
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __noswap_vmull_u16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vmulxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vmulxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmulxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float64x2_t __noswap_vmulxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vmulxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vmulxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmulxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float32x4_t __noswap_vmulxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vmulxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vmulx_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vmulx_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vmulx_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vmulx_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmulx_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai float32x2_t __noswap_vmulx_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vmulx_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vmulxd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmulxd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float64_t vmulxd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmulxd_f64(__p0, __p1);
+  return __ret;
+}
+__ai float64_t __noswap_vmulxd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vmulxd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vmulxs_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmulxs_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float32_t vmulxs_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmulxs_f32(__p0, __p1);
+  return __ret;
+}
+__ai float32_t __noswap_vmulxs_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vmulxs_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxd_lane_f64(__p0_138, __p1_138, __p2_138) __extension__ ({ \
+  float64_t __s0_138 = __p0_138; \
+  float64x1_t __s1_138 = __p1_138; \
+  float64_t __ret_138; \
+  __ret_138 = vmulxd_f64(__s0_138, vget_lane_f64(__s1_138, __p2_138)); \
+  __ret_138; \
+})
+#else
+#define vmulxd_lane_f64(__p0_139, __p1_139, __p2_139) __extension__ ({ \
+  float64_t __s0_139 = __p0_139; \
+  float64x1_t __s1_139 = __p1_139; \
+  float64_t __ret_139; \
+  __ret_139 = __noswap_vmulxd_f64(__s0_139, __noswap_vget_lane_f64(__s1_139, __p2_139)); \
+  __ret_139; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxs_lane_f32(__p0_140, __p1_140, __p2_140) __extension__ ({ \
+  float32_t __s0_140 = __p0_140; \
+  float32x2_t __s1_140 = __p1_140; \
+  float32_t __ret_140; \
+  __ret_140 = vmulxs_f32(__s0_140, vget_lane_f32(__s1_140, __p2_140)); \
+  __ret_140; \
+})
+#else
+#define vmulxs_lane_f32(__p0_141, __p1_141, __p2_141) __extension__ ({ \
+  float32_t __s0_141 = __p0_141; \
+  float32x2_t __s1_141 = __p1_141; \
+  float32x2_t __rev1_141;  __rev1_141 = __builtin_shufflevector(__s1_141, __s1_141, 1, 0); \
+  float32_t __ret_141; \
+  __ret_141 = __noswap_vmulxs_f32(__s0_141, __noswap_vget_lane_f32(__rev1_141, __p2_141)); \
+  __ret_141; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = vmulxq_f64(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmulxq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __ret; \
+  __ret = __noswap_vmulxq_f64(__rev0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = vmulxq_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmulxq_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __noswap_vmulxq_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulx_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = vmulx_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmulx_lane_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x2_t __s1 = __p1; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __noswap_vmulx_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxd_laneq_f64(__p0_142, __p1_142, __p2_142) __extension__ ({ \
+  float64_t __s0_142 = __p0_142; \
+  float64x2_t __s1_142 = __p1_142; \
+  float64_t __ret_142; \
+  __ret_142 = vmulxd_f64(__s0_142, vgetq_lane_f64(__s1_142, __p2_142)); \
+  __ret_142; \
+})
+#else
+#define vmulxd_laneq_f64(__p0_143, __p1_143, __p2_143) __extension__ ({ \
+  float64_t __s0_143 = __p0_143; \
+  float64x2_t __s1_143 = __p1_143; \
+  float64x2_t __rev1_143;  __rev1_143 = __builtin_shufflevector(__s1_143, __s1_143, 1, 0); \
+  float64_t __ret_143; \
+  __ret_143 = __noswap_vmulxd_f64(__s0_143, __noswap_vgetq_lane_f64(__rev1_143, __p2_143)); \
+  __ret_143; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxs_laneq_f32(__p0_144, __p1_144, __p2_144) __extension__ ({ \
+  float32_t __s0_144 = __p0_144; \
+  float32x4_t __s1_144 = __p1_144; \
+  float32_t __ret_144; \
+  __ret_144 = vmulxs_f32(__s0_144, vgetq_lane_f32(__s1_144, __p2_144)); \
+  __ret_144; \
+})
+#else
+#define vmulxs_laneq_f32(__p0_145, __p1_145, __p2_145) __extension__ ({ \
+  float32_t __s0_145 = __p0_145; \
+  float32x4_t __s1_145 = __p1_145; \
+  float32x4_t __rev1_145;  __rev1_145 = __builtin_shufflevector(__s1_145, __s1_145, 3, 2, 1, 0); \
+  float32_t __ret_145; \
+  __ret_145 = __noswap_vmulxs_f32(__s0_145, __noswap_vgetq_lane_f32(__rev1_145, __p2_145)); \
+  __ret_145; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = vmulxq_f64(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmulxq_laneq_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __ret; \
+  __ret = __noswap_vmulxq_f64(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulxq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __ret; \
+  __ret = vmulxq_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmulxq_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x4_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x4_t __ret; \
+  __ret = __noswap_vmulxq_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulx_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __ret; \
+  __ret = vmulx_f32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vmulx_laneq_f32(__p0, __p1, __p2) __extension__ ({ \
+  float32x2_t __s0 = __p0; \
+  float32x4_t __s1 = __p1; \
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  float32x2_t __ret; \
+  __ret = __noswap_vmulx_f32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vnegq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai float64x2_t vnegq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vnegq_s64(int64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int64x2_t vnegq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = -__rev0;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vneg_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai float64x1_t vneg_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vneg_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#else
+__ai int64x1_t vneg_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = -__p0;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vnegd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vnegd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vnegd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vnegd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vpaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vpaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vpaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vpaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vpaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vpaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vpaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vpaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vpaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vpaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vpaddq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vpaddq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vpaddq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vpaddq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vpaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vpaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vpaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vpaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vpaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vpaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vpaddd_u64(uint64x2_t __p0) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vpaddd_u64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai uint64_t vpaddd_u64(uint64x2_t __p0) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vpaddd_u64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vpaddd_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpaddd_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vpaddd_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpaddd_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vpaddd_s64(int64x2_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vpaddd_s64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai int64_t vpaddd_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vpaddd_s64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vpadds_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpadds_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vpadds_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpadds_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vpmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vpmaxq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vpmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vpmaxq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vpmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vpmaxq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vpmaxq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vpmaxq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vpmaxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vpmaxq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vpmaxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vpmaxq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vpmaxq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vpmaxq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vpmaxq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vpmaxq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpmaxq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vpmaxqd_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpmaxqd_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vpmaxqd_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpmaxqd_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vpmaxs_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpmaxs_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vpmaxs_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpmaxs_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vpmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vpmaxnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vpmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vpmaxnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpmaxnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vpmaxnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpmaxnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vpmaxnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpmaxnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vpmaxnmqd_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpmaxnmqd_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vpmaxnmqd_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpmaxnmqd_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vpmaxnms_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpmaxnms_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vpmaxnms_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpmaxnms_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vpminq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vpminq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vpminq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vpminq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vpminq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vpminq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vpminq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vpminq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vpminq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vpminq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vpminq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vpminq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vpminq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vpminq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vpminq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpminq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vpminq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vpminq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vpminqd_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpminqd_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vpminqd_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpminqd_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vpmins_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpmins_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vpmins_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpmins_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vpminnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vpminnmq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vpminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vpminnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpminnmq_v((int8x16_t)__p0, (int8x16_t)__p1, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vpminnmq_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vpminnmq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vpminnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpminnm_v((int8x8_t)__p0, (int8x8_t)__p1, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vpminnm_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vpminnm_v((int8x8_t)__rev0, (int8x8_t)__rev1, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vpminnmqd_f64(float64x2_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpminnmqd_f64((int8x16_t)__p0);
+  return __ret;
+}
+#else
+__ai float64_t vpminnmqd_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vpminnmqd_f64((int8x16_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vpminnms_f32(float32x2_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpminnms_f32((int8x8_t)__p0);
+  return __ret;
+}
+#else
+__ai float32_t vpminnms_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vpminnms_f32((int8x8_t)__rev0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqabsq_s64(int64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqabsq_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqabsq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqabsq_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vqabs_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vqabs_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqabs_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqabsb_s8(int8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqabsb_s8(__p0);
+  return __ret;
+}
+#else
+__ai int8_t vqabsb_s8(int8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqabsb_s8(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqabss_s32(int32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqabss_s32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vqabss_s32(int32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqabss_s32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqabsd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqabsd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vqabsd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqabsd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqabsh_s16(int16_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqabsh_s16(__p0);
+  return __ret;
+}
+#else
+__ai int16_t vqabsh_s16(int16_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqabsh_s16(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vqaddb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqaddb_u8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint8_t vqaddb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqaddb_u8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vqadds_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqadds_u32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vqadds_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqadds_u32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vqaddd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqaddd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vqaddd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqaddd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vqaddh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqaddh_u16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint16_t vqaddh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqaddh_u16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqaddb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqaddb_s8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int8_t vqaddb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqaddb_s8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqadds_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqadds_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqadds_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqadds_s32(__p0, __p1);
+  return __ret;
+}
+__ai int32_t __noswap_vqadds_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqadds_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqaddd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqaddd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vqaddd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqaddd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqaddh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqaddh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vqaddh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqaddh_s16(__p0, __p1);
+  return __ret;
+}
+__ai int16_t __noswap_vqaddh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqaddh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqdmlals_s32(int64_t __p0, int32_t __p1, int32_t __p2) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmlals_s32(__p0, __p1, __p2);
+  return __ret;
+}
+#else
+__ai int64_t vqdmlals_s32(int64_t __p0, int32_t __p1, int32_t __p2) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmlals_s32(__p0, __p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqdmlalh_s16(int32_t __p0, int16_t __p1, int16_t __p2) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmlalh_s16(__p0, __p1, __p2);
+  return __ret;
+}
+#else
+__ai int32_t vqdmlalh_s16(int32_t __p0, int16_t __p1, int16_t __p2) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmlalh_s16(__p0, __p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __ret;
+  __ret = vqdmlal_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2));
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vqdmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __ret;
+  __ret = vqdmlal_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqdmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlal_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlal_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlal_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlal_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = vqdmlal_n_s32(__p0, vget_high_s32(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vqdmlal_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = vqdmlal_n_s16(__p0, vget_high_s16(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqdmlal_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlals_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlals_lane_s32(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlals_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlals_lane_s32(__s0, __s1, (int8x8_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlalh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlalh_lane_s16(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlalh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlalh_lane_s16(__s0, __s1, (int8x8_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlals_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlals_laneq_s32(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlals_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlals_laneq_s32(__s0, __s1, (int8x16_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlalh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlalh_laneq_s16(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlalh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlalh_laneq_s16(__s0, __s1, (int8x16_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlal_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlal_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlal_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlal_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlal_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqdmlsls_s32(int64_t __p0, int32_t __p1, int32_t __p2) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmlsls_s32(__p0, __p1, __p2);
+  return __ret;
+}
+#else
+__ai int64_t vqdmlsls_s32(int64_t __p0, int32_t __p1, int32_t __p2) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmlsls_s32(__p0, __p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqdmlslh_s16(int32_t __p0, int16_t __p1, int16_t __p2) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmlslh_s16(__p0, __p1, __p2);
+  return __ret;
+}
+#else
+__ai int32_t vqdmlslh_s16(int32_t __p0, int16_t __p1, int16_t __p2) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmlslh_s16(__p0, __p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __ret;
+  __ret = vqdmlsl_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2));
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vqdmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __ret;
+  __ret = vqdmlsl_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqdmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlsl_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_high_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlsl_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_high_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlsl_s32(__s0, vget_high_s32(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_high_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlsl_s16(__s0, vget_high_s16(__s1), __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_high_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = vqdmlsl_n_s32(__p0, vget_high_s32(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vqdmlsl_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = vqdmlsl_n_s16(__p0, vget_high_s16(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqdmlsl_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlsls_lane_s32(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlsls_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlsls_lane_s32(__s0, __s1, (int8x8_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlslh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlslh_lane_s16(__s0, __s1, (int8x8_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlslh_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlslh_lane_s16(__s0, __s1, (int8x8_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlsls_laneq_s32(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlsls_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqdmlsls_laneq_s32(__s0, __s1, (int8x16_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlslh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlslh_laneq_s16(__s0, __s1, (int8x16_t)__s2, __p3); \
+  __ret; \
+})
+#else
+#define vqdmlslh_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqdmlslh_laneq_s16(__s0, __s1, (int8x16_t)__rev2, __p3); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = vqdmlsl_s32(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_laneq_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmlsl_s32(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = vqdmlsl_s16(__s0, __s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vqdmlsl_laneq_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmlsl_s16(__rev0, __rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqdmulhs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmulhs_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqdmulhs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmulhs_s32(__p0, __p1);
+  return __ret;
+}
+__ai int32_t __noswap_vqdmulhs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmulhs_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqdmulhh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqdmulhh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vqdmulhh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqdmulhh_s16(__p0, __p1);
+  return __ret;
+}
+__ai int16_t __noswap_vqdmulhh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqdmulhh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhs_lane_s32(__p0_146, __p1_146, __p2_146) __extension__ ({ \
+  int32_t __s0_146 = __p0_146; \
+  int32x2_t __s1_146 = __p1_146; \
+  int32_t __ret_146; \
+  __ret_146 = vqdmulhs_s32(__s0_146, vget_lane_s32(__s1_146, __p2_146)); \
+  __ret_146; \
+})
+#else
+#define vqdmulhs_lane_s32(__p0_147, __p1_147, __p2_147) __extension__ ({ \
+  int32_t __s0_147 = __p0_147; \
+  int32x2_t __s1_147 = __p1_147; \
+  int32x2_t __rev1_147;  __rev1_147 = __builtin_shufflevector(__s1_147, __s1_147, 1, 0); \
+  int32_t __ret_147; \
+  __ret_147 = __noswap_vqdmulhs_s32(__s0_147, __noswap_vget_lane_s32(__rev1_147, __p2_147)); \
+  __ret_147; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhh_lane_s16(__p0_148, __p1_148, __p2_148) __extension__ ({ \
+  int16_t __s0_148 = __p0_148; \
+  int16x4_t __s1_148 = __p1_148; \
+  int16_t __ret_148; \
+  __ret_148 = vqdmulhh_s16(__s0_148, vget_lane_s16(__s1_148, __p2_148)); \
+  __ret_148; \
+})
+#else
+#define vqdmulhh_lane_s16(__p0_149, __p1_149, __p2_149) __extension__ ({ \
+  int16_t __s0_149 = __p0_149; \
+  int16x4_t __s1_149 = __p1_149; \
+  int16x4_t __rev1_149;  __rev1_149 = __builtin_shufflevector(__s1_149, __s1_149, 3, 2, 1, 0); \
+  int16_t __ret_149; \
+  __ret_149 = __noswap_vqdmulhh_s16(__s0_149, __noswap_vget_lane_s16(__rev1_149, __p2_149)); \
+  __ret_149; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhs_laneq_s32(__p0_150, __p1_150, __p2_150) __extension__ ({ \
+  int32_t __s0_150 = __p0_150; \
+  int32x4_t __s1_150 = __p1_150; \
+  int32_t __ret_150; \
+  __ret_150 = vqdmulhs_s32(__s0_150, vgetq_lane_s32(__s1_150, __p2_150)); \
+  __ret_150; \
+})
+#else
+#define vqdmulhs_laneq_s32(__p0_151, __p1_151, __p2_151) __extension__ ({ \
+  int32_t __s0_151 = __p0_151; \
+  int32x4_t __s1_151 = __p1_151; \
+  int32x4_t __rev1_151;  __rev1_151 = __builtin_shufflevector(__s1_151, __s1_151, 3, 2, 1, 0); \
+  int32_t __ret_151; \
+  __ret_151 = __noswap_vqdmulhs_s32(__s0_151, __noswap_vgetq_lane_s32(__rev1_151, __p2_151)); \
+  __ret_151; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhh_laneq_s16(__p0_152, __p1_152, __p2_152) __extension__ ({ \
+  int16_t __s0_152 = __p0_152; \
+  int16x8_t __s1_152 = __p1_152; \
+  int16_t __ret_152; \
+  __ret_152 = vqdmulhh_s16(__s0_152, vgetq_lane_s16(__s1_152, __p2_152)); \
+  __ret_152; \
+})
+#else
+#define vqdmulhh_laneq_s16(__p0_153, __p1_153, __p2_153) __extension__ ({ \
+  int16_t __s0_153 = __p0_153; \
+  int16x8_t __s1_153 = __p1_153; \
+  int16x8_t __rev1_153;  __rev1_153 = __builtin_shufflevector(__s1_153, __s1_153, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16_t __ret_153; \
+  __ret_153 = __noswap_vqdmulhh_s16(__s0_153, __noswap_vgetq_lane_s16(__rev1_153, __p2_153)); \
+  __ret_153; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = vqdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = vqdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = vqdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqdmulls_s32(int32_t __p0, int32_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmulls_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vqdmulls_s32(int32_t __p0, int32_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmulls_s32(__p0, __p1);
+  return __ret;
+}
+__ai int64_t __noswap_vqdmulls_s32(int32_t __p0, int32_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqdmulls_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqdmullh_s16(int16_t __p0, int16_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmullh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqdmullh_s16(int16_t __p0, int16_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmullh_s16(__p0, __p1);
+  return __ret;
+}
+__ai int32_t __noswap_vqdmullh_s16(int16_t __p0, int16_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqdmullh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmull_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = vqdmull_s32(vget_high_s32(__p0), vget_high_s32(__p1));
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmull_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vqdmull_s32(__noswap_vget_high_s32(__rev0), __noswap_vget_high_s32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmull_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = vqdmull_s16(vget_high_s16(__p0), vget_high_s16(__p1));
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmull_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqdmull_s16(__noswap_vget_high_s16(__rev0), __noswap_vget_high_s16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vqdmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_high_lane_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqdmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_high_lane_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vqdmull_s32(vget_high_s32(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_high_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmull_s32(__noswap_vget_high_s32(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqdmull_s16(vget_high_s16(__s0), __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_high_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmull_s16(__noswap_vget_high_s16(__rev0), __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqdmull_high_n_s32(int32x4_t __p0, int32_t __p1) {
+  int64x2_t __ret;
+  __ret = vqdmull_n_s32(vget_high_s32(__p0), __p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vqdmull_high_n_s32(int32x4_t __p0, int32_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vqdmull_n_s32(__noswap_vget_high_s32(__rev0), __p1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqdmull_high_n_s16(int16x8_t __p0, int16_t __p1) {
+  int32x4_t __ret;
+  __ret = vqdmull_n_s16(vget_high_s16(__p0), __p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vqdmull_high_n_s16(int16x8_t __p0, int16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vqdmull_n_s16(__noswap_vget_high_s16(__rev0), __p1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulls_lane_s32(__p0_154, __p1_154, __p2_154) __extension__ ({ \
+  int32_t __s0_154 = __p0_154; \
+  int32x2_t __s1_154 = __p1_154; \
+  int64_t __ret_154; \
+  __ret_154 = vqdmulls_s32(__s0_154, vget_lane_s32(__s1_154, __p2_154)); \
+  __ret_154; \
+})
+#else
+#define vqdmulls_lane_s32(__p0_155, __p1_155, __p2_155) __extension__ ({ \
+  int32_t __s0_155 = __p0_155; \
+  int32x2_t __s1_155 = __p1_155; \
+  int32x2_t __rev1_155;  __rev1_155 = __builtin_shufflevector(__s1_155, __s1_155, 1, 0); \
+  int64_t __ret_155; \
+  __ret_155 = __noswap_vqdmulls_s32(__s0_155, __noswap_vget_lane_s32(__rev1_155, __p2_155)); \
+  __ret_155; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmullh_lane_s16(__p0_156, __p1_156, __p2_156) __extension__ ({ \
+  int16_t __s0_156 = __p0_156; \
+  int16x4_t __s1_156 = __p1_156; \
+  int32_t __ret_156; \
+  __ret_156 = vqdmullh_s16(__s0_156, vget_lane_s16(__s1_156, __p2_156)); \
+  __ret_156; \
+})
+#else
+#define vqdmullh_lane_s16(__p0_157, __p1_157, __p2_157) __extension__ ({ \
+  int16_t __s0_157 = __p0_157; \
+  int16x4_t __s1_157 = __p1_157; \
+  int16x4_t __rev1_157;  __rev1_157 = __builtin_shufflevector(__s1_157, __s1_157, 3, 2, 1, 0); \
+  int32_t __ret_157; \
+  __ret_157 = __noswap_vqdmullh_s16(__s0_157, __noswap_vget_lane_s16(__rev1_157, __p2_157)); \
+  __ret_157; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmulls_laneq_s32(__p0_158, __p1_158, __p2_158) __extension__ ({ \
+  int32_t __s0_158 = __p0_158; \
+  int32x4_t __s1_158 = __p1_158; \
+  int64_t __ret_158; \
+  __ret_158 = vqdmulls_s32(__s0_158, vgetq_lane_s32(__s1_158, __p2_158)); \
+  __ret_158; \
+})
+#else
+#define vqdmulls_laneq_s32(__p0_159, __p1_159, __p2_159) __extension__ ({ \
+  int32_t __s0_159 = __p0_159; \
+  int32x4_t __s1_159 = __p1_159; \
+  int32x4_t __rev1_159;  __rev1_159 = __builtin_shufflevector(__s1_159, __s1_159, 3, 2, 1, 0); \
+  int64_t __ret_159; \
+  __ret_159 = __noswap_vqdmulls_s32(__s0_159, __noswap_vgetq_lane_s32(__rev1_159, __p2_159)); \
+  __ret_159; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmullh_laneq_s16(__p0_160, __p1_160, __p2_160) __extension__ ({ \
+  int16_t __s0_160 = __p0_160; \
+  int16x8_t __s1_160 = __p1_160; \
+  int32_t __ret_160; \
+  __ret_160 = vqdmullh_s16(__s0_160, vgetq_lane_s16(__s1_160, __p2_160)); \
+  __ret_160; \
+})
+#else
+#define vqdmullh_laneq_s16(__p0_161, __p1_161, __p2_161) __extension__ ({ \
+  int16_t __s0_161 = __p0_161; \
+  int16x8_t __s1_161 = __p1_161; \
+  int16x8_t __rev1_161;  __rev1_161 = __builtin_shufflevector(__s1_161, __s1_161, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32_t __ret_161; \
+  __ret_161 = __noswap_vqdmullh_s16(__s0_161, __noswap_vgetq_lane_s16(__rev1_161, __p2_161)); \
+  __ret_161; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int64x2_t __ret; \
+  __ret = vqdmull_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __noswap_vqdmull_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqdmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqdmull_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqdmull_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqdmull_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqmovns_s32(int32_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqmovns_s32(__p0);
+  return __ret;
+}
+#else
+__ai int16_t vqmovns_s32(int32_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqmovns_s32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqmovnd_s64(int64_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqmovnd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vqmovnd_s64(int64_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqmovnd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqmovnh_s16(int16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqmovnh_s16(__p0);
+  return __ret;
+}
+#else
+__ai int8_t vqmovnh_s16(int16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqmovnh_s16(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vqmovns_u32(uint32_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqmovns_u32(__p0);
+  return __ret;
+}
+#else
+__ai uint16_t vqmovns_u32(uint32_t __p0) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqmovns_u32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vqmovnd_u64(uint64_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqmovnd_u64(__p0);
+  return __ret;
+}
+#else
+__ai uint32_t vqmovnd_u64(uint64_t __p0) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqmovnd_u64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vqmovnh_u16(uint16_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqmovnh_u16(__p0);
+  return __ret;
+}
+#else
+__ai uint8_t vqmovnh_u16(uint16_t __p0) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqmovnh_u16(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vqmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16(__p0, vqmovn_u32(__p1));
+  return __ret;
+}
+#else
+__ai uint16x8_t vqmovn_high_u32(uint16x4_t __p0, uint32x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16(__rev0, __noswap_vqmovn_u32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vqmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32(__p0, vqmovn_u64(__p1));
+  return __ret;
+}
+#else
+__ai uint32x4_t vqmovn_high_u64(uint32x2_t __p0, uint64x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32(__rev0, __noswap_vqmovn_u64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8(__p0, vqmovn_u16(__p1));
+  return __ret;
+}
+#else
+__ai uint8x16_t vqmovn_high_u16(uint8x8_t __p0, uint16x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8(__rev0, __noswap_vqmovn_u16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vqmovn_high_s32(int16x4_t __p0, int32x4_t __p1) {
+  int16x8_t __ret;
+  __ret = vcombine_s16(__p0, vqmovn_s32(__p1));
+  return __ret;
+}
+#else
+__ai int16x8_t vqmovn_high_s32(int16x4_t __p0, int32x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vcombine_s16(__rev0, __noswap_vqmovn_s32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vqmovn_high_s64(int32x2_t __p0, int64x2_t __p1) {
+  int32x4_t __ret;
+  __ret = vcombine_s32(__p0, vqmovn_s64(__p1));
+  return __ret;
+}
+#else
+__ai int32x4_t vqmovn_high_s64(int32x2_t __p0, int64x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vcombine_s32(__rev0, __noswap_vqmovn_s64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqmovn_high_s16(int8x8_t __p0, int16x8_t __p1) {
+  int8x16_t __ret;
+  __ret = vcombine_s8(__p0, vqmovn_s16(__p1));
+  return __ret;
+}
+#else
+__ai int8x16_t vqmovn_high_s16(int8x8_t __p0, int16x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __noswap_vcombine_s8(__rev0, __noswap_vqmovn_s16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqmovuns_s32(int32_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqmovuns_s32(__p0);
+  return __ret;
+}
+#else
+__ai int16_t vqmovuns_s32(int32_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqmovuns_s32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqmovund_s64(int64_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqmovund_s64(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vqmovund_s64(int64_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqmovund_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqmovunh_s16(int16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqmovunh_s16(__p0);
+  return __ret;
+}
+#else
+__ai int8_t vqmovunh_s16(int16_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqmovunh_s16(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vqmovun_high_s32(int16x4_t __p0, int32x4_t __p1) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16((uint16x4_t)(__p0), vqmovun_s32(__p1));
+  return __ret;
+}
+#else
+__ai uint16x8_t vqmovun_high_s32(int16x4_t __p0, int32x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16((uint16x4_t)(__rev0), __noswap_vqmovun_s32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vqmovun_high_s64(int32x2_t __p0, int64x2_t __p1) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32((uint32x2_t)(__p0), vqmovun_s64(__p1));
+  return __ret;
+}
+#else
+__ai uint32x4_t vqmovun_high_s64(int32x2_t __p0, int64x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32((uint32x2_t)(__rev0), __noswap_vqmovun_s64(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqmovun_high_s16(int8x8_t __p0, int16x8_t __p1) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8((uint8x8_t)(__p0), vqmovun_s16(__p1));
+  return __ret;
+}
+#else
+__ai uint8x16_t vqmovun_high_s16(int8x8_t __p0, int16x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8((uint8x8_t)(__rev0), __noswap_vqmovun_s16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vqnegq_s64(int64x2_t __p0) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqnegq_v((int8x16_t)__p0, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vqnegq_s64(int64x2_t __p0) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vqnegq_v((int8x16_t)__rev0, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vqneg_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vqneg_s64(int64x1_t __p0) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vqneg_v((int8x8_t)__p0, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqnegb_s8(int8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqnegb_s8(__p0);
+  return __ret;
+}
+#else
+__ai int8_t vqnegb_s8(int8_t __p0) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqnegb_s8(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqnegs_s32(int32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqnegs_s32(__p0);
+  return __ret;
+}
+#else
+__ai int32_t vqnegs_s32(int32_t __p0) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqnegs_s32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqnegd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqnegd_s64(__p0);
+  return __ret;
+}
+#else
+__ai int64_t vqnegd_s64(int64_t __p0) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqnegd_s64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqnegh_s16(int16_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqnegh_s16(__p0);
+  return __ret;
+}
+#else
+__ai int16_t vqnegh_s16(int16_t __p0) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqnegh_s16(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqrdmulhs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqrdmulhs_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqrdmulhs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqrdmulhs_s32(__p0, __p1);
+  return __ret;
+}
+__ai int32_t __noswap_vqrdmulhs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqrdmulhs_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqrdmulhh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqrdmulhh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vqrdmulhh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqrdmulhh_s16(__p0, __p1);
+  return __ret;
+}
+__ai int16_t __noswap_vqrdmulhh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqrdmulhh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhs_lane_s32(__p0_162, __p1_162, __p2_162) __extension__ ({ \
+  int32_t __s0_162 = __p0_162; \
+  int32x2_t __s1_162 = __p1_162; \
+  int32_t __ret_162; \
+  __ret_162 = vqrdmulhs_s32(__s0_162, vget_lane_s32(__s1_162, __p2_162)); \
+  __ret_162; \
+})
+#else
+#define vqrdmulhs_lane_s32(__p0_163, __p1_163, __p2_163) __extension__ ({ \
+  int32_t __s0_163 = __p0_163; \
+  int32x2_t __s1_163 = __p1_163; \
+  int32x2_t __rev1_163;  __rev1_163 = __builtin_shufflevector(__s1_163, __s1_163, 1, 0); \
+  int32_t __ret_163; \
+  __ret_163 = __noswap_vqrdmulhs_s32(__s0_163, __noswap_vget_lane_s32(__rev1_163, __p2_163)); \
+  __ret_163; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhh_lane_s16(__p0_164, __p1_164, __p2_164) __extension__ ({ \
+  int16_t __s0_164 = __p0_164; \
+  int16x4_t __s1_164 = __p1_164; \
+  int16_t __ret_164; \
+  __ret_164 = vqrdmulhh_s16(__s0_164, vget_lane_s16(__s1_164, __p2_164)); \
+  __ret_164; \
+})
+#else
+#define vqrdmulhh_lane_s16(__p0_165, __p1_165, __p2_165) __extension__ ({ \
+  int16_t __s0_165 = __p0_165; \
+  int16x4_t __s1_165 = __p1_165; \
+  int16x4_t __rev1_165;  __rev1_165 = __builtin_shufflevector(__s1_165, __s1_165, 3, 2, 1, 0); \
+  int16_t __ret_165; \
+  __ret_165 = __noswap_vqrdmulhh_s16(__s0_165, __noswap_vget_lane_s16(__rev1_165, __p2_165)); \
+  __ret_165; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhs_laneq_s32(__p0_166, __p1_166, __p2_166) __extension__ ({ \
+  int32_t __s0_166 = __p0_166; \
+  int32x4_t __s1_166 = __p1_166; \
+  int32_t __ret_166; \
+  __ret_166 = vqrdmulhs_s32(__s0_166, vgetq_lane_s32(__s1_166, __p2_166)); \
+  __ret_166; \
+})
+#else
+#define vqrdmulhs_laneq_s32(__p0_167, __p1_167, __p2_167) __extension__ ({ \
+  int32_t __s0_167 = __p0_167; \
+  int32x4_t __s1_167 = __p1_167; \
+  int32x4_t __rev1_167;  __rev1_167 = __builtin_shufflevector(__s1_167, __s1_167, 3, 2, 1, 0); \
+  int32_t __ret_167; \
+  __ret_167 = __noswap_vqrdmulhs_s32(__s0_167, __noswap_vgetq_lane_s32(__rev1_167, __p2_167)); \
+  __ret_167; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhh_laneq_s16(__p0_168, __p1_168, __p2_168) __extension__ ({ \
+  int16_t __s0_168 = __p0_168; \
+  int16x8_t __s1_168 = __p1_168; \
+  int16_t __ret_168; \
+  __ret_168 = vqrdmulhh_s16(__s0_168, vgetq_lane_s16(__s1_168, __p2_168)); \
+  __ret_168; \
+})
+#else
+#define vqrdmulhh_laneq_s16(__p0_169, __p1_169, __p2_169) __extension__ ({ \
+  int16_t __s0_169 = __p0_169; \
+  int16x8_t __s1_169 = __p1_169; \
+  int16x8_t __rev1_169;  __rev1_169 = __builtin_shufflevector(__s1_169, __s1_169, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16_t __ret_169; \
+  __ret_169 = __noswap_vqrdmulhh_s16(__s0_169, __noswap_vgetq_lane_s16(__rev1_169, __p2_169)); \
+  __ret_169; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __ret; \
+  __ret = vqrdmulhq_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulhq_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __noswap_vqrdmulhq_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __ret; \
+  __ret = vqrdmulhq_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulhq_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x8_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret; \
+  __ret = __noswap_vqrdmulhq_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __ret; \
+  __ret = vqrdmulh_s32(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulh_laneq_s32(__p0, __p1, __p2) __extension__ ({ \
+  int32x2_t __s0 = __p0; \
+  int32x4_t __s1 = __p1; \
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int32x2_t __ret; \
+  __ret = __noswap_vqrdmulh_s32(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __ret; \
+  __ret = vqrdmulh_s16(__s0, __builtin_shufflevector(__s1, __s1, __p2, __p2, __p2, __p2)); \
+  __ret; \
+})
+#else
+#define vqrdmulh_laneq_s16(__p0, __p1, __p2) __extension__ ({ \
+  int16x4_t __s0 = __p0; \
+  int16x8_t __s1 = __p1; \
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x4_t __ret; \
+  __ret = __noswap_vqrdmulh_s16(__rev0, __builtin_shufflevector(__rev1, __rev1, __p2, __p2, __p2, __p2)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vqrshlb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqrshlb_u8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint8_t vqrshlb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqrshlb_u8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vqrshls_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqrshls_u32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vqrshls_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqrshls_u32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vqrshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqrshld_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vqrshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqrshld_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vqrshlh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqrshlh_u16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint16_t vqrshlh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqrshlh_u16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqrshlb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqrshlb_s8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int8_t vqrshlb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqrshlb_s8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqrshls_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqrshls_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqrshls_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqrshls_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqrshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqrshld_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vqrshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqrshld_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqrshlh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqrshlh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vqrshlh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqrshlh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_high_n_u32(__p0_170, __p1_170, __p2_170) __extension__ ({ \
+  uint16x4_t __s0_170 = __p0_170; \
+  uint32x4_t __s1_170 = __p1_170; \
+  uint16x8_t __ret_170; \
+  __ret_170 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_170), (uint16x4_t)(vqrshrn_n_u32(__s1_170, __p2_170)))); \
+  __ret_170; \
+})
+#else
+#define vqrshrn_high_n_u32(__p0_171, __p1_171, __p2_171) __extension__ ({ \
+  uint16x4_t __s0_171 = __p0_171; \
+  uint32x4_t __s1_171 = __p1_171; \
+  uint16x4_t __rev0_171;  __rev0_171 = __builtin_shufflevector(__s0_171, __s0_171, 3, 2, 1, 0); \
+  uint32x4_t __rev1_171;  __rev1_171 = __builtin_shufflevector(__s1_171, __s1_171, 3, 2, 1, 0); \
+  uint16x8_t __ret_171; \
+  __ret_171 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_171), (uint16x4_t)(__noswap_vqrshrn_n_u32(__rev1_171, __p2_171)))); \
+  __ret_171 = __builtin_shufflevector(__ret_171, __ret_171, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_171; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_high_n_u64(__p0_172, __p1_172, __p2_172) __extension__ ({ \
+  uint32x2_t __s0_172 = __p0_172; \
+  uint64x2_t __s1_172 = __p1_172; \
+  uint32x4_t __ret_172; \
+  __ret_172 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_172), (uint32x2_t)(vqrshrn_n_u64(__s1_172, __p2_172)))); \
+  __ret_172; \
+})
+#else
+#define vqrshrn_high_n_u64(__p0_173, __p1_173, __p2_173) __extension__ ({ \
+  uint32x2_t __s0_173 = __p0_173; \
+  uint64x2_t __s1_173 = __p1_173; \
+  uint32x2_t __rev0_173;  __rev0_173 = __builtin_shufflevector(__s0_173, __s0_173, 1, 0); \
+  uint64x2_t __rev1_173;  __rev1_173 = __builtin_shufflevector(__s1_173, __s1_173, 1, 0); \
+  uint32x4_t __ret_173; \
+  __ret_173 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_173), (uint32x2_t)(__noswap_vqrshrn_n_u64(__rev1_173, __p2_173)))); \
+  __ret_173 = __builtin_shufflevector(__ret_173, __ret_173, 3, 2, 1, 0); \
+  __ret_173; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_high_n_u16(__p0_174, __p1_174, __p2_174) __extension__ ({ \
+  uint8x8_t __s0_174 = __p0_174; \
+  uint16x8_t __s1_174 = __p1_174; \
+  uint8x16_t __ret_174; \
+  __ret_174 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_174), (uint8x8_t)(vqrshrn_n_u16(__s1_174, __p2_174)))); \
+  __ret_174; \
+})
+#else
+#define vqrshrn_high_n_u16(__p0_175, __p1_175, __p2_175) __extension__ ({ \
+  uint8x8_t __s0_175 = __p0_175; \
+  uint16x8_t __s1_175 = __p1_175; \
+  uint8x8_t __rev0_175;  __rev0_175 = __builtin_shufflevector(__s0_175, __s0_175, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1_175;  __rev1_175 = __builtin_shufflevector(__s1_175, __s1_175, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret_175; \
+  __ret_175 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_175), (uint8x8_t)(__noswap_vqrshrn_n_u16(__rev1_175, __p2_175)))); \
+  __ret_175 = __builtin_shufflevector(__ret_175, __ret_175, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_175; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_high_n_s32(__p0_176, __p1_176, __p2_176) __extension__ ({ \
+  int16x4_t __s0_176 = __p0_176; \
+  int32x4_t __s1_176 = __p1_176; \
+  int16x8_t __ret_176; \
+  __ret_176 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_176), (int16x4_t)(vqrshrn_n_s32(__s1_176, __p2_176)))); \
+  __ret_176; \
+})
+#else
+#define vqrshrn_high_n_s32(__p0_177, __p1_177, __p2_177) __extension__ ({ \
+  int16x4_t __s0_177 = __p0_177; \
+  int32x4_t __s1_177 = __p1_177; \
+  int16x4_t __rev0_177;  __rev0_177 = __builtin_shufflevector(__s0_177, __s0_177, 3, 2, 1, 0); \
+  int32x4_t __rev1_177;  __rev1_177 = __builtin_shufflevector(__s1_177, __s1_177, 3, 2, 1, 0); \
+  int16x8_t __ret_177; \
+  __ret_177 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_177), (int16x4_t)(__noswap_vqrshrn_n_s32(__rev1_177, __p2_177)))); \
+  __ret_177 = __builtin_shufflevector(__ret_177, __ret_177, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_177; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_high_n_s64(__p0_178, __p1_178, __p2_178) __extension__ ({ \
+  int32x2_t __s0_178 = __p0_178; \
+  int64x2_t __s1_178 = __p1_178; \
+  int32x4_t __ret_178; \
+  __ret_178 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_178), (int32x2_t)(vqrshrn_n_s64(__s1_178, __p2_178)))); \
+  __ret_178; \
+})
+#else
+#define vqrshrn_high_n_s64(__p0_179, __p1_179, __p2_179) __extension__ ({ \
+  int32x2_t __s0_179 = __p0_179; \
+  int64x2_t __s1_179 = __p1_179; \
+  int32x2_t __rev0_179;  __rev0_179 = __builtin_shufflevector(__s0_179, __s0_179, 1, 0); \
+  int64x2_t __rev1_179;  __rev1_179 = __builtin_shufflevector(__s1_179, __s1_179, 1, 0); \
+  int32x4_t __ret_179; \
+  __ret_179 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_179), (int32x2_t)(__noswap_vqrshrn_n_s64(__rev1_179, __p2_179)))); \
+  __ret_179 = __builtin_shufflevector(__ret_179, __ret_179, 3, 2, 1, 0); \
+  __ret_179; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrn_high_n_s16(__p0_180, __p1_180, __p2_180) __extension__ ({ \
+  int8x8_t __s0_180 = __p0_180; \
+  int16x8_t __s1_180 = __p1_180; \
+  int8x16_t __ret_180; \
+  __ret_180 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_180), (int8x8_t)(vqrshrn_n_s16(__s1_180, __p2_180)))); \
+  __ret_180; \
+})
+#else
+#define vqrshrn_high_n_s16(__p0_181, __p1_181, __p2_181) __extension__ ({ \
+  int8x8_t __s0_181 = __p0_181; \
+  int16x8_t __s1_181 = __p1_181; \
+  int8x8_t __rev0_181;  __rev0_181 = __builtin_shufflevector(__s0_181, __s0_181, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1_181;  __rev1_181 = __builtin_shufflevector(__s1_181, __s1_181, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_181; \
+  __ret_181 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_181), (int8x8_t)(__noswap_vqrshrn_n_s16(__rev1_181, __p2_181)))); \
+  __ret_181 = __builtin_shufflevector(__ret_181, __ret_181, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_181; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrns_n_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vqrshrns_n_u32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrns_n_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vqrshrns_n_u32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrnd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vqrshrnd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrnd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vqrshrnd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrnh_n_u16(__p0, __p1) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vqrshrnh_n_u16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrnh_n_u16(__p0, __p1) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vqrshrnh_n_u16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqrshrns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqrshrns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrnd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqrshrnd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrnd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqrshrnd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrnh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqrshrnh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrnh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqrshrnh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrun_high_n_s32(__p0_182, __p1_182, __p2_182) __extension__ ({ \
+  int16x4_t __s0_182 = __p0_182; \
+  int32x4_t __s1_182 = __p1_182; \
+  int16x8_t __ret_182; \
+  __ret_182 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_182), (int16x4_t)(vqrshrun_n_s32(__s1_182, __p2_182)))); \
+  __ret_182; \
+})
+#else
+#define vqrshrun_high_n_s32(__p0_183, __p1_183, __p2_183) __extension__ ({ \
+  int16x4_t __s0_183 = __p0_183; \
+  int32x4_t __s1_183 = __p1_183; \
+  int16x4_t __rev0_183;  __rev0_183 = __builtin_shufflevector(__s0_183, __s0_183, 3, 2, 1, 0); \
+  int32x4_t __rev1_183;  __rev1_183 = __builtin_shufflevector(__s1_183, __s1_183, 3, 2, 1, 0); \
+  int16x8_t __ret_183; \
+  __ret_183 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_183), (int16x4_t)(__noswap_vqrshrun_n_s32(__rev1_183, __p2_183)))); \
+  __ret_183 = __builtin_shufflevector(__ret_183, __ret_183, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_183; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrun_high_n_s64(__p0_184, __p1_184, __p2_184) __extension__ ({ \
+  int32x2_t __s0_184 = __p0_184; \
+  int64x2_t __s1_184 = __p1_184; \
+  int32x4_t __ret_184; \
+  __ret_184 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_184), (int32x2_t)(vqrshrun_n_s64(__s1_184, __p2_184)))); \
+  __ret_184; \
+})
+#else
+#define vqrshrun_high_n_s64(__p0_185, __p1_185, __p2_185) __extension__ ({ \
+  int32x2_t __s0_185 = __p0_185; \
+  int64x2_t __s1_185 = __p1_185; \
+  int32x2_t __rev0_185;  __rev0_185 = __builtin_shufflevector(__s0_185, __s0_185, 1, 0); \
+  int64x2_t __rev1_185;  __rev1_185 = __builtin_shufflevector(__s1_185, __s1_185, 1, 0); \
+  int32x4_t __ret_185; \
+  __ret_185 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_185), (int32x2_t)(__noswap_vqrshrun_n_s64(__rev1_185, __p2_185)))); \
+  __ret_185 = __builtin_shufflevector(__ret_185, __ret_185, 3, 2, 1, 0); \
+  __ret_185; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrun_high_n_s16(__p0_186, __p1_186, __p2_186) __extension__ ({ \
+  int8x8_t __s0_186 = __p0_186; \
+  int16x8_t __s1_186 = __p1_186; \
+  int8x16_t __ret_186; \
+  __ret_186 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_186), (int8x8_t)(vqrshrun_n_s16(__s1_186, __p2_186)))); \
+  __ret_186; \
+})
+#else
+#define vqrshrun_high_n_s16(__p0_187, __p1_187, __p2_187) __extension__ ({ \
+  int8x8_t __s0_187 = __p0_187; \
+  int16x8_t __s1_187 = __p1_187; \
+  int8x8_t __rev0_187;  __rev0_187 = __builtin_shufflevector(__s0_187, __s0_187, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1_187;  __rev1_187 = __builtin_shufflevector(__s1_187, __s1_187, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_187; \
+  __ret_187 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_187), (int8x8_t)(__noswap_vqrshrun_n_s16(__rev1_187, __p2_187)))); \
+  __ret_187 = __builtin_shufflevector(__ret_187, __ret_187, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_187; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshruns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqrshruns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshruns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqrshruns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrund_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqrshrund_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrund_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqrshrund_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrshrunh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqrshrunh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqrshrunh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqrshrunh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vqshlb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqshlb_u8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint8_t vqshlb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqshlb_u8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vqshls_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqshls_u32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vqshls_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqshls_u32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vqshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqshld_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vqshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqshld_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vqshlh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqshlh_u16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint16_t vqshlh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqshlh_u16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqshlb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqshlb_s8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int8_t vqshlb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqshlb_s8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqshls_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqshls_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqshls_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqshls_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqshld_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vqshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqshld_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqshlh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqshlh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vqshlh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqshlh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlb_n_u8(__p0, __p1) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vqshlb_n_u8(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlb_n_u8(__p0, __p1) __extension__ ({ \
+  uint8_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vqshlb_n_u8(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshls_n_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vqshls_n_u32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshls_n_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vqshls_n_u32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshld_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vqshld_n_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshld_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vqshld_n_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlh_n_u16(__p0, __p1) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vqshlh_n_u16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlh_n_u16(__p0, __p1) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vqshlh_n_u16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlb_n_s8(__p0, __p1) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshlb_n_s8(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlb_n_s8(__p0, __p1) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshlb_n_s8(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshls_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshls_n_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshls_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshls_n_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshld_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqshld_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshld_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqshld_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshlh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshlh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlub_n_s8(__p0, __p1) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshlub_n_s8(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlub_n_s8(__p0, __p1) __extension__ ({ \
+  int8_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshlub_n_s8(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlus_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshlus_n_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlus_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshlus_n_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshlud_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqshlud_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshlud_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vqshlud_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshluh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshluh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshluh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshluh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_high_n_u32(__p0_188, __p1_188, __p2_188) __extension__ ({ \
+  uint16x4_t __s0_188 = __p0_188; \
+  uint32x4_t __s1_188 = __p1_188; \
+  uint16x8_t __ret_188; \
+  __ret_188 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_188), (uint16x4_t)(vqshrn_n_u32(__s1_188, __p2_188)))); \
+  __ret_188; \
+})
+#else
+#define vqshrn_high_n_u32(__p0_189, __p1_189, __p2_189) __extension__ ({ \
+  uint16x4_t __s0_189 = __p0_189; \
+  uint32x4_t __s1_189 = __p1_189; \
+  uint16x4_t __rev0_189;  __rev0_189 = __builtin_shufflevector(__s0_189, __s0_189, 3, 2, 1, 0); \
+  uint32x4_t __rev1_189;  __rev1_189 = __builtin_shufflevector(__s1_189, __s1_189, 3, 2, 1, 0); \
+  uint16x8_t __ret_189; \
+  __ret_189 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_189), (uint16x4_t)(__noswap_vqshrn_n_u32(__rev1_189, __p2_189)))); \
+  __ret_189 = __builtin_shufflevector(__ret_189, __ret_189, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_189; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_high_n_u64(__p0_190, __p1_190, __p2_190) __extension__ ({ \
+  uint32x2_t __s0_190 = __p0_190; \
+  uint64x2_t __s1_190 = __p1_190; \
+  uint32x4_t __ret_190; \
+  __ret_190 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_190), (uint32x2_t)(vqshrn_n_u64(__s1_190, __p2_190)))); \
+  __ret_190; \
+})
+#else
+#define vqshrn_high_n_u64(__p0_191, __p1_191, __p2_191) __extension__ ({ \
+  uint32x2_t __s0_191 = __p0_191; \
+  uint64x2_t __s1_191 = __p1_191; \
+  uint32x2_t __rev0_191;  __rev0_191 = __builtin_shufflevector(__s0_191, __s0_191, 1, 0); \
+  uint64x2_t __rev1_191;  __rev1_191 = __builtin_shufflevector(__s1_191, __s1_191, 1, 0); \
+  uint32x4_t __ret_191; \
+  __ret_191 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_191), (uint32x2_t)(__noswap_vqshrn_n_u64(__rev1_191, __p2_191)))); \
+  __ret_191 = __builtin_shufflevector(__ret_191, __ret_191, 3, 2, 1, 0); \
+  __ret_191; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_high_n_u16(__p0_192, __p1_192, __p2_192) __extension__ ({ \
+  uint8x8_t __s0_192 = __p0_192; \
+  uint16x8_t __s1_192 = __p1_192; \
+  uint8x16_t __ret_192; \
+  __ret_192 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_192), (uint8x8_t)(vqshrn_n_u16(__s1_192, __p2_192)))); \
+  __ret_192; \
+})
+#else
+#define vqshrn_high_n_u16(__p0_193, __p1_193, __p2_193) __extension__ ({ \
+  uint8x8_t __s0_193 = __p0_193; \
+  uint16x8_t __s1_193 = __p1_193; \
+  uint8x8_t __rev0_193;  __rev0_193 = __builtin_shufflevector(__s0_193, __s0_193, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1_193;  __rev1_193 = __builtin_shufflevector(__s1_193, __s1_193, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret_193; \
+  __ret_193 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_193), (uint8x8_t)(__noswap_vqshrn_n_u16(__rev1_193, __p2_193)))); \
+  __ret_193 = __builtin_shufflevector(__ret_193, __ret_193, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_193; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_high_n_s32(__p0_194, __p1_194, __p2_194) __extension__ ({ \
+  int16x4_t __s0_194 = __p0_194; \
+  int32x4_t __s1_194 = __p1_194; \
+  int16x8_t __ret_194; \
+  __ret_194 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_194), (int16x4_t)(vqshrn_n_s32(__s1_194, __p2_194)))); \
+  __ret_194; \
+})
+#else
+#define vqshrn_high_n_s32(__p0_195, __p1_195, __p2_195) __extension__ ({ \
+  int16x4_t __s0_195 = __p0_195; \
+  int32x4_t __s1_195 = __p1_195; \
+  int16x4_t __rev0_195;  __rev0_195 = __builtin_shufflevector(__s0_195, __s0_195, 3, 2, 1, 0); \
+  int32x4_t __rev1_195;  __rev1_195 = __builtin_shufflevector(__s1_195, __s1_195, 3, 2, 1, 0); \
+  int16x8_t __ret_195; \
+  __ret_195 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_195), (int16x4_t)(__noswap_vqshrn_n_s32(__rev1_195, __p2_195)))); \
+  __ret_195 = __builtin_shufflevector(__ret_195, __ret_195, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_195; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_high_n_s64(__p0_196, __p1_196, __p2_196) __extension__ ({ \
+  int32x2_t __s0_196 = __p0_196; \
+  int64x2_t __s1_196 = __p1_196; \
+  int32x4_t __ret_196; \
+  __ret_196 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_196), (int32x2_t)(vqshrn_n_s64(__s1_196, __p2_196)))); \
+  __ret_196; \
+})
+#else
+#define vqshrn_high_n_s64(__p0_197, __p1_197, __p2_197) __extension__ ({ \
+  int32x2_t __s0_197 = __p0_197; \
+  int64x2_t __s1_197 = __p1_197; \
+  int32x2_t __rev0_197;  __rev0_197 = __builtin_shufflevector(__s0_197, __s0_197, 1, 0); \
+  int64x2_t __rev1_197;  __rev1_197 = __builtin_shufflevector(__s1_197, __s1_197, 1, 0); \
+  int32x4_t __ret_197; \
+  __ret_197 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_197), (int32x2_t)(__noswap_vqshrn_n_s64(__rev1_197, __p2_197)))); \
+  __ret_197 = __builtin_shufflevector(__ret_197, __ret_197, 3, 2, 1, 0); \
+  __ret_197; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrn_high_n_s16(__p0_198, __p1_198, __p2_198) __extension__ ({ \
+  int8x8_t __s0_198 = __p0_198; \
+  int16x8_t __s1_198 = __p1_198; \
+  int8x16_t __ret_198; \
+  __ret_198 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_198), (int8x8_t)(vqshrn_n_s16(__s1_198, __p2_198)))); \
+  __ret_198; \
+})
+#else
+#define vqshrn_high_n_s16(__p0_199, __p1_199, __p2_199) __extension__ ({ \
+  int8x8_t __s0_199 = __p0_199; \
+  int16x8_t __s1_199 = __p1_199; \
+  int8x8_t __rev0_199;  __rev0_199 = __builtin_shufflevector(__s0_199, __s0_199, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1_199;  __rev1_199 = __builtin_shufflevector(__s1_199, __s1_199, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_199; \
+  __ret_199 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_199), (int8x8_t)(__noswap_vqshrn_n_s16(__rev1_199, __p2_199)))); \
+  __ret_199 = __builtin_shufflevector(__ret_199, __ret_199, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_199; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrns_n_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vqshrns_n_u32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrns_n_u32(__p0, __p1) __extension__ ({ \
+  uint32_t __s0 = __p0; \
+  uint16_t __ret; \
+  __ret = (uint16_t) __builtin_neon_vqshrns_n_u32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrnd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vqshrnd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrnd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint32_t __ret; \
+  __ret = (uint32_t) __builtin_neon_vqshrnd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrnh_n_u16(__p0, __p1) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vqshrnh_n_u16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrnh_n_u16(__p0, __p1) __extension__ ({ \
+  uint16_t __s0 = __p0; \
+  uint8_t __ret; \
+  __ret = (uint8_t) __builtin_neon_vqshrnh_n_u16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshrns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshrns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrnd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshrnd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrnd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshrnd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrnh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshrnh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrnh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshrnh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrun_high_n_s32(__p0_200, __p1_200, __p2_200) __extension__ ({ \
+  int16x4_t __s0_200 = __p0_200; \
+  int32x4_t __s1_200 = __p1_200; \
+  int16x8_t __ret_200; \
+  __ret_200 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_200), (int16x4_t)(vqshrun_n_s32(__s1_200, __p2_200)))); \
+  __ret_200; \
+})
+#else
+#define vqshrun_high_n_s32(__p0_201, __p1_201, __p2_201) __extension__ ({ \
+  int16x4_t __s0_201 = __p0_201; \
+  int32x4_t __s1_201 = __p1_201; \
+  int16x4_t __rev0_201;  __rev0_201 = __builtin_shufflevector(__s0_201, __s0_201, 3, 2, 1, 0); \
+  int32x4_t __rev1_201;  __rev1_201 = __builtin_shufflevector(__s1_201, __s1_201, 3, 2, 1, 0); \
+  int16x8_t __ret_201; \
+  __ret_201 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_201), (int16x4_t)(__noswap_vqshrun_n_s32(__rev1_201, __p2_201)))); \
+  __ret_201 = __builtin_shufflevector(__ret_201, __ret_201, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_201; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrun_high_n_s64(__p0_202, __p1_202, __p2_202) __extension__ ({ \
+  int32x2_t __s0_202 = __p0_202; \
+  int64x2_t __s1_202 = __p1_202; \
+  int32x4_t __ret_202; \
+  __ret_202 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_202), (int32x2_t)(vqshrun_n_s64(__s1_202, __p2_202)))); \
+  __ret_202; \
+})
+#else
+#define vqshrun_high_n_s64(__p0_203, __p1_203, __p2_203) __extension__ ({ \
+  int32x2_t __s0_203 = __p0_203; \
+  int64x2_t __s1_203 = __p1_203; \
+  int32x2_t __rev0_203;  __rev0_203 = __builtin_shufflevector(__s0_203, __s0_203, 1, 0); \
+  int64x2_t __rev1_203;  __rev1_203 = __builtin_shufflevector(__s1_203, __s1_203, 1, 0); \
+  int32x4_t __ret_203; \
+  __ret_203 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_203), (int32x2_t)(__noswap_vqshrun_n_s64(__rev1_203, __p2_203)))); \
+  __ret_203 = __builtin_shufflevector(__ret_203, __ret_203, 3, 2, 1, 0); \
+  __ret_203; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrun_high_n_s16(__p0_204, __p1_204, __p2_204) __extension__ ({ \
+  int8x8_t __s0_204 = __p0_204; \
+  int16x8_t __s1_204 = __p1_204; \
+  int8x16_t __ret_204; \
+  __ret_204 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_204), (int8x8_t)(vqshrun_n_s16(__s1_204, __p2_204)))); \
+  __ret_204; \
+})
+#else
+#define vqshrun_high_n_s16(__p0_205, __p1_205, __p2_205) __extension__ ({ \
+  int8x8_t __s0_205 = __p0_205; \
+  int16x8_t __s1_205 = __p1_205; \
+  int8x8_t __rev0_205;  __rev0_205 = __builtin_shufflevector(__s0_205, __s0_205, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1_205;  __rev1_205 = __builtin_shufflevector(__s1_205, __s1_205, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_205; \
+  __ret_205 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_205), (int8x8_t)(__noswap_vqshrun_n_s16(__rev1_205, __p2_205)))); \
+  __ret_205 = __builtin_shufflevector(__ret_205, __ret_205, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_205; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshruns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshruns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshruns_n_s32(__p0, __p1) __extension__ ({ \
+  int32_t __s0 = __p0; \
+  int16_t __ret; \
+  __ret = (int16_t) __builtin_neon_vqshruns_n_s32(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrund_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshrund_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrund_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int32_t __ret; \
+  __ret = (int32_t) __builtin_neon_vqshrund_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqshrunh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshrunh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vqshrunh_n_s16(__p0, __p1) __extension__ ({ \
+  int16_t __s0 = __p0; \
+  int8_t __ret; \
+  __ret = (int8_t) __builtin_neon_vqshrunh_n_s16(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vqsubb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqsubb_u8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint8_t vqsubb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vqsubb_u8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vqsubs_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqsubs_u32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vqsubs_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vqsubs_u32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vqsubd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqsubd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vqsubd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vqsubd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vqsubh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqsubh_u16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint16_t vqsubh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vqsubh_u16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vqsubb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqsubb_s8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int8_t vqsubb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vqsubb_s8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqsubs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqsubs_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vqsubs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqsubs_s32(__p0, __p1);
+  return __ret;
+}
+__ai int32_t __noswap_vqsubs_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vqsubs_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vqsubd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqsubd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vqsubd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vqsubd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqsubh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqsubh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vqsubh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqsubh_s16(__p0, __p1);
+  return __ret;
+}
+__ai int16_t __noswap_vqsubh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vqsubh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbl1_p8(poly8x16_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__p0, (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbl1_p8(poly8x16_t __p0, uint8x8_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__rev0, (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbl1q_p8(poly8x16_t __p0, uint8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__p0, (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbl1q_p8(poly8x16_t __p0, uint8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbl1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbl1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbl1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbl1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbl1_u8(uint8x16_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbl1_u8(uint8x16_t __p0, uint8x8_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbl1_s8(int8x16_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbl1_s8(int8x16_t __p0, int8x8_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl1_v((int8x16_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbl2_p8(poly8x16x2_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbl2_p8(poly8x16x2_t __p0, uint8x8_t __p1) {
+  poly8x16x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbl2q_p8(poly8x16x2_t __p0, uint8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbl2q_p8(poly8x16x2_t __p0, uint8x16_t __p1) {
+  poly8x16x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev1, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbl2q_u8(uint8x16x2_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbl2q_u8(uint8x16x2_t __p0, uint8x16_t __p1) {
+  uint8x16x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbl2q_s8(int8x16x2_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbl2q_s8(int8x16x2_t __p0, int8x16_t __p1) {
+  int8x16x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl2q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbl2_u8(uint8x16x2_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbl2_u8(uint8x16x2_t __p0, uint8x8_t __p1) {
+  uint8x16x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbl2_s8(int8x16x2_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbl2_s8(int8x16x2_t __p0, int8x8_t __p1) {
+  int8x16x2_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl2_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbl3_p8(poly8x16x3_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbl3_p8(poly8x16x3_t __p0, uint8x8_t __p1) {
+  poly8x16x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbl3q_p8(poly8x16x3_t __p0, uint8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbl3q_p8(poly8x16x3_t __p0, uint8x16_t __p1) {
+  poly8x16x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev1, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbl3q_u8(uint8x16x3_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbl3q_u8(uint8x16x3_t __p0, uint8x16_t __p1) {
+  uint8x16x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbl3q_s8(int8x16x3_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbl3q_s8(int8x16x3_t __p0, int8x16_t __p1) {
+  int8x16x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl3q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbl3_u8(uint8x16x3_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbl3_u8(uint8x16x3_t __p0, uint8x8_t __p1) {
+  uint8x16x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbl3_s8(int8x16x3_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbl3_s8(int8x16x3_t __p0, int8x8_t __p1) {
+  int8x16x3_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl3_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbl4_p8(poly8x16x4_t __p0, uint8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x8_t)__p1, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbl4_p8(poly8x16x4_t __p0, uint8x8_t __p1) {
+  poly8x16x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x8_t)__rev1, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbl4q_p8(poly8x16x4_t __p0, uint8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x16_t)__p1, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbl4q_p8(poly8x16x4_t __p0, uint8x16_t __p1) {
+  poly8x16x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x16_t)__rev1, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbl4q_u8(uint8x16x4_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbl4q_u8(uint8x16x4_t __p0, uint8x16_t __p1) {
+  uint8x16x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbl4q_s8(int8x16x4_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbl4q_s8(int8x16x4_t __p0, int8x16_t __p1) {
+  int8x16x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbl4q_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbl4_u8(uint8x16x4_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbl4_u8(uint8x16x4_t __p0, uint8x8_t __p1) {
+  uint8x16x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbl4_s8(int8x16x4_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__p0.val[0], (int8x16_t)__p0.val[1], (int8x16_t)__p0.val[2], (int8x16_t)__p0.val[3], (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbl4_s8(int8x16x4_t __p0, int8x8_t __p1) {
+  int8x16x4_t __rev0;
+  __rev0.val[0] = __builtin_shufflevector(__p0.val[0], __p0.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[1] = __builtin_shufflevector(__p0.val[1], __p0.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[2] = __builtin_shufflevector(__p0.val[2], __p0.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev0.val[3] = __builtin_shufflevector(__p0.val[3], __p0.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbl4_v((int8x16_t)__rev0.val[0], (int8x16_t)__rev0.val[1], (int8x16_t)__rev0.val[2], (int8x16_t)__rev0.val[3], (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbx1_p8(poly8x8_t __p0, poly8x16_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__p0, (int8x16_t)__p1, (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbx1_p8(poly8x8_t __p0, poly8x16_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbx1q_p8(poly8x16_t __p0, poly8x16_t __p1, uint8x16_t __p2) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbx1q_p8(poly8x16_t __p0, poly8x16_t __p1, uint8x16_t __p2) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbx1q_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbx1q_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbx1q_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbx1q_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx1q_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbx1_u8(uint8x8_t __p0, uint8x16_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__p0, (int8x16_t)__p1, (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbx1_u8(uint8x8_t __p0, uint8x16_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbx1_s8(int8x8_t __p0, int8x16_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__p0, (int8x16_t)__p1, (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbx1_s8(int8x8_t __p0, int8x16_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx1_v((int8x8_t)__rev0, (int8x16_t)__rev1, (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbx2_p8(poly8x8_t __p0, poly8x16x2_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbx2_p8(poly8x8_t __p0, poly8x16x2_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbx2q_p8(poly8x16_t __p0, poly8x16x2_t __p1, uint8x16_t __p2) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p2, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbx2q_p8(poly8x16_t __p0, poly8x16x2_t __p1, uint8x16_t __p2) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev2, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbx2q_u8(uint8x16_t __p0, uint8x16x2_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p2, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbx2q_u8(uint8x16_t __p0, uint8x16x2_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev2, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbx2q_s8(int8x16_t __p0, int8x16x2_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p2, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbx2q_s8(int8x16_t __p0, int8x16x2_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx2q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev2, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbx2_u8(uint8x8_t __p0, uint8x16x2_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbx2_u8(uint8x8_t __p0, uint8x16x2_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbx2_s8(int8x8_t __p0, int8x16x2_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbx2_s8(int8x8_t __p0, int8x16x2_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x2_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx2_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbx3_p8(poly8x8_t __p0, poly8x16x3_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbx3_p8(poly8x8_t __p0, poly8x16x3_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbx3q_p8(poly8x16_t __p0, poly8x16x3_t __p1, uint8x16_t __p2) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p2, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbx3q_p8(poly8x16_t __p0, poly8x16x3_t __p1, uint8x16_t __p2) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev2, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbx3q_u8(uint8x16_t __p0, uint8x16x3_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p2, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbx3q_u8(uint8x16_t __p0, uint8x16x3_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev2, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbx3q_s8(int8x16_t __p0, int8x16x3_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p2, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbx3q_s8(int8x16_t __p0, int8x16x3_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx3q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev2, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbx3_u8(uint8x8_t __p0, uint8x16x3_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbx3_u8(uint8x8_t __p0, uint8x16x3_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbx3_s8(int8x8_t __p0, int8x16x3_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbx3_s8(int8x8_t __p0, int8x16x3_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x3_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx3_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vqtbx4_p8(poly8x8_t __p0, poly8x16x4_t __p1, uint8x8_t __p2) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x8_t)__p2, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vqtbx4_p8(poly8x8_t __p0, poly8x16x4_t __p1, uint8x8_t __p2) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x8_t)__rev2, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vqtbx4q_p8(poly8x16_t __p0, poly8x16x4_t __p1, uint8x16_t __p2) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x16_t)__p2, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vqtbx4q_p8(poly8x16_t __p0, poly8x16x4_t __p1, uint8x16_t __p2) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x16_t)__rev2, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vqtbx4q_u8(uint8x16_t __p0, uint8x16x4_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x16_t)__p2, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vqtbx4q_u8(uint8x16_t __p0, uint8x16x4_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x16_t)__rev2, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vqtbx4q_s8(int8x16_t __p0, int8x16x4_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x16_t)__p2, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vqtbx4q_s8(int8x16_t __p0, int8x16x4_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vqtbx4q_v((int8x16_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x16_t)__rev2, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vqtbx4_u8(uint8x8_t __p0, uint8x16x4_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x8_t)__p2, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vqtbx4_u8(uint8x8_t __p0, uint8x16x4_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x8_t)__rev2, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vqtbx4_s8(int8x8_t __p0, int8x16x4_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__p0, (int8x16_t)__p1.val[0], (int8x16_t)__p1.val[1], (int8x16_t)__p1.val[2], (int8x16_t)__p1.val[3], (int8x8_t)__p2, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vqtbx4_s8(int8x8_t __p0, int8x16x4_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16x4_t __rev1;
+  __rev1.val[0] = __builtin_shufflevector(__p1.val[0], __p1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[1] = __builtin_shufflevector(__p1.val[1], __p1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[2] = __builtin_shufflevector(__p1.val[2], __p1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  __rev1.val[3] = __builtin_shufflevector(__p1.val[3], __p1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vqtbx4_v((int8x8_t)__rev0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], (int8x8_t)__rev2, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vraddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16(__p0, vraddhn_u32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vraddhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16(__rev0, __noswap_vraddhn_u32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vraddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32(__p0, vraddhn_u64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vraddhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32(__rev0, __noswap_vraddhn_u64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vraddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8(__p0, vraddhn_u16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint8x16_t vraddhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8(__rev0, __noswap_vraddhn_u16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vraddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x8_t __ret;
+  __ret = vcombine_s16(__p0, vraddhn_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vraddhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vcombine_s16(__rev0, __noswap_vraddhn_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vraddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x4_t __ret;
+  __ret = vcombine_s32(__p0, vraddhn_s64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vraddhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vcombine_s32(__rev0, __noswap_vraddhn_s64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vraddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x16_t __ret;
+  __ret = vcombine_s8(__p0, vraddhn_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int8x16_t vraddhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __noswap_vcombine_s8(__rev0, __noswap_vraddhn_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vrbit_p8(poly8x8_t __p0) {
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vrbit_v((int8x8_t)__p0, 4);
+  return __ret;
+}
+#else
+__ai poly8x8_t vrbit_p8(poly8x8_t __p0) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = (poly8x8_t) __builtin_neon_vrbit_v((int8x8_t)__rev0, 4);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vrbitq_p8(poly8x16_t __p0) {
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__p0, 36);
+  return __ret;
+}
+#else
+__ai poly8x16_t vrbitq_p8(poly8x16_t __p0) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = (poly8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__rev0, 36);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrbitq_u8(uint8x16_t __p0) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__p0, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vrbitq_u8(uint8x16_t __p0) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__rev0, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrbitq_s8(int8x16_t __p0) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__p0, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vrbitq_s8(int8x16_t __p0) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vrbitq_v((int8x16_t)__rev0, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vrbit_u8(uint8x8_t __p0) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrbit_v((int8x8_t)__p0, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vrbit_u8(uint8x8_t __p0) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vrbit_v((int8x8_t)__rev0, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vrbit_s8(int8x8_t __p0) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrbit_v((int8x8_t)__p0, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vrbit_s8(int8x8_t __p0) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vrbit_v((int8x8_t)__rev0, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrecpeq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrecpeq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrecpeq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrecpeq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrecpe_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrecpe_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrecpe_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vrecped_f64(float64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrecped_f64(__p0);
+  return __ret;
+}
+#else
+__ai float64_t vrecped_f64(float64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrecped_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vrecpes_f32(float32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrecpes_f32(__p0);
+  return __ret;
+}
+#else
+__ai float32_t vrecpes_f32(float32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrecpes_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrecpsq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrecpsq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrecpsq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrecpsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrecps_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrecps_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrecps_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vrecpsd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrecpsd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float64_t vrecpsd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrecpsd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vrecpss_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrecpss_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float32_t vrecpss_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrecpss_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vrecpxd_f64(float64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrecpxd_f64(__p0);
+  return __ret;
+}
+#else
+__ai float64_t vrecpxd_f64(float64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrecpxd_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vrecpxs_f32(float32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrecpxs_f32(__p0);
+  return __ret;
+}
+#else
+__ai float32_t vrecpxs_f32(float32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrecpxs_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vrshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vrshld_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vrshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vrshld_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vrshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vrshld_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vrshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vrshld_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vrshrd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vrshrd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vrshrd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vrshrd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vrshrd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vrshrd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_high_n_u32(__p0_206, __p1_206, __p2_206) __extension__ ({ \
+  uint16x4_t __s0_206 = __p0_206; \
+  uint32x4_t __s1_206 = __p1_206; \
+  uint16x8_t __ret_206; \
+  __ret_206 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_206), (uint16x4_t)(vrshrn_n_u32(__s1_206, __p2_206)))); \
+  __ret_206; \
+})
+#else
+#define vrshrn_high_n_u32(__p0_207, __p1_207, __p2_207) __extension__ ({ \
+  uint16x4_t __s0_207 = __p0_207; \
+  uint32x4_t __s1_207 = __p1_207; \
+  uint16x4_t __rev0_207;  __rev0_207 = __builtin_shufflevector(__s0_207, __s0_207, 3, 2, 1, 0); \
+  uint32x4_t __rev1_207;  __rev1_207 = __builtin_shufflevector(__s1_207, __s1_207, 3, 2, 1, 0); \
+  uint16x8_t __ret_207; \
+  __ret_207 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_207), (uint16x4_t)(__noswap_vrshrn_n_u32(__rev1_207, __p2_207)))); \
+  __ret_207 = __builtin_shufflevector(__ret_207, __ret_207, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_207; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_high_n_u64(__p0_208, __p1_208, __p2_208) __extension__ ({ \
+  uint32x2_t __s0_208 = __p0_208; \
+  uint64x2_t __s1_208 = __p1_208; \
+  uint32x4_t __ret_208; \
+  __ret_208 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_208), (uint32x2_t)(vrshrn_n_u64(__s1_208, __p2_208)))); \
+  __ret_208; \
+})
+#else
+#define vrshrn_high_n_u64(__p0_209, __p1_209, __p2_209) __extension__ ({ \
+  uint32x2_t __s0_209 = __p0_209; \
+  uint64x2_t __s1_209 = __p1_209; \
+  uint32x2_t __rev0_209;  __rev0_209 = __builtin_shufflevector(__s0_209, __s0_209, 1, 0); \
+  uint64x2_t __rev1_209;  __rev1_209 = __builtin_shufflevector(__s1_209, __s1_209, 1, 0); \
+  uint32x4_t __ret_209; \
+  __ret_209 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_209), (uint32x2_t)(__noswap_vrshrn_n_u64(__rev1_209, __p2_209)))); \
+  __ret_209 = __builtin_shufflevector(__ret_209, __ret_209, 3, 2, 1, 0); \
+  __ret_209; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_high_n_u16(__p0_210, __p1_210, __p2_210) __extension__ ({ \
+  uint8x8_t __s0_210 = __p0_210; \
+  uint16x8_t __s1_210 = __p1_210; \
+  uint8x16_t __ret_210; \
+  __ret_210 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_210), (uint8x8_t)(vrshrn_n_u16(__s1_210, __p2_210)))); \
+  __ret_210; \
+})
+#else
+#define vrshrn_high_n_u16(__p0_211, __p1_211, __p2_211) __extension__ ({ \
+  uint8x8_t __s0_211 = __p0_211; \
+  uint16x8_t __s1_211 = __p1_211; \
+  uint8x8_t __rev0_211;  __rev0_211 = __builtin_shufflevector(__s0_211, __s0_211, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1_211;  __rev1_211 = __builtin_shufflevector(__s1_211, __s1_211, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret_211; \
+  __ret_211 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_211), (uint8x8_t)(__noswap_vrshrn_n_u16(__rev1_211, __p2_211)))); \
+  __ret_211 = __builtin_shufflevector(__ret_211, __ret_211, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_211; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_high_n_s32(__p0_212, __p1_212, __p2_212) __extension__ ({ \
+  int16x4_t __s0_212 = __p0_212; \
+  int32x4_t __s1_212 = __p1_212; \
+  int16x8_t __ret_212; \
+  __ret_212 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_212), (int16x4_t)(vrshrn_n_s32(__s1_212, __p2_212)))); \
+  __ret_212; \
+})
+#else
+#define vrshrn_high_n_s32(__p0_213, __p1_213, __p2_213) __extension__ ({ \
+  int16x4_t __s0_213 = __p0_213; \
+  int32x4_t __s1_213 = __p1_213; \
+  int16x4_t __rev0_213;  __rev0_213 = __builtin_shufflevector(__s0_213, __s0_213, 3, 2, 1, 0); \
+  int32x4_t __rev1_213;  __rev1_213 = __builtin_shufflevector(__s1_213, __s1_213, 3, 2, 1, 0); \
+  int16x8_t __ret_213; \
+  __ret_213 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_213), (int16x4_t)(__noswap_vrshrn_n_s32(__rev1_213, __p2_213)))); \
+  __ret_213 = __builtin_shufflevector(__ret_213, __ret_213, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_213; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_high_n_s64(__p0_214, __p1_214, __p2_214) __extension__ ({ \
+  int32x2_t __s0_214 = __p0_214; \
+  int64x2_t __s1_214 = __p1_214; \
+  int32x4_t __ret_214; \
+  __ret_214 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_214), (int32x2_t)(vrshrn_n_s64(__s1_214, __p2_214)))); \
+  __ret_214; \
+})
+#else
+#define vrshrn_high_n_s64(__p0_215, __p1_215, __p2_215) __extension__ ({ \
+  int32x2_t __s0_215 = __p0_215; \
+  int64x2_t __s1_215 = __p1_215; \
+  int32x2_t __rev0_215;  __rev0_215 = __builtin_shufflevector(__s0_215, __s0_215, 1, 0); \
+  int64x2_t __rev1_215;  __rev1_215 = __builtin_shufflevector(__s1_215, __s1_215, 1, 0); \
+  int32x4_t __ret_215; \
+  __ret_215 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_215), (int32x2_t)(__noswap_vrshrn_n_s64(__rev1_215, __p2_215)))); \
+  __ret_215 = __builtin_shufflevector(__ret_215, __ret_215, 3, 2, 1, 0); \
+  __ret_215; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrshrn_high_n_s16(__p0_216, __p1_216, __p2_216) __extension__ ({ \
+  int8x8_t __s0_216 = __p0_216; \
+  int16x8_t __s1_216 = __p1_216; \
+  int8x16_t __ret_216; \
+  __ret_216 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_216), (int8x8_t)(vrshrn_n_s16(__s1_216, __p2_216)))); \
+  __ret_216; \
+})
+#else
+#define vrshrn_high_n_s16(__p0_217, __p1_217, __p2_217) __extension__ ({ \
+  int8x8_t __s0_217 = __p0_217; \
+  int16x8_t __s1_217 = __p1_217; \
+  int8x8_t __rev0_217;  __rev0_217 = __builtin_shufflevector(__s0_217, __s0_217, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1_217;  __rev1_217 = __builtin_shufflevector(__s1_217, __s1_217, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_217; \
+  __ret_217 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_217), (int8x8_t)(__noswap_vrshrn_n_s16(__rev1_217, __p2_217)))); \
+  __ret_217 = __builtin_shufflevector(__ret_217, __ret_217, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_217; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrsqrteq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrsqrteq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrsqrteq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrsqrteq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrsqrte_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrsqrte_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrsqrte_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vrsqrted_f64(float64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrsqrted_f64(__p0);
+  return __ret;
+}
+#else
+__ai float64_t vrsqrted_f64(float64_t __p0) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrsqrted_f64(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vrsqrtes_f32(float32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrsqrtes_f32(__p0);
+  return __ret;
+}
+#else
+__ai float32_t vrsqrtes_f32(float32_t __p0) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrsqrtes_f32(__p0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vrsqrtsq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__p0, (int8x16_t)__p1, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vrsqrtsq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vrsqrtsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vrsqrts_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vrsqrts_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vrsqrts_v((int8x8_t)__p0, (int8x8_t)__p1, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64_t vrsqrtsd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrsqrtsd_f64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float64_t vrsqrtsd_f64(float64_t __p0, float64_t __p1) {
+  float64_t __ret;
+  __ret = (float64_t) __builtin_neon_vrsqrtsd_f64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32_t vrsqrtss_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrsqrtss_f32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai float32_t vrsqrtss_f32(float32_t __p0, float32_t __p1) {
+  float32_t __ret;
+  __ret = (float32_t) __builtin_neon_vrsqrtss_f32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vrsrad_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vrsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vrsrad_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vrsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vrsrad_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vrsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vrsrad_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vrsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16(__p0, vrsubhn_u32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vrsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16(__rev0, __noswap_vrsubhn_u32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vrsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32(__p0, vrsubhn_u64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vrsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32(__rev0, __noswap_vrsubhn_u64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vrsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8(__p0, vrsubhn_u16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint8x16_t vrsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8(__rev0, __noswap_vrsubhn_u16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vrsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x8_t __ret;
+  __ret = vcombine_s16(__p0, vrsubhn_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vrsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vcombine_s16(__rev0, __noswap_vrsubhn_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vrsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x4_t __ret;
+  __ret = vcombine_s32(__p0, vrsubhn_s64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vrsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vcombine_s32(__rev0, __noswap_vrsubhn_s64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vrsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x16_t __ret;
+  __ret = vcombine_s8(__p0, vrsubhn_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int8x16_t vrsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __noswap_vcombine_s8(__rev0, __noswap_vrsubhn_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#define __noswap_vset_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vset_lane_i64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsetq_lane_i64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vsetq_lane_f64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vsetq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vsetq_lane_f64(__s0, (int8x16_t)__rev1, __p2); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#define __noswap_vsetq_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __ret; \
+  __ret = (float64x2_t) __builtin_neon_vsetq_lane_f64(__s0, (int8x16_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vset_lane_f64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#else
+#define vset_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vset_lane_f64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#define __noswap_vset_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64_t __s0 = __p0; \
+  float64x1_t __s1 = __p1; \
+  float64x1_t __ret; \
+  __ret = (float64x1_t) __builtin_neon_vset_lane_f64(__s0, (int8x8_t)__s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vshld_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vshld_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vshld_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vshld_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vshld_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vshld_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshld_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vshld_n_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vshld_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vshld_n_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshld_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vshld_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vshld_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vshld_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_high_n_u8(__p0_218, __p1_218) __extension__ ({ \
+  uint8x16_t __s0_218 = __p0_218; \
+  uint16x8_t __ret_218; \
+  __ret_218 = (uint16x8_t)(vshll_n_u8(vget_high_u8(__s0_218), __p1_218)); \
+  __ret_218; \
+})
+#else
+#define vshll_high_n_u8(__p0_219, __p1_219) __extension__ ({ \
+  uint8x16_t __s0_219 = __p0_219; \
+  uint8x16_t __rev0_219;  __rev0_219 = __builtin_shufflevector(__s0_219, __s0_219, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __ret_219; \
+  __ret_219 = (uint16x8_t)(__noswap_vshll_n_u8(__noswap_vget_high_u8(__rev0_219), __p1_219)); \
+  __ret_219 = __builtin_shufflevector(__ret_219, __ret_219, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_219; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_high_n_u32(__p0_220, __p1_220) __extension__ ({ \
+  uint32x4_t __s0_220 = __p0_220; \
+  uint64x2_t __ret_220; \
+  __ret_220 = (uint64x2_t)(vshll_n_u32(vget_high_u32(__s0_220), __p1_220)); \
+  __ret_220; \
+})
+#else
+#define vshll_high_n_u32(__p0_221, __p1_221) __extension__ ({ \
+  uint32x4_t __s0_221 = __p0_221; \
+  uint32x4_t __rev0_221;  __rev0_221 = __builtin_shufflevector(__s0_221, __s0_221, 3, 2, 1, 0); \
+  uint64x2_t __ret_221; \
+  __ret_221 = (uint64x2_t)(__noswap_vshll_n_u32(__noswap_vget_high_u32(__rev0_221), __p1_221)); \
+  __ret_221 = __builtin_shufflevector(__ret_221, __ret_221, 1, 0); \
+  __ret_221; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_high_n_u16(__p0_222, __p1_222) __extension__ ({ \
+  uint16x8_t __s0_222 = __p0_222; \
+  uint32x4_t __ret_222; \
+  __ret_222 = (uint32x4_t)(vshll_n_u16(vget_high_u16(__s0_222), __p1_222)); \
+  __ret_222; \
+})
+#else
+#define vshll_high_n_u16(__p0_223, __p1_223) __extension__ ({ \
+  uint16x8_t __s0_223 = __p0_223; \
+  uint16x8_t __rev0_223;  __rev0_223 = __builtin_shufflevector(__s0_223, __s0_223, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint32x4_t __ret_223; \
+  __ret_223 = (uint32x4_t)(__noswap_vshll_n_u16(__noswap_vget_high_u16(__rev0_223), __p1_223)); \
+  __ret_223 = __builtin_shufflevector(__ret_223, __ret_223, 3, 2, 1, 0); \
+  __ret_223; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_high_n_s8(__p0_224, __p1_224) __extension__ ({ \
+  int8x16_t __s0_224 = __p0_224; \
+  int16x8_t __ret_224; \
+  __ret_224 = (int16x8_t)(vshll_n_s8(vget_high_s8(__s0_224), __p1_224)); \
+  __ret_224; \
+})
+#else
+#define vshll_high_n_s8(__p0_225, __p1_225) __extension__ ({ \
+  int8x16_t __s0_225 = __p0_225; \
+  int8x16_t __rev0_225;  __rev0_225 = __builtin_shufflevector(__s0_225, __s0_225, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __ret_225; \
+  __ret_225 = (int16x8_t)(__noswap_vshll_n_s8(__noswap_vget_high_s8(__rev0_225), __p1_225)); \
+  __ret_225 = __builtin_shufflevector(__ret_225, __ret_225, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_225; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_high_n_s32(__p0_226, __p1_226) __extension__ ({ \
+  int32x4_t __s0_226 = __p0_226; \
+  int64x2_t __ret_226; \
+  __ret_226 = (int64x2_t)(vshll_n_s32(vget_high_s32(__s0_226), __p1_226)); \
+  __ret_226; \
+})
+#else
+#define vshll_high_n_s32(__p0_227, __p1_227) __extension__ ({ \
+  int32x4_t __s0_227 = __p0_227; \
+  int32x4_t __rev0_227;  __rev0_227 = __builtin_shufflevector(__s0_227, __s0_227, 3, 2, 1, 0); \
+  int64x2_t __ret_227; \
+  __ret_227 = (int64x2_t)(__noswap_vshll_n_s32(__noswap_vget_high_s32(__rev0_227), __p1_227)); \
+  __ret_227 = __builtin_shufflevector(__ret_227, __ret_227, 1, 0); \
+  __ret_227; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshll_high_n_s16(__p0_228, __p1_228) __extension__ ({ \
+  int16x8_t __s0_228 = __p0_228; \
+  int32x4_t __ret_228; \
+  __ret_228 = (int32x4_t)(vshll_n_s16(vget_high_s16(__s0_228), __p1_228)); \
+  __ret_228; \
+})
+#else
+#define vshll_high_n_s16(__p0_229, __p1_229) __extension__ ({ \
+  int16x8_t __s0_229 = __p0_229; \
+  int16x8_t __rev0_229;  __rev0_229 = __builtin_shufflevector(__s0_229, __s0_229, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int32x4_t __ret_229; \
+  __ret_229 = (int32x4_t)(__noswap_vshll_n_s16(__noswap_vget_high_s16(__rev0_229), __p1_229)); \
+  __ret_229 = __builtin_shufflevector(__ret_229, __ret_229, 3, 2, 1, 0); \
+  __ret_229; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vshrd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vshrd_n_u64(__p0, __p1) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vshrd_n_u64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vshrd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#else
+#define vshrd_n_s64(__p0, __p1) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vshrd_n_s64(__s0, __p1); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_high_n_u32(__p0_230, __p1_230, __p2_230) __extension__ ({ \
+  uint16x4_t __s0_230 = __p0_230; \
+  uint32x4_t __s1_230 = __p1_230; \
+  uint16x8_t __ret_230; \
+  __ret_230 = (uint16x8_t)(vcombine_u16((uint16x4_t)(__s0_230), (uint16x4_t)(vshrn_n_u32(__s1_230, __p2_230)))); \
+  __ret_230; \
+})
+#else
+#define vshrn_high_n_u32(__p0_231, __p1_231, __p2_231) __extension__ ({ \
+  uint16x4_t __s0_231 = __p0_231; \
+  uint32x4_t __s1_231 = __p1_231; \
+  uint16x4_t __rev0_231;  __rev0_231 = __builtin_shufflevector(__s0_231, __s0_231, 3, 2, 1, 0); \
+  uint32x4_t __rev1_231;  __rev1_231 = __builtin_shufflevector(__s1_231, __s1_231, 3, 2, 1, 0); \
+  uint16x8_t __ret_231; \
+  __ret_231 = (uint16x8_t)(__noswap_vcombine_u16((uint16x4_t)(__rev0_231), (uint16x4_t)(__noswap_vshrn_n_u32(__rev1_231, __p2_231)))); \
+  __ret_231 = __builtin_shufflevector(__ret_231, __ret_231, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_231; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_high_n_u64(__p0_232, __p1_232, __p2_232) __extension__ ({ \
+  uint32x2_t __s0_232 = __p0_232; \
+  uint64x2_t __s1_232 = __p1_232; \
+  uint32x4_t __ret_232; \
+  __ret_232 = (uint32x4_t)(vcombine_u32((uint32x2_t)(__s0_232), (uint32x2_t)(vshrn_n_u64(__s1_232, __p2_232)))); \
+  __ret_232; \
+})
+#else
+#define vshrn_high_n_u64(__p0_233, __p1_233, __p2_233) __extension__ ({ \
+  uint32x2_t __s0_233 = __p0_233; \
+  uint64x2_t __s1_233 = __p1_233; \
+  uint32x2_t __rev0_233;  __rev0_233 = __builtin_shufflevector(__s0_233, __s0_233, 1, 0); \
+  uint64x2_t __rev1_233;  __rev1_233 = __builtin_shufflevector(__s1_233, __s1_233, 1, 0); \
+  uint32x4_t __ret_233; \
+  __ret_233 = (uint32x4_t)(__noswap_vcombine_u32((uint32x2_t)(__rev0_233), (uint32x2_t)(__noswap_vshrn_n_u64(__rev1_233, __p2_233)))); \
+  __ret_233 = __builtin_shufflevector(__ret_233, __ret_233, 3, 2, 1, 0); \
+  __ret_233; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_high_n_u16(__p0_234, __p1_234, __p2_234) __extension__ ({ \
+  uint8x8_t __s0_234 = __p0_234; \
+  uint16x8_t __s1_234 = __p1_234; \
+  uint8x16_t __ret_234; \
+  __ret_234 = (uint8x16_t)(vcombine_u8((uint8x8_t)(__s0_234), (uint8x8_t)(vshrn_n_u16(__s1_234, __p2_234)))); \
+  __ret_234; \
+})
+#else
+#define vshrn_high_n_u16(__p0_235, __p1_235, __p2_235) __extension__ ({ \
+  uint8x8_t __s0_235 = __p0_235; \
+  uint16x8_t __s1_235 = __p1_235; \
+  uint8x8_t __rev0_235;  __rev0_235 = __builtin_shufflevector(__s0_235, __s0_235, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint16x8_t __rev1_235;  __rev1_235 = __builtin_shufflevector(__s1_235, __s1_235, 7, 6, 5, 4, 3, 2, 1, 0); \
+  uint8x16_t __ret_235; \
+  __ret_235 = (uint8x16_t)(__noswap_vcombine_u8((uint8x8_t)(__rev0_235), (uint8x8_t)(__noswap_vshrn_n_u16(__rev1_235, __p2_235)))); \
+  __ret_235 = __builtin_shufflevector(__ret_235, __ret_235, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_235; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_high_n_s32(__p0_236, __p1_236, __p2_236) __extension__ ({ \
+  int16x4_t __s0_236 = __p0_236; \
+  int32x4_t __s1_236 = __p1_236; \
+  int16x8_t __ret_236; \
+  __ret_236 = (int16x8_t)(vcombine_s16((int16x4_t)(__s0_236), (int16x4_t)(vshrn_n_s32(__s1_236, __p2_236)))); \
+  __ret_236; \
+})
+#else
+#define vshrn_high_n_s32(__p0_237, __p1_237, __p2_237) __extension__ ({ \
+  int16x4_t __s0_237 = __p0_237; \
+  int32x4_t __s1_237 = __p1_237; \
+  int16x4_t __rev0_237;  __rev0_237 = __builtin_shufflevector(__s0_237, __s0_237, 3, 2, 1, 0); \
+  int32x4_t __rev1_237;  __rev1_237 = __builtin_shufflevector(__s1_237, __s1_237, 3, 2, 1, 0); \
+  int16x8_t __ret_237; \
+  __ret_237 = (int16x8_t)(__noswap_vcombine_s16((int16x4_t)(__rev0_237), (int16x4_t)(__noswap_vshrn_n_s32(__rev1_237, __p2_237)))); \
+  __ret_237 = __builtin_shufflevector(__ret_237, __ret_237, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_237; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_high_n_s64(__p0_238, __p1_238, __p2_238) __extension__ ({ \
+  int32x2_t __s0_238 = __p0_238; \
+  int64x2_t __s1_238 = __p1_238; \
+  int32x4_t __ret_238; \
+  __ret_238 = (int32x4_t)(vcombine_s32((int32x2_t)(__s0_238), (int32x2_t)(vshrn_n_s64(__s1_238, __p2_238)))); \
+  __ret_238; \
+})
+#else
+#define vshrn_high_n_s64(__p0_239, __p1_239, __p2_239) __extension__ ({ \
+  int32x2_t __s0_239 = __p0_239; \
+  int64x2_t __s1_239 = __p1_239; \
+  int32x2_t __rev0_239;  __rev0_239 = __builtin_shufflevector(__s0_239, __s0_239, 1, 0); \
+  int64x2_t __rev1_239;  __rev1_239 = __builtin_shufflevector(__s1_239, __s1_239, 1, 0); \
+  int32x4_t __ret_239; \
+  __ret_239 = (int32x4_t)(__noswap_vcombine_s32((int32x2_t)(__rev0_239), (int32x2_t)(__noswap_vshrn_n_s64(__rev1_239, __p2_239)))); \
+  __ret_239 = __builtin_shufflevector(__ret_239, __ret_239, 3, 2, 1, 0); \
+  __ret_239; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vshrn_high_n_s16(__p0_240, __p1_240, __p2_240) __extension__ ({ \
+  int8x8_t __s0_240 = __p0_240; \
+  int16x8_t __s1_240 = __p1_240; \
+  int8x16_t __ret_240; \
+  __ret_240 = (int8x16_t)(vcombine_s8((int8x8_t)(__s0_240), (int8x8_t)(vshrn_n_s16(__s1_240, __p2_240)))); \
+  __ret_240; \
+})
+#else
+#define vshrn_high_n_s16(__p0_241, __p1_241, __p2_241) __extension__ ({ \
+  int8x8_t __s0_241 = __p0_241; \
+  int16x8_t __s1_241 = __p1_241; \
+  int8x8_t __rev0_241;  __rev0_241 = __builtin_shufflevector(__s0_241, __s0_241, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16x8_t __rev1_241;  __rev1_241 = __builtin_shufflevector(__s1_241, __s1_241, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int8x16_t __ret_241; \
+  __ret_241 = (int8x16_t)(__noswap_vcombine_s8((int8x8_t)(__rev0_241), (int8x8_t)(__noswap_vshrn_n_s16(__rev1_241, __p2_241)))); \
+  __ret_241 = __builtin_shufflevector(__ret_241, __ret_241, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_241; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vslid_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vslid_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vslid_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vslid_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vslid_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vslid_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vslid_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vslid_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsli_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#else
+#define vsli_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vsli_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsliq_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 38); \
+  __ret; \
+})
+#else
+#define vsliq_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsliq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 38); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8_t vsqaddb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vsqaddb_u8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint8_t vsqaddb_u8(uint8_t __p0, uint8_t __p1) {
+  uint8_t __ret;
+  __ret = (uint8_t) __builtin_neon_vsqaddb_u8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32_t vsqadds_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vsqadds_u32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint32_t vsqadds_u32(uint32_t __p0, uint32_t __p1) {
+  uint32_t __ret;
+  __ret = (uint32_t) __builtin_neon_vsqadds_u32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vsqaddd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vsqaddd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vsqaddd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vsqaddd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16_t vsqaddh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vsqaddh_u16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint16_t vsqaddh_u16(uint16_t __p0, uint16_t __p1) {
+  uint16_t __ret;
+  __ret = (uint16_t) __builtin_neon_vsqaddh_u16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vsqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 48);
+  return __ret;
+}
+#else
+__ai uint8x16_t vsqaddq_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = (uint8x16_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 48);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 50);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsqaddq_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 50);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vsqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vsqaddq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vsqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 49);
+  return __ret;
+}
+#else
+__ai uint16x8_t vsqaddq_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t) __builtin_neon_vsqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 49);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vsqadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 16);
+  return __ret;
+}
+#else
+__ai uint8x8_t vsqadd_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = (uint8x8_t) __builtin_neon_vsqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 16);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vsqadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 18);
+  return __ret;
+}
+#else
+__ai uint32x2_t vsqadd_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = (uint32x2_t) __builtin_neon_vsqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 18);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vsqadd_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vsqadd_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vsqadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vsqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 17);
+  return __ret;
+}
+#else
+__ai uint16x4_t vsqadd_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = (uint16x4_t) __builtin_neon_vsqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 17);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vsqrtq_f64(float64x2_t __p0) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vsqrtq_v((int8x16_t)__p0, 42);
+  return __ret;
+}
+#else
+__ai float64x2_t vsqrtq_f64(float64x2_t __p0) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vsqrtq_v((int8x16_t)__rev0, 42);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vsqrtq_f32(float32x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vsqrtq_v((int8x16_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vsqrtq_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vsqrtq_v((int8x16_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vsqrt_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#else
+__ai float64x1_t vsqrt_f64(float64x1_t __p0) {
+  float64x1_t __ret;
+  __ret = (float64x1_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 10);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vsqrt_f32(float32x2_t __p0) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vsqrt_v((int8x8_t)__p0, 9);
+  return __ret;
+}
+#else
+__ai float32x2_t vsqrt_f32(float32x2_t __p0) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vsqrt_v((int8x8_t)__rev0, 9);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vsrad_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vsrad_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vsrad_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vsrad_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vsrad_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vsrad_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsrid_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vsrid_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vsrid_n_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64_t __s0 = __p0; \
+  uint64_t __s1 = __p1; \
+  uint64_t __ret; \
+  __ret = (uint64_t) __builtin_neon_vsrid_n_u64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsrid_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vsrid_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#else
+#define vsrid_n_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64_t __s0 = __p0; \
+  int64_t __s1 = __p1; \
+  int64_t __ret; \
+  __ret = (int64_t) __builtin_neon_vsrid_n_s64(__s0, __s1, __p2); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsri_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#else
+#define vsri_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s0 = __p0; \
+  poly64x1_t __s1 = __p1; \
+  poly64x1_t __ret; \
+  __ret = (poly64x1_t) __builtin_neon_vsri_n_v((int8x8_t)__s0, (int8x8_t)__s1, __p2, 6); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsriq_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__s0, (int8x16_t)__s1, __p2, 38); \
+  __ret; \
+})
+#else
+#define vsriq_n_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s0 = __p0; \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  poly64x2_t __ret; \
+  __ret = (poly64x2_t) __builtin_neon_vsriq_n_v((int8x16_t)__rev0, (int8x16_t)__rev1, __p2, 38); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 6); \
+})
+#else
+#define vst1_p64(__p0, __p1) __extension__ ({ \
+  poly64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 38); \
+})
+#else
+#define vst1q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 42); \
+})
+#else
+#define vst1q_f64(__p0, __p1) __extension__ ({ \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 10); \
+})
+#else
+#define vst1_f64(__p0, __p1) __extension__ ({ \
+  float64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \
+})
+#else
+#define vst1_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 38); \
+})
+#else
+#define vst1q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2_t __s1 = __p1; \
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 42); \
+})
+#else
+#define vst1q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2_t __s1 = __p1; \
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \
+})
+#else
+#define vst1_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1_t __s1 = __p1; \
+  __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p8_x2(__p0, __p1) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 4); \
+})
+#else
+#define vst1_p8_x2(__p0, __p1) __extension__ ({ \
+  poly8x8x2_t __s1 = __p1; \
+  poly8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p64_x2(__p0, __p1) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \
+})
+#else
+#define vst1_p64_x2(__p0, __p1) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p16_x2(__p0, __p1) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 5); \
+})
+#else
+#define vst1_p16_x2(__p0, __p1) __extension__ ({ \
+  poly16x4x2_t __s1 = __p1; \
+  poly16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p8_x2(__p0, __p1) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 36); \
+})
+#else
+#define vst1q_p8_x2(__p0, __p1) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  poly8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p64_x2(__p0, __p1) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 38); \
+})
+#else
+#define vst1q_p64_x2(__p0, __p1) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  poly64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p16_x2(__p0, __p1) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 37); \
+})
+#else
+#define vst1q_p16_x2(__p0, __p1) __extension__ ({ \
+  poly16x8x2_t __s1 = __p1; \
+  poly16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u8_x2(__p0, __p1) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 48); \
+})
+#else
+#define vst1q_u8_x2(__p0, __p1) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  uint8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u32_x2(__p0, __p1) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 50); \
+})
+#else
+#define vst1q_u32_x2(__p0, __p1) __extension__ ({ \
+  uint32x4x2_t __s1 = __p1; \
+  uint32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u64_x2(__p0, __p1) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 51); \
+})
+#else
+#define vst1q_u64_x2(__p0, __p1) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  uint64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u16_x2(__p0, __p1) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 49); \
+})
+#else
+#define vst1q_u16_x2(__p0, __p1) __extension__ ({ \
+  uint16x8x2_t __s1 = __p1; \
+  uint16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s8_x2(__p0, __p1) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 32); \
+})
+#else
+#define vst1q_s8_x2(__p0, __p1) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  int8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f64_x2(__p0, __p1) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 42); \
+})
+#else
+#define vst1q_f64_x2(__p0, __p1) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  float64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f32_x2(__p0, __p1) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 41); \
+})
+#else
+#define vst1q_f32_x2(__p0, __p1) __extension__ ({ \
+  float32x4x2_t __s1 = __p1; \
+  float32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 40); \
+})
+#else
+#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \
+  float16x8x2_t __s1 = __p1; \
+  float16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s32_x2(__p0, __p1) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 34); \
+})
+#else
+#define vst1q_s32_x2(__p0, __p1) __extension__ ({ \
+  int32x4x2_t __s1 = __p1; \
+  int32x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s64_x2(__p0, __p1) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 35); \
+})
+#else
+#define vst1q_s64_x2(__p0, __p1) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  int64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s16_x2(__p0, __p1) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 33); \
+})
+#else
+#define vst1q_s16_x2(__p0, __p1) __extension__ ({ \
+  int16x8x2_t __s1 = __p1; \
+  int16x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u8_x2(__p0, __p1) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 16); \
+})
+#else
+#define vst1_u8_x2(__p0, __p1) __extension__ ({ \
+  uint8x8x2_t __s1 = __p1; \
+  uint8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u32_x2(__p0, __p1) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 18); \
+})
+#else
+#define vst1_u32_x2(__p0, __p1) __extension__ ({ \
+  uint32x2x2_t __s1 = __p1; \
+  uint32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u64_x2(__p0, __p1) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \
+})
+#else
+#define vst1_u64_x2(__p0, __p1) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u16_x2(__p0, __p1) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 17); \
+})
+#else
+#define vst1_u16_x2(__p0, __p1) __extension__ ({ \
+  uint16x4x2_t __s1 = __p1; \
+  uint16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s8_x2(__p0, __p1) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 0); \
+})
+#else
+#define vst1_s8_x2(__p0, __p1) __extension__ ({ \
+  int8x8x2_t __s1 = __p1; \
+  int8x8x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f64_x2(__p0, __p1) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 10); \
+})
+#else
+#define vst1_f64_x2(__p0, __p1) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f32_x2(__p0, __p1) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 9); \
+})
+#else
+#define vst1_f32_x2(__p0, __p1) __extension__ ({ \
+  float32x2x2_t __s1 = __p1; \
+  float32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f16_x2(__p0, __p1) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 8); \
+})
+#else
+#define vst1_f16_x2(__p0, __p1) __extension__ ({ \
+  float16x4x2_t __s1 = __p1; \
+  float16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s32_x2(__p0, __p1) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 2); \
+})
+#else
+#define vst1_s32_x2(__p0, __p1) __extension__ ({ \
+  int32x2x2_t __s1 = __p1; \
+  int32x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s64_x2(__p0, __p1) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 3); \
+})
+#else
+#define vst1_s64_x2(__p0, __p1) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s16_x2(__p0, __p1) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 1); \
+})
+#else
+#define vst1_s16_x2(__p0, __p1) __extension__ ({ \
+  int16x4x2_t __s1 = __p1; \
+  int16x4x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p8_x3(__p0, __p1) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 4); \
+})
+#else
+#define vst1_p8_x3(__p0, __p1) __extension__ ({ \
+  poly8x8x3_t __s1 = __p1; \
+  poly8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p64_x3(__p0, __p1) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \
+})
+#else
+#define vst1_p64_x3(__p0, __p1) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p16_x3(__p0, __p1) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 5); \
+})
+#else
+#define vst1_p16_x3(__p0, __p1) __extension__ ({ \
+  poly16x4x3_t __s1 = __p1; \
+  poly16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p8_x3(__p0, __p1) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 36); \
+})
+#else
+#define vst1q_p8_x3(__p0, __p1) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  poly8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p64_x3(__p0, __p1) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 38); \
+})
+#else
+#define vst1q_p64_x3(__p0, __p1) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  poly64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p16_x3(__p0, __p1) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 37); \
+})
+#else
+#define vst1q_p16_x3(__p0, __p1) __extension__ ({ \
+  poly16x8x3_t __s1 = __p1; \
+  poly16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u8_x3(__p0, __p1) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 48); \
+})
+#else
+#define vst1q_u8_x3(__p0, __p1) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  uint8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u32_x3(__p0, __p1) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 50); \
+})
+#else
+#define vst1q_u32_x3(__p0, __p1) __extension__ ({ \
+  uint32x4x3_t __s1 = __p1; \
+  uint32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u64_x3(__p0, __p1) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 51); \
+})
+#else
+#define vst1q_u64_x3(__p0, __p1) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  uint64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u16_x3(__p0, __p1) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 49); \
+})
+#else
+#define vst1q_u16_x3(__p0, __p1) __extension__ ({ \
+  uint16x8x3_t __s1 = __p1; \
+  uint16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s8_x3(__p0, __p1) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 32); \
+})
+#else
+#define vst1q_s8_x3(__p0, __p1) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  int8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f64_x3(__p0, __p1) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 42); \
+})
+#else
+#define vst1q_f64_x3(__p0, __p1) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  float64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f32_x3(__p0, __p1) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 41); \
+})
+#else
+#define vst1q_f32_x3(__p0, __p1) __extension__ ({ \
+  float32x4x3_t __s1 = __p1; \
+  float32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \
+})
+#else
+#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \
+  float16x8x3_t __s1 = __p1; \
+  float16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s32_x3(__p0, __p1) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 34); \
+})
+#else
+#define vst1q_s32_x3(__p0, __p1) __extension__ ({ \
+  int32x4x3_t __s1 = __p1; \
+  int32x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s64_x3(__p0, __p1) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 35); \
+})
+#else
+#define vst1q_s64_x3(__p0, __p1) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  int64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s16_x3(__p0, __p1) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 33); \
+})
+#else
+#define vst1q_s16_x3(__p0, __p1) __extension__ ({ \
+  int16x8x3_t __s1 = __p1; \
+  int16x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u8_x3(__p0, __p1) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 16); \
+})
+#else
+#define vst1_u8_x3(__p0, __p1) __extension__ ({ \
+  uint8x8x3_t __s1 = __p1; \
+  uint8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u32_x3(__p0, __p1) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 18); \
+})
+#else
+#define vst1_u32_x3(__p0, __p1) __extension__ ({ \
+  uint32x2x3_t __s1 = __p1; \
+  uint32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u64_x3(__p0, __p1) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \
+})
+#else
+#define vst1_u64_x3(__p0, __p1) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u16_x3(__p0, __p1) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 17); \
+})
+#else
+#define vst1_u16_x3(__p0, __p1) __extension__ ({ \
+  uint16x4x3_t __s1 = __p1; \
+  uint16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s8_x3(__p0, __p1) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 0); \
+})
+#else
+#define vst1_s8_x3(__p0, __p1) __extension__ ({ \
+  int8x8x3_t __s1 = __p1; \
+  int8x8x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f64_x3(__p0, __p1) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \
+})
+#else
+#define vst1_f64_x3(__p0, __p1) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f32_x3(__p0, __p1) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 9); \
+})
+#else
+#define vst1_f32_x3(__p0, __p1) __extension__ ({ \
+  float32x2x3_t __s1 = __p1; \
+  float32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f16_x3(__p0, __p1) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \
+})
+#else
+#define vst1_f16_x3(__p0, __p1) __extension__ ({ \
+  float16x4x3_t __s1 = __p1; \
+  float16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s32_x3(__p0, __p1) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 2); \
+})
+#else
+#define vst1_s32_x3(__p0, __p1) __extension__ ({ \
+  int32x2x3_t __s1 = __p1; \
+  int32x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s64_x3(__p0, __p1) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \
+})
+#else
+#define vst1_s64_x3(__p0, __p1) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s16_x3(__p0, __p1) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 1); \
+})
+#else
+#define vst1_s16_x3(__p0, __p1) __extension__ ({ \
+  int16x4x3_t __s1 = __p1; \
+  int16x4x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p8_x4(__p0, __p1) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 4); \
+})
+#else
+#define vst1_p8_x4(__p0, __p1) __extension__ ({ \
+  poly8x8x4_t __s1 = __p1; \
+  poly8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 4); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p64_x4(__p0, __p1) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \
+})
+#else
+#define vst1_p64_x4(__p0, __p1) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_p16_x4(__p0, __p1) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 5); \
+})
+#else
+#define vst1_p16_x4(__p0, __p1) __extension__ ({ \
+  poly16x4x4_t __s1 = __p1; \
+  poly16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 5); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p8_x4(__p0, __p1) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 36); \
+})
+#else
+#define vst1q_p8_x4(__p0, __p1) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  poly8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p64_x4(__p0, __p1) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 38); \
+})
+#else
+#define vst1q_p64_x4(__p0, __p1) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  poly64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_p16_x4(__p0, __p1) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 37); \
+})
+#else
+#define vst1q_p16_x4(__p0, __p1) __extension__ ({ \
+  poly16x8x4_t __s1 = __p1; \
+  poly16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 37); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u8_x4(__p0, __p1) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 48); \
+})
+#else
+#define vst1q_u8_x4(__p0, __p1) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  uint8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u32_x4(__p0, __p1) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 50); \
+})
+#else
+#define vst1q_u32_x4(__p0, __p1) __extension__ ({ \
+  uint32x4x4_t __s1 = __p1; \
+  uint32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 50); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u64_x4(__p0, __p1) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 51); \
+})
+#else
+#define vst1q_u64_x4(__p0, __p1) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  uint64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_u16_x4(__p0, __p1) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 49); \
+})
+#else
+#define vst1q_u16_x4(__p0, __p1) __extension__ ({ \
+  uint16x8x4_t __s1 = __p1; \
+  uint16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 49); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s8_x4(__p0, __p1) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 32); \
+})
+#else
+#define vst1q_s8_x4(__p0, __p1) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  int8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f64_x4(__p0, __p1) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 42); \
+})
+#else
+#define vst1q_f64_x4(__p0, __p1) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  float64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f32_x4(__p0, __p1) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 41); \
+})
+#else
+#define vst1q_f32_x4(__p0, __p1) __extension__ ({ \
+  float32x4x4_t __s1 = __p1; \
+  float32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 41); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \
+})
+#else
+#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \
+  float16x8x4_t __s1 = __p1; \
+  float16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s32_x4(__p0, __p1) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 34); \
+})
+#else
+#define vst1q_s32_x4(__p0, __p1) __extension__ ({ \
+  int32x4x4_t __s1 = __p1; \
+  int32x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 34); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s64_x4(__p0, __p1) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 35); \
+})
+#else
+#define vst1q_s64_x4(__p0, __p1) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  int64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1q_s16_x4(__p0, __p1) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 33); \
+})
+#else
+#define vst1q_s16_x4(__p0, __p1) __extension__ ({ \
+  int16x8x4_t __s1 = __p1; \
+  int16x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 33); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u8_x4(__p0, __p1) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 16); \
+})
+#else
+#define vst1_u8_x4(__p0, __p1) __extension__ ({ \
+  uint8x8x4_t __s1 = __p1; \
+  uint8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 16); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u32_x4(__p0, __p1) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 18); \
+})
+#else
+#define vst1_u32_x4(__p0, __p1) __extension__ ({ \
+  uint32x2x4_t __s1 = __p1; \
+  uint32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 18); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u64_x4(__p0, __p1) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \
+})
+#else
+#define vst1_u64_x4(__p0, __p1) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_u16_x4(__p0, __p1) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 17); \
+})
+#else
+#define vst1_u16_x4(__p0, __p1) __extension__ ({ \
+  uint16x4x4_t __s1 = __p1; \
+  uint16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 17); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s8_x4(__p0, __p1) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 0); \
+})
+#else
+#define vst1_s8_x4(__p0, __p1) __extension__ ({ \
+  int8x8x4_t __s1 = __p1; \
+  int8x8x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, (int8x8_t)__rev1.val[0], (int8x8_t)__rev1.val[1], (int8x8_t)__rev1.val[2], (int8x8_t)__rev1.val[3], 0); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f64_x4(__p0, __p1) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \
+})
+#else
+#define vst1_f64_x4(__p0, __p1) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f32_x4(__p0, __p1) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 9); \
+})
+#else
+#define vst1_f32_x4(__p0, __p1) __extension__ ({ \
+  float32x2x4_t __s1 = __p1; \
+  float32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 9); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_f16_x4(__p0, __p1) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \
+})
+#else
+#define vst1_f16_x4(__p0, __p1) __extension__ ({ \
+  float16x4x4_t __s1 = __p1; \
+  float16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s32_x4(__p0, __p1) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 2); \
+})
+#else
+#define vst1_s32_x4(__p0, __p1) __extension__ ({ \
+  int32x2x4_t __s1 = __p1; \
+  int32x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 2); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s64_x4(__p0, __p1) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \
+})
+#else
+#define vst1_s64_x4(__p0, __p1) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst1_s16_x4(__p0, __p1) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 1); \
+})
+#else
+#define vst1_s16_x4(__p0, __p1) __extension__ ({ \
+  int16x4x4_t __s1 = __p1; \
+  int16x4x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
+  __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_p64(__p0, __p1) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \
+})
+#else
+#define vst2_p64(__p0, __p1) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 38); \
+})
+#else
+#define vst2q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  poly64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], 51); \
+})
+#else
+#define vst2q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  uint64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_f64(__p0, __p1) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 42); \
+})
+#else
+#define vst2q_f64(__p0, __p1) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  float64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_s64(__p0, __p1) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 35); \
+})
+#else
+#define vst2q_s64(__p0, __p1) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  int64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_f64(__p0, __p1) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 10); \
+})
+#else
+#define vst2_f64(__p0, __p1) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \
+})
+#else
+#define vst2_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 36); \
+})
+#else
+#define vst2q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x2_t __s1 = __p1; \
+  poly8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 38); \
+})
+#else
+#define vst2q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x2_t __s1 = __p1; \
+  poly64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 48); \
+})
+#else
+#define vst2q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x2_t __s1 = __p1; \
+  uint8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 51); \
+})
+#else
+#define vst2q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x2_t __s1 = __p1; \
+  uint64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], __p2, 32); \
+})
+#else
+#define vst2q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x2_t __s1 = __p1; \
+  int8x16x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], __p2, 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 42); \
+})
+#else
+#define vst2q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x2_t __s1 = __p1; \
+  float64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 35); \
+})
+#else
+#define vst2q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x2_t __s1 = __p1; \
+  int64x2x2_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \
+})
+#else
+#define vst2_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], __p2, 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 10); \
+})
+#else
+#define vst2_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst2_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 3); \
+})
+#else
+#define vst2_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x2_t __s1 = __p1; \
+  __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_p64(__p0, __p1) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \
+})
+#else
+#define vst3_p64(__p0, __p1) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 38); \
+})
+#else
+#define vst3q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  poly64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], 51); \
+})
+#else
+#define vst3q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  uint64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_f64(__p0, __p1) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 42); \
+})
+#else
+#define vst3q_f64(__p0, __p1) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  float64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_s64(__p0, __p1) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 35); \
+})
+#else
+#define vst3q_s64(__p0, __p1) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  int64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_f64(__p0, __p1) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \
+})
+#else
+#define vst3_f64(__p0, __p1) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \
+})
+#else
+#define vst3_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 36); \
+})
+#else
+#define vst3q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x3_t __s1 = __p1; \
+  poly8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 38); \
+})
+#else
+#define vst3q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x3_t __s1 = __p1; \
+  poly64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 48); \
+})
+#else
+#define vst3q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x3_t __s1 = __p1; \
+  uint8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 51); \
+})
+#else
+#define vst3q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x3_t __s1 = __p1; \
+  uint64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], __p2, 32); \
+})
+#else
+#define vst3q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x3_t __s1 = __p1; \
+  int8x16x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], __p2, 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 42); \
+})
+#else
+#define vst3q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x3_t __s1 = __p1; \
+  float64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 35); \
+})
+#else
+#define vst3q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x3_t __s1 = __p1; \
+  int64x2x3_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \
+})
+#else
+#define vst3_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], __p2, 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \
+})
+#else
+#define vst3_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst3_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \
+})
+#else
+#define vst3_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x3_t __s1 = __p1; \
+  __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_p64(__p0, __p1) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \
+})
+#else
+#define vst4_p64(__p0, __p1) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 38); \
+})
+#else
+#define vst4q_p64(__p0, __p1) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  poly64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], 51); \
+})
+#else
+#define vst4q_u64(__p0, __p1) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  uint64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_f64(__p0, __p1) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 42); \
+})
+#else
+#define vst4q_f64(__p0, __p1) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  float64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_s64(__p0, __p1) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 35); \
+})
+#else
+#define vst4q_s64(__p0, __p1) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  int64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_f64(__p0, __p1) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \
+})
+#else
+#define vst4_f64(__p0, __p1) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \
+})
+#else
+#define vst4_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 6); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 36); \
+})
+#else
+#define vst4q_lane_p8(__p0, __p1, __p2) __extension__ ({ \
+  poly8x16x4_t __s1 = __p1; \
+  poly8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 36); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 38); \
+})
+#else
+#define vst4q_lane_p64(__p0, __p1, __p2) __extension__ ({ \
+  poly64x2x4_t __s1 = __p1; \
+  poly64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 38); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 48); \
+})
+#else
+#define vst4q_lane_u8(__p0, __p1, __p2) __extension__ ({ \
+  uint8x16x4_t __s1 = __p1; \
+  uint8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 48); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 51); \
+})
+#else
+#define vst4q_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x2x4_t __s1 = __p1; \
+  uint64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 51); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__s1.val[0], (int8x16_t)__s1.val[1], (int8x16_t)__s1.val[2], (int8x16_t)__s1.val[3], __p2, 32); \
+})
+#else
+#define vst4q_lane_s8(__p0, __p1, __p2) __extension__ ({ \
+  int8x16x4_t __s1 = __p1; \
+  int8x16x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, (int8x16_t)__rev1.val[0], (int8x16_t)__rev1.val[1], (int8x16_t)__rev1.val[2], (int8x16_t)__rev1.val[3], __p2, 32); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 42); \
+})
+#else
+#define vst4q_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x2x4_t __s1 = __p1; \
+  float64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 42); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 35); \
+})
+#else
+#define vst4q_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x2x4_t __s1 = __p1; \
+  int64x2x4_t __rev1; \
+  __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 1, 0); \
+  __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 1, 0); \
+  __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 1, 0); \
+  __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 1, 0); \
+  __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 35); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \
+})
+#else
+#define vst4_lane_u64(__p0, __p1, __p2) __extension__ ({ \
+  uint64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, (int8x8_t)__s1.val[0], (int8x8_t)__s1.val[1], (int8x8_t)__s1.val[2], (int8x8_t)__s1.val[3], __p2, 19); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \
+})
+#else
+#define vst4_lane_f64(__p0, __p1, __p2) __extension__ ({ \
+  float64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 10); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vst4_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \
+})
+#else
+#define vst4_lane_s64(__p0, __p1, __p2) __extension__ ({ \
+  int64x1x4_t __s1 = __p1; \
+  __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 3); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vstrq_p128(__p0, __p1) __extension__ ({ \
+  poly128_t __s1 = __p1; \
+  __builtin_neon_vstrq_p128(__p0, __s1); \
+})
+#else
+#define vstrq_p128(__p0, __p1) __extension__ ({ \
+  poly128_t __s1 = __p1; \
+  __builtin_neon_vstrq_p128(__p0, __s1); \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vsubd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vsubd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vsubd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vsubd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vsubd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vsubd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vsubd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vsubd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vsubq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai float64x2_t vsubq_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __rev0 - __rev1;
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x1_t vsub_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#else
+__ai float64x1_t vsub_f64(float64x1_t __p0, float64x1_t __p1) {
+  float64x1_t __ret;
+  __ret = __p0 - __p1;
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x8_t __ret;
+  __ret = vcombine_u16(__p0, vsubhn_u32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vsubhn_high_u32(uint16x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vcombine_u16(__rev0, __noswap_vsubhn_u32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x4_t __ret;
+  __ret = vcombine_u32(__p0, vsubhn_u64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vsubhn_high_u64(uint32x2_t __p0, uint64x2_t __p1, uint64x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vcombine_u32(__rev0, __noswap_vsubhn_u64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x16_t __ret;
+  __ret = vcombine_u8(__p0, vsubhn_u16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai uint8x16_t vsubhn_high_u16(uint8x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __noswap_vcombine_u8(__rev0, __noswap_vsubhn_u16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x8_t __ret;
+  __ret = vcombine_s16(__p0, vsubhn_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vsubhn_high_s32(int16x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vcombine_s16(__rev0, __noswap_vsubhn_s32(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x4_t __ret;
+  __ret = vcombine_s32(__p0, vsubhn_s64(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vsubhn_high_s64(int32x2_t __p0, int64x2_t __p1, int64x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vcombine_s32(__rev0, __noswap_vsubhn_s64(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x16_t __ret;
+  __ret = vcombine_s8(__p0, vsubhn_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int8x16_t vsubhn_high_s16(int8x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __noswap_vcombine_s8(__rev0, __noswap_vsubhn_s16(__rev1, __rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsubl_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = vmovl_high_u8(__p0) - vmovl_high_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vsubl_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmovl_high_u8(__rev0) - __noswap_vmovl_high_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vsubl_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = vmovl_high_u32(__p0) - vmovl_high_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vsubl_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmovl_high_u32(__rev0) - __noswap_vmovl_high_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsubl_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = vmovl_high_u16(__p0) - vmovl_high_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsubl_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmovl_high_u16(__rev0) - __noswap_vmovl_high_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vsubl_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = vmovl_high_s8(__p0) - vmovl_high_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vsubl_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmovl_high_s8(__rev0) - __noswap_vmovl_high_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vsubl_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = vmovl_high_s32(__p0) - vmovl_high_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vsubl_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmovl_high_s32(__rev0) - __noswap_vmovl_high_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vsubl_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = vmovl_high_s16(__p0) - vmovl_high_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vsubl_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmovl_high_s16(__rev0) - __noswap_vmovl_high_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vsubw_high_u8(uint16x8_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 - vmovl_high_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vsubw_high_u8(uint16x8_t __p0, uint8x16_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 - __noswap_vmovl_high_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vsubw_high_u32(uint64x2_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 - vmovl_high_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vsubw_high_u32(uint64x2_t __p0, uint32x4_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 - __noswap_vmovl_high_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vsubw_high_u16(uint32x4_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 - vmovl_high_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vsubw_high_u16(uint32x4_t __p0, uint16x8_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __noswap_vmovl_high_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vsubw_high_s8(int16x8_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 - vmovl_high_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vsubw_high_s8(int16x8_t __p0, int8x16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 - __noswap_vmovl_high_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vsubw_high_s32(int64x2_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 - vmovl_high_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vsubw_high_s32(int64x2_t __p0, int32x4_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 - __noswap_vmovl_high_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vsubw_high_s16(int32x4_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 - vmovl_high_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vsubw_high_s16(int32x4_t __p0, int16x8_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __noswap_vmovl_high_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtrn1_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtrn1_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vtrn1_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6);
+  return __ret;
+}
+#else
+__ai poly16x4_t vtrn1_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vtrn1q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30);
+  return __ret;
+}
+#else
+__ai poly8x16_t vtrn1q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vtrn1q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai poly64x2_t vtrn1q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vtrn1q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14);
+  return __ret;
+}
+#else
+__ai poly16x8_t vtrn1q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vtrn1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30);
+  return __ret;
+}
+#else
+__ai uint8x16_t vtrn1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vtrn1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6);
+  return __ret;
+}
+#else
+__ai uint32x4_t vtrn1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vtrn1q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vtrn1q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vtrn1q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14);
+  return __ret;
+}
+#else
+__ai uint16x8_t vtrn1q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vtrn1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30);
+  return __ret;
+}
+#else
+__ai int8x16_t vtrn1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vtrn1q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai float64x2_t vtrn1q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vtrn1q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6);
+  return __ret;
+}
+#else
+__ai float32x4_t vtrn1q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vtrn1q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6);
+  return __ret;
+}
+#else
+__ai int32x4_t vtrn1q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vtrn1q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai int64x2_t vtrn1q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vtrn1q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14);
+  return __ret;
+}
+#else
+__ai int16x8_t vtrn1q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtrn1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtrn1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vtrn1_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai uint32x2_t vtrn1_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vtrn1_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6);
+  return __ret;
+}
+#else
+__ai uint16x4_t vtrn1_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtrn1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 2, 10, 4, 12, 6, 14);
+  return __ret;
+}
+#else
+__ai int8x8_t vtrn1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 2, 10, 4, 12, 6, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vtrn1_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai float32x2_t vtrn1_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vtrn1_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vtrn1_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vtrn1_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 2, 6);
+  return __ret;
+}
+#else
+__ai int16x4_t vtrn1_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 2, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vtrn2_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15);
+  return __ret;
+}
+#else
+__ai poly8x8_t vtrn2_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vtrn2_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7);
+  return __ret;
+}
+#else
+__ai poly16x4_t vtrn2_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vtrn2q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31);
+  return __ret;
+}
+#else
+__ai poly8x16_t vtrn2q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vtrn2q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai poly64x2_t vtrn2q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vtrn2q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15);
+  return __ret;
+}
+#else
+__ai poly16x8_t vtrn2q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vtrn2q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31);
+  return __ret;
+}
+#else
+__ai uint8x16_t vtrn2q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vtrn2q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7);
+  return __ret;
+}
+#else
+__ai uint32x4_t vtrn2q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vtrn2q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai uint64x2_t vtrn2q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vtrn2q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15);
+  return __ret;
+}
+#else
+__ai uint16x8_t vtrn2q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vtrn2q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31);
+  return __ret;
+}
+#else
+__ai int8x16_t vtrn2q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vtrn2q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai float64x2_t vtrn2q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vtrn2q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7);
+  return __ret;
+}
+#else
+__ai float32x4_t vtrn2q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vtrn2q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7);
+  return __ret;
+}
+#else
+__ai int32x4_t vtrn2q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vtrn2q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai int64x2_t vtrn2q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vtrn2q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15);
+  return __ret;
+}
+#else
+__ai int16x8_t vtrn2q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vtrn2_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15);
+  return __ret;
+}
+#else
+__ai uint8x8_t vtrn2_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vtrn2_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai uint32x2_t vtrn2_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vtrn2_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7);
+  return __ret;
+}
+#else
+__ai uint16x4_t vtrn2_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vtrn2_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 9, 3, 11, 5, 13, 7, 15);
+  return __ret;
+}
+#else
+__ai int8x8_t vtrn2_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 9, 3, 11, 5, 13, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vtrn2_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai float32x2_t vtrn2_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vtrn2_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai int32x2_t vtrn2_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vtrn2_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 5, 3, 7);
+  return __ret;
+}
+#else
+__ai int16x4_t vtrn2_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 5, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vtst_p64(poly64x1_t __p0, poly64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vtst_p64(poly64x1_t __p0, poly64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vtstq_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vtstq_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vtstq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vtstq_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vtstq_s64(int64x2_t __p0, int64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__p0, (int8x16_t)__p1, 51);
+  return __ret;
+}
+#else
+__ai uint64x2_t vtstq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t) __builtin_neon_vtstq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 51);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vtst_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vtst_u64(uint64x1_t __p0, uint64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x1_t vtst_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#else
+__ai uint64x1_t vtst_s64(int64x1_t __p0, int64x1_t __p1) {
+  uint64x1_t __ret;
+  __ret = (uint64x1_t) __builtin_neon_vtst_v((int8x8_t)__p0, (int8x8_t)__p1, 19);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64_t vtstd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vtstd_u64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai uint64_t vtstd_u64(uint64_t __p0, uint64_t __p1) {
+  uint64_t __ret;
+  __ret = (uint64_t) __builtin_neon_vtstd_u64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vtstd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vtstd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vtstd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vtstd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8_t vuqaddb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vuqaddb_s8(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int8_t vuqaddb_s8(int8_t __p0, int8_t __p1) {
+  int8_t __ret;
+  __ret = (int8_t) __builtin_neon_vuqaddb_s8(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vuqadds_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vuqadds_s32(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int32_t vuqadds_s32(int32_t __p0, int32_t __p1) {
+  int32_t __ret;
+  __ret = (int32_t) __builtin_neon_vuqadds_s32(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64_t vuqaddd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vuqaddd_s64(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int64_t vuqaddd_s64(int64_t __p0, int64_t __p1) {
+  int64_t __ret;
+  __ret = (int64_t) __builtin_neon_vuqaddd_s64(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vuqaddh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vuqaddh_s16(__p0, __p1);
+  return __ret;
+}
+#else
+__ai int16_t vuqaddh_s16(int16_t __p0, int16_t __p1) {
+  int16_t __ret;
+  __ret = (int16_t) __builtin_neon_vuqaddh_s16(__p0, __p1);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vuqaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 32);
+  return __ret;
+}
+#else
+__ai int8x16_t vuqaddq_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = (int8x16_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 32);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vuqaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 34);
+  return __ret;
+}
+#else
+__ai int32x4_t vuqaddq_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 34);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vuqaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 35);
+  return __ret;
+}
+#else
+__ai int64x2_t vuqaddq_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 35);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vuqaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vuqaddq_v((int8x16_t)__p0, (int8x16_t)__p1, 33);
+  return __ret;
+}
+#else
+__ai int16x8_t vuqaddq_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t) __builtin_neon_vuqaddq_v((int8x16_t)__rev0, (int8x16_t)__rev1, 33);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vuqadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 0);
+  return __ret;
+}
+#else
+__ai int8x8_t vuqadd_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = (int8x8_t) __builtin_neon_vuqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 0);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vuqadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vuqadd_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = (int32x2_t) __builtin_neon_vuqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x1_t vuqadd_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#else
+__ai int64x1_t vuqadd_s64(int64x1_t __p0, int64x1_t __p1) {
+  int64x1_t __ret;
+  __ret = (int64x1_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 3);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vuqadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vuqadd_v((int8x8_t)__p0, (int8x8_t)__p1, 1);
+  return __ret;
+}
+#else
+__ai int16x4_t vuqadd_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = (int16x4_t) __builtin_neon_vuqadd_v((int8x8_t)__rev0, (int8x8_t)__rev1, 1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vuzp1_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14);
+  return __ret;
+}
+#else
+__ai poly8x8_t vuzp1_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vuzp1_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6);
+  return __ret;
+}
+#else
+__ai poly16x4_t vuzp1_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vuzp1q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+  return __ret;
+}
+#else
+__ai poly8x16_t vuzp1q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vuzp1q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai poly64x2_t vuzp1q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vuzp1q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14);
+  return __ret;
+}
+#else
+__ai poly16x8_t vuzp1q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vuzp1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+  return __ret;
+}
+#else
+__ai uint8x16_t vuzp1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vuzp1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6);
+  return __ret;
+}
+#else
+__ai uint32x4_t vuzp1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vuzp1q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vuzp1q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vuzp1q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14);
+  return __ret;
+}
+#else
+__ai uint16x8_t vuzp1q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vuzp1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+  return __ret;
+}
+#else
+__ai int8x16_t vuzp1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vuzp1q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai float64x2_t vuzp1q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vuzp1q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6);
+  return __ret;
+}
+#else
+__ai float32x4_t vuzp1q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vuzp1q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6);
+  return __ret;
+}
+#else
+__ai int32x4_t vuzp1q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vuzp1q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai int64x2_t vuzp1q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vuzp1q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14);
+  return __ret;
+}
+#else
+__ai int16x8_t vuzp1q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vuzp1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14);
+  return __ret;
+}
+#else
+__ai uint8x8_t vuzp1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vuzp1_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai uint32x2_t vuzp1_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vuzp1_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6);
+  return __ret;
+}
+#else
+__ai uint16x4_t vuzp1_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vuzp1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6, 8, 10, 12, 14);
+  return __ret;
+}
+#else
+__ai int8x8_t vuzp1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6, 8, 10, 12, 14);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vuzp1_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai float32x2_t vuzp1_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vuzp1_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vuzp1_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vuzp1_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2, 4, 6);
+  return __ret;
+}
+#else
+__ai int16x4_t vuzp1_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2, 4, 6);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vuzp2_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15);
+  return __ret;
+}
+#else
+__ai poly8x8_t vuzp2_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vuzp2_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7);
+  return __ret;
+}
+#else
+__ai poly16x4_t vuzp2_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vuzp2q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31);
+  return __ret;
+}
+#else
+__ai poly8x16_t vuzp2q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vuzp2q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai poly64x2_t vuzp2q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vuzp2q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15);
+  return __ret;
+}
+#else
+__ai poly16x8_t vuzp2q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vuzp2q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31);
+  return __ret;
+}
+#else
+__ai uint8x16_t vuzp2q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vuzp2q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7);
+  return __ret;
+}
+#else
+__ai uint32x4_t vuzp2q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vuzp2q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai uint64x2_t vuzp2q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vuzp2q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15);
+  return __ret;
+}
+#else
+__ai uint16x8_t vuzp2q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vuzp2q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31);
+  return __ret;
+}
+#else
+__ai int8x16_t vuzp2q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vuzp2q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai float64x2_t vuzp2q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vuzp2q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7);
+  return __ret;
+}
+#else
+__ai float32x4_t vuzp2q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vuzp2q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7);
+  return __ret;
+}
+#else
+__ai int32x4_t vuzp2q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vuzp2q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai int64x2_t vuzp2q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vuzp2q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15);
+  return __ret;
+}
+#else
+__ai int16x8_t vuzp2q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vuzp2_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15);
+  return __ret;
+}
+#else
+__ai uint8x8_t vuzp2_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vuzp2_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai uint32x2_t vuzp2_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vuzp2_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7);
+  return __ret;
+}
+#else
+__ai uint16x4_t vuzp2_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vuzp2_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7, 9, 11, 13, 15);
+  return __ret;
+}
+#else
+__ai int8x8_t vuzp2_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7, 9, 11, 13, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vuzp2_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai float32x2_t vuzp2_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vuzp2_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai int32x2_t vuzp2_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vuzp2_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3, 5, 7);
+  return __ret;
+}
+#else
+__ai int16x4_t vuzp2_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3, 5, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vzip1_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11);
+  return __ret;
+}
+#else
+__ai poly8x8_t vzip1_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vzip1_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5);
+  return __ret;
+}
+#else
+__ai poly16x4_t vzip1_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vzip1q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23);
+  return __ret;
+}
+#else
+__ai poly8x16_t vzip1q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vzip1q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai poly64x2_t vzip1q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vzip1q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11);
+  return __ret;
+}
+#else
+__ai poly16x8_t vzip1q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vzip1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23);
+  return __ret;
+}
+#else
+__ai uint8x16_t vzip1q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vzip1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5);
+  return __ret;
+}
+#else
+__ai uint32x4_t vzip1q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vzip1q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vzip1q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vzip1q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11);
+  return __ret;
+}
+#else
+__ai uint16x8_t vzip1q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vzip1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23);
+  return __ret;
+}
+#else
+__ai int8x16_t vzip1q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vzip1q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai float64x2_t vzip1q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vzip1q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5);
+  return __ret;
+}
+#else
+__ai float32x4_t vzip1q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vzip1q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5);
+  return __ret;
+}
+#else
+__ai int32x4_t vzip1q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vzip1q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai int64x2_t vzip1q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vzip1q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11);
+  return __ret;
+}
+#else
+__ai int16x8_t vzip1q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vzip1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11);
+  return __ret;
+}
+#else
+__ai uint8x8_t vzip1_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vzip1_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai uint32x2_t vzip1_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vzip1_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5);
+  return __ret;
+}
+#else
+__ai uint16x4_t vzip1_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vzip1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 8, 1, 9, 2, 10, 3, 11);
+  return __ret;
+}
+#else
+__ai int8x8_t vzip1_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 8, 1, 9, 2, 10, 3, 11);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vzip1_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai float32x2_t vzip1_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vzip1_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 2);
+  return __ret;
+}
+#else
+__ai int32x2_t vzip1_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vzip1_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 0, 4, 1, 5);
+  return __ret;
+}
+#else
+__ai int16x4_t vzip1_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 0, 4, 1, 5);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x8_t vzip2_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15);
+  return __ret;
+}
+#else
+__ai poly8x8_t vzip2_p8(poly8x8_t __p0, poly8x8_t __p1) {
+  poly8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x4_t vzip2_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7);
+  return __ret;
+}
+#else
+__ai poly16x4_t vzip2_p16(poly16x4_t __p0, poly16x4_t __p1) {
+  poly16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  poly16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  poly16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly8x16_t vzip2q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31);
+  return __ret;
+}
+#else
+__ai poly8x16_t vzip2q_p8(poly8x16_t __p0, poly8x16_t __p1) {
+  poly8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly64x2_t vzip2q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai poly64x2_t vzip2q_p64(poly64x2_t __p0, poly64x2_t __p1) {
+  poly64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  poly64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  poly64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai poly16x8_t vzip2q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15);
+  return __ret;
+}
+#else
+__ai poly16x8_t vzip2q_p16(poly16x8_t __p0, poly16x8_t __p1) {
+  poly16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  poly16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vzip2q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31);
+  return __ret;
+}
+#else
+__ai uint8x16_t vzip2q_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vzip2q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7);
+  return __ret;
+}
+#else
+__ai uint32x4_t vzip2q_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vzip2q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai uint64x2_t vzip2q_u64(uint64x2_t __p0, uint64x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vzip2q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15);
+  return __ret;
+}
+#else
+__ai uint16x8_t vzip2q_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vzip2q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31);
+  return __ret;
+}
+#else
+__ai int8x16_t vzip2q_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float64x2_t vzip2q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai float64x2_t vzip2q_f64(float64x2_t __p0, float64x2_t __p1) {
+  float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vzip2q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7);
+  return __ret;
+}
+#else
+__ai float32x4_t vzip2q_f32(float32x4_t __p0, float32x4_t __p1) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vzip2q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7);
+  return __ret;
+}
+#else
+__ai int32x4_t vzip2q_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vzip2q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai int64x2_t vzip2q_s64(int64x2_t __p0, int64x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vzip2q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15);
+  return __ret;
+}
+#else
+__ai int16x8_t vzip2q_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vzip2_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15);
+  return __ret;
+}
+#else
+__ai uint8x8_t vzip2_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vzip2_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai uint32x2_t vzip2_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vzip2_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7);
+  return __ret;
+}
+#else
+__ai uint16x4_t vzip2_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vzip2_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 4, 12, 5, 13, 6, 14, 7, 15);
+  return __ret;
+}
+#else
+__ai int8x8_t vzip2_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 4, 12, 5, 13, 6, 14, 7, 15);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai float32x2_t vzip2_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai float32x2_t vzip2_f32(float32x2_t __p0, float32x2_t __p1) {
+  float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  float32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vzip2_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 1, 3);
+  return __ret;
+}
+#else
+__ai int32x2_t vzip2_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 1, 3);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vzip2_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__p0, __p1, 2, 6, 3, 7);
+  return __ret;
+}
+#else
+__ai int16x4_t vzip2_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __builtin_shufflevector(__rev0, __rev1, 2, 6, 3, 7);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x16_t vabaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __ret;
+  __ret = __p0 + vabdq_u8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint8x16_t vabaq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __ret;
+  __ret = __rev0 + __noswap_vabdq_u8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vabaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + vabdq_u32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vabaq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __noswap_vabdq_u32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vabaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + vabdq_u16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint16x8_t vabaq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __noswap_vabdq_u16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x16_t vabaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __ret;
+  __ret = __p0 + vabdq_s8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int8x16_t vabaq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __ret;
+  __ret = __rev0 + __noswap_vabdq_s8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + vabdq_s32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vabaq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __noswap_vabdq_s32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + vabdq_s16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int16x8_t vabaq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __noswap_vabdq_s16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint8x8_t vaba_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __ret;
+  __ret = __p0 + vabd_u8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint8x8_t vaba_u8(uint8x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __ret;
+  __ret = __rev0 + __noswap_vabd_u8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x2_t vaba_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __ret;
+  __ret = __p0 + vabd_u32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint32x2_t vaba_u32(uint32x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint32x2_t __ret;
+  __ret = __rev0 + __noswap_vabd_u32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x4_t vaba_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __ret;
+  __ret = __p0 + vabd_u16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint16x4_t vaba_u16(uint16x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint16x4_t __ret;
+  __ret = __rev0 + __noswap_vabd_u16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int8x8_t vaba_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __ret;
+  __ret = __p0 + vabd_s8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int8x8_t vaba_s8(int8x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __ret;
+  __ret = __rev0 + __noswap_vabd_s8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x2_t vaba_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __ret;
+  __ret = __p0 + vabd_s32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int32x2_t vaba_s32(int32x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int32x2_t __ret;
+  __ret = __rev0 + __noswap_vabd_s32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x4_t vaba_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __ret;
+  __ret = __p0 + vabd_s16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int16x4_t vaba_s16(int16x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int16x4_t __ret;
+  __ret = __rev0 + __noswap_vabd_s16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vabdl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(vmovl_u8((uint8x8_t)(vabd_u8(__p0, __p1))));
+  return __ret;
+}
+#else
+__ai uint16x8_t vabdl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_u8(__rev0, __rev1))));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vabdl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = (uint16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_u8(__p0, __p1))));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vabdl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(vmovl_u32((uint32x2_t)(vabd_u32(__p0, __p1))));
+  return __ret;
+}
+#else
+__ai uint64x2_t vabdl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_u32(__rev0, __rev1))));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vabdl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = (uint64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_u32(__p0, __p1))));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vabdl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(vmovl_u16((uint16x4_t)(vabd_u16(__p0, __p1))));
+  return __ret;
+}
+#else
+__ai uint32x4_t vabdl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_u16(__rev0, __rev1))));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vabdl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = (uint32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_u16(__p0, __p1))));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabdl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(vmovl_u8((uint8x8_t)(vabd_s8(__p0, __p1))));
+  return __ret;
+}
+#else
+__ai int16x8_t vabdl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_s8(__rev0, __rev1))));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vabdl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = (int16x8_t)(__noswap_vmovl_u8((uint8x8_t)(__noswap_vabd_s8(__p0, __p1))));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vabdl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(vmovl_u32((uint32x2_t)(vabd_s32(__p0, __p1))));
+  return __ret;
+}
+#else
+__ai int64x2_t vabdl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_s32(__rev0, __rev1))));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vabdl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = (int64x2_t)(__noswap_vmovl_u32((uint32x2_t)(__noswap_vabd_s32(__p0, __p1))));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabdl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(vmovl_u16((uint16x4_t)(vabd_s16(__p0, __p1))));
+  return __ret;
+}
+#else
+__ai int32x4_t vabdl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_s16(__rev0, __rev1))));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vabdl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = (int32x4_t)(__noswap_vmovl_u16((uint16x4_t)(__noswap_vabd_s16(__p0, __p1))));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vaddl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = vmovl_u8(__p0) + vmovl_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vaddl_u8(uint8x8_t __p0, uint8x8_t __p1) {
+  uint8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmovl_u8(__rev0) + __noswap_vmovl_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vaddl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = vmovl_u32(__p0) + vmovl_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vaddl_u32(uint32x2_t __p0, uint32x2_t __p1) {
+  uint32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmovl_u32(__rev0) + __noswap_vmovl_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vaddl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = vmovl_u16(__p0) + vmovl_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vaddl_u16(uint16x4_t __p0, uint16x4_t __p1) {
+  uint16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmovl_u16(__rev0) + __noswap_vmovl_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vaddl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = vmovl_s8(__p0) + vmovl_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vaddl_s8(int8x8_t __p0, int8x8_t __p1) {
+  int8x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmovl_s8(__rev0) + __noswap_vmovl_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vaddl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = vmovl_s32(__p0) + vmovl_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vaddl_s32(int32x2_t __p0, int32x2_t __p1) {
+  int32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmovl_s32(__rev0) + __noswap_vmovl_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vaddl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = vmovl_s16(__p0) + vmovl_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vaddl_s16(int16x4_t __p0, int16x4_t __p1) {
+  int16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmovl_s16(__rev0) + __noswap_vmovl_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vaddw_u8(uint16x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 + vmovl_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vaddw_u8(uint16x8_t __p0, uint8x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __noswap_vmovl_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vaddw_u32(uint64x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 + vmovl_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vaddw_u32(uint64x2_t __p0, uint32x2_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 + __noswap_vmovl_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vaddw_u16(uint32x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 + vmovl_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vaddw_u16(uint32x4_t __p0, uint16x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __noswap_vmovl_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vaddw_s8(int16x8_t __p0, int8x8_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 + vmovl_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vaddw_s8(int16x8_t __p0, int8x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __noswap_vmovl_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vaddw_s32(int64x2_t __p0, int32x2_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 + vmovl_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vaddw_s32(int64x2_t __p0, int32x2_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 + __noswap_vmovl_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vaddw_s16(int32x4_t __p0, int16x4_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 + vmovl_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vaddw_s16(int32x4_t __p0, int16x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __noswap_vmovl_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vget_lane_f16(__p0_242, __p1_242) __extension__ ({ \
+  float16x4_t __s0_242 = __p0_242; \
+  float16_t __ret_242; \
+float16x4_t __reint_242 = __s0_242; \
+int16_t __reint1_242 = vget_lane_s16(*(int16x4_t *) &__reint_242, __p1_242); \
+  __ret_242 = *(float16_t *) &__reint1_242; \
+  __ret_242; \
+})
+#else
+#define vget_lane_f16(__p0_243, __p1_243) __extension__ ({ \
+  float16x4_t __s0_243 = __p0_243; \
+  float16x4_t __rev0_243;  __rev0_243 = __builtin_shufflevector(__s0_243, __s0_243, 3, 2, 1, 0); \
+  float16_t __ret_243; \
+float16x4_t __reint_243 = __rev0_243; \
+int16_t __reint1_243 = __noswap_vget_lane_s16(*(int16x4_t *) &__reint_243, __p1_243); \
+  __ret_243 = *(float16_t *) &__reint1_243; \
+  __ret_243; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vgetq_lane_f16(__p0_244, __p1_244) __extension__ ({ \
+  float16x8_t __s0_244 = __p0_244; \
+  float16_t __ret_244; \
+float16x8_t __reint_244 = __s0_244; \
+int16_t __reint1_244 = vgetq_lane_s16(*(int16x8_t *) &__reint_244, __p1_244); \
+  __ret_244 = *(float16_t *) &__reint1_244; \
+  __ret_244; \
+})
+#else
+#define vgetq_lane_f16(__p0_245, __p1_245) __extension__ ({ \
+  float16x8_t __s0_245 = __p0_245; \
+  float16x8_t __rev0_245;  __rev0_245 = __builtin_shufflevector(__s0_245, __s0_245, 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16_t __ret_245; \
+float16x8_t __reint_245 = __rev0_245; \
+int16_t __reint1_245 = __noswap_vgetq_lane_s16(*(int16x8_t *) &__reint_245, __p1_245); \
+  __ret_245 = *(float16_t *) &__reint1_245; \
+  __ret_245; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + vmull_u8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __noswap_vmull_u8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vmlal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + __noswap_vmull_u8(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 + vmull_u32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 + __noswap_vmull_u32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmlal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 + __noswap_vmull_u32(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + vmull_u16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __noswap_vmull_u16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmlal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + __noswap_vmull_u16(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + vmull_s8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int16x8_t vmlal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __noswap_vmull_s8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vmlal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + __noswap_vmull_s8(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 + vmull_s32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 + __noswap_vmull_s32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmlal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 + __noswap_vmull_s32(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + vmull_s16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __noswap_vmull_s16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmlal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + __noswap_vmull_s16(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 + vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 + vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 + vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 + vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlal_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 + __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlal_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 + vmull_u32(__p1, (uint32x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlal_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 + __noswap_vmull_u32(__rev1, (uint32x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmlal_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 + __noswap_vmull_u32(__p1, (uint32x2_t) {__p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlal_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlal_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __noswap_vmull_u16(__rev1, (uint16x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmlal_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + __noswap_vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 + vmull_s32(__p1, (int32x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai int64x2_t vmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 + __noswap_vmull_s32(__rev1, (int32x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmlal_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 + __noswap_vmull_s32(__p1, (int32x2_t) {__p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#else
+__ai int32x4_t vmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __noswap_vmull_s16(__rev1, (int16x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmlal_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + __noswap_vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlsl_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 - vmull_u8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlsl_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 - __noswap_vmull_u8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vmlsl_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 - __noswap_vmull_u8(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlsl_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 - vmull_u32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlsl_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 - __noswap_vmull_u32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmlsl_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 - __noswap_vmull_u32(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlsl_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 - vmull_u16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlsl_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __noswap_vmull_u16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmlsl_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 - __noswap_vmull_u16(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlsl_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 - vmull_s8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int16x8_t vmlsl_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 - __noswap_vmull_s8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vmlsl_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 - __noswap_vmull_s8(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 - vmull_s32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 - __noswap_vmull_s32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmlsl_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 - __noswap_vmull_s32(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 - vmull_s16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __noswap_vmull_s16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmlsl_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 - __noswap_vmull_s16(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __ret; \
+  __ret = __s0 - vmull_u32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_lane_u32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint64x2_t __s0 = __p0; \
+  uint32x2_t __s1 = __p1; \
+  uint32x2_t __s2 = __p2; \
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  uint64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __ret; \
+  __ret = __s0 - vmull_u16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_lane_u16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  uint32x4_t __s0 = __p0; \
+  uint16x4_t __s1 = __p1; \
+  uint16x4_t __s2 = __p2; \
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  uint32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_u16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __ret; \
+  __ret = __s0 - vmull_s32(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_lane_s32(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int64x2_t __s0 = __p0; \
+  int32x2_t __s1 = __p1; \
+  int32x2_t __s2 = __p2; \
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 1, 0); \
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 1, 0); \
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 1, 0); \
+  int64x2_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s32(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __ret; \
+  __ret = __s0 - vmull_s16(__s1, __builtin_shufflevector(__s2, __s2, __p3, __p3, __p3, __p3)); \
+  __ret; \
+})
+#else
+#define vmlsl_lane_s16(__p0, __p1, __p2, __p3) __extension__ ({ \
+  int32x4_t __s0 = __p0; \
+  int16x4_t __s1 = __p1; \
+  int16x4_t __s2 = __p2; \
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__s0, __s0, 3, 2, 1, 0); \
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__s2, __s2, 3, 2, 1, 0); \
+  int32x4_t __ret; \
+  __ret = __rev0 - __noswap_vmull_s16(__rev1, __builtin_shufflevector(__rev2, __rev2, __p3, __p3, __p3, __p3)); \
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
+  __ret; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlsl_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 - vmull_u32(__p1, (uint32x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlsl_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 - __noswap_vmull_u32(__rev1, (uint32x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vmlsl_n_u32(uint64x2_t __p0, uint32x2_t __p1, uint32_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 - __noswap_vmull_u32(__p1, (uint32x2_t) {__p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlsl_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 - vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlsl_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 - __noswap_vmull_u16(__rev1, (uint16x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vmlsl_n_u16(uint32x4_t __p0, uint16x4_t __p1, uint16_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 - __noswap_vmull_u16(__p1, (uint16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 - vmull_s32(__p1, (int32x2_t) {__p2, __p2});
+  return __ret;
+}
+#else
+__ai int64x2_t vmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 - __noswap_vmull_s32(__rev1, (int32x2_t) {__p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vmlsl_n_s32(int64x2_t __p0, int32x2_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 - __noswap_vmull_s32(__p1, (int32x2_t) {__p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 - vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#else
+__ai int32x4_t vmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 - __noswap_vmull_s16(__rev1, (int16x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vmlsl_n_s16(int32x4_t __p0, int16x4_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 - __noswap_vmull_s16(__p1, (int16x4_t) {__p2, __p2, __p2, __p2});
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vset_lane_f16(__p0_246, __p1_246, __p2_246) __extension__ ({ \
+  float16_t __s0_246 = __p0_246; \
+  float16x4_t __s1_246 = __p1_246; \
+  float16x4_t __ret_246; \
+float16_t __reint_246 = __s0_246; \
+float16x4_t __reint1_246 = __s1_246; \
+int16x4_t __reint2_246 = vset_lane_s16(*(int16_t *) &__reint_246, *(int16x4_t *) &__reint1_246, __p2_246); \
+  __ret_246 = *(float16x4_t *) &__reint2_246; \
+  __ret_246; \
+})
+#else
+#define vset_lane_f16(__p0_247, __p1_247, __p2_247) __extension__ ({ \
+  float16_t __s0_247 = __p0_247; \
+  float16x4_t __s1_247 = __p1_247; \
+  float16x4_t __rev1_247;  __rev1_247 = __builtin_shufflevector(__s1_247, __s1_247, 3, 2, 1, 0); \
+  float16x4_t __ret_247; \
+float16_t __reint_247 = __s0_247; \
+float16x4_t __reint1_247 = __rev1_247; \
+int16x4_t __reint2_247 = __noswap_vset_lane_s16(*(int16_t *) &__reint_247, *(int16x4_t *) &__reint1_247, __p2_247); \
+  __ret_247 = *(float16x4_t *) &__reint2_247; \
+  __ret_247 = __builtin_shufflevector(__ret_247, __ret_247, 3, 2, 1, 0); \
+  __ret_247; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vsetq_lane_f16(__p0_248, __p1_248, __p2_248) __extension__ ({ \
+  float16_t __s0_248 = __p0_248; \
+  float16x8_t __s1_248 = __p1_248; \
+  float16x8_t __ret_248; \
+float16_t __reint_248 = __s0_248; \
+float16x8_t __reint1_248 = __s1_248; \
+int16x8_t __reint2_248 = vsetq_lane_s16(*(int16_t *) &__reint_248, *(int16x8_t *) &__reint1_248, __p2_248); \
+  __ret_248 = *(float16x8_t *) &__reint2_248; \
+  __ret_248; \
+})
+#else
+#define vsetq_lane_f16(__p0_249, __p1_249, __p2_249) __extension__ ({ \
+  float16_t __s0_249 = __p0_249; \
+  float16x8_t __s1_249 = __p1_249; \
+  float16x8_t __rev1_249;  __rev1_249 = __builtin_shufflevector(__s1_249, __s1_249, 7, 6, 5, 4, 3, 2, 1, 0); \
+  float16x8_t __ret_249; \
+float16_t __reint_249 = __s0_249; \
+float16x8_t __reint1_249 = __rev1_249; \
+int16x8_t __reint2_249 = __noswap_vsetq_lane_s16(*(int16_t *) &__reint_249, *(int16x8_t *) &__reint1_249, __p2_249); \
+  __ret_249 = *(float16x8_t *) &__reint2_249; \
+  __ret_249 = __builtin_shufflevector(__ret_249, __ret_249, 7, 6, 5, 4, 3, 2, 1, 0); \
+  __ret_249; \
+})
+#endif
+
+#if defined(__ARM_FEATURE_QRDMX) && defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqrdmlahs_s32(int32_t __p0, int32_t __p1, int32_t __p2) {
+  int32_t __ret;
+  __ret = vqadds_s32(__p0, vqrdmulhs_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32_t vqrdmlahs_s32(int32_t __p0, int32_t __p1, int32_t __p2) {
+  int32_t __ret;
+  __ret = __noswap_vqadds_s32(__p0, __noswap_vqrdmulhs_s32(__p1, __p2));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqrdmlahh_s16(int16_t __p0, int16_t __p1, int16_t __p2) {
+  int16_t __ret;
+  __ret = vqaddh_s16(__p0, vqrdmulhh_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16_t vqrdmlahh_s16(int16_t __p0, int16_t __p1, int16_t __p2) {
+  int16_t __ret;
+  __ret = __noswap_vqaddh_s16(__p0, __noswap_vqrdmulhh_s16(__p1, __p2));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahs_lane_s32(__p0_250, __p1_250, __p2_250, __p3_250) __extension__ ({ \
+  int32_t __s0_250 = __p0_250; \
+  int32_t __s1_250 = __p1_250; \
+  int32x2_t __s2_250 = __p2_250; \
+  int32_t __ret_250; \
+  __ret_250 = vqadds_s32(__s0_250, vqrdmulhs_s32(__s1_250, vget_lane_s32(__s2_250, __p3_250))); \
+  __ret_250; \
+})
+#else
+#define vqrdmlahs_lane_s32(__p0_251, __p1_251, __p2_251, __p3_251) __extension__ ({ \
+  int32_t __s0_251 = __p0_251; \
+  int32_t __s1_251 = __p1_251; \
+  int32x2_t __s2_251 = __p2_251; \
+  int32x2_t __rev2_251;  __rev2_251 = __builtin_shufflevector(__s2_251, __s2_251, 1, 0); \
+  int32_t __ret_251; \
+  __ret_251 = __noswap_vqadds_s32(__s0_251, __noswap_vqrdmulhs_s32(__s1_251, __noswap_vget_lane_s32(__rev2_251, __p3_251))); \
+  __ret_251; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahh_lane_s16(__p0_252, __p1_252, __p2_252, __p3_252) __extension__ ({ \
+  int16_t __s0_252 = __p0_252; \
+  int16_t __s1_252 = __p1_252; \
+  int16x4_t __s2_252 = __p2_252; \
+  int16_t __ret_252; \
+  __ret_252 = vqaddh_s16(__s0_252, vqrdmulhh_s16(__s1_252, vget_lane_s16(__s2_252, __p3_252))); \
+  __ret_252; \
+})
+#else
+#define vqrdmlahh_lane_s16(__p0_253, __p1_253, __p2_253, __p3_253) __extension__ ({ \
+  int16_t __s0_253 = __p0_253; \
+  int16_t __s1_253 = __p1_253; \
+  int16x4_t __s2_253 = __p2_253; \
+  int16x4_t __rev2_253;  __rev2_253 = __builtin_shufflevector(__s2_253, __s2_253, 3, 2, 1, 0); \
+  int16_t __ret_253; \
+  __ret_253 = __noswap_vqaddh_s16(__s0_253, __noswap_vqrdmulhh_s16(__s1_253, __noswap_vget_lane_s16(__rev2_253, __p3_253))); \
+  __ret_253; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahs_laneq_s32(__p0_254, __p1_254, __p2_254, __p3_254) __extension__ ({ \
+  int32_t __s0_254 = __p0_254; \
+  int32_t __s1_254 = __p1_254; \
+  int32x4_t __s2_254 = __p2_254; \
+  int32_t __ret_254; \
+  __ret_254 = vqadds_s32(__s0_254, vqrdmulhs_s32(__s1_254, vgetq_lane_s32(__s2_254, __p3_254))); \
+  __ret_254; \
+})
+#else
+#define vqrdmlahs_laneq_s32(__p0_255, __p1_255, __p2_255, __p3_255) __extension__ ({ \
+  int32_t __s0_255 = __p0_255; \
+  int32_t __s1_255 = __p1_255; \
+  int32x4_t __s2_255 = __p2_255; \
+  int32x4_t __rev2_255;  __rev2_255 = __builtin_shufflevector(__s2_255, __s2_255, 3, 2, 1, 0); \
+  int32_t __ret_255; \
+  __ret_255 = __noswap_vqadds_s32(__s0_255, __noswap_vqrdmulhs_s32(__s1_255, __noswap_vgetq_lane_s32(__rev2_255, __p3_255))); \
+  __ret_255; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlahh_laneq_s16(__p0_256, __p1_256, __p2_256, __p3_256) __extension__ ({ \
+  int16_t __s0_256 = __p0_256; \
+  int16_t __s1_256 = __p1_256; \
+  int16x8_t __s2_256 = __p2_256; \
+  int16_t __ret_256; \
+  __ret_256 = vqaddh_s16(__s0_256, vqrdmulhh_s16(__s1_256, vgetq_lane_s16(__s2_256, __p3_256))); \
+  __ret_256; \
+})
+#else
+#define vqrdmlahh_laneq_s16(__p0_257, __p1_257, __p2_257, __p3_257) __extension__ ({ \
+  int16_t __s0_257 = __p0_257; \
+  int16_t __s1_257 = __p1_257; \
+  int16x8_t __s2_257 = __p2_257; \
+  int16x8_t __rev2_257;  __rev2_257 = __builtin_shufflevector(__s2_257, __s2_257, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16_t __ret_257; \
+  __ret_257 = __noswap_vqaddh_s16(__s0_257, __noswap_vqrdmulhh_s16(__s1_257, __noswap_vgetq_lane_s16(__rev2_257, __p3_257))); \
+  __ret_257; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32_t vqrdmlshs_s32(int32_t __p0, int32_t __p1, int32_t __p2) {
+  int32_t __ret;
+  __ret = vqsubs_s32(__p0, vqrdmulhs_s32(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int32_t vqrdmlshs_s32(int32_t __p0, int32_t __p1, int32_t __p2) {
+  int32_t __ret;
+  __ret = __noswap_vqsubs_s32(__p0, __noswap_vqrdmulhs_s32(__p1, __p2));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16_t vqrdmlshh_s16(int16_t __p0, int16_t __p1, int16_t __p2) {
+  int16_t __ret;
+  __ret = vqsubh_s16(__p0, vqrdmulhh_s16(__p1, __p2));
+  return __ret;
+}
+#else
+__ai int16_t vqrdmlshh_s16(int16_t __p0, int16_t __p1, int16_t __p2) {
+  int16_t __ret;
+  __ret = __noswap_vqsubh_s16(__p0, __noswap_vqrdmulhh_s16(__p1, __p2));
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshs_lane_s32(__p0_258, __p1_258, __p2_258, __p3_258) __extension__ ({ \
+  int32_t __s0_258 = __p0_258; \
+  int32_t __s1_258 = __p1_258; \
+  int32x2_t __s2_258 = __p2_258; \
+  int32_t __ret_258; \
+  __ret_258 = vqsubs_s32(__s0_258, vqrdmulhs_s32(__s1_258, vget_lane_s32(__s2_258, __p3_258))); \
+  __ret_258; \
+})
+#else
+#define vqrdmlshs_lane_s32(__p0_259, __p1_259, __p2_259, __p3_259) __extension__ ({ \
+  int32_t __s0_259 = __p0_259; \
+  int32_t __s1_259 = __p1_259; \
+  int32x2_t __s2_259 = __p2_259; \
+  int32x2_t __rev2_259;  __rev2_259 = __builtin_shufflevector(__s2_259, __s2_259, 1, 0); \
+  int32_t __ret_259; \
+  __ret_259 = __noswap_vqsubs_s32(__s0_259, __noswap_vqrdmulhs_s32(__s1_259, __noswap_vget_lane_s32(__rev2_259, __p3_259))); \
+  __ret_259; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshh_lane_s16(__p0_260, __p1_260, __p2_260, __p3_260) __extension__ ({ \
+  int16_t __s0_260 = __p0_260; \
+  int16_t __s1_260 = __p1_260; \
+  int16x4_t __s2_260 = __p2_260; \
+  int16_t __ret_260; \
+  __ret_260 = vqsubh_s16(__s0_260, vqrdmulhh_s16(__s1_260, vget_lane_s16(__s2_260, __p3_260))); \
+  __ret_260; \
+})
+#else
+#define vqrdmlshh_lane_s16(__p0_261, __p1_261, __p2_261, __p3_261) __extension__ ({ \
+  int16_t __s0_261 = __p0_261; \
+  int16_t __s1_261 = __p1_261; \
+  int16x4_t __s2_261 = __p2_261; \
+  int16x4_t __rev2_261;  __rev2_261 = __builtin_shufflevector(__s2_261, __s2_261, 3, 2, 1, 0); \
+  int16_t __ret_261; \
+  __ret_261 = __noswap_vqsubh_s16(__s0_261, __noswap_vqrdmulhh_s16(__s1_261, __noswap_vget_lane_s16(__rev2_261, __p3_261))); \
+  __ret_261; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshs_laneq_s32(__p0_262, __p1_262, __p2_262, __p3_262) __extension__ ({ \
+  int32_t __s0_262 = __p0_262; \
+  int32_t __s1_262 = __p1_262; \
+  int32x4_t __s2_262 = __p2_262; \
+  int32_t __ret_262; \
+  __ret_262 = vqsubs_s32(__s0_262, vqrdmulhs_s32(__s1_262, vgetq_lane_s32(__s2_262, __p3_262))); \
+  __ret_262; \
+})
+#else
+#define vqrdmlshs_laneq_s32(__p0_263, __p1_263, __p2_263, __p3_263) __extension__ ({ \
+  int32_t __s0_263 = __p0_263; \
+  int32_t __s1_263 = __p1_263; \
+  int32x4_t __s2_263 = __p2_263; \
+  int32x4_t __rev2_263;  __rev2_263 = __builtin_shufflevector(__s2_263, __s2_263, 3, 2, 1, 0); \
+  int32_t __ret_263; \
+  __ret_263 = __noswap_vqsubs_s32(__s0_263, __noswap_vqrdmulhs_s32(__s1_263, __noswap_vgetq_lane_s32(__rev2_263, __p3_263))); \
+  __ret_263; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vqrdmlshh_laneq_s16(__p0_264, __p1_264, __p2_264, __p3_264) __extension__ ({ \
+  int16_t __s0_264 = __p0_264; \
+  int16_t __s1_264 = __p1_264; \
+  int16x8_t __s2_264 = __p2_264; \
+  int16_t __ret_264; \
+  __ret_264 = vqsubh_s16(__s0_264, vqrdmulhh_s16(__s1_264, vgetq_lane_s16(__s2_264, __p3_264))); \
+  __ret_264; \
+})
+#else
+#define vqrdmlshh_laneq_s16(__p0_265, __p1_265, __p2_265, __p3_265) __extension__ ({ \
+  int16_t __s0_265 = __p0_265; \
+  int16_t __s1_265 = __p1_265; \
+  int16x8_t __s2_265 = __p2_265; \
+  int16x8_t __rev2_265;  __rev2_265 = __builtin_shufflevector(__s2_265, __s2_265, 7, 6, 5, 4, 3, 2, 1, 0); \
+  int16_t __ret_265; \
+  __ret_265 = __noswap_vqsubh_s16(__s0_265, __noswap_vqrdmulhh_s16(__s1_265, __noswap_vgetq_lane_s16(__rev2_265, __p3_265))); \
+  __ret_265; \
+})
+#endif
+
+#endif
+#if defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vabdl_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = vabdl_u8(vget_high_u8(__p0), vget_high_u8(__p1));
+  return __ret;
+}
+#else
+__ai uint16x8_t vabdl_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vabdl_u8(__noswap_vget_high_u8(__rev0), __noswap_vget_high_u8(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vabdl_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = vabdl_u32(vget_high_u32(__p0), vget_high_u32(__p1));
+  return __ret;
+}
+#else
+__ai uint64x2_t vabdl_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vabdl_u32(__noswap_vget_high_u32(__rev0), __noswap_vget_high_u32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vabdl_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = vabdl_u16(vget_high_u16(__p0), vget_high_u16(__p1));
+  return __ret;
+}
+#else
+__ai uint32x4_t vabdl_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vabdl_u16(__noswap_vget_high_u16(__rev0), __noswap_vget_high_u16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabdl_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = vabdl_s8(vget_high_s8(__p0), vget_high_s8(__p1));
+  return __ret;
+}
+#else
+__ai int16x8_t vabdl_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vabdl_s8(__noswap_vget_high_s8(__rev0), __noswap_vget_high_s8(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vabdl_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = vabdl_s32(vget_high_s32(__p0), vget_high_s32(__p1));
+  return __ret;
+}
+#else
+__ai int64x2_t vabdl_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vabdl_s32(__noswap_vget_high_s32(__rev0), __noswap_vget_high_s32(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabdl_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = vabdl_s16(vget_high_s16(__p0), vget_high_s16(__p1));
+  return __ret;
+}
+#else
+__ai int32x4_t vabdl_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vabdl_s16(__noswap_vget_high_s16(__rev0), __noswap_vget_high_s16(__rev1));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vaddl_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = vmovl_high_u8(__p0) + vmovl_high_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vaddl_high_u8(uint8x16_t __p0, uint8x16_t __p1) {
+  uint8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmovl_high_u8(__rev0) + __noswap_vmovl_high_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vaddl_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = vmovl_high_u32(__p0) + vmovl_high_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vaddl_high_u32(uint32x4_t __p0, uint32x4_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmovl_high_u32(__rev0) + __noswap_vmovl_high_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vaddl_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = vmovl_high_u16(__p0) + vmovl_high_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vaddl_high_u16(uint16x8_t __p0, uint16x8_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmovl_high_u16(__rev0) + __noswap_vmovl_high_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vaddl_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = vmovl_high_s8(__p0) + vmovl_high_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vaddl_high_s8(int8x16_t __p0, int8x16_t __p1) {
+  int8x16_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmovl_high_s8(__rev0) + __noswap_vmovl_high_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vaddl_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = vmovl_high_s32(__p0) + vmovl_high_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vaddl_high_s32(int32x4_t __p0, int32x4_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmovl_high_s32(__rev0) + __noswap_vmovl_high_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vaddl_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = vmovl_high_s16(__p0) + vmovl_high_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vaddl_high_s16(int16x8_t __p0, int16x8_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmovl_high_s16(__rev0) + __noswap_vmovl_high_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vaddw_high_u8(uint16x8_t __p0, uint8x16_t __p1) {
+  uint16x8_t __ret;
+  __ret = __p0 + vmovl_high_u8(__p1);
+  return __ret;
+}
+#else
+__ai uint16x8_t vaddw_high_u8(uint16x8_t __p0, uint8x16_t __p1) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __noswap_vmovl_high_u8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vaddw_high_u32(uint64x2_t __p0, uint32x4_t __p1) {
+  uint64x2_t __ret;
+  __ret = __p0 + vmovl_high_u32(__p1);
+  return __ret;
+}
+#else
+__ai uint64x2_t vaddw_high_u32(uint64x2_t __p0, uint32x4_t __p1) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 + __noswap_vmovl_high_u32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vaddw_high_u16(uint32x4_t __p0, uint16x8_t __p1) {
+  uint32x4_t __ret;
+  __ret = __p0 + vmovl_high_u16(__p1);
+  return __ret;
+}
+#else
+__ai uint32x4_t vaddw_high_u16(uint32x4_t __p0, uint16x8_t __p1) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __noswap_vmovl_high_u16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vaddw_high_s8(int16x8_t __p0, int8x16_t __p1) {
+  int16x8_t __ret;
+  __ret = __p0 + vmovl_high_s8(__p1);
+  return __ret;
+}
+#else
+__ai int16x8_t vaddw_high_s8(int16x8_t __p0, int8x16_t __p1) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __noswap_vmovl_high_s8(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vaddw_high_s32(int64x2_t __p0, int32x4_t __p1) {
+  int64x2_t __ret;
+  __ret = __p0 + vmovl_high_s32(__p1);
+  return __ret;
+}
+#else
+__ai int64x2_t vaddw_high_s32(int64x2_t __p0, int32x4_t __p1) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 + __noswap_vmovl_high_s32(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vaddw_high_s16(int32x4_t __p0, int16x8_t __p1) {
+  int32x4_t __ret;
+  __ret = __p0 + vmovl_high_s16(__p1);
+  return __ret;
+}
+#else
+__ai int32x4_t vaddw_high_s16(int32x4_t __p0, int16x8_t __p1) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __noswap_vmovl_high_s16(__rev1);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_p64(__p0_266, __p1_266, __p2_266, __p3_266) __extension__ ({ \
+  poly64x2_t __s0_266 = __p0_266; \
+  poly64x1_t __s2_266 = __p2_266; \
+  poly64x2_t __ret_266; \
+  __ret_266 = vsetq_lane_p64(vget_lane_p64(__s2_266, __p3_266), __s0_266, __p1_266); \
+  __ret_266; \
+})
+#else
+#define vcopyq_lane_p64(__p0_267, __p1_267, __p2_267, __p3_267) __extension__ ({ \
+  poly64x2_t __s0_267 = __p0_267; \
+  poly64x1_t __s2_267 = __p2_267; \
+  poly64x2_t __rev0_267;  __rev0_267 = __builtin_shufflevector(__s0_267, __s0_267, 1, 0); \
+  poly64x2_t __ret_267; \
+  __ret_267 = __noswap_vsetq_lane_p64(__noswap_vget_lane_p64(__s2_267, __p3_267), __rev0_267, __p1_267); \
+  __ret_267 = __builtin_shufflevector(__ret_267, __ret_267, 1, 0); \
+  __ret_267; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_lane_f64(__p0_268, __p1_268, __p2_268, __p3_268) __extension__ ({ \
+  float64x2_t __s0_268 = __p0_268; \
+  float64x1_t __s2_268 = __p2_268; \
+  float64x2_t __ret_268; \
+  __ret_268 = vsetq_lane_f64(vget_lane_f64(__s2_268, __p3_268), __s0_268, __p1_268); \
+  __ret_268; \
+})
+#else
+#define vcopyq_lane_f64(__p0_269, __p1_269, __p2_269, __p3_269) __extension__ ({ \
+  float64x2_t __s0_269 = __p0_269; \
+  float64x1_t __s2_269 = __p2_269; \
+  float64x2_t __rev0_269;  __rev0_269 = __builtin_shufflevector(__s0_269, __s0_269, 1, 0); \
+  float64x2_t __ret_269; \
+  __ret_269 = __noswap_vsetq_lane_f64(__noswap_vget_lane_f64(__s2_269, __p3_269), __rev0_269, __p1_269); \
+  __ret_269 = __builtin_shufflevector(__ret_269, __ret_269, 1, 0); \
+  __ret_269; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_p64(__p0_270, __p1_270, __p2_270, __p3_270) __extension__ ({ \
+  poly64x1_t __s0_270 = __p0_270; \
+  poly64x1_t __s2_270 = __p2_270; \
+  poly64x1_t __ret_270; \
+  __ret_270 = vset_lane_p64(vget_lane_p64(__s2_270, __p3_270), __s0_270, __p1_270); \
+  __ret_270; \
+})
+#else
+#define vcopy_lane_p64(__p0_271, __p1_271, __p2_271, __p3_271) __extension__ ({ \
+  poly64x1_t __s0_271 = __p0_271; \
+  poly64x1_t __s2_271 = __p2_271; \
+  poly64x1_t __ret_271; \
+  __ret_271 = __noswap_vset_lane_p64(__noswap_vget_lane_p64(__s2_271, __p3_271), __s0_271, __p1_271); \
+  __ret_271; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_lane_f64(__p0_272, __p1_272, __p2_272, __p3_272) __extension__ ({ \
+  float64x1_t __s0_272 = __p0_272; \
+  float64x1_t __s2_272 = __p2_272; \
+  float64x1_t __ret_272; \
+  __ret_272 = vset_lane_f64(vget_lane_f64(__s2_272, __p3_272), __s0_272, __p1_272); \
+  __ret_272; \
+})
+#else
+#define vcopy_lane_f64(__p0_273, __p1_273, __p2_273, __p3_273) __extension__ ({ \
+  float64x1_t __s0_273 = __p0_273; \
+  float64x1_t __s2_273 = __p2_273; \
+  float64x1_t __ret_273; \
+  __ret_273 = __noswap_vset_lane_f64(__noswap_vget_lane_f64(__s2_273, __p3_273), __s0_273, __p1_273); \
+  __ret_273; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_p64(__p0_274, __p1_274, __p2_274, __p3_274) __extension__ ({ \
+  poly64x2_t __s0_274 = __p0_274; \
+  poly64x2_t __s2_274 = __p2_274; \
+  poly64x2_t __ret_274; \
+  __ret_274 = vsetq_lane_p64(vgetq_lane_p64(__s2_274, __p3_274), __s0_274, __p1_274); \
+  __ret_274; \
+})
+#else
+#define vcopyq_laneq_p64(__p0_275, __p1_275, __p2_275, __p3_275) __extension__ ({ \
+  poly64x2_t __s0_275 = __p0_275; \
+  poly64x2_t __s2_275 = __p2_275; \
+  poly64x2_t __rev0_275;  __rev0_275 = __builtin_shufflevector(__s0_275, __s0_275, 1, 0); \
+  poly64x2_t __rev2_275;  __rev2_275 = __builtin_shufflevector(__s2_275, __s2_275, 1, 0); \
+  poly64x2_t __ret_275; \
+  __ret_275 = __noswap_vsetq_lane_p64(__noswap_vgetq_lane_p64(__rev2_275, __p3_275), __rev0_275, __p1_275); \
+  __ret_275 = __builtin_shufflevector(__ret_275, __ret_275, 1, 0); \
+  __ret_275; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopyq_laneq_f64(__p0_276, __p1_276, __p2_276, __p3_276) __extension__ ({ \
+  float64x2_t __s0_276 = __p0_276; \
+  float64x2_t __s2_276 = __p2_276; \
+  float64x2_t __ret_276; \
+  __ret_276 = vsetq_lane_f64(vgetq_lane_f64(__s2_276, __p3_276), __s0_276, __p1_276); \
+  __ret_276; \
+})
+#else
+#define vcopyq_laneq_f64(__p0_277, __p1_277, __p2_277, __p3_277) __extension__ ({ \
+  float64x2_t __s0_277 = __p0_277; \
+  float64x2_t __s2_277 = __p2_277; \
+  float64x2_t __rev0_277;  __rev0_277 = __builtin_shufflevector(__s0_277, __s0_277, 1, 0); \
+  float64x2_t __rev2_277;  __rev2_277 = __builtin_shufflevector(__s2_277, __s2_277, 1, 0); \
+  float64x2_t __ret_277; \
+  __ret_277 = __noswap_vsetq_lane_f64(__noswap_vgetq_lane_f64(__rev2_277, __p3_277), __rev0_277, __p1_277); \
+  __ret_277 = __builtin_shufflevector(__ret_277, __ret_277, 1, 0); \
+  __ret_277; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_p64(__p0_278, __p1_278, __p2_278, __p3_278) __extension__ ({ \
+  poly64x1_t __s0_278 = __p0_278; \
+  poly64x2_t __s2_278 = __p2_278; \
+  poly64x1_t __ret_278; \
+  __ret_278 = vset_lane_p64(vgetq_lane_p64(__s2_278, __p3_278), __s0_278, __p1_278); \
+  __ret_278; \
+})
+#else
+#define vcopy_laneq_p64(__p0_279, __p1_279, __p2_279, __p3_279) __extension__ ({ \
+  poly64x1_t __s0_279 = __p0_279; \
+  poly64x2_t __s2_279 = __p2_279; \
+  poly64x2_t __rev2_279;  __rev2_279 = __builtin_shufflevector(__s2_279, __s2_279, 1, 0); \
+  poly64x1_t __ret_279; \
+  __ret_279 = __noswap_vset_lane_p64(__noswap_vgetq_lane_p64(__rev2_279, __p3_279), __s0_279, __p1_279); \
+  __ret_279; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vcopy_laneq_f64(__p0_280, __p1_280, __p2_280, __p3_280) __extension__ ({ \
+  float64x1_t __s0_280 = __p0_280; \
+  float64x2_t __s2_280 = __p2_280; \
+  float64x1_t __ret_280; \
+  __ret_280 = vset_lane_f64(vgetq_lane_f64(__s2_280, __p3_280), __s0_280, __p1_280); \
+  __ret_280; \
+})
+#else
+#define vcopy_laneq_f64(__p0_281, __p1_281, __p2_281, __p3_281) __extension__ ({ \
+  float64x1_t __s0_281 = __p0_281; \
+  float64x2_t __s2_281 = __p2_281; \
+  float64x2_t __rev2_281;  __rev2_281 = __builtin_shufflevector(__s2_281, __s2_281, 1, 0); \
+  float64x1_t __ret_281; \
+  __ret_281 = __noswap_vset_lane_f64(__noswap_vgetq_lane_f64(__rev2_281, __p3_281), __s0_281, __p1_281); \
+  __ret_281; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint16x8_t __ret;
+  __ret = vmlal_u8(__p0, vget_high_u8(__p1), vget_high_u8(__p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmlal_u8(__rev0, __noswap_vget_high_u8(__rev1), __noswap_vget_high_u8(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint64x2_t __ret;
+  __ret = vmlal_u32(__p0, vget_high_u32(__p1), vget_high_u32(__p2));
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmlal_u32(__rev0, __noswap_vget_high_u32(__rev1), __noswap_vget_high_u32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint32x4_t __ret;
+  __ret = vmlal_u16(__p0, vget_high_u16(__p1), vget_high_u16(__p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmlal_u16(__rev0, __noswap_vget_high_u16(__rev1), __noswap_vget_high_u16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int16x8_t __ret;
+  __ret = vmlal_s8(__p0, vget_high_s8(__p1), vget_high_s8(__p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vmlal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmlal_s8(__rev0, __noswap_vget_high_s8(__rev1), __noswap_vget_high_s8(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __ret;
+  __ret = vmlal_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2));
+  return __ret;
+}
+#else
+__ai int64x2_t vmlal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmlal_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __ret;
+  __ret = vmlal_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vmlal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmlal_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlal_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint64x2_t __ret;
+  __ret = vmlal_n_u32(__p0, vget_high_u32(__p1), __p2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlal_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmlal_n_u32(__rev0, __noswap_vget_high_u32(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlal_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint32x4_t __ret;
+  __ret = vmlal_n_u16(__p0, vget_high_u16(__p1), __p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlal_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmlal_n_u16(__rev0, __noswap_vget_high_u16(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = vmlal_n_s32(__p0, vget_high_s32(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vmlal_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmlal_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = vmlal_n_s16(__p0, vget_high_s16(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vmlal_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmlal_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vmlsl_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint16x8_t __ret;
+  __ret = vmlsl_u8(__p0, vget_high_u8(__p1), vget_high_u8(__p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vmlsl_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vmlsl_u8(__rev0, __noswap_vget_high_u8(__rev1), __noswap_vget_high_u8(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlsl_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint64x2_t __ret;
+  __ret = vmlsl_u32(__p0, vget_high_u32(__p1), vget_high_u32(__p2));
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlsl_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmlsl_u32(__rev0, __noswap_vget_high_u32(__rev1), __noswap_vget_high_u32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlsl_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint32x4_t __ret;
+  __ret = vmlsl_u16(__p0, vget_high_u16(__p1), vget_high_u16(__p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlsl_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmlsl_u16(__rev0, __noswap_vget_high_u16(__rev1), __noswap_vget_high_u16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vmlsl_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int16x8_t __ret;
+  __ret = vmlsl_s8(__p0, vget_high_s8(__p1), vget_high_s8(__p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vmlsl_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vmlsl_s8(__rev0, __noswap_vget_high_s8(__rev1), __noswap_vget_high_s8(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __ret;
+  __ret = vmlsl_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2));
+  return __ret;
+}
+#else
+__ai int64x2_t vmlsl_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmlsl_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __ret;
+  __ret = vmlsl_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vmlsl_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmlsl_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vmlsl_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint64x2_t __ret;
+  __ret = vmlsl_n_u32(__p0, vget_high_u32(__p1), __p2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vmlsl_high_n_u32(uint64x2_t __p0, uint32x4_t __p1, uint32_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vmlsl_n_u32(__rev0, __noswap_vget_high_u32(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vmlsl_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint32x4_t __ret;
+  __ret = vmlsl_n_u16(__p0, vget_high_u16(__p1), __p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vmlsl_high_n_u16(uint32x4_t __p0, uint16x8_t __p1, uint16_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vmlsl_n_u16(__rev0, __noswap_vget_high_u16(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __ret;
+  __ret = vmlsl_n_s32(__p0, vget_high_s32(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vmlsl_high_n_s32(int64x2_t __p0, int32x4_t __p1, int32_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vmlsl_n_s32(__rev0, __noswap_vget_high_s32(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __ret;
+  __ret = vmlsl_n_s16(__p0, vget_high_s16(__p1), __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vmlsl_n_s16(__rev0, __noswap_vget_high_s16(__rev1), __p2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulx_lane_f64(__p0_282, __p1_282, __p2_282) __extension__ ({ \
+  float64x1_t __s0_282 = __p0_282; \
+  float64x1_t __s1_282 = __p1_282; \
+  float64x1_t __ret_282; \
+  float64_t __x_282 = vget_lane_f64(__s0_282, 0); \
+  float64_t __y_282 = vget_lane_f64(__s1_282, __p2_282); \
+  float64_t __z_282 = vmulxd_f64(__x_282, __y_282); \
+  __ret_282 = vset_lane_f64(__z_282, __s0_282, __p2_282); \
+  __ret_282; \
+})
+#else
+#define vmulx_lane_f64(__p0_283, __p1_283, __p2_283) __extension__ ({ \
+  float64x1_t __s0_283 = __p0_283; \
+  float64x1_t __s1_283 = __p1_283; \
+  float64x1_t __ret_283; \
+  float64_t __x_283 = __noswap_vget_lane_f64(__s0_283, 0); \
+  float64_t __y_283 = __noswap_vget_lane_f64(__s1_283, __p2_283); \
+  float64_t __z_283 = __noswap_vmulxd_f64(__x_283, __y_283); \
+  __ret_283 = __noswap_vset_lane_f64(__z_283, __s0_283, __p2_283); \
+  __ret_283; \
+})
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+#define vmulx_laneq_f64(__p0_284, __p1_284, __p2_284) __extension__ ({ \
+  float64x1_t __s0_284 = __p0_284; \
+  float64x2_t __s1_284 = __p1_284; \
+  float64x1_t __ret_284; \
+  float64_t __x_284 = vget_lane_f64(__s0_284, 0); \
+  float64_t __y_284 = vgetq_lane_f64(__s1_284, __p2_284); \
+  float64_t __z_284 = vmulxd_f64(__x_284, __y_284); \
+  __ret_284 = vset_lane_f64(__z_284, __s0_284, 0); \
+  __ret_284; \
+})
+#else
+#define vmulx_laneq_f64(__p0_285, __p1_285, __p2_285) __extension__ ({ \
+  float64x1_t __s0_285 = __p0_285; \
+  float64x2_t __s1_285 = __p1_285; \
+  float64x2_t __rev1_285;  __rev1_285 = __builtin_shufflevector(__s1_285, __s1_285, 1, 0); \
+  float64x1_t __ret_285; \
+  float64_t __x_285 = __noswap_vget_lane_f64(__s0_285, 0); \
+  float64_t __y_285 = __noswap_vgetq_lane_f64(__rev1_285, __p2_285); \
+  float64_t __z_285 = __noswap_vmulxd_f64(__x_285, __y_285); \
+  __ret_285 = __noswap_vset_lane_f64(__z_285, __s0_285, 0); \
+  __ret_285; \
+})
+#endif
+
+#endif
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vabal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + vabdl_u8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint16x8_t vabal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __rev0 + __noswap_vabdl_u8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint16x8_t __noswap_vabal_u8(uint16x8_t __p0, uint8x8_t __p1, uint8x8_t __p2) {
+  uint16x8_t __ret;
+  __ret = __p0 + __noswap_vabdl_u8(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vabal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 + vabdl_u32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint64x2_t vabal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  uint32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __rev0 + __noswap_vabdl_u32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai uint64x2_t __noswap_vabal_u32(uint64x2_t __p0, uint32x2_t __p1, uint32x2_t __p2) {
+  uint64x2_t __ret;
+  __ret = __p0 + __noswap_vabdl_u32(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vabal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + vabdl_u16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai uint32x4_t vabal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __rev0 + __noswap_vabdl_u16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai uint32x4_t __noswap_vabal_u16(uint32x4_t __p0, uint16x4_t __p1, uint16x4_t __p2) {
+  uint32x4_t __ret;
+  __ret = __p0 + __noswap_vabdl_u16(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + vabdl_s8(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int16x8_t vabal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __rev0 + __noswap_vabdl_s8(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int16x8_t __noswap_vabal_s8(int16x8_t __p0, int8x8_t __p1, int8x8_t __p2) {
+  int16x8_t __ret;
+  __ret = __p0 + __noswap_vabdl_s8(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vabal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 + vabdl_s32(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int64x2_t vabal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
+  int32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
+  int64x2_t __ret;
+  __ret = __rev0 + __noswap_vabdl_s32(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+__ai int64x2_t __noswap_vabal_s32(int64x2_t __p0, int32x2_t __p1, int32x2_t __p2) {
+  int64x2_t __ret;
+  __ret = __p0 + __noswap_vabdl_s32(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + vabdl_s16(__p1, __p2);
+  return __ret;
+}
+#else
+__ai int32x4_t vabal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int16x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __rev0 + __noswap_vabdl_s16(__rev1, __rev2);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai int32x4_t __noswap_vabal_s16(int32x4_t __p0, int16x4_t __p1, int16x4_t __p2) {
+  int32x4_t __ret;
+  __ret = __p0 + __noswap_vabdl_s16(__p1, __p2);
+  return __ret;
+}
+#endif
+
+#if defined(__aarch64__)
+#ifdef __LITTLE_ENDIAN__
+__ai uint16x8_t vabal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint16x8_t __ret;
+  __ret = vabal_u8(__p0, vget_high_u8(__p1), vget_high_u8(__p2));
+  return __ret;
+}
+#else
+__ai uint16x8_t vabal_high_u8(uint16x8_t __p0, uint8x16_t __p1, uint8x16_t __p2) {
+  uint16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __ret;
+  __ret = __noswap_vabal_u8(__rev0, __noswap_vget_high_u8(__rev1), __noswap_vget_high_u8(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint64x2_t vabal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint64x2_t __ret;
+  __ret = vabal_u32(__p0, vget_high_u32(__p1), vget_high_u32(__p2));
+  return __ret;
+}
+#else
+__ai uint64x2_t vabal_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
+  uint64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  uint32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  uint32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  uint64x2_t __ret;
+  __ret = __noswap_vabal_u32(__rev0, __noswap_vget_high_u32(__rev1), __noswap_vget_high_u32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai uint32x4_t vabal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint32x4_t __ret;
+  __ret = vabal_u16(__p0, vget_high_u16(__p1), vget_high_u16(__p2));
+  return __ret;
+}
+#else
+__ai uint32x4_t vabal_high_u16(uint32x4_t __p0, uint16x8_t __p1, uint16x8_t __p2) {
+  uint32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  uint16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  uint32x4_t __ret;
+  __ret = __noswap_vabal_u16(__rev0, __noswap_vget_high_u16(__rev1), __noswap_vget_high_u16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int16x8_t vabal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int16x8_t __ret;
+  __ret = vabal_s8(__p0, vget_high_s8(__p1), vget_high_s8(__p2));
+  return __ret;
+}
+#else
+__ai int16x8_t vabal_high_s8(int16x8_t __p0, int8x16_t __p1, int8x16_t __p2) {
+  int16x8_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int8x16_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __ret;
+  __ret = __noswap_vabal_s8(__rev0, __noswap_vget_high_s8(__rev1), __noswap_vget_high_s8(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int64x2_t vabal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __ret;
+  __ret = vabal_s32(__p0, vget_high_s32(__p1), vget_high_s32(__p2));
+  return __ret;
+}
+#else
+__ai int64x2_t vabal_high_s32(int64x2_t __p0, int32x4_t __p1, int32x4_t __p2) {
+  int64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
+  int32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
+  int32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
+  int64x2_t __ret;
+  __ret = __noswap_vabal_s32(__rev0, __noswap_vget_high_s32(__rev1), __noswap_vget_high_s32(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
+__ai int32x4_t vabal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __ret;
+  __ret = vabal_s16(__p0, vget_high_s16(__p1), vget_high_s16(__p2));
+  return __ret;
+}
+#else
+__ai int32x4_t vabal_high_s16(int32x4_t __p0, int16x8_t __p1, int16x8_t __p2) {
+  int32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  int16x8_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
+  int16x8_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
+  int32x4_t __ret;
+  __ret = __noswap_vabal_s16(__rev0, __noswap_vget_high_s16(__rev1), __noswap_vget_high_s16(__rev2));
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+#endif
+
+#endif
+
+#undef __ai
+
+#endif /* __ARM_NEON_H */
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Basic/arm_neon.inc b/clang-4053586/prebuilt_include/clang/include/clang/Basic/arm_neon.inc
new file mode 100644
index 0000000..137c554
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Basic/arm_neon.inc
@@ -0,0 +1,1145 @@
+#ifdef GET_NEON_BUILTINS
+BUILTIN(__builtin_neon_vabd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vabdd_f64, "ddd", "n")
+BUILTIN(__builtin_neon_vabdq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vabds_f32, "fff", "n")
+BUILTIN(__builtin_neon_vabs_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vabsd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vabsq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vaddd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vaddd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vaddhn_v, "V8ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vaddlv_s16, "iV4s", "n")
+BUILTIN(__builtin_neon_vaddlv_s32, "WiV2i", "n")
+BUILTIN(__builtin_neon_vaddlv_s8, "sV8Sc", "n")
+BUILTIN(__builtin_neon_vaddlv_u16, "UiV4Us", "n")
+BUILTIN(__builtin_neon_vaddlv_u32, "UWiV2Ui", "n")
+BUILTIN(__builtin_neon_vaddlv_u8, "UsV8Sc", "n")
+BUILTIN(__builtin_neon_vaddlvq_s16, "iV8s", "n")
+BUILTIN(__builtin_neon_vaddlvq_s32, "WiV4i", "n")
+BUILTIN(__builtin_neon_vaddlvq_s8, "sV16Sc", "n")
+BUILTIN(__builtin_neon_vaddlvq_u16, "UiV8Us", "n")
+BUILTIN(__builtin_neon_vaddlvq_u32, "UWiV4Ui", "n")
+BUILTIN(__builtin_neon_vaddlvq_u8, "UsV16Sc", "n")
+BUILTIN(__builtin_neon_vaddv_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vaddv_s16, "sV4s", "n")
+BUILTIN(__builtin_neon_vaddv_s32, "iV2i", "n")
+BUILTIN(__builtin_neon_vaddv_s8, "ScV8Sc", "n")
+BUILTIN(__builtin_neon_vaddv_u16, "UsV4Us", "n")
+BUILTIN(__builtin_neon_vaddv_u32, "UiV2Ui", "n")
+BUILTIN(__builtin_neon_vaddv_u8, "ScV8Sc", "n")
+BUILTIN(__builtin_neon_vaddvq_f32, "fV4f", "n")
+BUILTIN(__builtin_neon_vaddvq_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vaddvq_s16, "sV8s", "n")
+BUILTIN(__builtin_neon_vaddvq_s32, "iV4i", "n")
+BUILTIN(__builtin_neon_vaddvq_s64, "WiV2Wi", "n")
+BUILTIN(__builtin_neon_vaddvq_s8, "ScV16Sc", "n")
+BUILTIN(__builtin_neon_vaddvq_u16, "UsV8Us", "n")
+BUILTIN(__builtin_neon_vaddvq_u32, "UiV4Ui", "n")
+BUILTIN(__builtin_neon_vaddvq_u64, "UWiV2UWi", "n")
+BUILTIN(__builtin_neon_vaddvq_u8, "ScV16Sc", "n")
+BUILTIN(__builtin_neon_vaesdq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vaeseq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vaesimcq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vaesmcq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vbsl_v, "V8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vbslq_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcage_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcaged_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcageq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcages_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vcagt_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcagtd_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcagtq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcagts_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vcale_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcaled_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcaleq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcales_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vcalt_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcaltd_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcaltq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcalts_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vceqd_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vceqd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vceqd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vceqs_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vceqz_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vceqzd_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vceqzd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vceqzd_u64, "UWiUWi", "n")
+BUILTIN(__builtin_neon_vceqzq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vceqzs_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcged_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcged_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vcged_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vcges_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vcgez_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcgezd_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcgezd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vcgezq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcgezs_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcgtd_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcgtd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vcgtd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vcgts_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vcgtz_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcgtzd_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcgtzd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vcgtzq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcgtzs_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcled_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcled_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vcled_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vcles_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vclez_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vclezd_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vclezd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vclezq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vclezs_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcls_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vclsq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcltd_f64, "UWidd", "n")
+BUILTIN(__builtin_neon_vcltd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vcltd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vclts_f32, "Uiff", "n")
+BUILTIN(__builtin_neon_vcltz_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcltzd_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcltzd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vcltzq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcltzs_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vclz_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vclzq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcnt_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcntq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvt_f16_f32, "V8ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvt_f32_f16, "V16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_f32_f64, "V8ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvt_f32_v, "V2fV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_f64_f32, "V16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_f64_v, "V1dV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_n_f32_v, "V2fV8ScIii", "n")
+BUILTIN(__builtin_neon_vcvt_n_f64_v, "V1dV8ScIii", "n")
+BUILTIN(__builtin_neon_vcvt_n_s32_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vcvt_n_s64_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vcvt_n_u32_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vcvt_n_u64_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vcvt_s32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_s64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_u32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvt_u64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvta_s32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvta_s64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvta_u32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvta_u64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtad_s64_f64, "Wid", "n")
+BUILTIN(__builtin_neon_vcvtad_u64_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcvtaq_s32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtaq_s64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtaq_u32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtaq_u64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtas_s32_f32, "if", "n")
+BUILTIN(__builtin_neon_vcvtas_u32_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcvtd_f64_s64, "dWi", "n")
+BUILTIN(__builtin_neon_vcvtd_f64_u64, "dUWi", "n")
+BUILTIN(__builtin_neon_vcvtd_n_f64_s64, "dWiIi", "n")
+BUILTIN(__builtin_neon_vcvtd_n_f64_u64, "dUWiIi", "n")
+BUILTIN(__builtin_neon_vcvtd_n_s64_f64, "WidIi", "n")
+BUILTIN(__builtin_neon_vcvtd_n_u64_f64, "UWidIi", "n")
+BUILTIN(__builtin_neon_vcvtd_s64_f64, "Wid", "n")
+BUILTIN(__builtin_neon_vcvtd_u64_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcvtm_s32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtm_s64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtm_u32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtm_u64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtmd_s64_f64, "Wid", "n")
+BUILTIN(__builtin_neon_vcvtmd_u64_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcvtmq_s32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtmq_s64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtmq_u32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtmq_u64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtms_s32_f32, "if", "n")
+BUILTIN(__builtin_neon_vcvtms_u32_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcvtn_s32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtn_s64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtn_u32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtn_u64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtnd_s64_f64, "Wid", "n")
+BUILTIN(__builtin_neon_vcvtnd_u64_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcvtnq_s32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtnq_s64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtnq_u32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtnq_u64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtns_s32_f32, "if", "n")
+BUILTIN(__builtin_neon_vcvtns_u32_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcvtp_s32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtp_s64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtp_u32_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtp_u64_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vcvtpd_s64_f64, "Wid", "n")
+BUILTIN(__builtin_neon_vcvtpd_u64_f64, "UWid", "n")
+BUILTIN(__builtin_neon_vcvtpq_s32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtpq_s64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtpq_u32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtpq_u64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtps_s32_f32, "if", "n")
+BUILTIN(__builtin_neon_vcvtps_u32_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcvtq_f32_v, "V4fV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtq_f64_v, "V2dV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtq_n_f32_v, "V4fV16ScIii", "n")
+BUILTIN(__builtin_neon_vcvtq_n_f64_v, "V2dV16ScIii", "n")
+BUILTIN(__builtin_neon_vcvtq_n_s32_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vcvtq_n_s64_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vcvtq_n_u32_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vcvtq_n_u64_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vcvtq_s32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtq_s64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtq_u32_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtq_u64_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vcvts_f32_s32, "fi", "n")
+BUILTIN(__builtin_neon_vcvts_f32_u32, "fUi", "n")
+BUILTIN(__builtin_neon_vcvts_n_f32_s32, "fiIi", "n")
+BUILTIN(__builtin_neon_vcvts_n_f32_u32, "fUiIi", "n")
+BUILTIN(__builtin_neon_vcvts_n_s32_f32, "ifIi", "n")
+BUILTIN(__builtin_neon_vcvts_n_u32_f32, "UifIi", "n")
+BUILTIN(__builtin_neon_vcvts_s32_f32, "if", "n")
+BUILTIN(__builtin_neon_vcvts_u32_f32, "Uif", "n")
+BUILTIN(__builtin_neon_vcvtx_f32_v, "V2fV16Sci", "n")
+BUILTIN(__builtin_neon_vcvtxd_f32_f64, "fd", "n")
+BUILTIN(__builtin_neon_vdupb_lane_i8, "ScV8ScIi", "n")
+BUILTIN(__builtin_neon_vdupb_laneq_i8, "ScV16ScIi", "n")
+BUILTIN(__builtin_neon_vdupd_lane_f64, "dV1dIi", "n")
+BUILTIN(__builtin_neon_vdupd_lane_i64, "UWiV1WiIi", "n")
+BUILTIN(__builtin_neon_vdupd_laneq_f64, "dV2dIi", "n")
+BUILTIN(__builtin_neon_vdupd_laneq_i64, "UWiV2WiIi", "n")
+BUILTIN(__builtin_neon_vduph_lane_i16, "UsV4sIi", "n")
+BUILTIN(__builtin_neon_vduph_laneq_i16, "UsV8sIi", "n")
+BUILTIN(__builtin_neon_vdups_lane_f32, "fV2fIi", "n")
+BUILTIN(__builtin_neon_vdups_lane_i32, "UiV2iIi", "n")
+BUILTIN(__builtin_neon_vdups_laneq_f32, "fV4fIi", "n")
+BUILTIN(__builtin_neon_vdups_laneq_i32, "UiV4iIi", "n")
+BUILTIN(__builtin_neon_vext_v, "V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vextq_v, "V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vfma_lane_v, "V8ScV8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vfma_laneq_v, "V8ScV8ScV8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vfma_v, "V8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vfmad_lane_f64, "dddV1dIi", "n")
+BUILTIN(__builtin_neon_vfmad_laneq_f64, "dddV2dIi", "n")
+BUILTIN(__builtin_neon_vfmaq_lane_v, "V16ScV16ScV16ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vfmaq_laneq_v, "V16ScV16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vfmaq_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vfmas_lane_f32, "fffV2fIi", "n")
+BUILTIN(__builtin_neon_vfmas_laneq_f32, "fffV4fIi", "n")
+BUILTIN(__builtin_neon_vget_lane_f32, "fV2fIi", "n")
+BUILTIN(__builtin_neon_vget_lane_f64, "dV1dIi", "n")
+BUILTIN(__builtin_neon_vget_lane_i16, "UsV4sIi", "n")
+BUILTIN(__builtin_neon_vget_lane_i32, "UiV2iIi", "n")
+BUILTIN(__builtin_neon_vget_lane_i64, "UWiV1WiIi", "n")
+BUILTIN(__builtin_neon_vget_lane_i8, "ScV8ScIi", "n")
+BUILTIN(__builtin_neon_vgetq_lane_f32, "fV4fIi", "n")
+BUILTIN(__builtin_neon_vgetq_lane_f64, "dV2dIi", "n")
+BUILTIN(__builtin_neon_vgetq_lane_i16, "UsV8sIi", "n")
+BUILTIN(__builtin_neon_vgetq_lane_i32, "UiV4iIi", "n")
+BUILTIN(__builtin_neon_vgetq_lane_i64, "UWiV2WiIi", "n")
+BUILTIN(__builtin_neon_vgetq_lane_i8, "ScV16ScIi", "n")
+BUILTIN(__builtin_neon_vhadd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vhaddq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vhsub_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vhsubq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vld1_dup_v, "V8ScvC*i", "n")
+BUILTIN(__builtin_neon_vld1_lane_v, "V8ScvC*V8ScIii", "n")
+BUILTIN(__builtin_neon_vld1_v, "V8ScvC*i", "n")
+BUILTIN(__builtin_neon_vld1_x2_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld1_x3_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld1_x4_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld1q_dup_v, "V16ScvC*i", "n")
+BUILTIN(__builtin_neon_vld1q_lane_v, "V16ScvC*V16ScIii", "n")
+BUILTIN(__builtin_neon_vld1q_v, "V16ScvC*i", "n")
+BUILTIN(__builtin_neon_vld1q_x2_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld1q_x3_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld1q_x4_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld2_dup_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld2_lane_v, "vv*vC*V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vld2_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld2q_dup_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld2q_lane_v, "vv*vC*V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vld2q_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld3_dup_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld3_lane_v, "vv*vC*V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vld3_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld3q_dup_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld3q_lane_v, "vv*vC*V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vld3q_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld4_dup_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld4_lane_v, "vv*vC*V8ScV8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vld4_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld4q_dup_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vld4q_lane_v, "vv*vC*V16ScV16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vld4q_v, "vv*vC*i", "n")
+BUILTIN(__builtin_neon_vldrq_p128, "ULLLivC*", "n")
+BUILTIN(__builtin_neon_vmax_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vmaxnm_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vmaxnmq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vmaxnmv_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vmaxnmvq_f32, "fV4f", "n")
+BUILTIN(__builtin_neon_vmaxnmvq_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vmaxq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vmaxv_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vmaxv_s16, "sV4s", "n")
+BUILTIN(__builtin_neon_vmaxv_s32, "iV2i", "n")
+BUILTIN(__builtin_neon_vmaxv_s8, "ScV8Sc", "n")
+BUILTIN(__builtin_neon_vmaxv_u16, "UsV4Us", "n")
+BUILTIN(__builtin_neon_vmaxv_u32, "UiV2Ui", "n")
+BUILTIN(__builtin_neon_vmaxv_u8, "ScV8Sc", "n")
+BUILTIN(__builtin_neon_vmaxvq_f32, "fV4f", "n")
+BUILTIN(__builtin_neon_vmaxvq_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vmaxvq_s16, "sV8s", "n")
+BUILTIN(__builtin_neon_vmaxvq_s32, "iV4i", "n")
+BUILTIN(__builtin_neon_vmaxvq_s8, "ScV16Sc", "n")
+BUILTIN(__builtin_neon_vmaxvq_u16, "UsV8Us", "n")
+BUILTIN(__builtin_neon_vmaxvq_u32, "UiV4Ui", "n")
+BUILTIN(__builtin_neon_vmaxvq_u8, "ScV16Sc", "n")
+BUILTIN(__builtin_neon_vmin_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vminnm_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vminnmq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vminnmv_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vminnmvq_f32, "fV4f", "n")
+BUILTIN(__builtin_neon_vminnmvq_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vminq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vminv_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vminv_s16, "sV4s", "n")
+BUILTIN(__builtin_neon_vminv_s32, "iV2i", "n")
+BUILTIN(__builtin_neon_vminv_s8, "ScV8Sc", "n")
+BUILTIN(__builtin_neon_vminv_u16, "UsV4Us", "n")
+BUILTIN(__builtin_neon_vminv_u32, "UiV2Ui", "n")
+BUILTIN(__builtin_neon_vminv_u8, "ScV8Sc", "n")
+BUILTIN(__builtin_neon_vminvq_f32, "fV4f", "n")
+BUILTIN(__builtin_neon_vminvq_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vminvq_s16, "sV8s", "n")
+BUILTIN(__builtin_neon_vminvq_s32, "iV4i", "n")
+BUILTIN(__builtin_neon_vminvq_s8, "ScV16Sc", "n")
+BUILTIN(__builtin_neon_vminvq_u16, "UsV8Us", "n")
+BUILTIN(__builtin_neon_vminvq_u32, "UiV4Ui", "n")
+BUILTIN(__builtin_neon_vminvq_u8, "ScV16Sc", "n")
+BUILTIN(__builtin_neon_vmovl_v, "V16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vmovn_v, "V8ScV16Sci", "n")
+BUILTIN(__builtin_neon_vmul_lane_v, "V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vmul_laneq_v, "V8ScV8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vmul_n_f64, "V1dV1dd", "n")
+BUILTIN(__builtin_neon_vmul_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vmull_p64, "ULLLiUWiUWi", "n")
+BUILTIN(__builtin_neon_vmull_v, "V16ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vmulq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vmulx_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vmulxd_f64, "ddd", "n")
+BUILTIN(__builtin_neon_vmulxq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vmulxs_f32, "fff", "n")
+BUILTIN(__builtin_neon_vnegd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vpadal_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpadalq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpadd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpaddd_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vpaddd_s64, "WiV2Wi", "n")
+BUILTIN(__builtin_neon_vpaddd_u64, "UWiV2UWi", "n")
+BUILTIN(__builtin_neon_vpaddl_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpaddlq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpaddq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpadds_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vpmax_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpmaxnm_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpmaxnmq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpmaxnmqd_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vpmaxnms_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vpmaxq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpmaxqd_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vpmaxs_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vpmin_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpminnm_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vpminnmq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpminnmqd_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vpminnms_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vpminq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vpminqd_f64, "dV2d", "n")
+BUILTIN(__builtin_neon_vpmins_f32, "fV2f", "n")
+BUILTIN(__builtin_neon_vqabs_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqabsb_s8, "ScSc", "n")
+BUILTIN(__builtin_neon_vqabsd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vqabsh_s16, "ss", "n")
+BUILTIN(__builtin_neon_vqabsq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqabss_s32, "ii", "n")
+BUILTIN(__builtin_neon_vqadd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqaddb_s8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqaddb_u8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqaddd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vqaddd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vqaddh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vqaddh_u16, "UsUsUs", "n")
+BUILTIN(__builtin_neon_vqaddq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqadds_s32, "iii", "n")
+BUILTIN(__builtin_neon_vqadds_u32, "UiUiUi", "n")
+BUILTIN(__builtin_neon_vqdmlal_v, "V16ScV16ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqdmlalh_lane_s16, "iisV4sIi", "n")
+BUILTIN(__builtin_neon_vqdmlalh_laneq_s16, "iisV8sIi", "n")
+BUILTIN(__builtin_neon_vqdmlalh_s16, "iiss", "n")
+BUILTIN(__builtin_neon_vqdmlals_lane_s32, "WiWiiV2iIi", "n")
+BUILTIN(__builtin_neon_vqdmlals_laneq_s32, "WiWiiV4iIi", "n")
+BUILTIN(__builtin_neon_vqdmlals_s32, "WiWiii", "n")
+BUILTIN(__builtin_neon_vqdmlsl_v, "V16ScV16ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqdmlslh_lane_s16, "iisV4sIi", "n")
+BUILTIN(__builtin_neon_vqdmlslh_laneq_s16, "iisV8sIi", "n")
+BUILTIN(__builtin_neon_vqdmlslh_s16, "iiss", "n")
+BUILTIN(__builtin_neon_vqdmlsls_lane_s32, "WiWiiV2iIi", "n")
+BUILTIN(__builtin_neon_vqdmlsls_laneq_s32, "WiWiiV4iIi", "n")
+BUILTIN(__builtin_neon_vqdmlsls_s32, "WiWiii", "n")
+BUILTIN(__builtin_neon_vqdmulh_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqdmulhh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vqdmulhq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqdmulhs_s32, "iii", "n")
+BUILTIN(__builtin_neon_vqdmull_v, "V16ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqdmullh_s16, "iss", "n")
+BUILTIN(__builtin_neon_vqdmulls_s32, "Wiii", "n")
+BUILTIN(__builtin_neon_vqmovn_v, "V8ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqmovnd_s64, "iWi", "n")
+BUILTIN(__builtin_neon_vqmovnd_u64, "UiUWi", "n")
+BUILTIN(__builtin_neon_vqmovnh_s16, "Scs", "n")
+BUILTIN(__builtin_neon_vqmovnh_u16, "ScUs", "n")
+BUILTIN(__builtin_neon_vqmovns_s32, "si", "n")
+BUILTIN(__builtin_neon_vqmovns_u32, "UsUi", "n")
+BUILTIN(__builtin_neon_vqmovun_v, "V8ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqmovund_s64, "iWi", "n")
+BUILTIN(__builtin_neon_vqmovunh_s16, "Scs", "n")
+BUILTIN(__builtin_neon_vqmovuns_s32, "si", "n")
+BUILTIN(__builtin_neon_vqneg_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqnegb_s8, "ScSc", "n")
+BUILTIN(__builtin_neon_vqnegd_s64, "WiWi", "n")
+BUILTIN(__builtin_neon_vqnegh_s16, "ss", "n")
+BUILTIN(__builtin_neon_vqnegq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqnegs_s32, "ii", "n")
+BUILTIN(__builtin_neon_vqrdmulh_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqrdmulhh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vqrdmulhq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqrdmulhs_s32, "iii", "n")
+BUILTIN(__builtin_neon_vqrshl_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqrshlb_s8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqrshlb_u8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqrshld_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vqrshld_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vqrshlh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vqrshlh_u16, "UsUsUs", "n")
+BUILTIN(__builtin_neon_vqrshlq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqrshls_s32, "iii", "n")
+BUILTIN(__builtin_neon_vqrshls_u32, "UiUiUi", "n")
+BUILTIN(__builtin_neon_vqrshrn_n_v, "V8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vqrshrnd_n_s64, "iWiIi", "n")
+BUILTIN(__builtin_neon_vqrshrnd_n_u64, "UiUWiIi", "n")
+BUILTIN(__builtin_neon_vqrshrnh_n_s16, "ScsIi", "n")
+BUILTIN(__builtin_neon_vqrshrnh_n_u16, "ScUsIi", "n")
+BUILTIN(__builtin_neon_vqrshrns_n_s32, "siIi", "n")
+BUILTIN(__builtin_neon_vqrshrns_n_u32, "UsUiIi", "n")
+BUILTIN(__builtin_neon_vqrshrun_n_v, "V8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vqrshrund_n_s64, "iWiIi", "n")
+BUILTIN(__builtin_neon_vqrshrunh_n_s16, "ScsIi", "n")
+BUILTIN(__builtin_neon_vqrshruns_n_s32, "siIi", "n")
+BUILTIN(__builtin_neon_vqshl_n_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vqshl_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqshlb_n_s8, "ScScIi", "n")
+BUILTIN(__builtin_neon_vqshlb_n_u8, "ScScIi", "n")
+BUILTIN(__builtin_neon_vqshlb_s8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqshlb_u8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqshld_n_s64, "WiWiIi", "n")
+BUILTIN(__builtin_neon_vqshld_n_u64, "UWiUWiIi", "n")
+BUILTIN(__builtin_neon_vqshld_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vqshld_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vqshlh_n_s16, "ssIi", "n")
+BUILTIN(__builtin_neon_vqshlh_n_u16, "UsUsIi", "n")
+BUILTIN(__builtin_neon_vqshlh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vqshlh_u16, "UsUsUs", "n")
+BUILTIN(__builtin_neon_vqshlq_n_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vqshlq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqshls_n_s32, "iiIi", "n")
+BUILTIN(__builtin_neon_vqshls_n_u32, "UiUiIi", "n")
+BUILTIN(__builtin_neon_vqshls_s32, "iii", "n")
+BUILTIN(__builtin_neon_vqshls_u32, "UiUiUi", "n")
+BUILTIN(__builtin_neon_vqshlu_n_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vqshlub_n_s8, "ScScIi", "n")
+BUILTIN(__builtin_neon_vqshlud_n_s64, "WiWiIi", "n")
+BUILTIN(__builtin_neon_vqshluh_n_s16, "ssIi", "n")
+BUILTIN(__builtin_neon_vqshluq_n_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vqshlus_n_s32, "iiIi", "n")
+BUILTIN(__builtin_neon_vqshrn_n_v, "V8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vqshrnd_n_s64, "iWiIi", "n")
+BUILTIN(__builtin_neon_vqshrnd_n_u64, "UiUWiIi", "n")
+BUILTIN(__builtin_neon_vqshrnh_n_s16, "ScsIi", "n")
+BUILTIN(__builtin_neon_vqshrnh_n_u16, "ScUsIi", "n")
+BUILTIN(__builtin_neon_vqshrns_n_s32, "siIi", "n")
+BUILTIN(__builtin_neon_vqshrns_n_u32, "UsUiIi", "n")
+BUILTIN(__builtin_neon_vqshrun_n_v, "V8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vqshrund_n_s64, "iWiIi", "n")
+BUILTIN(__builtin_neon_vqshrunh_n_s16, "ScsIi", "n")
+BUILTIN(__builtin_neon_vqshruns_n_s32, "siIi", "n")
+BUILTIN(__builtin_neon_vqsub_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqsubb_s8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqsubb_u8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vqsubd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vqsubd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vqsubh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vqsubh_u16, "UsUsUs", "n")
+BUILTIN(__builtin_neon_vqsubq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqsubs_s32, "iii", "n")
+BUILTIN(__builtin_neon_vqsubs_u32, "UiUiUi", "n")
+BUILTIN(__builtin_neon_vqtbl1_v, "V8ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbl1q_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbl2_v, "V8ScV16ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbl2q_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbl3_v, "V8ScV16ScV16ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbl3q_v, "V16ScV16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbl4_v, "V8ScV16ScV16ScV16ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbl4q_v, "V16ScV16ScV16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbx1_v, "V8ScV8ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbx1q_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbx2_v, "V8ScV8ScV16ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbx2q_v, "V16ScV16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbx3_v, "V8ScV8ScV16ScV16ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbx3q_v, "V16ScV16ScV16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vqtbx4_v, "V8ScV8ScV16ScV16ScV16ScV16ScV8Sci", "n")
+BUILTIN(__builtin_neon_vqtbx4q_v, "V16ScV16ScV16ScV16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vraddhn_v, "V8ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrbit_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrbitq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrecpe_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrecped_f64, "dd", "n")
+BUILTIN(__builtin_neon_vrecpeq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrecpes_f32, "ff", "n")
+BUILTIN(__builtin_neon_vrecps_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrecpsd_f64, "ddd", "n")
+BUILTIN(__builtin_neon_vrecpsq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrecpss_f32, "fff", "n")
+BUILTIN(__builtin_neon_vrecpxd_f64, "dd", "n")
+BUILTIN(__builtin_neon_vrecpxs_f32, "ff", "n")
+BUILTIN(__builtin_neon_vrhadd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrhaddq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrnd_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrnda_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrndaq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrndi_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrndiq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrndm_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrndmq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrndn_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrndnq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrndp_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrndpq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrndq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrndx_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrndxq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrshl_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrshld_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vrshld_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vrshlq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrshr_n_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vrshrd_n_s64, "WiWiIi", "n")
+BUILTIN(__builtin_neon_vrshrd_n_u64, "UWiUWiIi", "n")
+BUILTIN(__builtin_neon_vrshrn_n_v, "V8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vrshrq_n_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vrsqrte_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrsqrted_f64, "dd", "n")
+BUILTIN(__builtin_neon_vrsqrteq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrsqrtes_f32, "ff", "n")
+BUILTIN(__builtin_neon_vrsqrts_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vrsqrtsd_f64, "ddd", "n")
+BUILTIN(__builtin_neon_vrsqrtsq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vrsqrtss_f32, "fff", "n")
+BUILTIN(__builtin_neon_vrsra_n_v, "V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vrsrad_n_s64, "WiWiWiIi", "n")
+BUILTIN(__builtin_neon_vrsrad_n_u64, "UWiUWiUWiIi", "n")
+BUILTIN(__builtin_neon_vrsraq_n_v, "V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vrsubhn_v, "V8ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vset_lane_f32, "V2ffV2fIi", "n")
+BUILTIN(__builtin_neon_vset_lane_f64, "V1ddV1dIi", "n")
+BUILTIN(__builtin_neon_vset_lane_i16, "V4ssV4sIi", "n")
+BUILTIN(__builtin_neon_vset_lane_i32, "V2iiV2iIi", "n")
+BUILTIN(__builtin_neon_vset_lane_i64, "V1WiWiV1WiIi", "n")
+BUILTIN(__builtin_neon_vset_lane_i8, "V8ScScV8ScIi", "n")
+BUILTIN(__builtin_neon_vsetq_lane_f32, "V4ffV4fIi", "n")
+BUILTIN(__builtin_neon_vsetq_lane_f64, "V2ddV2dIi", "n")
+BUILTIN(__builtin_neon_vsetq_lane_i16, "V8ssV8sIi", "n")
+BUILTIN(__builtin_neon_vsetq_lane_i32, "V4iiV4iIi", "n")
+BUILTIN(__builtin_neon_vsetq_lane_i64, "V2WiWiV2WiIi", "n")
+BUILTIN(__builtin_neon_vsetq_lane_i8, "V16ScScV16ScIi", "n")
+BUILTIN(__builtin_neon_vsha1cq_u32, "V4iV4UiUiV4Ui", "n")
+BUILTIN(__builtin_neon_vsha1h_u32, "UiUi", "n")
+BUILTIN(__builtin_neon_vsha1mq_u32, "V4iV4UiUiV4Ui", "n")
+BUILTIN(__builtin_neon_vsha1pq_u32, "V4iV4UiUiV4Ui", "n")
+BUILTIN(__builtin_neon_vsha1su0q_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsha1su1q_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsha256h2q_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsha256hq_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsha256su0q_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsha256su1q_v, "V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vshl_n_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vshl_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vshld_n_s64, "WiWiIi", "n")
+BUILTIN(__builtin_neon_vshld_n_u64, "UWiUWiIi", "n")
+BUILTIN(__builtin_neon_vshld_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vshld_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vshll_n_v, "V16ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vshlq_n_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vshlq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vshr_n_v, "V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vshrd_n_s64, "WiWiIi", "n")
+BUILTIN(__builtin_neon_vshrd_n_u64, "UWiUWiIi", "n")
+BUILTIN(__builtin_neon_vshrn_n_v, "V8ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vshrq_n_v, "V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vsli_n_v, "V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vslid_n_s64, "WiWiWiIi", "n")
+BUILTIN(__builtin_neon_vslid_n_u64, "UWiUWiUWiIi", "n")
+BUILTIN(__builtin_neon_vsliq_n_v, "V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vsqadd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vsqaddb_u8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vsqaddd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vsqaddh_u16, "UsUsUs", "n")
+BUILTIN(__builtin_neon_vsqaddq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsqadds_u32, "UiUiUi", "n")
+BUILTIN(__builtin_neon_vsqrt_v, "V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vsqrtq_v, "V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vsra_n_v, "V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vsrad_n_s64, "WiWiWiIi", "n")
+BUILTIN(__builtin_neon_vsrad_n_u64, "UWiUWiUWiIi", "n")
+BUILTIN(__builtin_neon_vsraq_n_v, "V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vsri_n_v, "V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vsrid_n_s64, "WiWiWiIi", "n")
+BUILTIN(__builtin_neon_vsrid_n_u64, "UWiUWiUWiIi", "n")
+BUILTIN(__builtin_neon_vsriq_n_v, "V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vst1_lane_v, "vv*V8ScIii", "n")
+BUILTIN(__builtin_neon_vst1_v, "vv*V8Sci", "n")
+BUILTIN(__builtin_neon_vst1_x2_v, "vv*V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vst1_x3_v, "vv*V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vst1_x4_v, "vv*V8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vst1q_lane_v, "vv*V16ScIii", "n")
+BUILTIN(__builtin_neon_vst1q_v, "vv*V16Sci", "n")
+BUILTIN(__builtin_neon_vst1q_x2_v, "vv*V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vst1q_x3_v, "vv*V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vst1q_x4_v, "vv*V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vst2_lane_v, "vv*V8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vst2_v, "vv*V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vst2q_lane_v, "vv*V16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vst2q_v, "vv*V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vst3_lane_v, "vv*V8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vst3_v, "vv*V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vst3q_lane_v, "vv*V16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vst3q_v, "vv*V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vst4_lane_v, "vv*V8ScV8ScV8ScV8ScIii", "n")
+BUILTIN(__builtin_neon_vst4_v, "vv*V8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vst4q_lane_v, "vv*V16ScV16ScV16ScV16ScIii", "n")
+BUILTIN(__builtin_neon_vst4q_v, "vv*V16ScV16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vstrq_p128, "vv*ULLLi", "n")
+BUILTIN(__builtin_neon_vsubd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vsubd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vsubhn_v, "V8ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vtbl1_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbl2_v, "V8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbl3_v, "V8ScV8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbl4_v, "V8ScV8ScV8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbx1_v, "V8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbx2_v, "V8ScV8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbx3_v, "V8ScV8ScV8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtbx4_v, "V8ScV8ScV8ScV8ScV8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtrn_v, "vv*V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtrnq_v, "vv*V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vtst_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vtstd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vtstd_u64, "UWiUWiUWi", "n")
+BUILTIN(__builtin_neon_vtstq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vuqadd_v, "V8ScV8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vuqaddb_s8, "ScScSc", "n")
+BUILTIN(__builtin_neon_vuqaddd_s64, "WiWiWi", "n")
+BUILTIN(__builtin_neon_vuqaddh_s16, "sss", "n")
+BUILTIN(__builtin_neon_vuqaddq_v, "V16ScV16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vuqadds_s32, "iii", "n")
+BUILTIN(__builtin_neon_vuzp_v, "vv*V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vuzpq_v, "vv*V16ScV16Sci", "n")
+BUILTIN(__builtin_neon_vzip_v, "vv*V8ScV8Sci", "n")
+BUILTIN(__builtin_neon_vzipq_v, "vv*V16ScV16Sci", "n")
+#endif
+
+#ifdef GET_NEON_OVERLOAD_CHECK
+case NEON::BI__builtin_neon_vabd_v: mask = 0x70607ULL; break;
+case NEON::BI__builtin_neon_vabdq_v: mask = 0x7060700000000ULL; break;
+case NEON::BI__builtin_neon_vabs_v: mask = 0x60FULL; break;
+case NEON::BI__builtin_neon_vabsq_v: mask = 0x60F00000000ULL; break;
+case NEON::BI__builtin_neon_vaddhn_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vaesdq_v: mask = 0x1000000000000ULL; break;
+case NEON::BI__builtin_neon_vaeseq_v: mask = 0x1000000000000ULL; break;
+case NEON::BI__builtin_neon_vaesimcq_v: mask = 0x1000000000000ULL; break;
+case NEON::BI__builtin_neon_vaesmcq_v: mask = 0x1000000000000ULL; break;
+case NEON::BI__builtin_neon_vbsl_v: mask = 0xF067FULL; break;
+case NEON::BI__builtin_neon_vbslq_v: mask = 0xF067F00000000ULL; break;
+case NEON::BI__builtin_neon_vcage_v: mask = 0xC0000ULL; break;
+case NEON::BI__builtin_neon_vcageq_v: mask = 0xC000000000000ULL; break;
+case NEON::BI__builtin_neon_vcagt_v: mask = 0xC0000ULL; break;
+case NEON::BI__builtin_neon_vcagtq_v: mask = 0xC000000000000ULL; break;
+case NEON::BI__builtin_neon_vcale_v: mask = 0xC0000ULL; break;
+case NEON::BI__builtin_neon_vcaleq_v: mask = 0xC000000000000ULL; break;
+case NEON::BI__builtin_neon_vcalt_v: mask = 0xC0000ULL; break;
+case NEON::BI__builtin_neon_vcaltq_v: mask = 0xC000000000000ULL; break;
+case NEON::BI__builtin_neon_vceqz_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vceqzq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vcgez_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vcgezq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vcgtz_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vcgtzq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vclez_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vclezq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vcls_v: mask = 0x7ULL; break;
+case NEON::BI__builtin_neon_vclsq_v: mask = 0x700000000ULL; break;
+case NEON::BI__builtin_neon_vcltz_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vcltzq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vclz_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vclzq_v: mask = 0x7000700000000ULL; break;
+case NEON::BI__builtin_neon_vcnt_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vcntq_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vcvt_f16_f32: mask = 0x100ULL; break;
+case NEON::BI__builtin_neon_vcvt_f32_f16: mask = 0x20000000000ULL; break;
+case NEON::BI__builtin_neon_vcvt_f32_f64: mask = 0x200ULL; break;
+case NEON::BI__builtin_neon_vcvt_f32_v: mask = 0x40004ULL; break;
+case NEON::BI__builtin_neon_vcvt_f64_f32: mask = 0x40000000000ULL; break;
+case NEON::BI__builtin_neon_vcvt_f64_v: mask = 0x80008ULL; break;
+case NEON::BI__builtin_neon_vcvt_n_f32_v: mask = 0x40004ULL; break;
+case NEON::BI__builtin_neon_vcvt_n_f64_v: mask = 0x80008ULL; break;
+case NEON::BI__builtin_neon_vcvt_n_s32_v: mask = 0x4ULL; break;
+case NEON::BI__builtin_neon_vcvt_n_s64_v: mask = 0x8ULL; break;
+case NEON::BI__builtin_neon_vcvt_n_u32_v: mask = 0x40000ULL; break;
+case NEON::BI__builtin_neon_vcvt_n_u64_v: mask = 0x80000ULL; break;
+case NEON::BI__builtin_neon_vcvt_s32_v: mask = 0x4ULL; break;
+case NEON::BI__builtin_neon_vcvt_s64_v: mask = 0x8ULL; break;
+case NEON::BI__builtin_neon_vcvt_u32_v: mask = 0x40000ULL; break;
+case NEON::BI__builtin_neon_vcvt_u64_v: mask = 0x80000ULL; break;
+case NEON::BI__builtin_neon_vcvta_s32_v: mask = 0x4ULL; break;
+case NEON::BI__builtin_neon_vcvta_s64_v: mask = 0x8ULL; break;
+case NEON::BI__builtin_neon_vcvta_u32_v: mask = 0x40000ULL; break;
+case NEON::BI__builtin_neon_vcvta_u64_v: mask = 0x80000ULL; break;
+case NEON::BI__builtin_neon_vcvtaq_s32_v: mask = 0x400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtaq_s64_v: mask = 0x800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtaq_u32_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtaq_u64_v: mask = 0x8000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtm_s32_v: mask = 0x4ULL; break;
+case NEON::BI__builtin_neon_vcvtm_s64_v: mask = 0x8ULL; break;
+case NEON::BI__builtin_neon_vcvtm_u32_v: mask = 0x40000ULL; break;
+case NEON::BI__builtin_neon_vcvtm_u64_v: mask = 0x80000ULL; break;
+case NEON::BI__builtin_neon_vcvtmq_s32_v: mask = 0x400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtmq_s64_v: mask = 0x800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtmq_u32_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtmq_u64_v: mask = 0x8000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtn_s32_v: mask = 0x4ULL; break;
+case NEON::BI__builtin_neon_vcvtn_s64_v: mask = 0x8ULL; break;
+case NEON::BI__builtin_neon_vcvtn_u32_v: mask = 0x40000ULL; break;
+case NEON::BI__builtin_neon_vcvtn_u64_v: mask = 0x80000ULL; break;
+case NEON::BI__builtin_neon_vcvtnq_s32_v: mask = 0x400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtnq_s64_v: mask = 0x800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtnq_u32_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtnq_u64_v: mask = 0x8000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtp_s32_v: mask = 0x4ULL; break;
+case NEON::BI__builtin_neon_vcvtp_s64_v: mask = 0x8ULL; break;
+case NEON::BI__builtin_neon_vcvtp_u32_v: mask = 0x40000ULL; break;
+case NEON::BI__builtin_neon_vcvtp_u64_v: mask = 0x80000ULL; break;
+case NEON::BI__builtin_neon_vcvtpq_s32_v: mask = 0x400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtpq_s64_v: mask = 0x800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtpq_u32_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtpq_u64_v: mask = 0x8000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_f32_v: mask = 0x4000400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_f64_v: mask = 0x8000800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_n_f32_v: mask = 0x4000400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_n_f64_v: mask = 0x8000800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_n_s32_v: mask = 0x400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_n_s64_v: mask = 0x800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_n_u32_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_n_u64_v: mask = 0x8000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_s32_v: mask = 0x400000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_s64_v: mask = 0x800000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_u32_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtq_u64_v: mask = 0x8000000000000ULL; break;
+case NEON::BI__builtin_neon_vcvtx_f32_v: mask = 0x40000000000ULL; break;
+case NEON::BI__builtin_neon_vext_v: mask = 0xF067FULL; break;
+case NEON::BI__builtin_neon_vextq_v: mask = 0xF067F00000000ULL; break;
+case NEON::BI__builtin_neon_vfma_lane_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vfma_laneq_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vfma_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vfmaq_lane_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vfmaq_laneq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vfmaq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vhadd_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vhaddq_v: mask = 0x7000700000000ULL; break;
+case NEON::BI__builtin_neon_vhsub_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vhsubq_v: mask = 0x7000700000000ULL; break;
+case NEON::BI__builtin_neon_vld1_dup_v: mask = 0xF077FULL; break;
+case NEON::BI__builtin_neon_vld1_lane_v: mask = 0xF077FULL; break;
+case NEON::BI__builtin_neon_vld1_v: mask = 0xF077FULL; PtrArgNum = 0; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1_x2_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1_x3_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1_x4_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1q_dup_v: mask = 0xF077F00000000ULL; break;
+case NEON::BI__builtin_neon_vld1q_lane_v: mask = 0xF077F00000000ULL; break;
+case NEON::BI__builtin_neon_vld1q_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1q_x2_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1q_x3_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld1q_x4_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld2_dup_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld2_lane_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld2_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld2q_dup_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld2q_lane_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld2q_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld3_dup_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld3_lane_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld3_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld3q_dup_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld3q_lane_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld3q_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld4_dup_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld4_lane_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld4_v: mask = 0xF077FULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld4q_dup_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld4q_lane_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vld4q_v: mask = 0xF077F00000000ULL; PtrArgNum = 1; HasConstPtr = true; break;
+case NEON::BI__builtin_neon_vmax_v: mask = 0x70607ULL; break;
+case NEON::BI__builtin_neon_vmaxnm_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vmaxnmq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vmaxq_v: mask = 0x7060700000000ULL; break;
+case NEON::BI__builtin_neon_vmin_v: mask = 0x70607ULL; break;
+case NEON::BI__builtin_neon_vminnm_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vminnmq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vminq_v: mask = 0x7060700000000ULL; break;
+case NEON::BI__builtin_neon_vmovl_v: mask = 0xE000E00000000ULL; break;
+case NEON::BI__builtin_neon_vmovn_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vmul_lane_v: mask = 0x400ULL; break;
+case NEON::BI__builtin_neon_vmul_laneq_v: mask = 0x400ULL; break;
+case NEON::BI__builtin_neon_vmul_v: mask = 0x10ULL; break;
+case NEON::BI__builtin_neon_vmull_v: mask = 0xE002E00000000ULL; break;
+case NEON::BI__builtin_neon_vmulq_v: mask = 0x1000000000ULL; break;
+case NEON::BI__builtin_neon_vmulx_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vmulxq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vpadal_v: mask = 0xE000EULL; break;
+case NEON::BI__builtin_neon_vpadalq_v: mask = 0xE000E00000000ULL; break;
+case NEON::BI__builtin_neon_vpadd_v: mask = 0x70207ULL; break;
+case NEON::BI__builtin_neon_vpaddl_v: mask = 0xE000EULL; break;
+case NEON::BI__builtin_neon_vpaddlq_v: mask = 0xE000E00000000ULL; break;
+case NEON::BI__builtin_neon_vpaddq_v: mask = 0xF060F00000000ULL; break;
+case NEON::BI__builtin_neon_vpmax_v: mask = 0x70207ULL; break;
+case NEON::BI__builtin_neon_vpmaxnm_v: mask = 0x200ULL; break;
+case NEON::BI__builtin_neon_vpmaxnmq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vpmaxq_v: mask = 0x7060700000000ULL; break;
+case NEON::BI__builtin_neon_vpmin_v: mask = 0x70207ULL; break;
+case NEON::BI__builtin_neon_vpminnm_v: mask = 0x200ULL; break;
+case NEON::BI__builtin_neon_vpminnmq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vpminq_v: mask = 0x7060700000000ULL; break;
+case NEON::BI__builtin_neon_vqabs_v: mask = 0xFULL; break;
+case NEON::BI__builtin_neon_vqabsq_v: mask = 0xF00000000ULL; break;
+case NEON::BI__builtin_neon_vqadd_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vqaddq_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vqdmlal_v: mask = 0xC00000000ULL; break;
+case NEON::BI__builtin_neon_vqdmlsl_v: mask = 0xC00000000ULL; break;
+case NEON::BI__builtin_neon_vqdmulh_v: mask = 0x6ULL; break;
+case NEON::BI__builtin_neon_vqdmulhq_v: mask = 0x600000000ULL; break;
+case NEON::BI__builtin_neon_vqdmull_v: mask = 0xC00000000ULL; break;
+case NEON::BI__builtin_neon_vqmovn_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vqmovun_v: mask = 0x70000ULL; break;
+case NEON::BI__builtin_neon_vqneg_v: mask = 0xFULL; break;
+case NEON::BI__builtin_neon_vqnegq_v: mask = 0xF00000000ULL; break;
+case NEON::BI__builtin_neon_vqrdmulh_v: mask = 0x6ULL; break;
+case NEON::BI__builtin_neon_vqrdmulhq_v: mask = 0x600000000ULL; break;
+case NEON::BI__builtin_neon_vqrshl_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vqrshlq_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vqrshrn_n_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vqrshrun_n_v: mask = 0x70000ULL; break;
+case NEON::BI__builtin_neon_vqshl_n_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vqshl_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vqshlq_n_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vqshlq_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vqshlu_n_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vqshluq_n_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vqshrn_n_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vqshrun_n_v: mask = 0x70000ULL; break;
+case NEON::BI__builtin_neon_vqsub_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vqsubq_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vqtbl1_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbl1q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbl2_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbl2q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbl3_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbl3q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbl4_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbl4q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbx1_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbx1q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbx2_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbx2q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbx3_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbx3q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vqtbx4_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vqtbx4q_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vraddhn_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vrbit_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vrbitq_v: mask = 0x1001100000000ULL; break;
+case NEON::BI__builtin_neon_vrecpe_v: mask = 0x40600ULL; break;
+case NEON::BI__builtin_neon_vrecpeq_v: mask = 0x4060000000000ULL; break;
+case NEON::BI__builtin_neon_vrecps_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrecpsq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrhadd_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vrhaddq_v: mask = 0x7000700000000ULL; break;
+case NEON::BI__builtin_neon_vrnd_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrnda_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrndaq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrndi_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrndiq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrndm_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrndmq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrndn_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrndnq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrndp_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrndpq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrndq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrndx_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrndxq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrshl_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vrshlq_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vrshr_n_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vrshrn_n_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vrshrq_n_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vrsqrte_v: mask = 0x40600ULL; break;
+case NEON::BI__builtin_neon_vrsqrteq_v: mask = 0x4060000000000ULL; break;
+case NEON::BI__builtin_neon_vrsqrts_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vrsqrtsq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vrsra_n_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vrsraq_n_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vrsubhn_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vsha1su0q_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vsha1su1q_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vsha256h2q_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vsha256hq_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vsha256su0q_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vsha256su1q_v: mask = 0x4000000000000ULL; break;
+case NEON::BI__builtin_neon_vshl_n_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vshl_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vshll_n_v: mask = 0xE000E00000000ULL; break;
+case NEON::BI__builtin_neon_vshlq_n_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vshlq_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vshr_n_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vshrn_n_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vshrq_n_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vsli_n_v: mask = 0xF007FULL; break;
+case NEON::BI__builtin_neon_vsliq_n_v: mask = 0xF007F00000000ULL; break;
+case NEON::BI__builtin_neon_vsqadd_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vsqaddq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vsqrt_v: mask = 0x600ULL; break;
+case NEON::BI__builtin_neon_vsqrtq_v: mask = 0x60000000000ULL; break;
+case NEON::BI__builtin_neon_vsra_n_v: mask = 0xF000FULL; break;
+case NEON::BI__builtin_neon_vsraq_n_v: mask = 0xF000F00000000ULL; break;
+case NEON::BI__builtin_neon_vsri_n_v: mask = 0xF007FULL; break;
+case NEON::BI__builtin_neon_vsriq_n_v: mask = 0xF007F00000000ULL; break;
+case NEON::BI__builtin_neon_vst1_lane_v: mask = 0xF077FULL; break;
+case NEON::BI__builtin_neon_vst1_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1_x2_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1_x3_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1_x4_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1q_lane_v: mask = 0xF077F00000000ULL; break;
+case NEON::BI__builtin_neon_vst1q_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1q_x2_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1q_x3_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst1q_x4_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst2_lane_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst2_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst2q_lane_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst2q_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst3_lane_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst3_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst3q_lane_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst3q_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst4_lane_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst4_v: mask = 0xF077FULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst4q_lane_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vst4q_v: mask = 0xF077F00000000ULL; PtrArgNum = 0; break;
+case NEON::BI__builtin_neon_vsubhn_v: mask = 0x70007ULL; break;
+case NEON::BI__builtin_neon_vtbl1_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbl2_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbl3_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbl4_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbx1_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbx2_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbx3_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtbx4_v: mask = 0x10011ULL; break;
+case NEON::BI__builtin_neon_vtrn_v: mask = 0x70237ULL; break;
+case NEON::BI__builtin_neon_vtrnq_v: mask = 0x7023700000000ULL; break;
+case NEON::BI__builtin_neon_vtst_v: mask = 0xF0000ULL; break;
+case NEON::BI__builtin_neon_vtstq_v: mask = 0xF000000000000ULL; break;
+case NEON::BI__builtin_neon_vuqadd_v: mask = 0xFULL; break;
+case NEON::BI__builtin_neon_vuqaddq_v: mask = 0xF00000000ULL; break;
+case NEON::BI__builtin_neon_vuzp_v: mask = 0x70237ULL; break;
+case NEON::BI__builtin_neon_vuzpq_v: mask = 0x7023700000000ULL; break;
+case NEON::BI__builtin_neon_vzip_v: mask = 0x70237ULL; break;
+case NEON::BI__builtin_neon_vzipq_v: mask = 0x7023700000000ULL; break;
+#endif
+
+#ifdef GET_NEON_IMMEDIATE_CHECK
+case NEON::BI__builtin_neon_vcvtq_n_f64_v: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvt_n_f64_v: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvtq_n_s64_v: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvt_n_s64_v: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvtq_n_u64_v: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvt_n_u64_v: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vget_lane_i64: i = 1; u = 0; break;
+case NEON::BI__builtin_neon_vgetq_lane_i64: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vgetq_lane_f64: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vget_lane_f64: i = 1; u = 0; break;
+case NEON::BI__builtin_neon_vld1_lane_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld1q_lane_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld2_lane_v: i = 4; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld2q_lane_v: i = 4; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld3_lane_v: i = 5; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld3q_lane_v: i = 5; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld4_lane_v: i = 6; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vld4q_lane_v: i = 6; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vcvts_n_s32_f32: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvtd_n_s64_f64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvts_n_u32_f32: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvtd_n_u64_f64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vfmad_lane_f64: i = 3; u = 0; break;
+case NEON::BI__builtin_neon_vfmas_lane_f32: i = 3; u = 1; break;
+case NEON::BI__builtin_neon_vfmad_laneq_f64: i = 3; u = 1; break;
+case NEON::BI__builtin_neon_vfmas_laneq_f32: i = 3; u = 3; break;
+case NEON::BI__builtin_neon_vcvts_n_f32_u32: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvts_n_f32_s32: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvtd_n_f64_u64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vcvtd_n_f64_s64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vshld_n_u64: i = 1; u = 63; break;
+case NEON::BI__builtin_neon_vshld_n_s64: i = 1; u = 63; break;
+case NEON::BI__builtin_neon_vslid_n_u64: i = 2; u = 63; break;
+case NEON::BI__builtin_neon_vslid_n_s64: i = 2; u = 63; break;
+case NEON::BI__builtin_neon_vqdmlals_lane_s32: i = 3; u = 1; break;
+case NEON::BI__builtin_neon_vqdmlalh_lane_s16: i = 3; u = 3; break;
+case NEON::BI__builtin_neon_vqdmlals_laneq_s32: i = 3; u = 3; break;
+case NEON::BI__builtin_neon_vqdmlalh_laneq_s16: i = 3; u = 7; break;
+case NEON::BI__builtin_neon_vqdmlsls_lane_s32: i = 3; u = 1; break;
+case NEON::BI__builtin_neon_vqdmlslh_lane_s16: i = 3; u = 3; break;
+case NEON::BI__builtin_neon_vqdmlsls_laneq_s32: i = 3; u = 3; break;
+case NEON::BI__builtin_neon_vqdmlslh_laneq_s16: i = 3; u = 7; break;
+case NEON::BI__builtin_neon_vqrshrns_n_u32: i = 1; l = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqrshrnd_n_u64: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqrshrnh_n_u16: i = 1; l = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqrshrns_n_s32: i = 1; l = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqrshrnd_n_s64: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqrshrnh_n_s16: i = 1; l = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqrshruns_n_s32: i = 1; l = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqrshrund_n_s64: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqrshrunh_n_s16: i = 1; l = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqshlub_n_s8: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqshlus_n_s32: i = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqshlud_n_s64: i = 1; u = 63; break;
+case NEON::BI__builtin_neon_vqshluh_n_s16: i = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqshlb_n_u8: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqshls_n_u32: i = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqshld_n_u64: i = 1; u = 63; break;
+case NEON::BI__builtin_neon_vqshlh_n_u16: i = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqshlb_n_s8: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqshls_n_s32: i = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqshld_n_s64: i = 1; u = 63; break;
+case NEON::BI__builtin_neon_vqshlh_n_s16: i = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqshrns_n_u32: i = 1; l = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqshrnd_n_u64: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqshrnh_n_u16: i = 1; l = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqshrns_n_s32: i = 1; l = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqshrnd_n_s64: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqshrnh_n_s16: i = 1; l = 1; u = 7; break;
+case NEON::BI__builtin_neon_vqshruns_n_s32: i = 1; l = 1; u = 15; break;
+case NEON::BI__builtin_neon_vqshrund_n_s64: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vqshrunh_n_s16: i = 1; l = 1; u = 7; break;
+case NEON::BI__builtin_neon_vsrid_n_u64: i = 2; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vsrid_n_s64: i = 2; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vrshrd_n_u64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vrshrd_n_s64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vrsrad_n_u64: i = 2; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vrsrad_n_s64: i = 2; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vshrd_n_u64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vshrd_n_s64: i = 1; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vsrad_n_u64: i = 2; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vsrad_n_s64: i = 2; l = 1; u = 63; break;
+case NEON::BI__builtin_neon_vdupb_lane_i8: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vduph_lane_i16: i = 1; u = 3; break;
+case NEON::BI__builtin_neon_vdups_lane_i32: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vdupd_lane_i64: i = 1; u = 0; break;
+case NEON::BI__builtin_neon_vdupd_lane_f64: i = 1; u = 0; break;
+case NEON::BI__builtin_neon_vdups_lane_f32: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vdupb_laneq_i8: i = 1; u = 15; break;
+case NEON::BI__builtin_neon_vduph_laneq_i16: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vdups_laneq_i32: i = 1; u = 3; break;
+case NEON::BI__builtin_neon_vdupd_laneq_i64: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vdupd_laneq_f64: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vdups_laneq_f32: i = 1; u = 3; break;
+case NEON::BI__builtin_neon_vmul_lane_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vmul_laneq_v: i = 2; u = RFT(TV, false, true); break;
+case NEON::BI__builtin_neon_vset_lane_i64: i = 2; u = 0; break;
+case NEON::BI__builtin_neon_vsetq_lane_i64: i = 2; u = 1; break;
+case NEON::BI__builtin_neon_vsetq_lane_f64: i = 2; u = 1; break;
+case NEON::BI__builtin_neon_vset_lane_f64: i = 2; u = 0; break;
+case NEON::BI__builtin_neon_vsli_n_v: i = 2; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vsliq_n_v: i = 2; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vsri_n_v: i = 2; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vsriq_n_v: i = 2; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vst1_lane_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst1q_lane_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst2_lane_v: i = 3; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst2q_lane_v: i = 3; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst3_lane_v: i = 4; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst3q_lane_v: i = 4; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst4_lane_v: i = 5; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vst4q_lane_v: i = 5; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vcvtq_n_f32_v: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvt_n_f32_v: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvtq_n_s32_v: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvt_n_s32_v: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvtq_n_u32_v: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vcvt_n_u32_v: i = 1; l = 1; u = 31; break;
+case NEON::BI__builtin_neon_vext_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vextq_v: i = 2; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vfmaq_lane_v: i = 3; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vfma_lane_v: i = 3; u = RFT(TV, false, false); break;
+case NEON::BI__builtin_neon_vfmaq_laneq_v: i = 3; u = RFT(TV, false, true); break;
+case NEON::BI__builtin_neon_vfma_laneq_v: i = 3; u = RFT(TV, false, true); break;
+case NEON::BI__builtin_neon_vget_lane_i8: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vget_lane_i16: i = 1; u = 3; break;
+case NEON::BI__builtin_neon_vgetq_lane_i8: i = 1; u = 15; break;
+case NEON::BI__builtin_neon_vgetq_lane_i16: i = 1; u = 7; break;
+case NEON::BI__builtin_neon_vgetq_lane_i32: i = 1; u = 3; break;
+case NEON::BI__builtin_neon_vgetq_lane_f32: i = 1; u = 3; break;
+case NEON::BI__builtin_neon_vget_lane_i32: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vget_lane_f32: i = 1; u = 1; break;
+case NEON::BI__builtin_neon_vqrshrn_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqrshrun_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqshluq_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqshlu_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqshlq_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqshl_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqshrn_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vqshrun_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vrshrn_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vrshrq_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vrshr_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vrsraq_n_v: i = 2; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vrsra_n_v: i = 2; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vset_lane_i8: i = 2; u = 7; break;
+case NEON::BI__builtin_neon_vset_lane_i16: i = 2; u = 3; break;
+case NEON::BI__builtin_neon_vsetq_lane_i8: i = 2; u = 15; break;
+case NEON::BI__builtin_neon_vsetq_lane_i16: i = 2; u = 7; break;
+case NEON::BI__builtin_neon_vsetq_lane_i32: i = 2; u = 3; break;
+case NEON::BI__builtin_neon_vsetq_lane_f32: i = 2; u = 3; break;
+case NEON::BI__builtin_neon_vset_lane_i32: i = 2; u = 1; break;
+case NEON::BI__builtin_neon_vset_lane_f32: i = 2; u = 1; break;
+case NEON::BI__builtin_neon_vshll_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vshlq_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vshl_n_v: i = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vshrn_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vshrq_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vshr_n_v: i = 1; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vsraq_n_v: i = 2; l = 1; u = RFT(TV, true); break;
+case NEON::BI__builtin_neon_vsra_n_v: i = 2; l = 1; u = RFT(TV, true); break;
+#endif
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Driver/Options.inc b/clang-4053586/prebuilt_include/clang/include/clang/Driver/Options.inc
new file mode 100644
index 0000000..7ff9b1b
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Driver/Options.inc
@@ -0,0 +1,2977 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Option Parsing Definitions                                                 *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+/////////
+// Prefixes
+
+#ifdef PREFIX
+#define COMMA ,
+PREFIX(prefix_0, {nullptr})
+PREFIX(prefix_1, {"-" COMMA nullptr})
+PREFIX(prefix_4, {"-" COMMA "--" COMMA nullptr})
+PREFIX(prefix_3, {"--" COMMA nullptr})
+PREFIX(prefix_2, {"/" COMMA "-" COMMA nullptr})
+#undef COMMA
+#endif // PREFIX
+
+/////////
+// Groups
+
+#ifdef OPTION
+OPTION(nullptr, "<action group>", Action_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<CompileOnly group>", CompileOnly_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<g group>", DebugInfo_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<W/R group>", Diag_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<I group>", I_Group, Group, IncludePath_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<I/i group>", IncludePath_Group, Group, Preprocessor_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<T/e/s/t/u group>", Link_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<M group>", M_Group, Group, Preprocessor_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<O group>", O_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<Preprocessor group>", Preprocessor_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<R group>", R_Group, Group, Diag_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<R (with value) group>", R_value_Group, Group, R_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<Static analyzer group>", StaticAnalyzer_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<T group>", T_Group, Group, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<W group>", W_Group, Group, Diag_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<W (with value) group>", W_value_Group, Group, W_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "</M group>", _SLASH_M_Group, Group, cl_compile_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "</volatile group>", _SLASH_volatile_Group, Group, cl_compile_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang-cl options>", cl_Group, Group, INVALID, INVALID, nullptr, 0, 0,
+       "CL.EXE COMPATIBILITY OPTIONS", nullptr)
+OPTION(nullptr, "<clang-cl compile-only options>", cl_compile_Group, Group, cl_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang-cl ignored options>", cl_ignored_Group, Group, cl_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang i group>", clang_i_Group, Group, i_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang ignored f group>", clang_ignored_f_Group, Group, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang_ignored_gcc_optimization_f_Group>", clang_ignored_gcc_optimization_f_Group, Group, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang ignored m group>", clang_ignored_m_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<d group>", d_Group, Group, Preprocessor_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<f group>", f_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<f (clang-only) group>", f_clang_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<gN group>", gN_Group, Group, g_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<gTune group>", gTune_Group, Group, g_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<g group>", g_Group, Group, DebugInfo_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<g flags group>", g_flags_Group, Group, DebugInfo_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<gfortran group>", gfortran_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<ggdbN group>", ggdbN_Group, Group, gN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<i group>", i_Group, Group, IncludePath_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang internal options>", internal_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<clang debug/development internal options>", internal_debug_Group, Group, internal_Group, INVALID, nullptr, 0, 0,
+       "DEBUG/DEVELOPMENT OPTIONS", nullptr)
+OPTION(nullptr, "<clang driver internal options>", internal_driver_Group, Group, internal_Group, INVALID, nullptr, 0, 0,
+       "DRIVER OPTIONS", nullptr)
+OPTION(nullptr, "<m group>", m_Group, Group, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<aarch64 features group>", m_aarch64_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<amdgpu features group>", m_amdgpu_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<arm features group>", m_arm_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<hexagon features group>", m_hexagon_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<m libc group>", m_libc_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<ppc features group>", m_ppc_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<wasm features group>", m_wasm_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<x86 features group>", m_x86_Features_Group, Group, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<opencl group>", opencl_Group, Group, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<pedantic group>", pedantic_Group, Group, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<reserved libs group>", reserved_lib_Group, Group, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(nullptr, "<u group>", u_Group, Group, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+
+//////////
+// Options
+
+OPTION(prefix_0, "<input>", INPUT, Input, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_0, "<unknown>", UNKNOWN, Unknown, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "###", _HASH_HASH_HASH, Flag, INVALID, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Print (but do not run) the commands to run for this compilation", nullptr)
+OPTION(prefix_2, "?", _SLASH_QUESTION, Flag, cl_Group, help, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Display available options", nullptr)
+OPTION(prefix_1, "A-", A_DASH, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "add-plugin", add_plugin, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use the named plugin action in addition to the default action", "<name>")
+OPTION(prefix_2, "AI", _SLASH_AI, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "all-warnings", _all_warnings, Flag, INVALID, Wall, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "all_load", all__load, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "allowable_client", allowable__client, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "analyze-auto", _analyze_auto, Flag, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyze-function=", analyze_function_EQ, Joined, INVALID, analyze_function, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyze-function", analyze_function, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Run analysis on specific function", nullptr)
+OPTION(prefix_2, "analyze-", _SLASH_analyze_, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-checker-help", analyzer_checker_help, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Display the list of analyzer checkers that are available", nullptr)
+OPTION(prefix_1, "analyzer-checker=", analyzer_checker_EQ, Joined, INVALID, analyzer_checker, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-checker", analyzer_checker, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Choose analyzer checkers to enable", nullptr)
+OPTION(prefix_1, "analyzer-config", analyzer_config, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Choose analyzer options to enable", nullptr)
+OPTION(prefix_1, "analyzer-constraints=", analyzer_constraints_EQ, Joined, INVALID, analyzer_constraints, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-constraints", analyzer_constraints, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Source Code Analysis - Symbolic Constraint Engines", nullptr)
+OPTION(prefix_1, "analyzer-disable-all-checks", analyzer_disable_all_checks, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable all static analyzer checks", nullptr)
+OPTION(prefix_1, "analyzer-disable-checker=", analyzer_disable_checker_EQ, Joined, INVALID, analyzer_disable_checker, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-disable-checker", analyzer_disable_checker, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Choose analyzer checkers to disable", nullptr)
+OPTION(prefix_1, "analyzer-disable-retry-exhausted", analyzer_disable_retry_exhausted, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not re-analyze paths leading to exhausted nodes with a different strategy (may decrease code coverage)", nullptr)
+OPTION(prefix_1, "analyzer-display-progress", analyzer_display_progress, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit verbose output about the analyzer's progress", nullptr)
+OPTION(prefix_1, "analyzer-eagerly-assume", analyzer_eagerly_assume, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Eagerly assume the truth/falseness of some symbolic constraints", nullptr)
+OPTION(prefix_1, "analyzer-inline-max-stack-depth=", analyzer_inline_max_stack_depth_EQ, Joined, INVALID, analyzer_inline_max_stack_depth, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-inline-max-stack-depth", analyzer_inline_max_stack_depth, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Bound on stack depth while inlining (4 by default)", nullptr)
+OPTION(prefix_1, "analyzer-inlining-mode=", analyzer_inlining_mode_EQ, Joined, INVALID, analyzer_inlining_mode, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-inlining-mode", analyzer_inlining_mode, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Specify the function selection heuristic used during inlining", nullptr)
+OPTION(prefix_1, "analyzer-list-enabled-checkers", analyzer_list_enabled_checkers, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Display the list of enabled analyzer checkers", nullptr)
+OPTION(prefix_1, "analyzer-max-loop", analyzer_max_loop, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "The maximum number of times the analyzer will go through a loop", nullptr)
+OPTION(prefix_3, "analyzer-no-default-checks", _analyzer_no_default_checks, Flag, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-opt-analyze-headers", analyzer_opt_analyze_headers, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Force the static analyzer to analyze functions defined in header files", nullptr)
+OPTION(prefix_1, "analyzer-opt-analyze-nested-blocks", analyzer_opt_analyze_nested_blocks, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Analyze the definitions of blocks in addition to functions", nullptr)
+OPTION(prefix_1, "analyzer-output=", analyzer_output_EQ, Joined, INVALID, analyzer_output, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "analyzer-output", _analyzer_output, JoinedOrSeparate, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Static analyzer report output format (html|plist|plist-multi-file|plist-html|text).", nullptr)
+OPTION(prefix_1, "analyzer-output", analyzer_output, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Source Code Analysis - Output Options", nullptr)
+OPTION(prefix_1, "analyzer-purge=", analyzer_purge_EQ, Joined, INVALID, analyzer_purge, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-purge", analyzer_purge, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Source Code Analysis - Dead Symbol Removal Frequency", nullptr)
+OPTION(prefix_1, "analyzer-stats", analyzer_stats, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Print internal analyzer statistics.", nullptr)
+OPTION(prefix_1, "analyzer-store=", analyzer_store_EQ, Joined, INVALID, analyzer_store, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "analyzer-store", analyzer_store, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Source Code Analysis - Abstract Memory Store Models", nullptr)
+OPTION(prefix_1, "analyzer-viz-egraph-graphviz", analyzer_viz_egraph_graphviz, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Display exploded graph using GraphViz", nullptr)
+OPTION(prefix_1, "analyzer-viz-egraph-ubigraph", analyzer_viz_egraph_ubigraph, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Display exploded graph using Ubigraph", nullptr)
+OPTION(prefix_3, "analyze", _analyze, Flag, INVALID, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Run the static analyzer", nullptr)
+OPTION(prefix_1, "analyze", analyze, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Run static analysis engine", nullptr)
+OPTION(prefix_4, "ansi", ansi, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "arange_sections", arange_sections, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit DWARF .debug_arange sections", nullptr)
+OPTION(prefix_2, "arch:", _SLASH_arch, Joined, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Set architecture for code generation", nullptr)
+OPTION(prefix_1, "arch_errors_fatal", arch__errors__fatal, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "arch_only", arch__only, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "arch", arch, Separate, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "arcmt-check", arcmt_check, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Check for ARC migration issues that need manual handling", nullptr)
+OPTION(prefix_1, "arcmt-migrate-emit-errors", arcmt_migrate_emit_arc_errors, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Emit ARC errors even if the migrator can fix them", nullptr)
+OPTION(prefix_1, "arcmt-migrate-report-output", arcmt_migrate_report_output, Separate, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Output path for the plist report", nullptr)
+OPTION(prefix_1, "arcmt-migrate", arcmt_migrate, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply modifications and produces temporary files that conform to ARC", nullptr)
+OPTION(prefix_1, "arcmt-modify", arcmt_modify, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply modifications to files to conform to ARC", nullptr)
+OPTION(prefix_3, "assemble", _assemble, Flag, INVALID, S, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "assert=", _assert_EQ, Joined, INVALID, A, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "assert", _assert, Separate, INVALID, A, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ast-dump-all", ast_dump_all, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and then debug dump them, forcing deserialization", nullptr)
+OPTION(prefix_1, "ast-dump-filter", ast_dump_filter, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use with -ast-dump or -ast-print to dump/print only AST declaration nodes having a certain substring in a qualified name. Use -ast-list to list all filterable declaration node names.", "<dump_filter>")
+OPTION(prefix_1, "ast-dump-lookups", ast_dump_lookups, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and then debug dump their name lookup tables", nullptr)
+OPTION(prefix_1, "ast-dump", ast_dump, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and then debug dump them", nullptr)
+OPTION(prefix_1, "ast-list", ast_list, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and print the list of declaration node qualified names", nullptr)
+OPTION(prefix_1, "ast-merge", ast_merge, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Merge the given AST file into the translation unit being compiled.", "<ast file>")
+OPTION(prefix_1, "ast-print", ast_print, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and then pretty-print them", nullptr)
+OPTION(prefix_1, "ast-view", ast_view, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and view them with GraphViz", nullptr)
+OPTION(prefix_1, "aux-triple", aux_triple, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Auxiliary target triple.", nullptr)
+OPTION(prefix_1, "A", A, JoinedOrSeparate, gfortran_Group, INVALID, nullptr, RenderJoined, 0, nullptr, nullptr)
+OPTION(prefix_1, "a", a, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "backend-option", backend_option, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Additional arguments to forward to LLVM backend (during code gen)", nullptr)
+OPTION(prefix_2, "bigobj", _SLASH_bigobj, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "bind_at_load", bind__at__load, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "bootclasspath=", _bootclasspath_EQ, Joined, INVALID, fbootclasspath_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "bootclasspath", _bootclasspath, Separate, INVALID, fbootclasspath_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "Brepro-", _SLASH_Brepro_, Flag, cl_Group, mincremental_linker_compatible, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Emit an object file which cannot be reproduced over time", nullptr)
+OPTION(prefix_2, "Brepro", _SLASH_Brepro, Flag, cl_Group, mno_incremental_linker_compatible, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Emit an object file which can be reproduced over time", nullptr)
+OPTION(prefix_1, "bundle_loader", bundle__loader, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "bundle", bundle, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "B", B, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0,
+       "Add <dir> to search path for binaries and object files used implicitly", "<dir>")
+OPTION(prefix_1, "b", b, JoinedOrSeparate, INVALID, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "c-isystem", c_isystem, JoinedOrSeparate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add directory to the C SYSTEM include search path", "<directory>")
+OPTION(prefix_1, "cc1as", cc1as, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "cc1", cc1, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "ccc-arcmt-check", ccc_arcmt_check, Flag, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Check for ARC migration issues that need manual handling", nullptr)
+OPTION(prefix_1, "ccc-arcmt-migrate", ccc_arcmt_migrate, Separate, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Apply modifications and produces temporary files that conform to ARC", nullptr)
+OPTION(prefix_1, "ccc-arcmt-modify", ccc_arcmt_modify, Flag, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Apply modifications to files to conform to ARC", nullptr)
+OPTION(prefix_1, "ccc-gcc-name", ccc_gcc_name, Separate, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Name for native GCC compiler", "<gcc-path>")
+OPTION(prefix_1, "ccc-install-dir", ccc_install_dir, Separate, internal_debug_Group, INVALID, nullptr, DriverOption | HelpHidden | CoreOption, 0,
+       "Simulate installation in the given directory", nullptr)
+OPTION(prefix_1, "ccc-objcmt-migrate", ccc_objcmt_migrate, Separate, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Apply modifications and produces temporary files to migrate to modern ObjC syntax", nullptr)
+OPTION(prefix_1, "ccc-pch-is-pch", ccc_pch_is_pch, Flag, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Use lazy PCH for precompiled headers", nullptr)
+OPTION(prefix_1, "ccc-pch-is-pth", ccc_pch_is_pth, Flag, internal_driver_Group, INVALID, nullptr, DriverOption | HelpHidden, 0,
+       "Use pretokenized headers for precompiled headers", nullptr)
+OPTION(prefix_1, "ccc-print-bindings", ccc_print_bindings, Flag, internal_debug_Group, INVALID, nullptr, DriverOption | HelpHidden | CoreOption, 0,
+       "Show bindings of tools to actions", nullptr)
+OPTION(prefix_1, "ccc-print-phases", ccc_print_phases, Flag, internal_debug_Group, INVALID, nullptr, DriverOption | HelpHidden | CoreOption, 0,
+       "Dump list of actions to perform", nullptr)
+OPTION(prefix_1, "ccc-", ccc_, Joined, internal_Group, INVALID, nullptr, Unsupported | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "CC", CC, Flag, Preprocessor_Group, INVALID, nullptr, CC1Option, 0,
+       "Include comments from within macros in preprocessed output", nullptr)
+OPTION(prefix_1, "cfg-add-implicit-dtors", analysis_CFGAddImplicitDtors, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add C++ implicit destructors to CFGs for all analyses", nullptr)
+OPTION(prefix_2, "cgthreads", _SLASH_cgthreads, Joined, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "chain-include", chain_include, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include and chain a header file after turning it into PCH", "<file>")
+OPTION(prefix_1, "cl-denorms-are-zero", cl_denorms_are_zero, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Allow denormals to be flushed to zero.", nullptr)
+OPTION(prefix_1, "cl-ext=", cl_ext_EQ, CommaJoined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "OpenCL only. Enable or disable OpenCL extensions. The argument is a comma-separated sequence of one or more extension names, each prefixed by '+' or '-'.", nullptr)
+OPTION(prefix_1, "cl-fast-relaxed-math", cl_fast_relaxed_math, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.", nullptr)
+OPTION(prefix_1, "cl-finite-math-only", cl_finite_math_only, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.", nullptr)
+OPTION(prefix_1, "cl-fp32-correctly-rounded-divide-sqrt", cl_fp32_correctly_rounded_divide_sqrt, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.", nullptr)
+OPTION(prefix_1, "cl-kernel-arg-info", cl_kernel_arg_info, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Generate kernel argument metadata.", nullptr)
+OPTION(prefix_1, "cl-mad-enable", cl_mad_enable, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Allow use of less precise MAD computations in the generated binary.", nullptr)
+OPTION(prefix_1, "cl-no-signed-zeros", cl_no_signed_zeros, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.", nullptr)
+OPTION(prefix_1, "cl-opt-disable", cl_opt_disable, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. This option disables all optimizations. By default optimizations are enabled.", nullptr)
+OPTION(prefix_1, "cl-single-precision-constant", cl_single_precision_constant, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Treat double precision floating-point constant as single precision constant.", nullptr)
+OPTION(prefix_1, "cl-std=", cl_std_EQ, Joined, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL language standard to compile for.", nullptr)
+OPTION(prefix_1, "cl-strict-aliasing", cl_strict_aliasing, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. This option is added for compatibility with OpenCL 1.0.", nullptr)
+OPTION(prefix_1, "cl-unsafe-math-optimizations", cl_unsafe_math_optimizations, Flag, opencl_Group, INVALID, nullptr, CC1Option, 0,
+       "OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.", nullptr)
+OPTION(prefix_3, "CLASSPATH=", _CLASSPATH_EQ, Joined, INVALID, fclasspath_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "classpath=", _classpath_EQ, Joined, INVALID, fclasspath_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "CLASSPATH", _CLASSPATH, Separate, INVALID, fclasspath_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "classpath", _classpath, Separate, INVALID, fclasspath_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "client_name", client__name, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "clr", _SLASH_clr, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "code-completion-at=", code_completion_at_EQ, Joined, INVALID, code_completion_at, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "code-completion-at", code_completion_at, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Dump code-completion information at a location", "<file>:<line>:<column>")
+OPTION(prefix_1, "code-completion-brief-comments", code_completion_brief_comments, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include brief documentation comments in code-completion results.", nullptr)
+OPTION(prefix_1, "code-completion-macros", code_completion_macros, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include macros in code-completion results", nullptr)
+OPTION(prefix_1, "code-completion-patterns", code_completion_patterns, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include code patterns in code-completion results", nullptr)
+OPTION(prefix_4, "combine", combine, Flag, INVALID, INVALID, nullptr, DriverOption | Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_3, "comments-in-macros", _comments_in_macros, Flag, INVALID, CC, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "comments", _comments, Flag, INVALID, C, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "compatibility_version", compatibility__version, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "compile", _compile, Flag, INVALID, c, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "compress-debug-sections", compress_debug_sections, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Compress DWARF debug sections using zlib", nullptr)
+OPTION(prefix_3, "constant-cfstrings", _constant_cfstrings, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "coverage-cfg-checksum", coverage_cfg_checksum, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit CFG checksum for functions in .gcno files.", nullptr)
+OPTION(prefix_1, "coverage-data-file=", coverage_data_file_EQ, Joined, INVALID, coverage_data_file, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "coverage-data-file", coverage_data_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit coverage data to this filename.", nullptr)
+OPTION(prefix_1, "coverage-exit-block-before-body", coverage_exit_block_before_body, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit the exit block before the body blocks in .gcno files.", nullptr)
+OPTION(prefix_1, "coverage-no-function-names-in-data", coverage_no_function_names_in_data, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit function names in .gcda files.", nullptr)
+OPTION(prefix_1, "coverage-notes-file=", coverage_notes_file_EQ, Joined, INVALID, coverage_notes_file, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "coverage-notes-file", coverage_notes_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit coverage notes to this filename.", nullptr)
+OPTION(prefix_1, "coverage-version=", coverage_version_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Four-byte version string for gcov files.", nullptr)
+OPTION(prefix_4, "coverage", coverage, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "cpp-precomp", cpp_precomp, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "cpp", cpp, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "cuda-compile-host-device", cuda_compile_host_device, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.", nullptr)
+OPTION(prefix_3, "cuda-device-only", cuda_device_only, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Compile CUDA code for device only", nullptr)
+OPTION(prefix_3, "cuda-gpu-arch=", cuda_gpu_arch_EQ, Joined, INVALID, INVALID, nullptr, DriverOption, 0,
+       "CUDA GPU architecture (e.g. sm_35).  May be specified more than once.", nullptr)
+OPTION(prefix_3, "cuda-host-only", cuda_host_only, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Compile CUDA code for host only.  Has no effect on non-CUDA compilations.", nullptr)
+OPTION(prefix_3, "cuda-noopt-device-debug", cuda_noopt_device_debug, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Enable device-side debug info generation. Disables ptxas optimizations.", nullptr)
+OPTION(prefix_3, "cuda-path=", cuda_path_EQ, Joined, i_Group, INVALID, nullptr, 0, 0,
+       "CUDA installation path", nullptr)
+OPTION(prefix_1, "current_version", current__version, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "cxx-isystem", cxx_isystem, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to the C++ SYSTEM include search path", "<directory>")
+OPTION(prefix_1, "C", C, Flag, Preprocessor_Group, INVALID, nullptr, CC1Option, 0,
+       "Include comments in preprocessed output", nullptr)
+OPTION(prefix_2, "C", _SLASH_C, Flag, cl_Group, C, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Don't discard comments when preprocessing", nullptr)
+OPTION(prefix_1, "c", c, Flag, Action_Group, INVALID, nullptr, DriverOption, 0,
+       "Only run preprocess, compile, and assemble steps", nullptr)
+OPTION(prefix_2, "c", _SLASH_c, Flag, cl_Group, c, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Compile only", nullptr)
+OPTION(prefix_2, "d2FastFail", _SLASH_d2FastFail, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "d2Zi+", _SLASH_d2Zi_PLUS, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "dA", dA, Flag, d_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dD", dD, Flag, d_Group, INVALID, nullptr, CC1Option, 0,
+       "Print macro definitions in -E mode in addition to normal output", nullptr)
+OPTION(prefix_1, "dead_strip", dead__strip, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "debug-info-kind=", debug_info_kind_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "debug-info-macro", debug_info_macro, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Emit macro debug information", nullptr)
+OPTION(prefix_3, "debug=", _debug_EQ, Joined, INVALID, g_Flag, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "debugger-tuning=", debugger_tuning_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "debug", _debug, Flag, INVALID, g_Flag, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "define-macro=", _define_macro_EQ, Joined, INVALID, D, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "define-macro", _define_macro, Separate, INVALID, D, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "defsym", defsym, Separate, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "Define a value for a symbol", nullptr)
+OPTION(prefix_3, "dependencies", _dependencies, Flag, INVALID, M, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dependency-dot", dependency_dot, Separate, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Filename to write DOT-formatted header dependencies to", nullptr)
+OPTION(prefix_1, "dependency-file", dependency_file, Separate, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Filename (or -) to write dependency output to", nullptr)
+OPTION(prefix_3, "dependent-lib=", dependent_lib, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add dependent library", nullptr)
+OPTION(prefix_1, "detailed-preprocessing-record", detailed_preprocessing_record, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "include a detailed record of preprocessing actions", nullptr)
+OPTION(prefix_1, "diagnostic-log-file", diagnostic_log_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Filename (or -) to log diagnostics to", nullptr)
+OPTION(prefix_1, "disable-free", disable_free, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable freeing of memory on exit", nullptr)
+OPTION(prefix_1, "disable-lifetime-markers", disable_lifetimemarkers, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable lifetime-markers emission even when optimizations are enabled", nullptr)
+OPTION(prefix_1, "disable-llvm-optzns", disable_llvm_optzns, Flag, INVALID, disable_llvm_passes, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "disable-llvm-passes", disable_llvm_passes, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use together with -emit-llvm to get pristine LLVM IR from the frontend by not running any LLVM passes at all", nullptr)
+OPTION(prefix_1, "disable-llvm-verifier", disable_llvm_verifier, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Don't run the LLVM IR verifier pass", nullptr)
+OPTION(prefix_1, "disable-objc-default-synthesize-properties", disable_objc_default_synthesize_properties, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "disable the default synthesis of Objective-C properties", nullptr)
+OPTION(prefix_1, "disable-red-zone", disable_red_zone, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not emit code that uses the red zone.", nullptr)
+OPTION(prefix_1, "discard-value-names", discard_value_names, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Discard value names in LLVM IR", nullptr)
+OPTION(prefix_1, "dI", dI, Flag, d_Group, INVALID, nullptr, CC1Option, 0,
+       "Print include directives in -E mode in addition to normal output", nullptr)
+OPTION(prefix_1, "dM", dM, Flag, d_Group, INVALID, nullptr, CC1Option, 0,
+       "Print macro definitions in -E mode instead of normal output", nullptr)
+OPTION(prefix_2, "doc", _SLASH_doc, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "driver-mode=", driver_mode, Joined, internal_driver_Group, INVALID, nullptr, CoreOption | DriverOption | HelpHidden, 0,
+       "Set the driver mode to either 'gcc', 'g++', 'cpp', or 'cl'", nullptr)
+OPTION(prefix_1, "dump-coverage-mapping", dump_coverage_mapping, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Dump the coverage mapping records, for testing", nullptr)
+OPTION(prefix_1, "dump-deserialized-decls", dump_deserialized_pch_decls, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Dump declarations that are deserialized from PCH, for testing", nullptr)
+OPTION(prefix_1, "dump-raw-tokens", dump_raw_tokens, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Lex file in raw mode and dump raw tokens", nullptr)
+OPTION(prefix_1, "dump-tokens", dump_tokens, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Run preprocessor, dump internal rep of tokens", nullptr)
+OPTION(prefix_1, "dumpmachine", dumpmachine, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dumpspecs", dumpspecs, Flag, INVALID, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "dumpversion", dumpversion, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dwarf-column-info", dwarf_column_info, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Turn on column location information.", nullptr)
+OPTION(prefix_1, "dwarf-debug-flags", dwarf_debug_flags, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "The string to embed in the Dwarf debug flags record.", nullptr)
+OPTION(prefix_1, "dwarf-debug-producer", dwarf_debug_producer, Separate, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "The string to embed in the Dwarf debug AT_producer record.", nullptr)
+OPTION(prefix_1, "dwarf-ext-refs", dwarf_ext_refs, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate debug info with external references to clang modules or precompiled headers", nullptr)
+OPTION(prefix_1, "dwarf-version=", dwarf_version_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "dyld-prefix=", _dyld_prefix_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "dyld-prefix", _dyld_prefix, Separate, INVALID, _dyld_prefix_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dylib_file", dylib__file, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dylinker_install_name", dylinker__install__name, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dylinker", dylinker, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dynamiclib", dynamiclib, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "dynamic", dynamic, Flag, INVALID, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "D", D, JoinedOrSeparate, Preprocessor_Group, INVALID, nullptr, CC1Option, 0,
+       "Define <macro> to <value> (or 1 if <value> omitted)", "<macro>=<value>")
+OPTION(prefix_2, "D", _SLASH_D, JoinedOrSeparate, cl_Group, D, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Define macro", "<macro[=value]>")
+OPTION(prefix_1, "d", d_Flag, Flag, d_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "d", d_Joined, Joined, d_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "EB", EB, Flag, INVALID, mbig_endian, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "EH", _SLASH_EH, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Exception handling model", nullptr)
+OPTION(prefix_1, "EL", EL, Flag, INVALID, mlittle_endian, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "emit-ast", emit_ast, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Emit Clang AST files for source inputs", nullptr)
+OPTION(prefix_1, "emit-codegen-only", emit_codegen_only, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate machine code, but discard output", nullptr)
+OPTION(prefix_1, "emit-html", emit_html, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Output input source as HTML", nullptr)
+OPTION(prefix_1, "emit-llvm-bc", emit_llvm_bc, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs then convert to LLVM, emit .bc file", nullptr)
+OPTION(prefix_1, "emit-llvm-only", emit_llvm_only, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Build ASTs and convert to LLVM, discarding output", nullptr)
+OPTION(prefix_1, "emit-llvm-uselists", emit_llvm_uselists, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Preserve order of LLVM use-lists when serializing", nullptr)
+OPTION(prefix_1, "emit-llvm", emit_llvm, Flag, Action_Group, INVALID, nullptr, CC1Option, 0,
+       "Use the LLVM representation for assembler and object files", nullptr)
+OPTION(prefix_1, "emit-module-interface", emit_module_interface, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate pre-compiled module file from a C++ module interface", nullptr)
+OPTION(prefix_1, "emit-module", emit_module, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate pre-compiled module file from a module map", nullptr)
+OPTION(prefix_1, "emit-obj", emit_obj, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit native object files", nullptr)
+OPTION(prefix_1, "emit-pch", emit_pch, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate pre-compiled header file", nullptr)
+OPTION(prefix_1, "emit-pth", emit_pth, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate pre-tokenized header file", nullptr)
+OPTION(prefix_3, "encoding=", _encoding_EQ, Joined, INVALID, fencoding_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "encoding", _encoding, Separate, INVALID, fencoding_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "entry", _entry, Flag, INVALID, e, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Eonly", Eonly, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Just run preprocessor, no output (for timings)", nullptr)
+OPTION(prefix_2, "EP", _SLASH_EP, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable linemarker output and preprocess to stdout", nullptr)
+OPTION(prefix_1, "error-on-deserialized-decl=", error_on_deserialized_pch_decl_EQ, Joined, INVALID, error_on_deserialized_pch_decl, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "error-on-deserialized-decl", error_on_deserialized_pch_decl, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit error if a specific declaration is deserialized from PCH, for testing", nullptr)
+OPTION(prefix_2, "errorReport", _SLASH_errorReport, Joined, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "execution-charset:", _SLASH_execution_charset, Joined, cl_compile_Group, fexec_charset_EQ, nullptr, CLOption | DriverOption, 0,
+       "Runtime encoding, supports only UTF-8", nullptr)
+OPTION(prefix_1, "exported_symbols_list", exported__symbols__list, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "extdirs=", _extdirs_EQ, Joined, INVALID, fextdirs_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "extdirs", _extdirs, Separate, INVALID, fextdirs_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "extra-warnings", _extra_warnings, Flag, INVALID, W_Joined, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "E", E, Flag, Action_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Only run the preprocessor", nullptr)
+OPTION(prefix_2, "E", _SLASH_E, Flag, cl_Group, E, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Preprocess to stdout", nullptr)
+OPTION(prefix_1, "e", e, JoinedOrSeparate, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "faccess-control", faccess_control, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "faddress-space-map-mangling=", faddress_space_map_mangling_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the mode for address space map based mangling; OpenCL testing purposes only", "<yes|no|target>")
+OPTION(prefix_1, "faggressive-function-elimination", aggressive_function_elimination_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-commons", align_commons_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-functions=", falign_functions_EQ, Joined, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-functions", align_functions_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-jumps=", falign_jumps_EQ, Joined, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-jumps", align_jumps_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-labels=", falign_labels_EQ, Joined, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-labels", align_labels_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-loops=", falign_loops_EQ, Joined, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "falign-loops", align_loops_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "faligned-allocation", faligned_allocation, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable C++17 aligned allocation functions", nullptr)
+OPTION(prefix_1, "faligned-new=", faligned_new_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "faligned-new", anonymous_11, Flag, INVALID, faligned_allocation, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fall-intrinsics", all_intrinsics_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "fallback", _SLASH_fallback, Flag, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Fall back to cl.exe if clang-cl fails to compile", nullptr)
+OPTION(prefix_1, "fallow-half-arguments-and-returns", fallow_half_arguments_and_returns, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Allow function arguments and returns of type half", nullptr)
+OPTION(prefix_1, "fallow-pch-with-compiler-errors", fallow_pch_with_errors, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Accept a PCH file that was created with compiler errors", nullptr)
+OPTION(prefix_1, "fallow-unsupported", fallow_unsupported, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "faltivec", faltivec, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fansi-escape-codes", fansi_escape_codes, Flag, f_Group, INVALID, nullptr, CoreOption | CC1Option, 0,
+       "Use ANSI escape codes for diagnostics", nullptr)
+OPTION(prefix_1, "fapple-kext", fapple_kext, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use Apple's kernel extensions ABI", nullptr)
+OPTION(prefix_1, "fapple-pragma-pack", fapple_pragma_pack, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable Apple gcc-compatible #pragma pack handling", nullptr)
+OPTION(prefix_1, "fapplication-extension", fapplication_extension, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Restrict code to those available for App Extensions", nullptr)
+OPTION(prefix_1, "fasm-blocks", fasm_blocks, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fasm", fasm, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fassociative-math", fassociative_math, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fassume-sane-operator-new", fassume_sane_operator_new, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fastcp", fastcp, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fastf", fastf, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fast", fast, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fasynchronous-unwind-tables", fasynchronous_unwind_tables, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fauto-profile=", fauto_profile_EQ, Joined, INVALID, fprofile_sample_use_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fauto-profile", fauto_profile, Flag, f_Group, fprofile_sample_use, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fautolink", fautolink, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fautomatic", automatic_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "favor", _SLASH_favor, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "FA", _SLASH_FA, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Output assembly code file during compilation", nullptr)
+OPTION(prefix_2, "FA", _SLASH_FA_joined, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Fa", _SLASH_Fa, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Output assembly code to this file during compilation (with /FA)", "<file or directory>")
+OPTION(prefix_1, "fbackslash", backslash_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fbacktrace", backtrace_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fblas-matmul-limit=", fblas_matmul_limit_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fblocks-runtime-optional", fblocks_runtime_optional, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Weakly link in the blocks runtime", nullptr)
+OPTION(prefix_1, "fblocks", fblocks, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable the 'blocks' language feature", nullptr)
+OPTION(prefix_1, "fbootclasspath=", fbootclasspath_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fborland-extensions", fborland_extensions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Accept non-standard constructs supported by the Borland compiler", nullptr)
+OPTION(prefix_1, "fbounds-check", bounds_check_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fbracket-depth=", fbracket_depth_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fbracket-depth", fbracket_depth, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Maximum nesting level for parentheses, brackets, and braces", nullptr)
+OPTION(prefix_1, "fbranch-count-reg", branch_count_reg_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fbuild-session-file=", fbuild_session_file, Joined, i_Group, INVALID, nullptr, 0, 0,
+       "Use the last modification time of <file> as the build session timestamp", "<file>")
+OPTION(prefix_1, "fbuild-session-timestamp=", fbuild_session_timestamp, Joined, i_Group, INVALID, nullptr, CC1Option, 0,
+       "Time when the current build session started", "<time since Epoch in seconds>")
+OPTION(prefix_1, "fbuiltin-module-map", fbuiltin_module_map, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Load the clang builtins module map file.", nullptr)
+OPTION(prefix_1, "fbuiltin", fbuiltin, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcaller-saves", caller_saves_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcaret-diagnostics", fcaret_diagnostics, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcheck-array-temporaries", check_array_temporaries_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcheck-new", fcheck_new_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcheck=", fcheck_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fclasspath=", fclasspath_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcoarray=", fcoarray_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcolor-diagnostics", fcolor_diagnostics, Flag, f_Group, INVALID, nullptr, CoreOption | CC1Option, 0,
+       "Use colors in diagnostics", nullptr)
+OPTION(prefix_1, "fcomment-block-commands=", fcomment_block_commands, CommaJoined, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Treat each comma separated argument in <arg> as a documentation comment block command", "<arg>")
+OPTION(prefix_1, "fcommon", fcommon, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcompile-resource=", fcompile_resource_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fconcepts-ts", fconcepts_ts, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable C++ Extensions for Concepts.", nullptr)
+OPTION(prefix_1, "fconst-strings", fconst_strings, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use a const qualified type for string literals in C and ObjC", nullptr)
+OPTION(prefix_1, "fconstant-cfstrings", fconstant_cfstrings, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fconstant-string-class=", fconstant_string_class_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fconstant-string-class", fconstant_string_class, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Specify the class to use for constant Objective-C string objects.", "<class name>")
+OPTION(prefix_1, "fconstexpr-backtrace-limit=", fconstexpr_backtrace_limit_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fconstexpr-backtrace-limit", fconstexpr_backtrace_limit, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the maximum number of entries to print in a constexpr evaluation backtrace (0 = no limit).", "<N>")
+OPTION(prefix_1, "fconstexpr-depth=", fconstexpr_depth_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fconstexpr-depth", fconstexpr_depth, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Maximum depth of recursive constexpr function calls", nullptr)
+OPTION(prefix_1, "fconstexpr-steps=", fconstexpr_steps_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fconstexpr-steps", fconstexpr_steps, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Maximum number of steps in constexpr function evaluation", nullptr)
+OPTION(prefix_1, "fconvert=", fconvert_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcoroutines-ts", fcoroutines_ts, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Enable support for the C++ Coroutines TS", nullptr)
+OPTION(prefix_1, "fcoverage-mapping", fcoverage_mapping, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Generate coverage mapping to enable code coverage analysis", nullptr)
+OPTION(prefix_1, "fcray-pointer", cray_pointer_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcreate-profile", fcreate_profile, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fcuda-allow-variadic-functions", fcuda_allow_variadic_functions, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Allow variadic functions in CUDA device code.", nullptr)
+OPTION(prefix_1, "fcuda-approx-transcendentals", fcuda_approx_transcendentals, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Use approximate transcendental functions", nullptr)
+OPTION(prefix_1, "fcuda-flush-denormals-to-zero", fcuda_flush_denormals_to_zero, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Flush denormal floating point values to zero in CUDA device mode.", nullptr)
+OPTION(prefix_1, "fcuda-include-gpubinary", fcuda_include_gpubinary, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Incorporate CUDA device-side binary into host object file.", nullptr)
+OPTION(prefix_1, "fcuda-is-device", fcuda_is_device, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate code for CUDA device", nullptr)
+OPTION(prefix_1, "fcxx-exceptions", fcxx_exceptions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable C++ exceptions", nullptr)
+OPTION(prefix_1, "fcxx-modules", fcxx_modules, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "FC", _SLASH_FC, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fd-lines-as-code", d_lines_as_code_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fd-lines-as-comments", d_lines_as_comments_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdata-sections", fdata_sections, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Place each data in its own section (ELF Only)", nullptr)
+OPTION(prefix_1, "fdebug-compilation-dir", fdebug_compilation_dir, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "The compilation directory to embed in the debug info.", nullptr)
+OPTION(prefix_1, "fdebug-info-for-profiling", fdebug_info_for_profiling, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Emit extra debug info to make sample profile more accurate.", nullptr)
+OPTION(prefix_1, "fdebug-macro", fdebug_macro, Flag, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Emit macro debug information", nullptr)
+OPTION(prefix_1, "fdebug-pass-arguments", fdebug_pass_arguments, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdebug-pass-structure", fdebug_pass_structure, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdebug-prefix-map=", fdebug_prefix_map_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "remap file source paths in debug info", nullptr)
+OPTION(prefix_1, "fdebug-types-section", fdebug_types_section, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Place debug types in their own section (ELF Only)", nullptr)
+OPTION(prefix_1, "fdebugger-cast-result-to-id", fdebugger_cast_result_to_id, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable casting unknown expression results to id", nullptr)
+OPTION(prefix_1, "fdebugger-objc-literal", fdebugger_objc_literal, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable special debugger support for Objective-C subscripting and literals", nullptr)
+OPTION(prefix_1, "fdebugger-support", fdebugger_support, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable special debugger support behavior", nullptr)
+OPTION(prefix_1, "fdeclspec", fdeclspec, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Allow __declspec as a keyword", nullptr)
+OPTION(prefix_1, "fdefault-calling-conv=", fdefault_calling_conv_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set default MS calling convention", nullptr)
+OPTION(prefix_1, "fdefault-double-8", default_double_8_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdefault-inline", default_inline_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdefault-integer-8", default_integer_8_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdefault-real-8", default_real_8_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdefer-pop", anonymous_3, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdelayed-template-parsing", fdelayed_template_parsing, Flag, f_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Parse templated function definitions at the end of the translation unit", nullptr)
+OPTION(prefix_1, "fdelete-null-pointer-checks", delete_null_pointer_checks_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdenormal-fp-math=", fdenormal_fp_math_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdepfile-entry=", fdepfile_entry, Joined, f_clang_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdeprecated-macro", fdeprecated_macro, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Defines the __DEPRECATED macro", nullptr)
+OPTION(prefix_1, "fdevirtualize-speculatively", devirtualize_speculatively_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdevirtualize", devirtualize_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-absolute-paths", fdiagnostics_absolute_paths, Flag, f_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Print absolute paths in diagnostics", nullptr)
+OPTION(prefix_1, "fdiagnostics-color=", fdiagnostics_color_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-color", fdiagnostics_color, Flag, f_Group, INVALID, nullptr, CoreOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-fixit-info", fdiagnostics_fixit_info, Flag, f_clang_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-format=", fdiagnostics_format_EQ, Joined, f_clang_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-format", fdiagnostics_format, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Change diagnostic formatting to match IDE and command line tools", nullptr)
+OPTION(prefix_1, "fdiagnostics-parseable-fixits", fdiagnostics_parseable_fixits, Flag, f_clang_Group, INVALID, nullptr, CoreOption | CC1Option, 0,
+       "Print fix-its in machine parseable form", nullptr)
+OPTION(prefix_1, "fdiagnostics-print-source-range-info", fdiagnostics_print_source_range_info, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Print source range spans in numeric form", nullptr)
+OPTION(prefix_1, "fdiagnostics-show-category=", fdiagnostics_show_category_EQ, Joined, f_clang_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-show-category", fdiagnostics_show_category, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Print diagnostic category", nullptr)
+OPTION(prefix_1, "fdiagnostics-show-hotness", fdiagnostics_show_hotness, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable profile hotness information in diagnostic line", nullptr)
+OPTION(prefix_1, "fdiagnostics-show-location=", fdiagnostics_show_location_EQ, Joined, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdiagnostics-show-note-include-stack", fdiagnostics_show_note_include_stack, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Display include stacks for diagnostic notes", nullptr)
+OPTION(prefix_1, "fdiagnostics-show-option", fdiagnostics_show_option, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Print option name with mappable diagnostics", nullptr)
+OPTION(prefix_1, "fdiagnostics-show-template-tree", fdiagnostics_show_template_tree, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Print a template comparison tree for differing templates", nullptr)
+OPTION(prefix_1, "fdisable-module-hash", fdisable_module_hash, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable the module hash", nullptr)
+OPTION(prefix_1, "fdollar-ok", dollar_ok_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdollars-in-identifiers", fdollars_in_identifiers, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Allow '$' in identifiers", nullptr)
+OPTION(prefix_1, "fdump-fortran-optimized", dump_fortran_optimized_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdump-fortran-original", dump_fortran_original_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdump-parse-tree", dump_parse_tree_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdump-record-layouts-simple", fdump_record_layouts_simple, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Dump record layout information in a simple form used for testing", nullptr)
+OPTION(prefix_1, "fdump-record-layouts", fdump_record_layouts, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Dump record layout information", nullptr)
+OPTION(prefix_1, "fdump-vtable-layouts", fdump_vtable_layouts, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Dump the layouts of all vtables that will be emitted in a translation unit", nullptr)
+OPTION(prefix_1, "fdwarf-directory-asm", fdwarf_directory_asm, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fdwarf2-cfi-asm", fdwarf2_cfi_asm, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_2, "Fd", _SLASH_Fd, Joined, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "felide-constructors", felide_constructors, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "feliminate-unused-debug-symbols", feliminate_unused_debug_symbols, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "feliminate-unused-debug-types", eliminate_unused_debug_types_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fembed-bitcode-marker", fembed_bitcode_marker, Flag, INVALID, fembed_bitcode_EQ, "marker\0", 0, 0,
+       "Embed placeholder LLVM IR data as a marker", nullptr)
+OPTION(prefix_1, "fembed-bitcode=", fembed_bitcode_EQ, Joined, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Embed LLVM bitcode (option: off, all, bitcode, marker)", "<option>")
+OPTION(prefix_1, "fembed-bitcode", fembed_bitcode, Flag, f_Group, fembed_bitcode_EQ, "all\0", 0, 0,
+       "Embed LLVM IR bitcode as data", nullptr)
+OPTION(prefix_1, "femit-all-decls", femit_all_decls, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Emit all declarations, even if unused", nullptr)
+OPTION(prefix_1, "femit-coverage-data", femit_coverage_data, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Instrument the program to emit gcov coverage data when run.", nullptr)
+OPTION(prefix_1, "femit-coverage-notes", femit_coverage_notes, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit a gcov coverage notes file when compiling.", nullptr)
+OPTION(prefix_1, "femulated-tls", femulated_tls, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use emutls functions to access thread_local variables", nullptr)
+OPTION(prefix_1, "fencode-extended-block-signature", fencode_extended_block_signature, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "enable extended encoding of block type signature", nullptr)
+OPTION(prefix_1, "fencoding=", fencoding_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ferror-limit=", ferror_limit_EQ, Joined, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "ferror-limit", ferror_limit, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the maximum number of errors to emit before stopping (0 = no limit).", "<N>")
+OPTION(prefix_1, "fexceptions", fexceptions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable support for exception handling", nullptr)
+OPTION(prefix_1, "fexcess-precision=", fexcess_precision_EQ, Joined, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fexec-charset=", fexec_charset_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fexpensive-optimizations", anonymous_1, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fexperimental-new-pass-manager", fexperimental_new_pass_manager, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enables an experimental new pass manager in LLVM.", nullptr)
+OPTION(prefix_1, "fextdirs=", fextdirs_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fextended-identifiers", anonymous_5, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fexternal-blas", external_blas_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fexternc-nounwind", fexternc_nounwind, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Assume all functions with C linkage do not unwind", nullptr)
+OPTION(prefix_2, "Fe", _SLASH_Fe, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set output executable file or directory (ends in / or \\)", "<file or directory>")
+OPTION(prefix_1, "ff2c", f2c_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffake-address-space-map", ffake_address_space_map, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use a fake address space map; OpenCL testing purposes only", nullptr)
+OPTION(prefix_1, "ffast-math", ffast_math, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Allow aggressive, lossy floating-point optimizations", nullptr)
+OPTION(prefix_1, "ffat-lto-objects", fat_lto_objects_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffinite-math-only", ffinite_math_only, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffixed-form", fixed_form_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffixed-line-length-", ffixed_line_length_VALUE, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffixed-r9", ffixed_r9, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Reserve the r9 register (ARM only)", nullptr)
+OPTION(prefix_1, "ffixed-x18", ffixed_x18, Flag, m_aarch64_Features_Group, INVALID, nullptr, 0, 0,
+       "Reserve the x18 register (AArch64 only)", nullptr)
+OPTION(prefix_1, "ffloat-store", float_store_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffor-scope", ffor_scope, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fforbid-guard-variables", fforbid_guard_variables, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit an error if a C++ static local initializer would need a guard variable", nullptr)
+OPTION(prefix_1, "fforce-addr", force_addr, Joined, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffp-contract=", ffp_contract, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma, default) | off (never fuse)", nullptr)
+OPTION(prefix_1, "ffpe-trap=", ffpe_trap_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffree-form", free_form_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffree-line-length-", ffree_line_length_VALUE, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffreestanding", ffreestanding, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Assert that the compilation takes place in a freestanding environment", nullptr)
+OPTION(prefix_1, "ffriend-injection", friend_injection_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffrontend-optimize", frontend_optimize_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffunction-attribute-list", function_attribute_list_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ffunction-sections", ffunction_sections, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Place each function in its own section (ELF Only)", nullptr)
+OPTION(prefix_1, "fgcse-after-reload", gcse_after_reload_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fgcse-las", gcse_las_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fgcse-sm", gcse_sm_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fgcse", gcse_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fgnu-inline-asm", fgnu_inline_asm, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fgnu-keywords", fgnu_keywords, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Allow GNU-extension keywords regardless of language standard", nullptr)
+OPTION(prefix_1, "fgnu-runtime", fgnu_runtime, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Generate output compatible with the standard GNU Objective-C runtime", nullptr)
+OPTION(prefix_1, "fgnu89-inline", fgnu89_inline, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use the gnu89 inline semantics", nullptr)
+OPTION(prefix_1, "fgnu", gnu_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fheinous-gnu-extensions", fheinous_gnu_extensions, Flag, INVALID, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fhonor-infinites", anonymous_7, Flag, INVALID, fhonor_infinities, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fhonor-infinities", fhonor_infinities, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fhonor-nans", fhonor_nans, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fhosted", fhosted, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fident", ident_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "filelist", filelist, Separate, Link_Group, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_1, "filetype", filetype, Separate, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "Specify the output file type ('asm', 'null', or 'obj')", nullptr)
+OPTION(prefix_1, "fimplement-inlines", implement_inlines_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fimplicit-module-maps", fimplicit_module_maps, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Implicitly search the file system for module map files.", nullptr)
+OPTION(prefix_1, "fimplicit-modules", fimplicit_modules, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fimplicit-none", implicit_none_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fimplicit-templates", implicit_templates_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "finclude-default-header", finclude_default_header, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include the default header file for OpenCL", nullptr)
+OPTION(prefix_1, "find-pch-source=", find_pch_source_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "When building a pch, try to find the input file in include directories, as if it had been included by the argument passed to this flag.", nullptr)
+OPTION(prefix_1, "findirect-virtual-calls", anonymous_9, Flag, INVALID, fapple_kext, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finit-character=", finit_character_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finit-integer=", finit_integer_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finit-local-zero", init_local_zero_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finit-logical=", finit_logical_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finit-real=", finit_real_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finline-functions-called-once", inline_functions_called_once_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "finline-functions", finline_functions, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Inline suitable functions", nullptr)
+OPTION(prefix_1, "finline-hint-functions", finline_hint_functions, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Inline functions which are (explicitly or implicitly) marked inline", nullptr)
+OPTION(prefix_1, "finline-limit=", finline_limit_EQ, Joined, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "finline-limit", finline_limit_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "finline-small-functions", inline_small_functions_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "finline", finline, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "finput-charset=", finput_charset_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "finstrument-functions", finstrument_functions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Generate calls to instrument function entry and exit", nullptr)
+OPTION(prefix_1, "finteger-4-integer-8", integer_4_integer_8_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fintegrated-as", fintegrated_as, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Enable the integrated assembler", nullptr)
+OPTION(prefix_1, "fintrinsic-modules-path", intrinsic_modules_path_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fipa-cp", ipa_cp_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fivopts", ivopts_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fix-only-warnings", fix_only_warnings, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply fix-it advice only for warnings, not errors", nullptr)
+OPTION(prefix_1, "fix-what-you-can", fix_what_you_can, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply fix-it advice even in the presence of unfixable errors", nullptr)
+OPTION(prefix_1, "fixit-recompile", fixit_recompile, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply fix-it changes and recompile", nullptr)
+OPTION(prefix_1, "fixit-to-temporary", fixit_to_temp, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply fix-it changes to temporary files", nullptr)
+OPTION(prefix_1, "fixit=", fixit_EQ, Joined, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply fix-it advice creating a file with the given suffix", nullptr)
+OPTION(prefix_1, "fixit", fixit, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Apply fix-it advice to the input source", nullptr)
+OPTION(prefix_2, "FI", _SLASH_FI, JoinedOrSeparate, cl_Group, include, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Include file before parsing", nullptr)
+OPTION(prefix_2, "Fi", _SLASH_Fi, Joined, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Set preprocess output file name (with /P)", "<file>")
+OPTION(prefix_1, "fjump-tables", fjump_tables, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fkeep-inline-functions", anonymous_23_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "flat_namespace", flat__namespace, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "flax-vector-conversions", flax_vector_conversions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "flimit-debug-info", flimit_debug_info, Flag, INVALID, fno_standalone_debug, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "flimited-precision=", flimited_precision_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "flto-jobs=", flto_jobs_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)", nullptr)
+OPTION(prefix_1, "flto-unit", flto_unit, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit IR to support LTO unit features (CFI, whole program vtable opt)", nullptr)
+OPTION(prefix_1, "flto-visibility-public-std", flto_visibility_public_std, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use public LTO visibility for classes in std and stdext namespaces", nullptr)
+OPTION(prefix_1, "flto=", flto_EQ, Joined, f_Group, INVALID, nullptr, CoreOption | CC1Option, 0,
+       "Set LTO mode to either 'full' or 'thin'", nullptr)
+OPTION(prefix_1, "flto", flto, Flag, f_Group, INVALID, nullptr, CoreOption | CC1Option, 0,
+       "Enable LTO in 'full' mode", nullptr)
+OPTION(prefix_1, "fmacro-backtrace-limit=", fmacro_backtrace_limit_EQ, Joined, f_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmacro-backtrace-limit", fmacro_backtrace_limit, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the maximum number of entries to print in a macro expansion backtrace (0 = no limit).", "<N>")
+OPTION(prefix_1, "fmath-errno", fmath_errno, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Require math functions to indicate errors by setting errno", nullptr)
+OPTION(prefix_1, "fmax-array-constructor=", fmax_array_constructor_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmax-errors=", fmax_errors_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmax-identifier-length", max_identifier_length_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmax-stack-var-size=", fmax_stack_var_size_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmax-subrecord-length=", fmax_subrecord_length_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmax-type-align=", fmax_type_align_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify the maximum alignment to enforce on pointers lacking an explicit alignment", nullptr)
+OPTION(prefix_1, "fmerge-all-constants", fmerge_all_constants, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmerge-constants", merge_constants_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmerge-functions", fmerge_functions, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Permit merging of identical functions when optimizing.", nullptr)
+OPTION(prefix_1, "fmessage-length=", fmessage_length_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmessage-length", fmessage_length, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Format message diagnostics so that they fit within N columns or fewer, when possible.", "<N>")
+OPTION(prefix_1, "fmodule-feature", fmodule_feature, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable <feature> in module map requires declarations", "<feature>")
+OPTION(prefix_1, "fmodule-file-deps", fmodule_file_deps, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmodule-file=", fmodule_file, Joined, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Load this precompiled module file", "<file>")
+OPTION(prefix_1, "fmodule-format=", fmodule_format_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Select the container format for clang modules and PCH. Supported options are 'raw' and 'obj'.", nullptr)
+OPTION(prefix_1, "fmodule-implementation-of", fmodule_implementation_of, Separate, INVALID, fmodule_name_EQ, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmodule-map-file-home-is-cwd", fmodule_map_file_home_is_cwd, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use the current working directory as the home directory of module maps specified by -fmodule-map-file=<FILE>", nullptr)
+OPTION(prefix_1, "fmodule-map-file=", fmodule_map_file, Joined, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Load this module map file", "<file>")
+OPTION(prefix_1, "fmodule-maps", fmodule_maps, Flag, INVALID, fimplicit_module_maps, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmodule-name=", fmodule_name_EQ, Joined, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Specify the name of the module to build", "<name>")
+OPTION(prefix_1, "fmodule-name", fmodule_name, Separate, INVALID, fmodule_name_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmodule-private", module_private_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmodules-cache-path=", fmodules_cache_path, Joined, i_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Specify the module cache path", "<directory>")
+OPTION(prefix_1, "fmodules-codegen", fmodule_codegen, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate code for uses of this module that assumes an explicit object file will be built for the module", nullptr)
+OPTION(prefix_1, "fmodules-decluse", fmodules_decluse, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Require declaration of modules used within a module", nullptr)
+OPTION(prefix_1, "fmodules-disable-diagnostic-validation", fmodules_disable_diagnostic_validation, Flag, i_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable validation of the diagnostic options when loading the module", nullptr)
+OPTION(prefix_1, "fmodules-embed-all-files", fmodules_embed_all_files, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Embed the contents of all files read by this compilation into the produced module file.", nullptr)
+OPTION(prefix_1, "fmodules-embed-file=", fmodules_embed_file_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Embed the contents of the specified file into the module file being compiled.", "<file>")
+OPTION(prefix_1, "fmodules-hash-content", fmodules_hash_content, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable hashing the content of a module file", nullptr)
+OPTION(prefix_1, "fmodules-ignore-macro=", fmodules_ignore_macro, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Ignore the definition of the given macro when building and loading modules", nullptr)
+OPTION(prefix_1, "fmodules-local-submodule-visibility", fmodules_local_submodule_visibility, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enforce name visibility rules across submodules of the same top-level module.", nullptr)
+OPTION(prefix_1, "fmodules-prune-after=", fmodules_prune_after, Joined, i_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify the interval (in seconds) after which a module file will be considered unused", "<seconds>")
+OPTION(prefix_1, "fmodules-prune-interval=", fmodules_prune_interval, Joined, i_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify the interval (in seconds) between attempts to prune the module cache", "<seconds>")
+OPTION(prefix_1, "fmodules-search-all", fmodules_search_all, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Search even non-imported modules to resolve references", nullptr)
+OPTION(prefix_1, "fmodules-strict-decluse", fmodules_strict_decluse, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Like -fmodules-decluse but requires all headers to be in modules", nullptr)
+OPTION(prefix_1, "fmodules-ts", fmodules_ts, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable support for the C++ Modules TS", nullptr)
+OPTION(prefix_1, "fmodules-user-build-path", fmodules_user_build_path, Separate, i_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Specify the module user build path", "<directory>")
+OPTION(prefix_1, "fmodules-validate-once-per-build-session", fmodules_validate_once_per_build_session, Flag, i_Group, INVALID, nullptr, CC1Option, 0,
+       "Don't verify input files for the modules if the module has been successfully validated or loaded during this build session", nullptr)
+OPTION(prefix_1, "fmodules-validate-system-headers", fmodules_validate_system_headers, Flag, i_Group, INVALID, nullptr, CC1Option, 0,
+       "Validate the system headers that a module depends on when loading the module", nullptr)
+OPTION(prefix_1, "fmodules", fmodules, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Enable the 'modules' language feature", nullptr)
+OPTION(prefix_1, "fmodulo-sched-allow-regmoves", modulo_sched_allow_regmoves_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmodulo-sched", modulo_sched_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fms-compatibility-version=", fms_compatibility_version, Joined, f_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))", nullptr)
+OPTION(prefix_1, "fms-compatibility", fms_compatibility, Flag, f_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Enable full Microsoft Visual C++ compatibility", nullptr)
+OPTION(prefix_1, "fms-extensions", fms_extensions, Flag, f_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Accept some non-standard constructs supported by the Microsoft compiler", nullptr)
+OPTION(prefix_1, "fms-memptr-rep=", fms_memptr_rep_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fms-volatile", fms_volatile, Joined, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmsc-version=", fmsc_version, Joined, f_Group, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))", nullptr)
+OPTION(prefix_1, "fmudflapth", fmudflapth, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fmudflap", fmudflap, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "Fm", _SLASH_Fm, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fnative-half-arguments-and-returns", fnative_half_arguments_and_returns, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use the native __fp16 type for arguments and returns (and skip ABI-specific lowering)", nullptr)
+OPTION(prefix_1, "fnative-half-type", fnative_half_type, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use the native half type for __fp16 instead of promoting to float", nullptr)
+OPTION(prefix_1, "fnested-functions", fnested_functions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fnew-alignment=", fnew_alignment_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Specifies the largest alignment guaranteed by '::operator new(size_t)'", "<align>")
+OPTION(prefix_1, "fnew-alignment", anonymous_10, Separate, INVALID, fnew_alignment_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fnext-runtime", fnext_runtime, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-access-control", fno_access_control, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable C++ access control", nullptr)
+OPTION(prefix_1, "fno-aggressive-function-elimination", aggressive_function_elimination_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-align-commons", align_commons_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-align-functions", align_functions_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-align-jumps", align_jumps_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-align-labels", align_labels_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-align-loops", align_loops_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-aligned-allocation", fno_aligned_allocation, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-aligned-new", anonymous_12, Flag, INVALID, fno_aligned_allocation, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-all-intrinsics", all_intrinsics_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-altivec", fno_altivec, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-apple-pragma-pack", fno_apple_pragma_pack, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-application-extension", fno_application_extension, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-asm-blocks", fno_asm_blocks, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-asm", fno_asm, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-associative-math", fno_associative_math, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-assume-sane-operator-new", fno_assume_sane_operator_new, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Don't assume that C++'s global operator new can't alias any pointer", nullptr)
+OPTION(prefix_1, "fno-asynchronous-unwind-tables", fno_asynchronous_unwind_tables, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-auto-profile", fno_auto_profile, Flag, f_Group, fno_profile_sample_use, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-autolink", fno_autolink, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Disable generation of linker directives for automatic library linking", nullptr)
+OPTION(prefix_1, "fno-automatic", automatic_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-backslash", backslash_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-backtrace", backtrace_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-bitfield-type-align", fno_bitfield_type_align, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Ignore bit-field types when aligning structures", nullptr)
+OPTION(prefix_1, "fno-blocks", fno_blocks, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-borland-extensions", fno_borland_extensions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-bounds-check", bounds_check_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-branch-count-reg", branch_count_reg_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-builtin-", fno_builtin_, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable implicit builtin knowledge of a specific function", nullptr)
+OPTION(prefix_1, "fno-builtin", fno_builtin, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable implicit builtin knowledge of functions", nullptr)
+OPTION(prefix_1, "fno-caller-saves", caller_saves_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-caret-diagnostics", fno_caret_diagnostics, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-check-array-temporaries", check_array_temporaries_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-check-new", fcheck_new_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-color-diagnostics", fno_color_diagnostics, Flag, f_Group, INVALID, nullptr, CoreOption | CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-common", fno_common, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Compile common globals like normal definitions", nullptr)
+OPTION(prefix_1, "fno-const-strings", fno_const_strings, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Don't use a const qualified type for string literals in C and ObjC", nullptr)
+OPTION(prefix_1, "fno-constant-cfstrings", fno_constant_cfstrings, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable creation of CodeFoundation-type constant strings", nullptr)
+OPTION(prefix_1, "fno-coroutines-ts", fno_coroutines_ts, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-coverage-mapping", fno_coverage_mapping, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Disable code coverage analysis", nullptr)
+OPTION(prefix_1, "fno-crash-diagnostics", fno_crash_diagnostics, Flag, f_clang_Group, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-cray-pointer", cray_pointer_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-cuda-approx-transcendentals", fno_cuda_approx_transcendentals, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-cuda-flush-denormals-to-zero", fno_cuda_flush_denormals_to_zero, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-cuda-host-device-constexpr", fno_cuda_host_device_constexpr, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Don't treat unattributed constexpr functions as __host__ __device__.", nullptr)
+OPTION(prefix_1, "fno-cxx-exceptions", fno_cxx_exceptions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-cxx-modules", fno_cxx_modules, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-d-lines-as-code", d_lines_as_code_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-d-lines-as-comments", d_lines_as_comments_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-data-sections", fno_data_sections, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-debug-info-for-profiling", fno_debug_info_for_profiling, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Do not emit extra debug info for sample profiler.", nullptr)
+OPTION(prefix_1, "fno-debug-macro", fno_debug_macro, Flag, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Do not emit macro debug information", nullptr)
+OPTION(prefix_1, "fno-debug-types-section", fno_debug_types_section, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-declspec", fno_declspec, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Disallow __declspec as a keyword", nullptr)
+OPTION(prefix_1, "fno-default-double-8", default_double_8_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-default-inline", default_inline_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-default-integer-8", default_integer_8_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-default-real-8", default_real_8_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-defer-pop", anonymous_4, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-delayed-template-parsing", fno_delayed_template_parsing, Flag, f_Group, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Disable delayed template parsing", nullptr)
+OPTION(prefix_1, "fno-delete-null-pointer-checks", delete_null_pointer_checks_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-deprecated-macro", fno_deprecated_macro, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Undefines the __DEPRECATED macro", nullptr)
+OPTION(prefix_1, "fno-devirtualize-speculatively", devirtualize_speculatively_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-devirtualize", devirtualize_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-diagnostics-color", fno_diagnostics_color, Flag, f_Group, INVALID, nullptr, CoreOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-diagnostics-fixit-info", fno_diagnostics_fixit_info, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not include fixit information in diagnostics", nullptr)
+OPTION(prefix_1, "fno-diagnostics-show-hotness", fno_diagnostics_show_hotness, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-diagnostics-show-note-include-stack", fno_diagnostics_show_note_include_stack, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-diagnostics-show-option", fno_diagnostics_show_option, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-diagnostics-use-presumed-location", fno_diagnostics_use_presumed_location, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Ignore #line directives when displaying diagnostic locations", nullptr)
+OPTION(prefix_1, "fno-dollar-ok", dollar_ok_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-dollars-in-identifiers", fno_dollars_in_identifiers, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disallow '$' in identifiers", nullptr)
+OPTION(prefix_1, "fno-dump-fortran-optimized", dump_fortran_optimized_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-dump-fortran-original", dump_fortran_original_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-dump-parse-tree", dump_parse_tree_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-dwarf-directory-asm", fno_dwarf_directory_asm, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-dwarf2-cfi-asm", fno_dwarf2_cfi_asm, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-elide-constructors", fno_elide_constructors, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable C++ copy constructor elision", nullptr)
+OPTION(prefix_1, "fno-elide-type", fno_elide_type, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not elide types when printing diagnostics", nullptr)
+OPTION(prefix_1, "fno-eliminate-unused-debug-symbols", fno_eliminate_unused_debug_symbols, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-eliminate-unused-debug-types", eliminate_unused_debug_types_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-emulated-tls", fno_emulated_tls, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-exceptions", fno_exceptions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-expensive-optimizations", anonymous_2, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-experimental-new-pass-manager", fno_experimental_new_pass_manager, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Disables an experimental new pass manager in LLVM.", nullptr)
+OPTION(prefix_1, "fno-extended-identifiers", anonymous_6, Flag, f_Group, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-external-blas", external_blas_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-f2c", f2c_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-fast-math", fno_fast_math, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-fat-lto-objects", fat_lto_objects_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-finite-math-only", fno_finite_math_only, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-fixed-form", fixed_form_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-float-store", float_store_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-for-scope", fno_for_scope, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-free-form", free_form_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-friend-injection", friend_injection_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-frontend-optimize", frontend_optimize_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-function-attribute-list", function_attribute_list_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-function-sections", fno_function_sections, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gcse-after-reload", gcse_after_reload_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gcse-las", gcse_las_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gcse-sm", gcse_sm_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gcse", gcse_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gnu-inline-asm", fno_gnu_inline_asm, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Disable GNU style inline asm", nullptr)
+OPTION(prefix_1, "fno-gnu-keywords", fno_gnu_keywords, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gnu89-inline", fno_gnu89_inline, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-gnu", gnu_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-honor-infinites", anonymous_8, Flag, INVALID, fno_honor_infinities, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-honor-infinities", fno_honor_infinities, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-honor-nans", fno_honor_nans, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ident", ident_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-implement-inlines", implement_inlines_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-implicit-module-maps", fno_implicit_module_maps, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-implicit-modules", fno_implicit_modules, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-implicit-none", implicit_none_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-implicit-templates", implicit_templates_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-init-local-zero", init_local_zero_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-inline-functions-called-once", inline_functions_called_once_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-inline-functions", fno_inline_functions, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-inline-limit", finline_limit_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-inline-small-functions", inline_small_functions_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-inline", fno_inline, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-integer-4-integer-8", integer_4_integer_8_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-integrated-as", fno_integrated_as, Flag, f_Group, INVALID, nullptr, CC1Option | DriverOption, 0,
+       "Disable the integrated assembler", nullptr)
+OPTION(prefix_1, "fno-intrinsic-modules-path", intrinsic_modules_path_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ipa-cp", ipa_cp_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ivopts", ivopts_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-jump-tables", fno_jump_tables, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not use jump tables for lowering switches", nullptr)
+OPTION(prefix_1, "fno-keep-inline-functions", anonymous_23_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-lax-vector-conversions", fno_lax_vector_conversions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disallow implicit conversions between vectors with a different number of elements or different element types", nullptr)
+OPTION(prefix_1, "fno-limit-debug-info", fno_limit_debug_info, Flag, INVALID, fstandalone_debug, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-lto-unit", fno_lto_unit, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-lto", fno_lto, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Disable LTO mode (default)", nullptr)
+OPTION(prefix_1, "fno-math-builtin", fno_math_builtin, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Disable implicit builtin knowledge of math functions", nullptr)
+OPTION(prefix_1, "fno-math-errno", fno_math_errno, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-max-identifier-length", max_identifier_length_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-max-type-align", fno_max_type_align, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-merge-all-constants", fno_merge_all_constants, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disallow merging of constants", nullptr)
+OPTION(prefix_1, "fno-merge-constants", merge_constants_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-module-file-deps", fno_module_file_deps, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-module-maps", fno_module_maps, Flag, INVALID, fno_implicit_module_maps, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-module-private", module_private_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-modules-decluse", fno_modules_decluse, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-modules-error-recovery", fno_modules_error_recovery, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not automatically import modules for error recovery", nullptr)
+OPTION(prefix_1, "fno-modules-global-index", fno_modules_global_index, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not automatically generate or update the global module index", nullptr)
+OPTION(prefix_1, "fno-modules-search-all", fno_modules_search_all, Flag, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-modules", fno_modules, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-modulo-sched-allow-regmoves", modulo_sched_allow_regmoves_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-modulo-sched", modulo_sched_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ms-compatibility", fno_ms_compatibility, Flag, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ms-extensions", fno_ms_extensions, Flag, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-non-call-exceptions", non_call_exceptions_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-objc-arc-exceptions", fno_objc_arc_exceptions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-objc-arc", fno_objc_arc, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-objc-exceptions", fno_objc_exceptions, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-objc-infer-related-result-type", fno_objc_infer_related_result_type, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "do not infer Objective-C related result type based on method family", nullptr)
+OPTION(prefix_1, "fno-objc-legacy-dispatch", fno_objc_legacy_dispatch, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-objc-nonfragile-abi", fno_objc_nonfragile_abi, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-objc-weak", fno_objc_weak, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-omit-frame-pointer", fno_omit_frame_pointer, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-openmp", fno_openmp, Flag, f_Group, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-operator-names", fno_operator_names, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not treat C++ operator name keywords as synonyms for operators", nullptr)
+OPTION(prefix_1, "fno-optimize-sibling-calls", fno_optimize_sibling_calls, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-pack-derived", pack_derived_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-pack-struct", fno_pack_struct, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-pascal-strings", fno_pascal_strings, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-pch-timestamp", fno_pch_timestamp, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable inclusion of timestamp in precompiled headers", nullptr)
+OPTION(prefix_1, "fno-peel-loops", peel_loops_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-permissive", permissive_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-PIC", fno_PIC, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-pic", fno_pic, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-PIE", fno_PIE, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-pie", fno_pie, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-prefetch-loop-arrays", prefetch_loop_arrays_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-preserve-as-comments", fno_preserve_as_comments, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not preserve comments in inline assembly", nullptr)
+OPTION(prefix_1, "fno-printf", printf_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-arcs", fno_profile_arcs, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-correction", profile_correction_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-generate-sampling", profile_generate_sampling_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-generate", fno_profile_generate, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Disable generation of profile instrumentation.", nullptr)
+OPTION(prefix_1, "fno-profile-instr-generate", fno_profile_instr_generate, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Disable generation of profile instrumentation.", nullptr)
+OPTION(prefix_1, "fno-profile-instr-use", fno_profile_instr_use, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Disable using instrumentation data for profile-guided optimization", nullptr)
+OPTION(prefix_1, "fno-profile-reusedist", profile_reusedist_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-sample-use", fno_profile_sample_use, Flag, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-use", fno_profile_use, Flag, INVALID, fno_profile_instr_use, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile-values", profile_values_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-profile", profile_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-protect-parens", protect_parens_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-range-check", range_check_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-real-4-real-10", real_4_real_10_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-real-4-real-16", real_4_real_16_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-real-4-real-8", real_4_real_8_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-real-8-real-10", real_8_real_10_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-real-8-real-16", real_8_real_16_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-real-8-real-4", real_8_real_4_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-realloc-lhs", realloc_lhs_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-reciprocal-math", fno_reciprocal_math, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-recursive", recursive_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-regs-graph", regs_graph_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-relaxed-template-template-args", fno_relaxed_template_template_args, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-rename-registers", rename_registers_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-reorder-blocks", reorder_blocks_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-repack-arrays", repack_arrays_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-reroll-loops", fno_reroll_loops, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Turn off loop reroller", nullptr)
+OPTION(prefix_1, "fno-rewrite-includes", fno_rewrite_includes, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ripa", ripa_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-ropi", fno_ropi, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-rounding-math", rounding_math_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-rtlib-add-rpath", fno_rtlib_add_rpath, Flag, INVALID, INVALID, nullptr, NoArgumentUnused, 0,
+       "Do not add -rpath with architecture-specific resource directory to the linker flags", nullptr)
+OPTION(prefix_1, "fno-rtti-data", fno_rtti_data, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Control emission of RTTI data", nullptr)
+OPTION(prefix_1, "fno-rtti", fno_rtti, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable generation of rtti information", nullptr)
+OPTION(prefix_1, "fno-rwpi", fno_rwpi, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-sanitize-address-use-after-scope", fno_sanitize_address_use_after_scope, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable use-after-scope detection in AddressSanitizer", nullptr)
+OPTION(prefix_1, "fno-sanitize-blacklist", fno_sanitize_blacklist, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Don't use blacklist file for sanitizers", nullptr)
+OPTION(prefix_1, "fno-sanitize-cfi-cross-dso", fno_sanitize_cfi_cross_dso, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable control flow integrity (CFI) checks for cross-DSO calls.", nullptr)
+OPTION(prefix_1, "fno-sanitize-coverage=", fno_sanitize_coverage, CommaJoined, f_clang_Group, INVALID, nullptr, CoreOption, 0,
+       "Disable specified features of coverage instrumentation for Sanitizers", nullptr)
+OPTION(prefix_1, "fno-sanitize-memory-track-origins", fno_sanitize_memory_track_origins, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable origins tracking in MemorySanitizer", nullptr)
+OPTION(prefix_1, "fno-sanitize-recover=", fno_sanitize_recover_EQ, CommaJoined, f_clang_Group, INVALID, nullptr, CoreOption, 0,
+       "Disable recovery for specified sanitizers", nullptr)
+OPTION(prefix_1, "fno-sanitize-recover", fno_sanitize_recover, Flag, f_clang_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-sanitize-stats", fno_sanitize_stats, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable sanitizer statistics gathering.", nullptr)
+OPTION(prefix_1, "fno-sanitize-thread-atomics", fno_sanitize_thread_atomics, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Disable atomic operations instrumentation in ThreadSanitizer", nullptr)
+OPTION(prefix_1, "fno-sanitize-thread-func-entry-exit", fno_sanitize_thread_func_entry_exit, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Disable function entry/exit instrumentation in ThreadSanitizer", nullptr)
+OPTION(prefix_1, "fno-sanitize-thread-memory-access", fno_sanitize_thread_memory_access, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Disable memory access instrumentation in ThreadSanitizer", nullptr)
+OPTION(prefix_1, "fno-sanitize-trap=", fno_sanitize_trap_EQ, CommaJoined, f_clang_Group, INVALID, nullptr, CoreOption, 0,
+       "Disable trapping for specified sanitizers", nullptr)
+OPTION(prefix_1, "fno-sanitize-undefined-trap-on-error", fno_sanitize_undefined_trap_on_error, Flag, f_clang_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-sanitize=", fno_sanitize_EQ, CommaJoined, f_clang_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-save-optimization-record", fno_save_optimization_record, Flag, f_Group, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-schedule-insns2", schedule_insns2_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-schedule-insns", schedule_insns_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-second-underscore", second_underscore_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-see", see_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-short-enums", fno_short_enums, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-short-wchar", fno_short_wchar, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Force wchar_t to be an unsigned int", nullptr)
+OPTION(prefix_1, "fno-show-column", fno_show_column, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not include column number on diagnostics", nullptr)
+OPTION(prefix_1, "fno-show-source-location", fno_show_source_location, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not include source location information with diagnostics", nullptr)
+OPTION(prefix_1, "fno-sign-zero", sign_zero_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-signaling-math", fno_signaling_math, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-signaling-nans", signaling_nans_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-signed-char", fno_signed_char, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Char is unsigned", nullptr)
+OPTION(prefix_1, "fno-signed-zeros", fno_signed_zeros, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Allow optimizations that ignore the sign of floating point zeros", nullptr)
+OPTION(prefix_1, "fno-single-precision-constant", single_precision_constant_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-sized-deallocation", fno_sized_deallocation, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-slp-vectorize-aggressive", fno_slp_vectorize_aggressive, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-slp-vectorize", fno_slp_vectorize, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-spec-constr-count", spec_constr_count_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-spell-checking", fno_spell_checking, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable spell-checking", nullptr)
+OPTION(prefix_1, "fno-split-dwarf-inlining", fno_split_dwarf_inlining, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-stack-arrays", stack_arrays_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-stack-check", stack_check_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-stack-protector", fno_stack_protector, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Disable the use of stack protectors", nullptr)
+OPTION(prefix_1, "fno-standalone-debug", fno_standalone_debug, Flag, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Limit debug information produced to reduce size of debug binary", nullptr)
+OPTION(prefix_1, "fno-strength-reduce", strength_reduce_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-strict-aliasing", fno_strict_aliasing, Flag, f_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-strict-enums", fno_strict_enums, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-strict-modules-decluse", fno_modules_strict_decluse, Flag, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-strict-overflow", fno_strict_overflow, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-strict-return", fno_strict_return, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-strict-vtable-pointers", fno_strict_vtable_pointers, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-struct-path-tbaa", fno_struct_path_tbaa, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-threadsafe-statics", fno_threadsafe_statics, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not emit code to make initialization of local statics thread safe", nullptr)
+OPTION(prefix_1, "fno-tls-model", tls_model_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tracer", tracer_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-trapping-math", fno_trapping_math, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-dce", tree_dce_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-salias", tree_salias_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-slp-vectorize", anonymous_17, Flag, INVALID, fno_slp_vectorize, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-ter", tree_ter_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-vectorizer-verbose", tree_vectorizer_verbose_fno, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-vectorize", anonymous_15, Flag, INVALID, fno_vectorize, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree-vrp", tree_vrp_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree_loop_im", tree_loop_im_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree_loop_ivcanon", tree_loop_ivcanon_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-tree_loop_linear", tree_loop_linear_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-trigraphs", fno_trigraphs, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Do not process trigraph sequences", nullptr)
+OPTION(prefix_1, "fno-underscoring", underscoring_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unique-section-names", fno_unique_section_names, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unit-at-a-time", fno_unit_at_a_time, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unroll-all-loops", unroll_all_loops_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unroll-loops", fno_unroll_loops, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Turn off loop unroller", nullptr)
+OPTION(prefix_1, "fno-unsafe-loop-optimizations", unsafe_loop_optimizations_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unsafe-math-optimizations", fno_unsafe_math_optimizations, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unsigned-char", fno_unsigned_char, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unswitch-loops", unswitch_loops_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-unwind-tables", fno_unwind_tables, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-use-cxa-atexit", fno_use_cxa_atexit, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Don't use __cxa_atexit for calling destructors", nullptr)
+OPTION(prefix_1, "fno-use-init-array", fno_use_init_array, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Don't use .init_array instead of .ctors", nullptr)
+OPTION(prefix_1, "fno-use-line-directives", fno_use_line_directives, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-use-linker-plugin", use_linker_plugin_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-validate-pch", fno_validate_pch, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable validation of precompiled headers", nullptr)
+OPTION(prefix_1, "fno-var-tracking", fno_var_tracking, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-variable-expansion-in-unroller", variable_expansion_in_unroller_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-vect-cost-model", vect_cost_model_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-vectorize", fno_vectorize, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-verbose-asm", fno_verbose_asm, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-wchar", fno_wchar, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable C++ builtin type wchar_t", nullptr)
+OPTION(prefix_1, "fno-web", web_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-whole-file", whole_file_fno, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-whole-program-vtables", fno_whole_program_vtables, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-whole-program", whole_program_fno, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-working-directory", fno_working_directory, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-wrapv", fno_wrapv, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-xray-instrument", fnoxray_instrument, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-zero-initialized-in-bss", fno_zero_initialized_in_bss, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fno-zvector", fno_zvector, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fnon-call-exceptions", non_call_exceptions_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fnoopenmp-use-tls", fnoopenmp_use_tls, Flag, f_Group, INVALID, nullptr, CC1Option | NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-abi-version=", fobjc_abi_version_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-arc-cxxlib=", fobjc_arc_cxxlib_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Objective-C++ Automatic Reference Counting standard library kind", nullptr)
+OPTION(prefix_1, "fobjc-arc-exceptions", fobjc_arc_exceptions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use EH-safe code when synthesizing retains and releases in -fobjc-arc", nullptr)
+OPTION(prefix_1, "fobjc-arc", fobjc_arc, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Synthesize retain and release calls for Objective-C pointers", nullptr)
+OPTION(prefix_1, "fobjc-atdefs", fobjc_atdefs, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-call-cxx-cdtors", fobjc_call_cxx_cdtors, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-dispatch-method=", fobjc_dispatch_method_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Objective-C dispatch method to use", nullptr)
+OPTION(prefix_1, "fobjc-exceptions", fobjc_exceptions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable Objective-C exceptions", nullptr)
+OPTION(prefix_1, "fobjc-gc-only", fobjc_gc_only, Flag, f_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use GC exclusively for Objective-C related memory management", nullptr)
+OPTION(prefix_1, "fobjc-gc", fobjc_gc, Flag, f_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable Objective-C garbage collection", nullptr)
+OPTION(prefix_1, "fobjc-infer-related-result-type", fobjc_infer_related_result_type, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-legacy-dispatch", fobjc_legacy_dispatch, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-link-runtime", fobjc_link_runtime, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-new-property", fobjc_new_property, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-nonfragile-abi-version=", fobjc_nonfragile_abi_version_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-nonfragile-abi", fobjc_nonfragile_abi, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-runtime-has-weak", fobjc_runtime_has_weak, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "The target Objective-C runtime supports ARC weak operations", nullptr)
+OPTION(prefix_1, "fobjc-runtime=", fobjc_runtime_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify the target Objective-C runtime kind and version", nullptr)
+OPTION(prefix_1, "fobjc-sender-dependent-dispatch", fobjc_sender_dependent_dispatch, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fobjc-subscripting-legacy-runtime", fobjc_subscripting_legacy_runtime, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Allow Objective-C array and dictionary subscripting in legacy runtime", nullptr)
+OPTION(prefix_1, "fobjc-weak", fobjc_weak, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable ARC-style weak references in Objective-C", nullptr)
+OPTION(prefix_1, "fomit-frame-pointer", fomit_frame_pointer, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fopenmp-dump-offload-linker-script", fopenmp_dump_offload_linker_script, Flag, f_Group, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fopenmp-host-ir-file-path", fopenmp_host_ir_file_path, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Path to the IR file produced by the frontend for the host.", nullptr)
+OPTION(prefix_1, "fopenmp-is-device", fopenmp_is_device, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate code only for an OpenMP target device.", nullptr)
+OPTION(prefix_1, "fopenmp-targets=", fopenmp_targets_EQ, CommaJoined, INVALID, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Specify comma-separated list of triples OpenMP offloading targets to be supported", nullptr)
+OPTION(prefix_1, "fopenmp-use-tls", fopenmp_use_tls, Flag, f_Group, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fopenmp-version=", fopenmp_version_EQ, Joined, f_Group, INVALID, nullptr, CC1Option | NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "fopenmp=", fopenmp_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fopenmp", fopenmp, Flag, f_Group, INVALID, nullptr, CC1Option | NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "foperator-arrow-depth=", foperator_arrow_depth_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "foperator-arrow-depth", foperator_arrow_depth, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Maximum number of 'operator->'s to call for a member access", nullptr)
+OPTION(prefix_1, "foptimization-record-file=", foptimization_record_file_EQ, Joined, f_Group, INVALID, nullptr, 0, 0,
+       "Specify the file name of any generated YAML optimization record", nullptr)
+OPTION(prefix_1, "foptimize-sibling-calls", foptimize_sibling_calls, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "for-linker=", _for_linker_EQ, Joined, INVALID, Xlinker, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "for-linker", _for_linker, Separate, INVALID, Xlinker, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "force-link=", _force_link_EQ, Joined, INVALID, u, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "force-link", _force_link, Separate, INVALID, u, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "force_cpusubtype_ALL", force__cpusubtype__ALL, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "force_flat_namespace", force__flat__namespace, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "force_load", force__load, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "foutput-class-dir=", foutput_class_dir_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "foverride-record-layout=", foverride_record_layout_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Override record layouts with those in the given file", nullptr)
+OPTION(prefix_2, "Fo", _SLASH_Fo, Joined, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Set output object file, or directory (ends in / or \\) (with /c)", "<file or directory>")
+OPTION(prefix_2, "fp:except-", _SLASH_fp_except_, Flag, cl_Group, fno_trapping_math, nullptr, CLOption | DriverOption | CLOption, 0,
+       "", nullptr)
+OPTION(prefix_2, "fp:except", _SLASH_fp_except, Flag, cl_Group, ftrapping_math, nullptr, CLOption | DriverOption | CLOption, 0,
+       "", nullptr)
+OPTION(prefix_2, "fp:fast", _SLASH_fp_fast, Flag, cl_Group, ffast_math, nullptr, CLOption | DriverOption | CLOption, 0,
+       "", nullptr)
+OPTION(prefix_2, "fp:precise", _SLASH_fp_precise, Flag, cl_Group, fno_fast_math, nullptr, CLOption | DriverOption | CLOption, 0,
+       "", nullptr)
+OPTION(prefix_2, "fp:strict", _SLASH_fp_strict, Flag, cl_Group, fno_fast_math, nullptr, CLOption | DriverOption | CLOption, 0,
+       "", nullptr)
+OPTION(prefix_1, "fpack-derived", pack_derived_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpack-struct=", fpack_struct_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify the default maximum struct packing alignment", nullptr)
+OPTION(prefix_1, "fpack-struct", fpack_struct, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fparse-all-comments", fparse_all_comments, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpascal-strings", fpascal_strings, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Recognize and construct Pascal-style string literals", nullptr)
+OPTION(prefix_1, "fpcc-struct-return", fpcc_struct_return, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Override the default ABI to return all structs on the stack", nullptr)
+OPTION(prefix_1, "fpch-preprocess", fpch_preprocess, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpeel-loops", peel_loops_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpermissive", permissive_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fPIC", fPIC, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpic", fpic, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fPIE", fPIE, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpie", fpie, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fplugin=", fplugin_EQ, Joined, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Load the named plugin (dynamic shared object)", "<dsopath>")
+OPTION(prefix_1, "fprebuilt-module-path=", fprebuilt_module_path, Joined, i_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Specify the prebuilt module path", "<directory>")
+OPTION(prefix_1, "fprefetch-loop-arrays", prefetch_loop_arrays_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpreserve-as-comments", fpreserve_as_comments, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fpreserve-vec3-type", fpreserve_vec3_type, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Preserve 3-component vector type", nullptr)
+OPTION(prefix_1, "fprintf", printf_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-arcs", fprofile_arcs, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-correction", profile_correction_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-dir=", fprofile_dir, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-generate-sampling", profile_generate_sampling_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-generate=", fprofile_generate_EQ, Joined, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)", "<directory>")
+OPTION(prefix_1, "fprofile-generate", fprofile_generate, Flag, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)", nullptr)
+OPTION(prefix_1, "fprofile-instr-generate=", fprofile_instr_generate_EQ, Joined, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)", "<file>")
+OPTION(prefix_1, "fprofile-instr-generate", fprofile_instr_generate, Flag, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)", nullptr)
+OPTION(prefix_1, "fprofile-instr-use=", fprofile_instr_use_EQ, Joined, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Use instrumentation data for profile-guided optimization", nullptr)
+OPTION(prefix_1, "fprofile-instr-use", fprofile_instr_use, Flag, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-instrument-path=", fprofile_instrument_path_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)", nullptr)
+OPTION(prefix_1, "fprofile-instrument-use-path=", fprofile_instrument_use_path_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Specify the profile path in PGO use compilation", nullptr)
+OPTION(prefix_1, "fprofile-instrument=", fprofile_instrument_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable PGO instrumentation. The accepted value is clang, llvm, or none", nullptr)
+OPTION(prefix_1, "fprofile-reusedist", profile_reusedist_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-sample-use=", fprofile_sample_use_EQ, Joined, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Enable sample-based profile guided optimizations", nullptr)
+OPTION(prefix_1, "fprofile-sample-use", fprofile_sample_use, Flag, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-use=", fprofile_use_EQ, Joined, f_Group, INVALID, nullptr, DriverOption, 0,
+       "Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.", "<pathname>")
+OPTION(prefix_1, "fprofile-use", fprofile_use, Flag, f_Group, fprofile_instr_use, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile-values", profile_values_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprofile", profile_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fprotect-parens", protect_parens_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "Fp", _SLASH_Fp, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set pch filename (with /Yc and /Yu)", "<filename>")
+OPTION(prefix_1, "framework", framework, Separate, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_1, "frandom-seed=", frandom_seed_EQ, Joined, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "frange-check", range_check_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freal-4-real-10", real_4_real_10_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freal-4-real-16", real_4_real_16_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freal-4-real-8", real_4_real_8_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freal-8-real-10", real_8_real_10_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freal-8-real-16", real_8_real_16_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freal-8-real-4", real_8_real_4_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "frealloc-lhs", realloc_lhs_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freciprocal-math", freciprocal_math, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Allow division operations to be reassociated", nullptr)
+OPTION(prefix_1, "frecord-marker=", frecord_marker_EQ, Joined, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "frecursive", recursive_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freg-struct-return", freg_struct_return, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Override the default ABI to return small structs in registers", nullptr)
+OPTION(prefix_1, "fregs-graph", regs_graph_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "frelaxed-template-template-args", frelaxed_template_template_args, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable C++17 relaxed template template argument matching", nullptr)
+OPTION(prefix_1, "frename-registers", rename_registers_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "freorder-blocks", reorder_blocks_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "frepack-arrays", repack_arrays_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "freroll-loops", freroll_loops, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Turn on loop reroller", nullptr)
+OPTION(prefix_1, "fretain-comments-from-system-headers", fretain_comments_from_system_headers, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "frewrite-includes", frewrite_includes, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "frewrite-map-file=", frewrite_map_file_EQ, Joined, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "frewrite-map-file", frewrite_map_file, Separate, f_Group, INVALID, nullptr, DriverOption | CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fripa", ripa_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fropi", fropi, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "frounding-math", rounding_math_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "frtlib-add-rpath", frtlib_add_rpath, Flag, INVALID, INVALID, nullptr, NoArgumentUnused, 0,
+       "Add -rpath with architecture-specific resource directory to the linker flags", nullptr)
+OPTION(prefix_1, "frtti", frtti, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "frwpi", frwpi, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "FR", _SLASH_FR, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Fr", _SLASH_Fr, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsanitize-address-field-padding=", fsanitize_address_field_padding, Joined, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Level of field padding for AddressSanitizer", nullptr)
+OPTION(prefix_1, "fsanitize-address-use-after-scope", fsanitize_address_use_after_scope, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable use-after-scope detection in AddressSanitizer", nullptr)
+OPTION(prefix_1, "fsanitize-blacklist=", fsanitize_blacklist, Joined, f_clang_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Path to blacklist file for sanitizers", nullptr)
+OPTION(prefix_1, "fsanitize-cfi-cross-dso", fsanitize_cfi_cross_dso, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable control flow integrity (CFI) checks for cross-DSO calls.", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-8bit-counters", fsanitize_coverage_8bit_counters, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable frequency counters in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-indirect-calls", fsanitize_coverage_indirect_calls, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable sanitizer coverage for indirect calls", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-trace-bb", fsanitize_coverage_trace_bb, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable basic block tracing in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-trace-cmp", fsanitize_coverage_trace_cmp, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable cmp instruction tracing in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-trace-div", fsanitize_coverage_trace_div, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable div instruction tracing in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-trace-gep", fsanitize_coverage_trace_gep, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable gep instruction tracing in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-trace-pc-guard", fsanitize_coverage_trace_pc_guard, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable PC tracing with guard in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-trace-pc", fsanitize_coverage_trace_pc, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable PC tracing in sanitizer coverage", nullptr)
+OPTION(prefix_1, "fsanitize-coverage-type=", fsanitize_coverage_type, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Sanitizer coverage type", nullptr)
+OPTION(prefix_1, "fsanitize-coverage=", fsanitize_coverage, CommaJoined, f_clang_Group, INVALID, nullptr, CoreOption, 0,
+       "Specify the type of coverage instrumentation for Sanitizers", nullptr)
+OPTION(prefix_1, "fsanitize-link-c++-runtime", fsanitize_link_cxx_runtime, Flag, f_clang_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsanitize-memory-track-origins=", fsanitize_memory_track_origins_EQ, Joined, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable origins tracking in MemorySanitizer", nullptr)
+OPTION(prefix_1, "fsanitize-memory-track-origins", fsanitize_memory_track_origins, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable origins tracking in MemorySanitizer", nullptr)
+OPTION(prefix_1, "fsanitize-memory-use-after-dtor", fsanitize_memory_use_after_dtor, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable use-after-destroy detection in MemorySanitizer", nullptr)
+OPTION(prefix_1, "fsanitize-recover=", fsanitize_recover_EQ, CommaJoined, f_clang_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Enable recovery for specified sanitizers", nullptr)
+OPTION(prefix_1, "fsanitize-recover", fsanitize_recover, Flag, f_clang_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsanitize-stats", fsanitize_stats, Flag, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable sanitizer statistics gathering.", nullptr)
+OPTION(prefix_1, "fsanitize-thread-atomics", fsanitize_thread_atomics, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Enable atomic operations instrumentation in ThreadSanitizer (default)", nullptr)
+OPTION(prefix_1, "fsanitize-thread-func-entry-exit", fsanitize_thread_func_entry_exit, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Enable function entry/exit instrumentation in ThreadSanitizer (default)", nullptr)
+OPTION(prefix_1, "fsanitize-thread-memory-access", fsanitize_thread_memory_access, Flag, f_clang_Group, INVALID, nullptr, 0, 0,
+       "Enable memory access instrumentation in ThreadSanitizer (default)", nullptr)
+OPTION(prefix_1, "fsanitize-trap=", fsanitize_trap_EQ, CommaJoined, f_clang_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Enable trapping for specified sanitizers", nullptr)
+OPTION(prefix_1, "fsanitize-undefined-strip-path-components=", fsanitize_undefined_strip_path_components_EQ, Joined, f_clang_Group, INVALID, nullptr, CC1Option, 0,
+       "Strip (or keep only, if negative) a given number of path components when emitting check metadata.", "<number>")
+OPTION(prefix_1, "fsanitize-undefined-trap-on-error", fsanitize_undefined_trap_on_error, Flag, f_clang_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsanitize=", fsanitize_EQ, CommaJoined, f_clang_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks", "<check>")
+OPTION(prefix_1, "fsave-optimization-record", fsave_optimization_record, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Generate a YAML optimization record file", nullptr)
+OPTION(prefix_1, "fsched-interblock", anonymous_13, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fschedule-insns2", schedule_insns2_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fschedule-insns", schedule_insns_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsecond-underscore", second_underscore_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsee", see_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fshort-enums", fshort_enums, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Allocate to an enum type only as many bytes as it needs for the declared range of possible values", nullptr)
+OPTION(prefix_1, "fshort-wchar", fshort_wchar, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Force wchar_t to be a short unsigned int", nullptr)
+OPTION(prefix_1, "fshow-column", fshow_column, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fshow-overloads=", fshow_overloads_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Which overload candidates to show when overload resolution fails: best|all; defaults to all", nullptr)
+OPTION(prefix_1, "fshow-source-location", fshow_source_location, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsign-zero", sign_zero_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsignaling-math", fsignaling_math, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsignaling-nans", signaling_nans_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsigned-bitfields", fsigned_bitfields, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsigned-char", fsigned_char, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsigned-zeros", fsigned_zeros, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsingle-precision-constant", single_precision_constant_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsized-deallocation", fsized_deallocation, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable C++14 sized global deallocation functions", nullptr)
+OPTION(prefix_1, "fsjlj-exceptions", fsjlj_exceptions, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use SjLj style exceptions", nullptr)
+OPTION(prefix_1, "fslp-vectorize-aggressive", fslp_vectorize_aggressive, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Enable the BB vectorization passes", nullptr)
+OPTION(prefix_1, "fslp-vectorize", fslp_vectorize, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Enable the superword-level parallelism vectorization passes", nullptr)
+OPTION(prefix_1, "fspec-constr-count", spec_constr_count_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fspell-checking-limit=", fspell_checking_limit_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fspell-checking-limit", fspell_checking_limit, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the maximum number of times to perform spell checking on unrecognized identifiers (0 = no limit).", "<N>")
+OPTION(prefix_1, "fspell-checking", fspell_checking, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsplit-dwarf-inlining", fsplit_dwarf_inlining, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Place debug types in their own section (ELF Only)", nullptr)
+OPTION(prefix_1, "fsplit-stack", fsplit_stack, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fstack-arrays", stack_arrays_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fstack-check", stack_check_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fstack-protector-all", fstack_protector_all, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Force the usage of stack protectors for all functions", nullptr)
+OPTION(prefix_1, "fstack-protector-strong", fstack_protector_strong, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Use a strong heuristic to apply stack protectors to functions", nullptr)
+OPTION(prefix_1, "fstack-protector", fstack_protector, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Enable stack protectors for functions potentially vulnerable to stack smashing", nullptr)
+OPTION(prefix_1, "fstandalone-debug", fstandalone_debug, Flag, f_Group, INVALID, nullptr, CoreOption, 0,
+       "Emit full debug info for all types used by the program", nullptr)
+OPTION(prefix_1, "fstrength-reduce", strength_reduce_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fstrict-aliasing", fstrict_aliasing, Flag, f_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fstrict-enums", fstrict_enums, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable optimizations based on the strict definition of an enum's value range", nullptr)
+OPTION(prefix_1, "fstrict-overflow", fstrict_overflow, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fstrict-return", fstrict_return, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Always treat control flow paths that fall off the end of a non-void function as unreachable", nullptr)
+OPTION(prefix_1, "fstrict-vtable-pointers", fstrict_vtable_pointers, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable optimizations based on the strict rules for overwriting polymorphic C++ objects", nullptr)
+OPTION(prefix_1, "fstruct-path-tbaa", fstruct_path_tbaa, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fsyntax-only", fsyntax_only, Flag, Action_Group, INVALID, nullptr, DriverOption | CoreOption | CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_2, "FS", _SLASH_FS, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftabstop=", ftabstop_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftabstop", ftabstop, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the tab stop distance.", "<N>")
+OPTION(prefix_1, "ftemplate-backtrace-limit=", ftemplate_backtrace_limit_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftemplate-backtrace-limit", ftemplate_backtrace_limit, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Set the maximum number of entries to print in a template instantiation backtrace (0 = no limit).", "<N>")
+OPTION(prefix_1, "ftemplate-depth-", ftemplate_depth_, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftemplate-depth=", ftemplate_depth_EQ, Joined, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftemplate-depth", ftemplate_depth, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Maximum depth of recursive template instantiation", nullptr)
+OPTION(prefix_1, "fterminated-vtables", anonymous_18, Flag, INVALID, fapple_kext, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftest-coverage", ftest_coverage, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftest-module-file-extension=", ftest_module_file_extension_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "introduce a module file extension for testing purposes. The argument is parsed as blockname:major:minor:hashed:user info", nullptr)
+OPTION(prefix_1, "fthin-link-bitcode=", fthin_link_bitcode_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Write minimized bitcode to <file> for the ThinLTO thin link only", nullptr)
+OPTION(prefix_1, "fthinlto-index=", fthinlto_index_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Perform ThinLTO importing using provided function summary index", nullptr)
+OPTION(prefix_1, "fthreadsafe-statics", fthreadsafe_statics, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftime-report", ftime_report, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftls-model=", ftlsmodel_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftls-model", tls_model_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftracer", tracer_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftrap-function=", ftrap_function_EQ, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Issue call to specified function rather than a trap instruction", nullptr)
+OPTION(prefix_1, "ftrapping-math", ftrapping_math, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftrapv-handler=", ftrapv_handler_EQ, Joined, f_Group, INVALID, nullptr, 0, 0,
+       "Specify the function to be called on overflow", "<function name>")
+OPTION(prefix_1, "ftrapv-handler", ftrapv_handler, Separate, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftrapv", ftrapv, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Trap on integer overflow", nullptr)
+OPTION(prefix_1, "ftree-dce", tree_dce_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree-salias", tree_salias_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree-slp-vectorize", anonymous_16, Flag, INVALID, fslp_vectorize, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree-ter", tree_ter_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree-vectorizer-verbose", tree_vectorizer_verbose_f, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree-vectorize", anonymous_14, Flag, INVALID, fvectorize, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree-vrp", tree_vrp_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree_loop_im", tree_loop_im_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree_loop_ivcanon", tree_loop_ivcanon_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftree_loop_linear", tree_loop_linear_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "ftrigraphs", ftrigraphs, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Process trigraph sequences", nullptr)
+OPTION(prefix_1, "ftype-visibility", ftype_visibility, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Default type visibility", nullptr)
+OPTION(prefix_1, "funderscoring", underscoring_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "funique-section-names", funique_section_names, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use unique names for text and data sections (ELF Only)", nullptr)
+OPTION(prefix_1, "funit-at-a-time", funit_at_a_time, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "funknown-anytype", funknown_anytype, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable parser support for the __unknown_anytype type; for testing purposes only", nullptr)
+OPTION(prefix_1, "funroll-all-loops", unroll_all_loops_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "funroll-loops", funroll_loops, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Turn on loop unroller", nullptr)
+OPTION(prefix_1, "funsafe-loop-optimizations", unsafe_loop_optimizations_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "funsafe-math-optimizations", funsafe_math_optimizations, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "funsigned-bitfields", funsigned_bitfields, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "funsigned-char", funsigned_char, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "funswitch-loops", unswitch_loops_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "funwind-tables", funwind_tables, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fuse-cxa-atexit", fuse_cxa_atexit, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fuse-init-array", fuse_init_array, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use .init_array instead of .ctors", nullptr)
+OPTION(prefix_1, "fuse-ld=", fuse_ld_EQ, Joined, f_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fuse-line-directives", fuse_line_directives, Flag, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fuse-linker-plugin", use_linker_plugin_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fuse-register-sized-bitfield-access", fuse_register_sized_bitfield_access, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use register sized accesses to bit-fields, when possible.", nullptr)
+OPTION(prefix_2, "FU", _SLASH_FU, JoinedOrSeparate, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fvariable-expansion-in-unroller", variable_expansion_in_unroller_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fveclib=", fveclib, Joined, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Use the given vector functions library", nullptr)
+OPTION(prefix_1, "fvect-cost-model", vect_cost_model_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fvectorize", fvectorize, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Enable the loop vectorization passes", nullptr)
+OPTION(prefix_1, "fverbose-asm", fverbose_asm, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fvisibility-inlines-hidden", fvisibility_inlines_hidden, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Give inline C++ member functions default visibility by default", nullptr)
+OPTION(prefix_1, "fvisibility-ms-compat", fvisibility_ms_compat, Flag, f_Group, INVALID, nullptr, 0, 0,
+       "Give global types 'default' visibility and global functions and variables 'hidden' visibility by default", nullptr)
+OPTION(prefix_1, "fvisibility=", fvisibility_EQ, Joined, f_Group, INVALID, nullptr, 0, 0,
+       "Set the default symbol visibility for all global declarations", nullptr)
+OPTION(prefix_1, "fvisibility", fvisibility, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Default type and symbol visibility", nullptr)
+OPTION(prefix_1, "fweb", web_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fwhole-file", whole_file_f, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fwhole-program-vtables", fwhole_program_vtables, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enables whole-program vtable optimization. Requires -flto", nullptr)
+OPTION(prefix_1, "fwhole-program", whole_program_f, Flag, clang_ignored_gcc_optimization_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "fwrapv", fwrapv, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Treat signed integer overflow as two's complement", nullptr)
+OPTION(prefix_1, "fwritable-strings", fwritable_strings, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Store string literals as writable data", nullptr)
+OPTION(prefix_1, "fxray-always-instrument=", fxray_always_instrument, JoinedOrSeparate, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.", nullptr)
+OPTION(prefix_1, "fxray-instruction-threshold=", fxray_instruction_threshold_EQ, JoinedOrSeparate, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Sets the minimum function size to instrument with XRay", nullptr)
+OPTION(prefix_1, "fxray-instruction-threshold", fxray_instruction_threshold_, JoinedOrSeparate, f_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "fxray-instrument", fxray_instrument, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Generate XRay instrumentation sleds on function entry and exit", nullptr)
+OPTION(prefix_1, "fxray-never-instrument=", fxray_never_instrument, JoinedOrSeparate, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.", nullptr)
+OPTION(prefix_2, "Fx", _SLASH_Fx, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "fzero-initialized-in-bss", fzero_initialized_in_bss, Flag, f_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "fzvector", fzvector, Flag, f_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable System z vector language extension", nullptr)
+OPTION(prefix_1, "F", F, JoinedOrSeparate, INVALID, INVALID, nullptr, RenderJoined | CC1Option, 0,
+       "Add directory to framework include search path", nullptr)
+OPTION(prefix_2, "F", _SLASH_F, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "g0", g0, Flag, gN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "G1", _SLASH_G1, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "g1", g1, Flag, gN_Group, gline_tables_only, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "G2", _SLASH_G2, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "g2", g2, Flag, gN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "g3", g3, Flag, gN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "G=", G_EQ, Joined, m_Group, G, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "GA", _SLASH_GA, Flag, cl_Group, ftlsmodel_EQ, "local-exec\0", CLOption | DriverOption | CLOption, 0,
+       "Assume thread-local variables are defined in the executable", nullptr)
+OPTION(prefix_3, "gcc-toolchain=", gcc_toolchain, Joined, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Use the gcc toolchain at the given directory", nullptr)
+OPTION(prefix_1, "gcc-toolchain", gcc_toolchain_legacy_spelling, Separate, INVALID, gcc_toolchain, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gcodeview", gcodeview, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | CoreOption, 0,
+       "Generate CodeView debug information", nullptr)
+OPTION(prefix_1, "gcoff", gcoff, Joined, g_Group, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "gcolumn-info", gcolumn_info, Flag, g_flags_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "gdwarf-2", gdwarf_2, Flag, g_Group, INVALID, nullptr, 0, 0,
+       "Generate source-level debug information with dwarf version 2", nullptr)
+OPTION(prefix_1, "gdwarf-3", gdwarf_3, Flag, g_Group, INVALID, nullptr, 0, 0,
+       "Generate source-level debug information with dwarf version 3", nullptr)
+OPTION(prefix_1, "gdwarf-4", gdwarf_4, Flag, g_Group, INVALID, nullptr, 0, 0,
+       "Generate source-level debug information with dwarf version 4", nullptr)
+OPTION(prefix_1, "gdwarf-5", gdwarf_5, Flag, g_Group, INVALID, nullptr, 0, 0,
+       "Generate source-level debug information with dwarf version 5", nullptr)
+OPTION(prefix_1, "gdwarf-aranges", gdwarf_aranges, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gdwarf", gdwarf, Flag, INVALID, gdwarf_4, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Gd", _SLASH_Gd, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set __cdecl as a default calling convention", nullptr)
+OPTION(prefix_2, "Ge", _SLASH_Ge, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "GF-", _SLASH_GF_, Flag, cl_Group, fwritable_strings, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable string pooling", nullptr)
+OPTION(prefix_1, "gfull", gfull, Flag, g_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "GF", _SLASH_GF, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "ggdb0", ggdb0, Flag, ggdbN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ggdb1", ggdb1, Flag, ggdbN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ggdb2", ggdb2, Flag, ggdbN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ggdb3", ggdb3, Flag, ggdbN_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ggdb", ggdb, Flag, gTune_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "ggnu-pubnames", ggnu_pubnames, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "GH", _SLASH_GH, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Gh", _SLASH_Gh, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "GL-", _SLASH_GL_, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "gline-tables-only", gline_tables_only, Flag, gN_Group, INVALID, nullptr, CoreOption, 0,
+       "Emit debug line number tables only", nullptr)
+OPTION(prefix_1, "glldb", glldb, Flag, gTune_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "GL", _SLASH_GL, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Gm-", _SLASH_Gm_, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "gmlt", gmlt, Flag, INVALID, gline_tables_only, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gmodules", gmodules, Flag, gN_Group, INVALID, nullptr, 0, 0,
+       "Generate debug info with external references to clang modules or precompiled headers", nullptr)
+OPTION(prefix_2, "Gm", _SLASH_Gm, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "gno-column-info", gno_column_info, Flag, g_flags_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "gno-record-gcc-switches", gno_record_gcc_switches, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gno-strict-dwarf", gno_strict_dwarf, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gnu-pubnames", gnu_pubnames, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit newer GNU style pubnames", nullptr)
+OPTION(prefix_2, "GR-", _SLASH_GR_, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable emission of RTTI data", nullptr)
+OPTION(prefix_1, "grecord-gcc-switches", grecord_gcc_switches, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "GR", _SLASH_GR, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable emission of RTTI data", nullptr)
+OPTION(prefix_2, "Gr", _SLASH_Gr, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set __fastcall as a default calling convention", nullptr)
+OPTION(prefix_2, "GS-", _SLASH_GS_, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable buffer security check", nullptr)
+OPTION(prefix_1, "gsce", gsce, Flag, gTune_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gsplit-dwarf", gsplit_dwarf, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gstabs", gstabs, Joined, g_Group, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "gstrict-dwarf", gstrict_dwarf, Flag, g_flags_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "GS", _SLASH_GS, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable buffer security check", nullptr)
+OPTION(prefix_2, "Gs", _SLASH_Gs, Joined, cl_Group, mstack_probe_size, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set stack probe size", nullptr)
+OPTION(prefix_1, "gtoggle", gtoggle, Flag, g_flags_Group, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_2, "GT", _SLASH_GT, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "guard:", _SLASH_Guard, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "gused", gused, Flag, g_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "gvms", gvms, Joined, g_Group, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_2, "Gv", _SLASH_Gv, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set __vectorcall as a default calling convention", nullptr)
+OPTION(prefix_2, "Gw-", _SLASH_Gw_, Flag, cl_Group, fno_data_sections, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Don't put each data item in its own section", nullptr)
+OPTION(prefix_2, "Gw", _SLASH_Gw, Flag, cl_Group, fdata_sections, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Put each data item in its own section", nullptr)
+OPTION(prefix_2, "GX-", _SLASH_GX_, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable exception handling", nullptr)
+OPTION(prefix_1, "gxcoff", gxcoff, Joined, g_Group, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_2, "GX", _SLASH_GX, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable exception handling", nullptr)
+OPTION(prefix_2, "Gy-", _SLASH_Gy_, Flag, cl_Group, fno_function_sections, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Don't put each function in its own section", nullptr)
+OPTION(prefix_2, "Gy", _SLASH_Gy, Flag, cl_Group, ffunction_sections, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Put each function in its own section", nullptr)
+OPTION(prefix_2, "GZ", _SLASH_GZ, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Gz", _SLASH_Gz, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set __stdcall as a default calling convention", nullptr)
+OPTION(prefix_1, "G", G, JoinedOrSeparate, m_Group, INVALID, nullptr, DriverOption, 0,
+       "Put objects of at most <size> bytes into small data section (MIPS / Hexagon)", "<size>")
+OPTION(prefix_1, "g", g_Flag, Flag, g_Group, INVALID, nullptr, 0, 0,
+       "Generate source-level debug information", nullptr)
+OPTION(prefix_1, "header-include-file", header_include_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Filename (or -) to write header include output to", nullptr)
+OPTION(prefix_1, "headerpad_max_install_names", headerpad__max__install__names, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "help-hidden", _help_hidden, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "HELP", _SLASH_HELP, Flag, cl_Group, help, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_4, "help", help, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption, 0,
+       "Display available options", nullptr)
+OPTION(prefix_2, "help", _SLASH_help, Flag, cl_Group, help, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Display available options", nullptr)
+OPTION(prefix_2, "homeparams", _SLASH_homeparams, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "hotpatch", _SLASH_hotpatch, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "H", H, Flag, Preprocessor_Group, INVALID, nullptr, CC1Option, 0,
+       "Show header includes and nesting depth", nullptr)
+OPTION(prefix_2, "H", _SLASH_H, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "I-", I_, Flag, I_Group, INVALID, nullptr, 0, 0,
+       "Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path", nullptr)
+OPTION(prefix_1, "idirafter", idirafter, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to AFTER include search path", nullptr)
+OPTION(prefix_1, "iframeworkwithsysroot", iframeworkwithsysroot, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot", "<directory>")
+OPTION(prefix_1, "iframework", iframework, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to SYSTEM framework search path", nullptr)
+OPTION(prefix_3, "imacros=", _imacros_EQ, Joined, INVALID, imacros, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "imacros", imacros, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Include macros from file before parsing", "<file>")
+OPTION(prefix_1, "image_base", image__base, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "imsvc", _SLASH_imsvc, JoinedOrSeparate, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Add directory to system include search path, as if part of %INCLUDE%", "<dir>")
+OPTION(prefix_3, "include-barrier", _include_barrier, Flag, INVALID, I_, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-directory-after=", _include_directory_after_EQ, Joined, INVALID, idirafter, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-directory-after", _include_directory_after, Separate, INVALID, idirafter, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-directory=", _include_directory_EQ, Joined, INVALID, I, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-directory", _include_directory, Separate, INVALID, I, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "include-pch", include_pch, Separate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Include precompiled header file", "<file>")
+OPTION(prefix_3, "include-prefix=", _include_prefix_EQ, Joined, INVALID, iprefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-prefix", _include_prefix, Separate, INVALID, iprefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "include-pth", include_pth, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include file before parsing", "<file>")
+OPTION(prefix_3, "include-with-prefix-after=", _include_with_prefix_after_EQ, Joined, INVALID, iwithprefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-with-prefix-after", _include_with_prefix_after, Separate, INVALID, iwithprefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-with-prefix-before=", _include_with_prefix_before_EQ, Joined, INVALID, iwithprefixbefore, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-with-prefix-before", _include_with_prefix_before, Separate, INVALID, iwithprefixbefore, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-with-prefix=", _include_with_prefix_EQ, Joined, INVALID, iwithprefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include-with-prefix", _include_with_prefix, Separate, INVALID, iwithprefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "include=", _include_EQ, Joined, INVALID, include, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "include", include, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Include file before parsing", "<file>")
+OPTION(prefix_1, "index-header-map", index_header_map, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Make the next included directory (-I or -F) an indexer header map", nullptr)
+OPTION(prefix_1, "init-only", init_only, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Only execute frontend initialization", nullptr)
+OPTION(prefix_1, "init", init, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "install_name", install__name, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "integrated-as", anonymous_21, Flag, INVALID, fintegrated_as, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "internal-externc-isystem", internal_externc_isystem, JoinedOrSeparate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add directory to the internal system include search path with implicit extern \"C\" semantics; these are assumed to not be user-provided and are used to model system and standard headers' paths.", "<directory>")
+OPTION(prefix_1, "internal-isystem", internal_isystem, JoinedOrSeparate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add directory to the internal system include search path; these are assumed to not be user-provided and are used to model system and standard headers' paths.", "<directory>")
+OPTION(prefix_1, "iprefix", iprefix, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Set the -iwithprefix/-iwithprefixbefore prefix", "<dir>")
+OPTION(prefix_1, "iquote", iquote, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to QUOTE include search path", "<directory>")
+OPTION(prefix_1, "isysroot", isysroot, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Set the system root directory (usually /)", "<dir>")
+OPTION(prefix_1, "isystem-after", isystem_after, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, DriverOption, 0,
+       "Add directory to end of the SYSTEM include search path", "<directory>")
+OPTION(prefix_1, "isystem", isystem, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to SYSTEM include search path", "<directory>")
+OPTION(prefix_1, "ivfsoverlay", ivfsoverlay, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Overlay the virtual filesystem described by file over the real file system", nullptr)
+OPTION(prefix_1, "iwithprefixbefore", iwithprefixbefore, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Set directory to include search path with prefix", "<dir>")
+OPTION(prefix_1, "iwithprefix", iwithprefix, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Set directory to SYSTEM include search path with prefix", "<dir>")
+OPTION(prefix_1, "iwithsysroot", iwithsysroot, JoinedOrSeparate, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Add directory to SYSTEM include search path, absolute paths are relative to -isysroot", "<directory>")
+OPTION(prefix_1, "I", I, JoinedOrSeparate, I_Group, INVALID, nullptr, CC1Option | CC1AsOption, 0,
+       "Add directory to include search path", "<dir>")
+OPTION(prefix_2, "I", _SLASH_I, JoinedOrSeparate, cl_Group, I, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Add directory to include search path", "<dir>")
+OPTION(prefix_1, "i", i, Joined, i_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "J", J, JoinedOrSeparate, gfortran_Group, INVALID, nullptr, RenderJoined, 0, nullptr, nullptr)
+OPTION(prefix_2, "J", _SLASH_J, Flag, cl_Group, funsigned_char, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Make char type unsigned", nullptr)
+OPTION(prefix_1, "keep_private_externs", keep__private__externs, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "kernel-", _SLASH_kernel_, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "kernel", _SLASH_kernel, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "language=", _language_EQ, Joined, INVALID, x, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "language", _language, Separate, INVALID, x, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "lazy_framework", lazy__framework, Separate, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_1, "lazy_library", lazy__library, Separate, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_2, "LDd", _SLASH_LDd, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Create debug DLL", nullptr)
+OPTION(prefix_2, "LD", _SLASH_LD, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Create DLL", nullptr)
+OPTION(prefix_3, "library-directory=", _library_directory_EQ, Joined, INVALID, L, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "library-directory", _library_directory, Separate, INVALID, L, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "linker-option=", linker_option, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add linker option", nullptr)
+OPTION(prefix_2, "link", _SLASH_link, RemainingArgsJoined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Forward options to the linker", "<options>")
+OPTION(prefix_2, "LN", _SLASH_LN, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "load", load, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Load the named plugin (dynamic shared object)", "<dsopath>")
+OPTION(prefix_1, "L", L, JoinedOrSeparate, Link_Group, INVALID, nullptr, RenderJoined, 0,
+       "Add directory to library search path", "<dir>")
+OPTION(prefix_1, "l", l, JoinedOrSeparate, Link_Group, INVALID, nullptr, LinkerInput | RenderJoined, 0, nullptr, nullptr)
+OPTION(prefix_1, "m16", m16, Flag, m_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "m32", m32, Flag, m_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "m3dnowa", m3dnowa, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "m3dnow", m3dnow, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "m64", m64, Flag, m_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "m80387", m80387, Flag, INVALID, mx87, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mabi=", mabi_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mabicalls", mabicalls, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Enable SVR4-style position-independent code (Mips only)", nullptr)
+OPTION(prefix_1, "Mach", Mach, Flag, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "madx", madx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "maes", maes, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "main-file-name", main_file_name, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Main file name to use for debug info", nullptr)
+OPTION(prefix_1, "malign-double", malign_double, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Align doubles to two words in structs (x86 only)", nullptr)
+OPTION(prefix_1, "malign-functions=", malign_functions_EQ, Joined, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "malign-jumps=", malign_jumps_EQ, Joined, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "malign-loops=", malign_loops_EQ, Joined, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "maltivec", maltivec, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mamdgpu-debugger-abi=", mamdgpu_debugger_abi, Joined, m_Group, INVALID, nullptr, HelpHidden, 0,
+       "Generate additional code for specified <version> of debugger ABI (AMDGPU only)", "<version>")
+OPTION(prefix_1, "mappletvos-version-min=", mappletvos_version_min_EQ, Joined, INVALID, mtvos_version_min_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mappletvsimulator-version-min=", mappletvsimulator_version_min_EQ, Joined, INVALID, mtvos_simulator_version_min_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "march=", march_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "marm", marm, Flag, INVALID, mno_thumb, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "masm-verbose", masm_verbose, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate verbose assembly output", nullptr)
+OPTION(prefix_1, "masm=", masm_EQ, Joined, m_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "massembler-fatal-warnings", massembler_fatal_warnings, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Make assembler warnings fatal", nullptr)
+OPTION(prefix_1, "mavx2", mavx2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512bw", mavx512bw, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512cd", mavx512cd, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512dq", mavx512dq, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512er", mavx512er, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512f", mavx512f, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512ifma", mavx512ifma, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512pf", mavx512pf, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512vbmi", mavx512vbmi, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx512vl", mavx512vl, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mavx", mavx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mbackchain", mbackchain, Flag, m_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Link stack frames through backchain on System Z", nullptr)
+OPTION(prefix_1, "mbig-endian", mbig_endian, Flag, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mbmi2", mbmi2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mbmi", mbmi, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcheck-zero-division", mcheck_zero_division, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mclflushopt", mclflushopt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mclwb", mclwb, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mclzero", mclzero, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcmodel=", mcmodel_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcmpb", mcmpb, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcode-model", mcode_model, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "The code model to use", nullptr)
+OPTION(prefix_1, "mcompact-branches=", mcompact_branches_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mconsole", mconsole, Joined, m_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mconstant-cfstrings", mconstant_cfstrings, Flag, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "mconstructor-aliases", mconstructor_aliases, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Emit complete constructors and destructors as aliases when possible", nullptr)
+OPTION(prefix_1, "mcpu=", mcpu_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcrbits", mcrbits, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcrc", mcrc, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Allow use of CRC instructions (ARM only)", nullptr)
+OPTION(prefix_1, "mcrypto", mpower8_crypto, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mcx16", mcx16, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "MDd", _SLASH_MDd, Flag, _SLASH_M_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Use DLL debug run-time", nullptr)
+OPTION(prefix_1, "mdebug-pass", mdebug_pass, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable additional debug output", nullptr)
+OPTION(prefix_1, "mdirect-move", mdirect_move, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mdisable-fp-elim", mdisable_fp_elim, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable frame pointer elimination optimization", nullptr)
+OPTION(prefix_1, "mdisable-tail-calls", mdisable_tail_calls, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable tail call optimization, keeping the call stack accurate", nullptr)
+OPTION(prefix_1, "mdll", mdll, Joined, m_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mdouble-float", mdouble_float, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mdspr2", mdspr2, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mdsp", mdsp, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mdynamic-no-pic", mdynamic_no_pic, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "MD", MD, Flag, M_Group, INVALID, nullptr, 0, 0,
+       "Write a depfile containing user and system headers", nullptr)
+OPTION(prefix_2, "MD", _SLASH_MD, Flag, _SLASH_M_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Use DLL run-time", nullptr)
+OPTION(prefix_1, "meabi", meabi, Separate, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Set EABI type, e.g. 4, 5 or gnu (default depends on triple)", nullptr)
+OPTION(prefix_1, "menable-no-infs", menable_no_infinities, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Allow optimization to assume there are no infinities.", nullptr)
+OPTION(prefix_1, "menable-no-nans", menable_no_nans, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Allow optimization to assume there are no NaNs.", nullptr)
+OPTION(prefix_1, "menable-unsafe-fp-math", menable_unsafe_fp_math, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Allow unsafe floating-point math optimizations which may decrease precision", nullptr)
+OPTION(prefix_1, "mexecute-only", mexecute_only, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Disallow generation of data access to code sections (ARM only)", nullptr)
+OPTION(prefix_1, "mf16c", mf16c, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfancy-math-387", mfancy_math_387, Flag, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfentry", mfentry, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "insert calls to fentry at function entry (x86 only)", nullptr)
+OPTION(prefix_1, "mfix-and-continue", mfix_and_continue, Flag, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfix-cortex-a53-835769", mfix_cortex_a53_835769, Flag, m_aarch64_Features_Group, INVALID, nullptr, 0, 0,
+       "Workaround Cortex-A53 erratum 835769 (AArch64 only)", nullptr)
+OPTION(prefix_1, "mfloat-abi=", mfloat_abi_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfloat-abi", mfloat_abi, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "The float ABI to use", nullptr)
+OPTION(prefix_1, "mfloat128", mfloat128, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfma4", mfma4, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfma", mfma, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfp32", mfp32, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Use 32-bit floating point registers (MIPS only)", nullptr)
+OPTION(prefix_1, "mfp64", mfp64, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Use 64-bit floating point registers (MIPS only)", nullptr)
+OPTION(prefix_1, "mfpmath=", mfpmath_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfpmath", mfpmath, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Which unit to use for fp math", nullptr)
+OPTION(prefix_1, "mfprnd", mfprnd, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfpu=", mfpu_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfpxx", mfpxx, Flag, m_Group, INVALID, nullptr, HelpHidden, 0,
+       "Avoid FPU mode dependent operations when used with the O32 ABI", nullptr)
+OPTION(prefix_1, "mfsgsbase", mfsgsbase, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mfxsr", mfxsr, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "MF", MF, JoinedOrSeparate, M_Group, INVALID, nullptr, 0, 0,
+       "Write depfile output from -MMD, -MD, -MM, or -M to <file>", "<file>")
+OPTION(prefix_1, "mgeneral-regs-only", mgeneral_regs_only, Flag, m_aarch64_Features_Group, INVALID, nullptr, 0, 0,
+       "Generate code which only uses the general purpose registers (AArch64 only)", nullptr)
+OPTION(prefix_1, "mglibc", mglibc, Flag, m_libc_Group, INVALID, nullptr, HelpHidden | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "mglobal-merge", mglobal_merge, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable merging of globals", nullptr)
+OPTION(prefix_1, "MG", MG, Flag, M_Group, INVALID, nullptr, CC1Option, 0,
+       "Add missing headers to depfile", nullptr)
+OPTION(prefix_1, "mhard-float", mhard_float, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mhtm", mhtm, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mhvx-double", mhexagon_hvx_double, Flag, m_hexagon_Features_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable Hexagon Double Vector eXtensions", nullptr)
+OPTION(prefix_1, "mhvx", mhexagon_hvx, Flag, m_hexagon_Features_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable Hexagon Vector eXtensions", nullptr)
+OPTION(prefix_3, "mhwdiv=", _mhwdiv_EQ, Joined, INVALID, mhwdiv_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mhwdiv=", mhwdiv_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "mhwdiv", _mhwdiv, Separate, INVALID, mhwdiv_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "miamcu", miamcu, Flag, m_Group, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Use Intel MCU ABI", nullptr)
+OPTION(prefix_1, "mieee-fp", mieee_fp, Flag, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "mieee-rnd-near", mieee_rnd_near, Flag, m_hexagon_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "migrate", _migrate, Flag, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Run the migrator", nullptr)
+OPTION(prefix_1, "migrate", migrate, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Migrate source code", nullptr)
+OPTION(prefix_1, "mimplicit-float", mimplicit_float, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mimplicit-it=", mimplicit_it_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mincremental-linker-compatible", mincremental_linker_compatible, Flag, m_Group, INVALID, nullptr, CC1Option | CC1AsOption, 0,
+       "(integrated-as) Emit an object file which can be used with an incremental linker", nullptr)
+OPTION(prefix_1, "minline-all-stringops", minline_all_stringops, Flag, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "minvariant-function-descriptors", minvariant_function_descriptors, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mios-simulator-version-min=", mios_simulator_version_min_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mios-version-min=", mios_version_min_EQ, Joined, INVALID, miphoneos_version_min_EQ, nullptr, 0, 0,
+       "Set iOS deployment target", nullptr)
+OPTION(prefix_1, "miphoneos-version-min=", miphoneos_version_min_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "miphonesimulator-version-min=", miphonesimulator_version_min_EQ, Joined, INVALID, mios_simulator_version_min_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mips16", mips16, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mips1", mips1, Flag, INVALID, march_EQ, "mips1\0", HelpHidden, 0,
+       "Equivalent to -march=mips1", nullptr)
+OPTION(prefix_1, "mips2", mips2, Flag, INVALID, march_EQ, "mips2\0", HelpHidden, 0,
+       "Equivalent to -march=mips2", nullptr)
+OPTION(prefix_1, "mips32r2", mips32r2, Flag, INVALID, march_EQ, "mips32r2\0", HelpHidden, 0,
+       "Equivalent to -march=mips32r2", nullptr)
+OPTION(prefix_1, "mips32r3", mips32r3, Flag, INVALID, march_EQ, "mips32r3\0", HelpHidden, 0,
+       "Equivalent to -march=mips32r3", nullptr)
+OPTION(prefix_1, "mips32r5", mips32r5, Flag, INVALID, march_EQ, "mips32r5\0", HelpHidden, 0,
+       "Equivalent to -march=mips32r5", nullptr)
+OPTION(prefix_1, "mips32r6", mips32r6, Flag, INVALID, march_EQ, "mips32r6\0", HelpHidden, 0,
+       "Equivalent to -march=mips32r6", nullptr)
+OPTION(prefix_1, "mips32", mips32, Flag, INVALID, march_EQ, "mips32\0", HelpHidden, 0,
+       "Equivalent to -march=mips32", nullptr)
+OPTION(prefix_1, "mips3", mips3, Flag, INVALID, march_EQ, "mips3\0", HelpHidden, 0,
+       "Equivalent to -march=mips3", nullptr)
+OPTION(prefix_1, "mips4", mips4, Flag, INVALID, march_EQ, "mips4\0", HelpHidden, 0,
+       "Equivalent to -march=mips4", nullptr)
+OPTION(prefix_1, "mips5", mips5, Flag, INVALID, march_EQ, "mips5\0", HelpHidden, 0,
+       "Equivalent to -march=mips5", nullptr)
+OPTION(prefix_1, "mips64r2", mips64r2, Flag, INVALID, march_EQ, "mips64r2\0", HelpHidden, 0,
+       "Equivalent to -march=mips64r2", nullptr)
+OPTION(prefix_1, "mips64r3", mips64r3, Flag, INVALID, march_EQ, "mips64r3\0", HelpHidden, 0,
+       "Equivalent to -march=mips64r3", nullptr)
+OPTION(prefix_1, "mips64r5", mips64r5, Flag, INVALID, march_EQ, "mips64r5\0", HelpHidden, 0,
+       "Equivalent to -march=mips64r5", nullptr)
+OPTION(prefix_1, "mips64r6", mips64r6, Flag, INVALID, march_EQ, "mips64r6\0", HelpHidden, 0,
+       "Equivalent to -march=mips64r6", nullptr)
+OPTION(prefix_1, "mips64", mips64, Flag, INVALID, march_EQ, "mips64\0", HelpHidden, 0,
+       "Equivalent to -march=mips64", nullptr)
+OPTION(prefix_1, "misel", misel, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "MJ", MJ, JoinedOrSeparate, M_Group, INVALID, nullptr, 0, 0,
+       "Write a compilation database entry per input", nullptr)
+OPTION(prefix_1, "mkernel", mkernel, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mldc1-sdc1", mldc1_sdc1, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mlimit-float-precision", mlimit_float_precision, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Limit float precision to the given value", nullptr)
+OPTION(prefix_1, "mlink-bitcode-file", mlink_bitcode_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Link the given bitcode file before performing optimizations.", nullptr)
+OPTION(prefix_1, "mlink-cuda-bitcode", mlink_cuda_bitcode, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Link and internalize needed symbols from the given bitcode file before performing optimizations.", nullptr)
+OPTION(prefix_1, "mlinker-version=", mlinker_version_EQ, Joined, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mlittle-endian", mlittle_endian, Flag, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mllvm", mllvm, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | CoreOption, 0,
+       "Additional arguments to forward to LLVM's option processing", nullptr)
+OPTION(prefix_1, "mlong-calls", mlong_calls, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Generate branches with extended addressability, usually via indirect jumps.", nullptr)
+OPTION(prefix_1, "mlongcall", mlongcall, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mlzcnt", mlzcnt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mmacosx-version-min=", mmacosx_version_min_EQ, Joined, m_Group, INVALID, nullptr, 0, 0,
+       "Set Mac OS X deployment target", nullptr)
+OPTION(prefix_1, "MMD", MMD, Flag, M_Group, INVALID, nullptr, 0, 0,
+       "Write a depfile containing user headers", nullptr)
+OPTION(prefix_1, "mmfcrf", mmfcrf, Flag, INVALID, mmfocrf, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mmfocrf", mmfocrf, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mmicromips", mmicromips, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mmmx", mmmx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mmovbe", mmovbe, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mmpx", mmpx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mms-bitfields", mms_bitfields, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Set the default structure layout to be compatible with the Microsoft compiler standard", nullptr)
+OPTION(prefix_1, "mmsa", mmsa, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Enable MSA ASE (MIPS only)", nullptr)
+OPTION(prefix_1, "mmwaitx", mmwaitx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "MM", MM, Flag, M_Group, INVALID, nullptr, 0, 0,
+       "Like -MMD, but also implies -E and writes to stdout by default", nullptr)
+OPTION(prefix_1, "mnan=", mnan_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-3dnowa", mno_3dnowa, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-3dnow", mno_3dnow, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-80387", mno_80387, Flag, INVALID, mno_x87, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-abicalls", mno_abicalls, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Disable SVR4-style position-independent code (Mips only)", nullptr)
+OPTION(prefix_1, "mno-adx", mno_adx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-aes", mno_aes, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-altivec", mno_altivec, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx2", mno_avx2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512bw", mno_avx512bw, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512cd", mno_avx512cd, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512dq", mno_avx512dq, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512er", mno_avx512er, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512f", mno_avx512f, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512ifma", mno_avx512ifma, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512pf", mno_avx512pf, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512vbmi", mno_avx512vbmi, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx512vl", mno_avx512vl, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-avx", mno_avx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-backchain", mno_backchain, Flag, m_Group, INVALID, nullptr, DriverOption | CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-bmi2", mno_bmi2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-bmi", mno_bmi, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-check-zero-division", mno_check_zero_division, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-clflushopt", mno_clflushopt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-clwb", mno_clwb, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-clzero", mno_clzero, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-cmpb", mno_cmpb, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-constant-cfstrings", mno_constant_cfstrings, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-crbits", mno_crbits, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-crypto", mnopower8_crypto, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-cx16", mno_cx16, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-direct-move", mnodirect_move, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-dspr2", mno_dspr2, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-dsp", mno_dsp, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-execute-only", mno_execute_only, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Allow generation of data access to code sections (ARM only)", nullptr)
+OPTION(prefix_1, "mno-f16c", mno_f16c, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-fix-cortex-a53-835769", mno_fix_cortex_a53_835769, Flag, m_aarch64_Features_Group, INVALID, nullptr, 0, 0,
+       "Don't workaround Cortex-A53 erratum 835769 (AArch64 only)", nullptr)
+OPTION(prefix_1, "mno-float128", mno_float128, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-fma4", mno_fma4, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-fma", mno_fma, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-fprnd", mno_fprnd, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-fsgsbase", mno_fsgsbase, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-fxsr", mno_fxsr, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-global-merge", mno_global_merge, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable merging of globals", nullptr)
+OPTION(prefix_1, "mno-htm", mno_htm, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-hvx-double", mno_hexagon_hvx_double, Flag, m_hexagon_Features_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable Hexagon Double Vector eXtensions", nullptr)
+OPTION(prefix_1, "mno-hvx", mno_hexagon_hvx, Flag, m_hexagon_Features_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable Hexagon Vector eXtensions", nullptr)
+OPTION(prefix_1, "mno-iamcu", mno_iamcu, Flag, m_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-implicit-float", mno_implicit_float, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Don't generate implicit floating point instructions", nullptr)
+OPTION(prefix_1, "mno-incremental-linker-compatible", mno_incremental_linker_compatible, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "(integrated-as) Emit an object file which cannot be used with an incremental linker", nullptr)
+OPTION(prefix_1, "mno-inline-all-stringops", mno_inline_all_stringops, Flag, clang_ignored_m_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-invariant-function-descriptors", mno_invariant_function_descriptors, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-isel", mno_isel, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-ldc1-sdc1", mno_ldc1_sdc1, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-long-calls", mno_long_calls, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Restore the default behaviour of not generating long calls", nullptr)
+OPTION(prefix_1, "mno-longcall", mno_longcall, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-lzcnt", mno_lzcnt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-mfcrf", mno_mfcrf, Flag, INVALID, mno_mfocrf, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-mfocrf", mno_mfocrf, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-micromips", mno_micromips, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-mips16", mno_mips16, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-mmx", mno_mmx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-movbe", mno_movbe, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-movt", mno_movt, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Disallow use of movt/movw pairs (ARM only)", nullptr)
+OPTION(prefix_1, "mno-mpx", mno_mpx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-ms-bitfields", mno_ms_bitfields, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Do not set the default structure layout to be compatible with the Microsoft compiler standard", nullptr)
+OPTION(prefix_1, "mno-msa", mno_msa, Flag, m_Group, INVALID, nullptr, 0, 0,
+       "Disable MSA ASE (MIPS only)", nullptr)
+OPTION(prefix_1, "mno-mwaitx", mno_mwaitx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-neg-immediates", mno_neg_immediates, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Disallow converting instructions with negative immediates to their negation or inversion.", nullptr)
+OPTION(prefix_1, "mno-odd-spreg", mno_odd_spreg, Flag, m_Group, INVALID, nullptr, HelpHidden, 0,
+       "Disable odd single-precision floating point registers", nullptr)
+OPTION(prefix_1, "mno-omit-leaf-frame-pointer", mno_omit_leaf_frame_pointer, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-pascal-strings", mno_pascal_strings, Flag, INVALID, fno_pascal_strings, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-pclmul", mno_pclmul, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-pie-copy-relocations", mno_pie_copy_relocations, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-pku", mno_pku, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-popcntd", mno_popcntd, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-popcnt", mno_popcnt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-power8-vector", mno_power8_vector, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-power9-vector", mno_power9_vector, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-prefetchwt1", mno_prefetchwt1, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-prfchw", mno_prfchw, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-pure-code", mno_pure_code, Flag, INVALID, mno_execute_only, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-qpx", mno_qpx, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-rdrnd", mno_rdrnd, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-rdseed", mno_rdseed, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-red-zone", mno_red_zone, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-relax-all", mno_relax_all, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-restrict-it", mno_restrict_it, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode", nullptr)
+OPTION(prefix_1, "mno-rtd", mno_rtd, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-rtm", mno_rtm, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sgx", mno_sgx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sha", mno_sha, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-simd128", mno_simd128, Flag, m_wasm_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-soft-float", mno_soft_float, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse2", mno_sse2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse3", mno_sse3, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse4.1", mno_sse4_1, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse4.2", mno_sse4_2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse4a", mno_sse4a, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse4", mno_sse4, Flag, INVALID, mno_sse4_1, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-sse", mno_sse, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-ssse3", mno_ssse3, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-stackrealign", mno_stackrealign, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-tbm", mno_tbm, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-thumb", mno_thumb, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-unaligned-access", mno_unaligned_access, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Force all memory accesses to be aligned (AArch32/AArch64 only)", nullptr)
+OPTION(prefix_1, "mno-vsx", mno_vsx, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-vx", mno_vx, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-warn-nonportable-cfstrings", mno_warn_nonportable_cfstrings, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-x87", mno_x87, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-xgot", mno_xgot, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-xop", mno_xop, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-xsavec", mno_xsavec, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-xsaveopt", mno_xsaveopt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-xsaves", mno_xsaves, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-xsave", mno_xsave, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mno-zero-initialized-in-bss", mno_zero_initialized_in_bss, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not put zero initialized data in the BSS", nullptr)
+OPTION(prefix_1, "mno-zvector", mno_zvector, Flag, INVALID, fno_zvector, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mnocrc", mnocrc, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Disallow use of CRC instructions (ARM only)", nullptr)
+OPTION(prefix_1, "mnoexecstack", mno_exec_stack, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Mark the file as not needing an executable stack", nullptr)
+OPTION(prefix_1, "modd-spreg", modd_spreg, Flag, m_Group, INVALID, nullptr, HelpHidden, 0,
+       "Enable odd single-precision floating point registers", nullptr)
+OPTION(prefix_1, "module-dependency-dir", module_dependency_dir, Separate, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Directory to dump module dependencies to", nullptr)
+OPTION(prefix_1, "module-file-deps", module_file_deps, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include module files in dependency output", nullptr)
+OPTION(prefix_1, "module-file-info", module_file_info, Flag, Action_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Provide information about a particular module file", nullptr)
+OPTION(prefix_1, "momit-leaf-frame-pointer", momit_leaf_frame_pointer, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Omit frame pointer setup for leaf functions", nullptr)
+OPTION(prefix_1, "moslib=", moslib_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpascal-strings", mpascal_strings, Flag, INVALID, fpascal_strings, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpclmul", mpclmul, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpie-copy-relocations", mpie_copy_relocations, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Use copy relocations support for PIE builds", nullptr)
+OPTION(prefix_1, "mpku", mpku, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpopcntd", mpopcntd, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpopcnt", mpopcnt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpower8-vector", mpower8_vector, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpower9-vector", mpower9_vector, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mprefetchwt1", mprefetchwt1, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mprfchw", mprfchw, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mpure-code", mpure_code, Flag, INVALID, mexecute_only, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "MP", MP, Flag, M_Group, INVALID, nullptr, CC1Option, 0,
+       "Create phony target for each dependency (other than main file)", nullptr)
+OPTION(prefix_2, "MP", _SLASH_MP, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mqdsp6-compat", mqdsp6_compat, Flag, m_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Enable hexagon-qdsp6 backward compatibility", nullptr)
+OPTION(prefix_1, "mqpx", mqpx, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "MQ", MQ, JoinedOrSeparate, M_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify name of main file output to quote in depfile", nullptr)
+OPTION(prefix_1, "mrdrnd", mrdrnd, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mrdseed", mrdseed, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mrecip=", mrecip_EQ, CommaJoined, m_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "mrecip", mrecip, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mred-zone", mred_zone, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mregparm=", mregparm_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mregparm", mregparm, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Limit the number of registers available for integer arguments", nullptr)
+OPTION(prefix_1, "mrelax-all", mrelax_all, Flag, m_Group, INVALID, nullptr, CC1Option | CC1AsOption, 0,
+       "(integrated-as) Relax all machine instructions", nullptr)
+OPTION(prefix_3, "mrelax-relocations", mrelax_relocations, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Use relaxable elf relocations", nullptr)
+OPTION(prefix_1, "mrelocation-model", mrelocation_model, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "The relocation model to use", nullptr)
+OPTION(prefix_1, "mrestrict-it", mrestrict_it, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.", nullptr)
+OPTION(prefix_1, "mrtd", mrtd, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Make StdCall calling convention the default", nullptr)
+OPTION(prefix_1, "mrtm", mrtm, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msave-temp-labels", msave_temp_labels, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Save temporary labels in the symbol table. Note this may change .s semantics and shouldn't generally be used on compiler-generated code.", nullptr)
+OPTION(prefix_1, "msgx", msgx, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msha", msha, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msimd128", msimd128, Flag, m_wasm_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "msingle-float", msingle_float, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "msmall-data-threshold=", msmall_data_threshold_EQ, Joined, m_Group, G, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "msoft-float", msoft_float, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Use software floating point", nullptr)
+OPTION(prefix_1, "msse2", msse2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msse3", msse3, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msse4.1", msse4_1, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msse4.2", msse4_2, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msse4a", msse4a, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "msse4", msse4, Flag, INVALID, msse4_2, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "msse", msse, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mssse3", mssse3, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mstack-alignment=", mstack_alignment, Joined, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Set the stack alignment", nullptr)
+OPTION(prefix_1, "mstack-probe-size=", mstack_probe_size, Joined, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Set the stack probe size", nullptr)
+OPTION(prefix_1, "mstackrealign", mstackrealign, Flag, m_Group, INVALID, nullptr, CC1Option, 0,
+       "Force realign the stack at entry to every function", nullptr)
+OPTION(prefix_1, "mstrict-align", mstrict_align, Flag, INVALID, mno_unaligned_access, nullptr, CC1Option | HelpHidden, 0,
+       "Force all memory accesses to be aligned (same as mno-unaligned-access)", nullptr)
+OPTION(prefix_1, "mt-migrate-directory", mt_migrate_directory, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Directory for temporary files produced during ARC or ObjC migration", nullptr)
+OPTION(prefix_1, "mtbm", mtbm, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "MTd", _SLASH_MTd, Flag, _SLASH_M_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Use static debug run-time", nullptr)
+OPTION(prefix_1, "mthread-model", mthread_model, Separate, m_Group, INVALID, nullptr, CC1Option, 0,
+       "The thread model to use, e.g. posix, single (posix by default)", nullptr)
+OPTION(prefix_1, "mthreads", mthreads, Joined, m_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mthumb", mthumb, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mtune=", mtune_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mtvos-simulator-version-min=", mtvos_simulator_version_min_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mtvos-version-min=", mtvos_version_min_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "MT", MT, JoinedOrSeparate, M_Group, INVALID, nullptr, CC1Option, 0,
+       "Specify name of main file output in depfile", nullptr)
+OPTION(prefix_2, "MT", _SLASH_MT, Flag, _SLASH_M_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Use static run-time", nullptr)
+OPTION(prefix_1, "muclibc", muclibc, Flag, m_libc_Group, INVALID, nullptr, HelpHidden | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "multi_module", multi__module, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "multiply_defined_unused", multiply__defined__unused, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "multiply_defined", multiply__defined, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "munaligned-access", munaligned_access, Flag, m_arm_Features_Group, INVALID, nullptr, 0, 0,
+       "Allow memory accesses to be unaligned (AArch32/AArch64 only)", nullptr)
+OPTION(prefix_1, "municode", municode, Joined, m_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "munwind-tables", munwind_tables, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate unwinding tables for all functions", nullptr)
+OPTION(prefix_1, "mv4", mv4, Flag, m_hexagon_Features_Group, mcpu_EQ, "hexagonv4\0", 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mv55", mv55, Flag, m_hexagon_Features_Group, mcpu_EQ, "hexagonv55\0", 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mv5", mv5, Flag, m_hexagon_Features_Group, mcpu_EQ, "hexagonv5\0", 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mv60", mv60, Flag, m_hexagon_Features_Group, mcpu_EQ, "hexagonv60\0", 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mv62", mv62, Flag, m_hexagon_Features_Group, mcpu_EQ, "hexagonv62\0", 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mvsx", mvsx, Flag, m_ppc_Features_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mvx", mvx, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "MV", MV, Flag, M_Group, INVALID, nullptr, CC1Option, 0,
+       "Use NMake/Jom format for the depfile", nullptr)
+OPTION(prefix_1, "mwarn-nonportable-cfstrings", mwarn_nonportable_cfstrings, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mwatchos-simulator-version-min=", mwatchos_simulator_version_min_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mwatchos-version-min=", mwatchos_version_min_EQ, Joined, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mwatchsimulator-version-min=", mwatchsimulator_version_min_EQ, Joined, INVALID, mwatchos_simulator_version_min_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mwindows", mwindows, Joined, m_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mx32", mx32, Flag, m_Group, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mx87", mx87, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mxgot", mxgot, Flag, m_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "mxop", mxop, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mxsavec", mxsavec, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mxsaveopt", mxsaveopt, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mxsaves", mxsaves, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mxsave", mxsave, Flag, m_x86_Features_Group, INVALID, nullptr, CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "mzvector", mzvector, Flag, INVALID, fzvector, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "M", M, Flag, M_Group, INVALID, nullptr, 0, 0,
+       "Like -MD, but also implies -E and writes to stdout by default", nullptr)
+OPTION(prefix_1, "no-canonical-prefixes", no_canonical_prefixes, Flag, INVALID, INVALID, nullptr, HelpHidden, 0,
+       "Use relative instead of canonical paths", nullptr)
+OPTION(prefix_1, "no-code-completion-globals", no_code_completion_globals, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not include global declarations in code-completion results.", nullptr)
+OPTION(prefix_1, "no-cpp-precomp", no_cpp_precomp, Flag, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-cuda-gpu-arch=", no_cuda_gpu_arch_EQ, Joined, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Remove GPU architecture (e.g. sm_35) from the list of GPUs to compile for. 'all' resets the list to its default value.", nullptr)
+OPTION(prefix_3, "no-cuda-noopt-device-debug", no_cuda_noopt_device_debug, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-cuda-version-check", no_cuda_version_check, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.", nullptr)
+OPTION(prefix_1, "no-emit-llvm-uselists", no_emit_llvm_uselists, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Don't preserve order of LLVM use-lists when serializing", nullptr)
+OPTION(prefix_1, "no-finalize-removal", migrator_no_finalize_removal, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not remove finalize method in gc mode", nullptr)
+OPTION(prefix_1, "no-implicit-float", no_implicit_float, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Don't generate implicit floating point instructions", nullptr)
+OPTION(prefix_1, "no-integrated-as", anonymous_22, Flag, INVALID, fno_integrated_as, nullptr, CC1Option | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_4, "no-integrated-cpp", no_integrated_cpp, Flag, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-line-commands", _no_line_commands, Flag, INVALID, P, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "no-ns-alloc-error", migrator_no_nsalloc_error, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not error on use of NSAllocateCollectable/NSReallocateCollectable", nullptr)
+OPTION(prefix_4, "no-pedantic", no_pedantic, Flag, pedantic_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "no-pthread", no_pthread, Flag, INVALID, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-standard-includes", _no_standard_includes, Flag, INVALID, nostdinc, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-standard-libraries", _no_standard_libraries, Flag, INVALID, nostdlib, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "no-struct-path-tbaa", no_struct_path_tbaa, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Turn off struct-path aware Type Based Alias Analysis", nullptr)
+OPTION(prefix_3, "no-system-header-prefix=", no_system_header_prefix, Joined, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Treat all #include paths starting with <prefix> as not including a system header.", "<prefix>")
+OPTION(prefix_3, "no-system-header-prefix", anonymous_20, Separate, INVALID, no_system_header_prefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-undefined", _no_undefined, Flag, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_3, "no-warnings", _no_warnings, Flag, INVALID, w, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "no_dead_strip_inits_and_terms", no__dead__strip__inits__and__terms, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nobuiltininc", nobuiltininc, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Disable builtin #include directories", nullptr)
+OPTION(prefix_1, "nocpp", nocpp, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nocudainc", nocudainc, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nocudalib", nocudalib, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nodefaultlibs", nodefaultlibs, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nofixprebinding", nofixprebinding, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nolibc", nolibc, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "nologo", _SLASH_nologo, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "nomultidefs", nomultidefs, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nopie", nopie, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "noprebind", noprebind, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "noseglinkedit", noseglinkedit, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nostartfiles", nostartfiles, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nostdinc++", nostdincxx, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Disable standard #include directories for the C++ standard library", nullptr)
+OPTION(prefix_1, "nostdinc", nostdinc, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nostdlibinc", nostdlibinc, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nostdlib", nostdlib, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "nostdsysteminc", nostdsysteminc, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Disable standard system #include directories", nullptr)
+OPTION(prefix_1, "n", n, Flag, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "Don't automatically start assembly file with a text section", nullptr)
+OPTION(prefix_1, "O0", O0, Flag, O_Group, INVALID, nullptr, CC1Option | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "O0", _SLASH_O0, Flag, cl_Group, O0, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "O4", O4, Flag, O_Group, INVALID, nullptr, CC1Option | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "ObjC++", ObjCXX, Flag, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Treat source input files as Objective-C++ inputs", nullptr)
+OPTION(prefix_1, "objc-isystem", objc_isystem, JoinedOrSeparate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add directory to the ObjC SYSTEM include search path", "<directory>")
+OPTION(prefix_1, "objcmt-atomic-property", objcmt_atomic_property, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Make migration to 'atomic' properties", nullptr)
+OPTION(prefix_1, "objcmt-migrate-all", objcmt_migrate_all, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to modern ObjC", nullptr)
+OPTION(prefix_1, "objcmt-migrate-annotation", objcmt_migrate_annotation, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to property and method annotations", nullptr)
+OPTION(prefix_1, "objcmt-migrate-designated-init", objcmt_migrate_designated_init, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods", nullptr)
+OPTION(prefix_1, "objcmt-migrate-instancetype", objcmt_migrate_instancetype, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to infer instancetype for method result type", nullptr)
+OPTION(prefix_1, "objcmt-migrate-literals", objcmt_migrate_literals, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to modern ObjC literals", nullptr)
+OPTION(prefix_1, "objcmt-migrate-ns-macros", objcmt_migrate_nsmacros, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to NS_ENUM/NS_OPTIONS macros", nullptr)
+OPTION(prefix_1, "objcmt-migrate-property-dot-syntax", objcmt_migrate_property_dot_syntax, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration of setter/getter messages to property-dot syntax", nullptr)
+OPTION(prefix_1, "objcmt-migrate-property", objcmt_migrate_property, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to modern ObjC property", nullptr)
+OPTION(prefix_1, "objcmt-migrate-protocol-conformance", objcmt_migrate_protocol_conformance, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to add protocol conformance on classes", nullptr)
+OPTION(prefix_1, "objcmt-migrate-readonly-property", objcmt_migrate_readonly_property, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to modern ObjC readonly property", nullptr)
+OPTION(prefix_1, "objcmt-migrate-readwrite-property", objcmt_migrate_readwrite_property, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to modern ObjC readwrite property", nullptr)
+OPTION(prefix_1, "objcmt-migrate-subscripting", objcmt_migrate_subscripting, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to modern ObjC subscripting", nullptr)
+OPTION(prefix_1, "objcmt-ns-nonatomic-iosonly", objcmt_ns_nonatomic_iosonly, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute", nullptr)
+OPTION(prefix_1, "objcmt-returns-innerpointer-property", objcmt_returns_innerpointer_property, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable migration to annotate property with NS_RETURNS_INNER_POINTER", nullptr)
+OPTION(prefix_1, "objcmt-white-list-dir-path=", anonymous_0, Joined, INVALID, objcmt_whitelist_dir_path, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "objcmt-whitelist-dir-path=", objcmt_whitelist_dir_path, Joined, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Only modify files with a filename contained in the provided directory path", nullptr)
+OPTION(prefix_1, "objcxx-isystem", objcxx_isystem, JoinedOrSeparate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Add directory to the ObjC++ SYSTEM include search path", "<directory>")
+OPTION(prefix_1, "ObjC", ObjC, Flag, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Treat source input files as Objective-C inputs", nullptr)
+OPTION(prefix_1, "object", object, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "Od", _SLASH_Od, Flag, cl_Group, O0, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable optimization", nullptr)
+OPTION(prefix_1, "Ofast", Ofast, Joined, O_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_2, "Og", _SLASH_Og, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Oi-", _SLASH_Oi_, Flag, cl_Group, fno_builtin, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable use of builtin functions", nullptr)
+OPTION(prefix_2, "Oi", _SLASH_Oi, Flag, cl_Group, fbuiltin, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable use of builtin functions", nullptr)
+OPTION(prefix_2, "openmp-", _SLASH_openmp_, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "openmp", _SLASH_openmp, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "opt-record-file", opt_record_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "File name to use for YAML optimization record output", nullptr)
+OPTION(prefix_3, "optimize=", _optimize_EQ, Joined, INVALID, O, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "optimize", _optimize, Flag, INVALID, O, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "Os", _SLASH_Os, Flag, cl_Group, O, "s\0", CLOption | DriverOption | CLOption, 0,
+       "Optimize for size", nullptr)
+OPTION(prefix_2, "Ot", _SLASH_Ot, Flag, cl_Group, O, "2\0", CLOption | DriverOption | CLOption, 0,
+       "Optimize for speed", nullptr)
+OPTION(prefix_1, "output-asm-variant", output_asm_variant, Separate, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "Select the asm variant index to use for output", nullptr)
+OPTION(prefix_3, "output-class-directory=", _output_class_directory_EQ, Joined, INVALID, foutput_class_dir_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "output-class-directory", _output_class_directory, Separate, INVALID, foutput_class_dir_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "output=", _output_EQ, Joined, INVALID, o, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "output", _output, Separate, INVALID, o, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "O", O_flag, Flag, INVALID, O, "2\0", CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "O", O, Joined, O_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_2, "O", _SLASH_O, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Optimization level", nullptr)
+OPTION(prefix_1, "o", o, JoinedOrSeparate, INVALID, INVALID, nullptr, DriverOption | RenderAsInput | CC1Option | CC1AsOption, 0,
+       "Write output to <file>", "<file>")
+OPTION(prefix_2, "o", _SLASH_o, JoinedOrSeparate, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set output file or directory (ends in / or \\)", "<file or directory>")
+OPTION(prefix_1, "pagezero_size", pagezero__size, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "param=", _param_EQ, Joined, INVALID, _param, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "param", _param, Separate, CompileOnly_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "pass-exit-codes", pass_exit_codes, Flag, INVALID, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_4, "pedantic-errors", pedantic_errors, Flag, pedantic_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_4, "pedantic", pedantic, Flag, pedantic_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "pg", pg, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable mcount instrumentation", nullptr)
+OPTION(prefix_1, "pic-is-pie", pic_is_pie, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "File is for a position independent executable", nullptr)
+OPTION(prefix_1, "pic-level", pic_level, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Value for __PIC__", nullptr)
+OPTION(prefix_1, "pie", pie, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "pipe", pipe, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Use pipes between commands, when possible", nullptr)
+OPTION(prefix_1, "plugin-arg-", plugin_arg, JoinedAndSeparate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Pass <arg> to plugin <name>", "<name> <arg>")
+OPTION(prefix_1, "plugin", plugin, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use the named plugin action instead of the default action (use \"help\" to list available options)", "<name>")
+OPTION(prefix_1, "preamble-bytes=", preamble_bytes_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Assume that the precompiled header is a precompiled preamble covering the first N bytes of the main file", nullptr)
+OPTION(prefix_1, "prebind_all_twolevel_modules", prebind__all__twolevel__modules, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "prebind", prebind, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "precompile", _precompile, Flag, Action_Group, INVALID, nullptr, DriverOption, 0,
+       "Only precompile the input", nullptr)
+OPTION(prefix_3, "prefix=", _prefix_EQ, Joined, INVALID, B, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "prefix", _prefix, Separate, INVALID, B, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "preload", preload, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "preprocess", _preprocess, Flag, INVALID, E, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "print-decl-contexts", print_decl_contexts, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Print DeclContexts and their Decls", nullptr)
+OPTION(prefix_3, "print-diagnostic-categories", _print_diagnostic_categories, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "print-file-name=", print_file_name_EQ, Joined, INVALID, INVALID, nullptr, 0, 0,
+       "Print the full library path of <file>", "<file>")
+OPTION(prefix_3, "print-file-name", _print_file_name, Separate, INVALID, print_file_name_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "print-ivar-layout", print_ivar_layout, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable Objective-C Ivar layout bitmap print trace", nullptr)
+OPTION(prefix_4, "print-libgcc-file-name", print_libgcc_file_name, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Print the library path for the currently used compiler runtime library (\"libgcc.a\" or \"libclang_rt.builtins.*.a\")", nullptr)
+OPTION(prefix_3, "print-missing-file-dependencies", _print_missing_file_dependencies, Flag, INVALID, MG, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "print-multi-directory", print_multi_directory, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "print-multi-lib", print_multi_lib, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "print-multi-os-directory", print_multi_os_directory, Flag, INVALID, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "print-preamble", print_preamble, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Print the \"preamble\" of a file, which is a candidate for implicit precompiled headers.", nullptr)
+OPTION(prefix_4, "print-prog-name=", print_prog_name_EQ, Joined, INVALID, INVALID, nullptr, 0, 0,
+       "Print the full program path of <name>", "<name>")
+OPTION(prefix_3, "print-prog-name", _print_prog_name, Separate, INVALID, print_prog_name_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "print-resource-dir", print_resource_dir, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Print the resource directory pathname", nullptr)
+OPTION(prefix_4, "print-search-dirs", print_search_dirs, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Print the paths used for finding libraries and programs", nullptr)
+OPTION(prefix_1, "print-stats", print_stats, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Print performance metrics and statistics", nullptr)
+OPTION(prefix_1, "private_bundle", private__bundle, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "profile-blocks", _profile_blocks, Flag, INVALID, a, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "profile", _profile, Flag, INVALID, p, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "pthreads", pthreads, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "pthread", pthread, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Support POSIX threads in generated code", nullptr)
+OPTION(prefix_3, "ptxas-path=", ptxas_path_EQ, Joined, i_Group, INVALID, nullptr, 0, 0,
+       "Path to ptxas (used for compiling CUDA code)", nullptr)
+OPTION(prefix_1, "P", P, Flag, Preprocessor_Group, INVALID, nullptr, CC1Option, 0,
+       "Disable linemarker output in -E mode", nullptr)
+OPTION(prefix_2, "P", _SLASH_P, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Preprocess to file", nullptr)
+OPTION(prefix_1, "p", p, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "Qfast_transcendentals", _SLASH_Qfast_transcendentals, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "QIfist", _SLASH_QIfist, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Qimprecise_fwaits", _SLASH_Qimprecise_fwaits, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "Qn", Qn, Flag, INVALID, INVALID, nullptr, HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "Qpar", _SLASH_Qpar, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "Qunused-arguments", Qunused_arguments, Flag, INVALID, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Don't emit warning for unused driver arguments", nullptr)
+OPTION(prefix_2, "Qvec-report", _SLASH_Qvec_report, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Qvec-", _SLASH_Qvec_, Flag, cl_Group, fno_vectorize, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable the loop vectorization passes", nullptr)
+OPTION(prefix_2, "Qvec", _SLASH_Qvec, Flag, cl_Group, fvectorize, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable the loop vectorization passes", nullptr)
+OPTION(prefix_1, "Q", Q, Flag, INVALID, INVALID, nullptr, HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "rdynamic", rdynamic, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "read_only_relocs", read__only__relocs, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "relaxed-aliasing", relaxed_aliasing, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Turn off Type Based Alias Analysis", nullptr)
+OPTION(prefix_4, "relocatable-pch", relocatable_pch, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Whether to build a relocatable precompiled header", nullptr)
+OPTION(prefix_1, "remap-file", remap_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Replace the contents of the <from> file with the contents of the <to> file", "<from>;<to>")
+OPTION(prefix_1, "remap", remap, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "resource-dir=", resource_dir_EQ, Joined, INVALID, resource_dir, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "resource-dir", resource_dir, Separate, INVALID, INVALID, nullptr, DriverOption | CC1Option | CoreOption | HelpHidden, 0,
+       "The directory which holds the compiler resource files", nullptr)
+OPTION(prefix_3, "resource=", _resource_EQ, Joined, INVALID, fcompile_resource_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "resource", _resource, Separate, INVALID, fcompile_resource_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "rewrite-legacy-objc", rewrite_legacy_objc, Flag, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Rewrite Legacy Objective-C source to C++", nullptr)
+OPTION(prefix_1, "rewrite-macros", rewrite_macros, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Expand macros without full preprocessing", nullptr)
+OPTION(prefix_1, "rewrite-objc", rewrite_objc, Flag, Action_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Rewrite Objective-C source to C++", nullptr)
+OPTION(prefix_1, "rewrite-test", rewrite_test, Flag, Action_Group, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Rewriter playground", nullptr)
+OPTION(prefix_1, "Rpass-analysis=", Rpass_analysis_EQ, Joined, R_value_Group, INVALID, nullptr, CC1Option, 0,
+       "Report transformation analysis from optimization passes whose name matches the given POSIX regular expression", nullptr)
+OPTION(prefix_1, "Rpass-missed=", Rpass_missed_EQ, Joined, R_value_Group, INVALID, nullptr, CC1Option, 0,
+       "Report missed transformations by optimization passes whose name matches the given POSIX regular expression", nullptr)
+OPTION(prefix_1, "Rpass=", Rpass_EQ, Joined, R_value_Group, INVALID, nullptr, CC1Option, 0,
+       "Report transformations performed by optimization passes whose name matches the given POSIX regular expression", nullptr)
+OPTION(prefix_1, "rpath", rpath, Separate, Link_Group, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_3, "rsp-quoting=", rsp_quoting, Joined, internal_driver_Group, INVALID, nullptr, CoreOption | DriverOption | HelpHidden, 0,
+       "Set the rsp quoting to either 'posix', or 'windows'", nullptr)
+OPTION(prefix_2, "RTC", _SLASH_RTC, Joined, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_4, "rtlib=", rtlib_EQ, Joined, INVALID, INVALID, nullptr, 0, 0,
+       "Compiler runtime library to use", nullptr)
+OPTION(prefix_3, "rtlib", _rtlib, Separate, INVALID, rtlib_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "R", R_Joined, Joined, R_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Enable the specified remark", "<remark>")
+OPTION(prefix_1, "r", r, Flag, Link_Group, INVALID, nullptr, LinkerInput | NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_4, "save-stats=", save_stats_EQ, Joined, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Save llvm statistics.", nullptr)
+OPTION(prefix_4, "save-stats", save_stats, Flag, INVALID, save_stats_EQ, "cwd\0", DriverOption, 0,
+       "Save llvm statistics.", nullptr)
+OPTION(prefix_4, "save-temps=", save_temps_EQ, Joined, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Save intermediate compilation results.", nullptr)
+OPTION(prefix_4, "save-temps", save_temps, Flag, INVALID, save_temps_EQ, "cwd\0", DriverOption, 0,
+       "Save intermediate compilation results", nullptr)
+OPTION(prefix_2, "sdl-", _SLASH_sdl_, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "sdl", _SLASH_sdl, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "sectalign", sectalign, MultiArg, INVALID, INVALID, nullptr, 0, 3, nullptr, nullptr)
+OPTION(prefix_1, "sectcreate", sectcreate, MultiArg, INVALID, INVALID, nullptr, 0, 3, nullptr, nullptr)
+OPTION(prefix_1, "sectobjectsymbols", sectobjectsymbols, MultiArg, INVALID, INVALID, nullptr, 0, 2, nullptr, nullptr)
+OPTION(prefix_1, "sectorder", sectorder, MultiArg, INVALID, INVALID, nullptr, 0, 3, nullptr, nullptr)
+OPTION(prefix_1, "seg1addr", seg1addr, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "seg_addr_table_filename", seg__addr__table__filename, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "seg_addr_table", seg__addr__table, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "segaddr", segaddr, MultiArg, INVALID, INVALID, nullptr, 0, 2, nullptr, nullptr)
+OPTION(prefix_1, "segcreate", segcreate, MultiArg, INVALID, INVALID, nullptr, 0, 3, nullptr, nullptr)
+OPTION(prefix_1, "seglinkedit", seglinkedit, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "segprot", segprot, MultiArg, INVALID, INVALID, nullptr, 0, 3, nullptr, nullptr)
+OPTION(prefix_1, "segs_read_only_addr", segs__read__only__addr, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "segs_read_write_addr", segs__read__write__addr, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "segs_read_", segs__read__, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "serialize-diagnostic-file", diagnostic_serialized_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "File for serializing diagnostics in a binary format", "<filename>")
+OPTION(prefix_4, "serialize-diagnostics", _serialize_diags, Separate, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Serialize compiler diagnostics to a file", nullptr)
+OPTION(prefix_1, "shared-libasan", shared_libasan, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "shared-libgcc", shared_libgcc, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "shared", shared, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "show-encoding", show_encoding, Flag, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "Show instruction encoding information in transliterate mode", nullptr)
+OPTION(prefix_3, "show-includes", show_includes, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Print cl.exe style /showIncludes to stdout", nullptr)
+OPTION(prefix_1, "show-inst", show_inst, Flag, INVALID, INVALID, nullptr, CC1AsOption | NoDriverOption, 0,
+       "Show internal instruction representation in transliterate mode", nullptr)
+OPTION(prefix_2, "showIncludes", _SLASH_showIncludes, Flag, cl_Group, show_includes, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Print info about included files to stderr", nullptr)
+OPTION(prefix_3, "signed-char", _signed_char, Flag, INVALID, fsigned_char, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "single_module", single__module, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "source-charset:", _SLASH_source_charset, Joined, cl_compile_Group, finput_charset_EQ, nullptr, CLOption | DriverOption, 0,
+       "Source encoding, supports only UTF-8", nullptr)
+OPTION(prefix_4, "specs=", specs_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "specs", specs, Separate, INVALID, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "split-dwarf-file", split_dwarf_file, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "File name to use for split dwarf debug info output", nullptr)
+OPTION(prefix_1, "split-dwarf", split_dwarf, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Split out the dwarf .dwo sections", nullptr)
+OPTION(prefix_1, "split-stacks", split_stacks, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Try to use a split stack if possible.", nullptr)
+OPTION(prefix_1, "stack-protector-buffer-size", stack_protector_buffer_size, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Lower bound for a buffer to be considered for stack protection", nullptr)
+OPTION(prefix_1, "stack-protector", stack_protector, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Enable stack protectors", nullptr)
+OPTION(prefix_1, "static-define", static_define, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Should __STATIC__ be defined", nullptr)
+OPTION(prefix_1, "static-libgcc", static_libgcc, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "static-libgfortran", static_libgfortran, Flag, gfortran_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "static-libstdc++", static_libstdcxx, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "static", static, Flag, INVALID, INVALID, nullptr, NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_1, "stats-file=", stats_file, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Filename to write statistics to", nullptr)
+OPTION(prefix_1, "std-default=", std_default_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "std:", _SLASH_std, Joined, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Language standard to compile for", nullptr)
+OPTION(prefix_4, "std=", std_EQ, Joined, CompileOnly_Group, INVALID, nullptr, CC1Option, 0,
+       "Language standard to compile for", nullptr)
+OPTION(prefix_4, "stdlib=", stdlib_EQ, Joined, INVALID, INVALID, nullptr, CC1Option, 0,
+       "C++ standard library to use", nullptr)
+OPTION(prefix_3, "stdlib", _stdlib, Separate, INVALID, stdlib_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "std", _std, Separate, INVALID, std_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "sub_library", sub__library, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "sub_umbrella", sub__umbrella, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "sys-header-deps", sys_header_deps, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Include system headers in dependency output", nullptr)
+OPTION(prefix_3, "sysroot=", _sysroot_EQ, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "sysroot", _sysroot, Separate, INVALID, _sysroot_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "system-header-prefix=", system_header_prefix, Joined, clang_i_Group, INVALID, nullptr, CC1Option, 0,
+       "Treat all #include paths starting with <prefix> as including a system header.", "<prefix>")
+OPTION(prefix_3, "system-header-prefix", anonymous_19, Separate, INVALID, system_header_prefix, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "S", S, Flag, Action_Group, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Only run preprocess and compilation steps", nullptr)
+OPTION(prefix_1, "s", s, Flag, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "target-abi", target_abi, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Target a particular ABI type", nullptr)
+OPTION(prefix_1, "target-cpu", target_cpu, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Target a specific cpu type", nullptr)
+OPTION(prefix_1, "target-feature", target_feature, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Target specific attributes", nullptr)
+OPTION(prefix_3, "target-help", _target_help, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "target-linker-version", target_linker_version, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Target linker version", nullptr)
+OPTION(prefix_3, "target=", target, Joined, INVALID, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Generate code for the given target", nullptr)
+OPTION(prefix_1, "target", target_legacy_spelling, Separate, INVALID, target, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Tbss", Tbss, JoinedOrSeparate, T_Group, INVALID, nullptr, 0, 0,
+       "Set starting address of BSS to <addr>", "<addr")
+OPTION(prefix_2, "TC", _SLASH_TC, Flag, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Treat all source files as C", nullptr)
+OPTION(prefix_2, "Tc", _SLASH_Tc, JoinedOrSeparate, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Specify a C source file", "<filename>")
+OPTION(prefix_1, "Tdata", Tdata, JoinedOrSeparate, T_Group, INVALID, nullptr, 0, 0,
+       "Set starting address of BSS to <addr>", "<addr")
+OPTION(prefix_1, "test-coverage", test_coverage, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Do not generate coverage files or remove coverage changes from IR", nullptr)
+OPTION(prefix_1, "time", time, Flag, INVALID, INVALID, nullptr, 0, 0,
+       "Time individual commands", nullptr)
+OPTION(prefix_1, "token-cache", token_cache, Separate, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Use specified token cache file", "<path>")
+OPTION(prefix_2, "TP", _SLASH_TP, Flag, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Treat all source files as C++", nullptr)
+OPTION(prefix_2, "Tp", _SLASH_Tp, JoinedOrSeparate, cl_compile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Specify a C++ source file", "<filename>")
+OPTION(prefix_3, "trace-includes", _trace_includes, Flag, INVALID, H, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "traditional-cpp", traditional_cpp, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Enable some traditional CPP emulation", nullptr)
+OPTION(prefix_4, "traditional", traditional, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_4, "trigraphs", trigraphs, Flag, INVALID, ftrigraphs, nullptr, 0, 0,
+       "Process trigraph sequences", nullptr)
+OPTION(prefix_1, "trim-egraph", trim_egraph, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Only show error-related paths in the analysis graph", nullptr)
+OPTION(prefix_1, "triple=", triple_EQ, Joined, INVALID, triple, nullptr, CC1Option | NoDriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "triple", triple, Separate, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Specify target triple (e.g. i686-apple-darwin9)", nullptr)
+OPTION(prefix_1, "Ttext", Ttext, JoinedOrSeparate, T_Group, INVALID, nullptr, 0, 0,
+       "Set starting address of BSS to <addr>", "<addr")
+OPTION(prefix_1, "twolevel_namespace_hints", twolevel__namespace__hints, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "twolevel_namespace", twolevel__namespace, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "T", T, JoinedOrSeparate, T_Group, INVALID, nullptr, 0, 0,
+       "Specify <script> as linker script", "<script>")
+OPTION(prefix_1, "t", t, Flag, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "umbrella", umbrella, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "undefine-macro=", _undefine_macro_EQ, Joined, INVALID, U, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "undefine-macro", _undefine_macro, Separate, INVALID, U, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "undefined", undefined, JoinedOrSeparate, u_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "undef", undef, Flag, u_Group, INVALID, nullptr, CC1Option, 0,
+       "undef all system defines", nullptr)
+OPTION(prefix_1, "unexported_symbols_list", unexported__symbols__list, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "unoptimized-cfg", analysis_UnoptimizedCFG, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Generate unoptimized CFGs for all analyses", nullptr)
+OPTION(prefix_3, "unsigned-char", _unsigned_char, Flag, INVALID, funsigned_char, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "user-dependencies", _user_dependencies, Flag, INVALID, MM, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "utf-8", _SLASH_utf8, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Set source and runtime encoding to UTF-8 (default)", nullptr)
+OPTION(prefix_1, "U", U, JoinedOrSeparate, Preprocessor_Group, INVALID, nullptr, CC1Option, 0,
+       "Undefine macro <macro>", "<macro>")
+OPTION(prefix_2, "U", _SLASH_U, JoinedOrSeparate, cl_Group, U, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Undefine macro", "<macro>")
+OPTION(prefix_1, "u", u, JoinedOrSeparate, u_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_2, "u", _SLASH_u, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "validate-charset-", _SLASH_validate_charset_, Flag, cl_Group, W_Joined, "no-invalid-source-encoding\0", CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "validate-charset", _SLASH_validate_charset, Flag, cl_Group, W_Joined, "invalid-source-encoding\0", CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "vd", _SLASH_vd, Joined, cl_Group, vtordisp_mode_EQ, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Control vtordisp placement", nullptr)
+OPTION(prefix_1, "vectorize-loops", vectorize_loops, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Run the Loop vectorization passes", nullptr)
+OPTION(prefix_1, "vectorize-slp-aggressive", vectorize_slp_aggressive, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Run the BB vectorization passes", nullptr)
+OPTION(prefix_1, "vectorize-slp", vectorize_slp, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Run the SLP vectorization passes", nullptr)
+OPTION(prefix_3, "verbose", _verbose, Flag, INVALID, v, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "verify-debug-info", verify_debug_info, Flag, INVALID, INVALID, nullptr, DriverOption, 0,
+       "Verify the binary representation of debug output", nullptr)
+OPTION(prefix_1, "verify-ignore-unexpected=", verify_ignore_unexpected_EQ, CommaJoined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Ignore unexpected diagnostic messages", nullptr)
+OPTION(prefix_1, "verify-ignore-unexpected", verify_ignore_unexpected, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Ignore unexpected diagnostic messages", nullptr)
+OPTION(prefix_1, "verify-pch", verify_pch, Flag, Action_Group, INVALID, nullptr, CC1Option, 0,
+       "Load and verify that a pre-compiled header file is not stale", nullptr)
+OPTION(prefix_1, "verify", verify, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Verify diagnostic output using comment directives", nullptr)
+OPTION(prefix_3, "version", _version, Flag, INVALID, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "version", version, Flag, INVALID, INVALID, nullptr, CC1Option | CC1AsOption | NoDriverOption, 0,
+       "Print the compiler version", nullptr)
+OPTION(prefix_4, "via-file-asm", via_file_asm, Flag, internal_debug_Group, INVALID, nullptr, DriverOption | HelpHidden | CoreOption, 0,
+       "Write assembly to file for input to assemble jobs", nullptr)
+OPTION(prefix_2, "vmb", _SLASH_vmb, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Use a best-case representation method for member pointers", nullptr)
+OPTION(prefix_2, "vmg", _SLASH_vmg, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Use a most-general representation for member pointers", nullptr)
+OPTION(prefix_2, "vmm", _SLASH_vmm, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set the default most-general representation to multiple inheritance", nullptr)
+OPTION(prefix_2, "vms", _SLASH_vms, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set the default most-general representation to single inheritance", nullptr)
+OPTION(prefix_2, "vmv", _SLASH_vmv, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Set the default most-general representation to virtual inheritance", nullptr)
+OPTION(prefix_2, "volatile:iso", _SLASH_volatile_iso, Flag, _SLASH_volatile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Volatile loads and stores have standard semantics", nullptr)
+OPTION(prefix_2, "volatile:ms", _SLASH_volatile_ms, Flag, _SLASH_volatile_Group, INVALID, nullptr, CLOption | DriverOption, 0,
+       "Volatile loads and stores have acquire and release semantics", nullptr)
+OPTION(prefix_1, "vtordisp-mode=", vtordisp_mode_EQ, Joined, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Control vtordisp placement on win32 targets", nullptr)
+OPTION(prefix_1, "V", V, JoinedOrSeparate, INVALID, INVALID, nullptr, DriverOption | Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_2, "V", _SLASH_V, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "v", v, Flag, INVALID, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Show commands to run and use verbose output", nullptr)
+OPTION(prefix_2, "W0", _SLASH_W0, Flag, cl_Group, w, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable all warnings", nullptr)
+OPTION(prefix_2, "W1", _SLASH_W1, Flag, cl_Group, Wall, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable -Wall", nullptr)
+OPTION(prefix_2, "W2", _SLASH_W2, Flag, cl_Group, Wall, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable -Wall", nullptr)
+OPTION(prefix_2, "W3", _SLASH_W3, Flag, cl_Group, Wall, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable -Wall", nullptr)
+OPTION(prefix_2, "W4", _SLASH_W4, Flag, cl_Group, WCL4, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable -Wall and -Wextra", nullptr)
+OPTION(prefix_1, "Wa,", Wa_COMMA, CommaJoined, INVALID, INVALID, nullptr, 0, 0,
+       "Pass the comma separated arguments in <arg> to the assembler", "<arg>")
+OPTION(prefix_1, "Wall", Wall, Flag, W_Group, INVALID, nullptr, CC1Option | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "Wall", _SLASH_Wall, Flag, cl_Group, WCL4, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable -Wall and -Wextra", nullptr)
+OPTION(prefix_3, "warn-=", _warn__EQ, Joined, INVALID, W_Joined, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "warn-", _warn_, Joined, INVALID, W_Joined, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "WCL4", WCL4, Flag, W_Group, INVALID, nullptr, CC1Option | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "wd4005", _SLASH_wd4005, Flag, cl_Group, W_Joined, "no-macro-redefined\0", CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "wd4100", _SLASH_wd4100, Flag, cl_Group, W_Joined, "no-unused-parameter\0", CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "wd4910", _SLASH_wd4910, Flag, cl_Group, W_Joined, "no-dllexport-explicit-instantiation-decl\0", CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "wd4996", _SLASH_wd4996, Flag, cl_Group, W_Joined, "no-deprecated-declarations\0", CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wdeprecated", Wdeprecated, Flag, W_Group, INVALID, nullptr, CC1Option, 0,
+       "Enable warnings for deprecated constructs and define __DEPRECATED", nullptr)
+OPTION(prefix_1, "weak-l", weak_l, Joined, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_1, "weak_framework", weak__framework, Separate, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_1, "weak_library", weak__library, Separate, INVALID, INVALID, nullptr, LinkerInput, 0, nullptr, nullptr)
+OPTION(prefix_1, "weak_reference_mismatches", weak__reference__mismatches, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wframe-larger-than=", Wframe_larger_than_EQ, Joined, f_Group, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "whatsloaded", whatsloaded, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "whyload", whyload, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wl,", Wl_COMMA, CommaJoined, Link_Group, INVALID, nullptr, LinkerInput | RenderAsInput, 0,
+       "Pass the comma separated arguments in <arg> to the linker", "<arg>")
+OPTION(prefix_1, "Wlarge-by-value-copy=", Wlarge_by_value_copy_EQ, Joined, INVALID, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wlarge-by-value-copy", Wlarge_by_value_copy_def, Flag, INVALID, INVALID, nullptr, HelpHidden, 0,
+       "Warn if a function definition returns or accepts an object larger in bytes than a given value", nullptr)
+OPTION(prefix_1, "Wlarger-than-", Wlarger_than_, Joined, INVALID, Wlarger_than_EQ, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wlarger-than=", Wlarger_than_EQ, Joined, clang_ignored_f_Group, INVALID, nullptr, Ignored, 0, nullptr, nullptr)
+OPTION(prefix_2, "WL", _SLASH_WL, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wno-deprecated", Wno_deprecated, Flag, W_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wno-nonportable-cfstrings", Wno_nonportable_cfstrings, Joined, W_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wno-rewrite-macros", Wno_rewrite_macros, Flag, INVALID, INVALID, nullptr, CC1Option | NoDriverOption, 0,
+       "Silence ObjC rewriting warnings", nullptr)
+OPTION(prefix_1, "Wno-write-strings", Wno_write_strings, Flag, W_Group, INVALID, nullptr, CC1Option | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wnonportable-cfstrings", Wnonportable_cfstrings, Joined, W_Group, INVALID, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "working-directory=", working_directory_EQ, Joined, INVALID, working_directory, nullptr, CC1Option, 0, nullptr, nullptr)
+OPTION(prefix_1, "working-directory", working_directory, JoinedOrSeparate, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Resolve file paths relative to the specified directory", nullptr)
+OPTION(prefix_1, "Wp,", Wp_COMMA, CommaJoined, Preprocessor_Group, INVALID, nullptr, 0, 0,
+       "Pass the comma separated arguments in <arg> to the preprocessor", "<arg>")
+OPTION(prefix_2, "Wp64", _SLASH_Wp64, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "write-dependencies", _write_dependencies, Flag, INVALID, MD, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_3, "write-user-dependencies", _write_user_dependencies, Flag, INVALID, MMD, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Wwrite-strings", Wwrite_strings, Flag, W_Group, INVALID, nullptr, CC1Option | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "WX-", _SLASH_WX_, Flag, cl_Group, W_Joined, "no-error\0", CLOption | DriverOption | CLOption, 0,
+       "Do not treat warnings as errors", nullptr)
+OPTION(prefix_2, "WX", _SLASH_WX, Flag, cl_Group, W_Joined, "error\0", CLOption | DriverOption | CLOption, 0,
+       "Treat warnings as errors", nullptr)
+OPTION(prefix_1, "W", W_Joined, Joined, W_Group, INVALID, nullptr, CC1Option | CoreOption, 0,
+       "Enable the specified warning", "<warning>")
+OPTION(prefix_1, "w", w, Flag, INVALID, INVALID, nullptr, CC1Option, 0,
+       "Suppress all warnings", nullptr)
+OPTION(prefix_2, "w", _SLASH_w_flag, Flag, cl_Group, w, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable all warnings", nullptr)
+OPTION(prefix_2, "w", _SLASH_w, Joined, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_1, "Xanalyzer", Xanalyzer, Separate, StaticAnalyzer_Group, INVALID, nullptr, 0, 0,
+       "Pass <arg> to the static analyzer", "<arg>")
+OPTION(prefix_1, "Xarch_", Xarch__, JoinedAndSeparate, INVALID, INVALID, nullptr, DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "Xassembler", Xassembler, Separate, CompileOnly_Group, INVALID, nullptr, 0, 0,
+       "Pass <arg> to the assembler", "<arg>")
+OPTION(prefix_1, "Xclang", Xclang, Separate, CompileOnly_Group, INVALID, nullptr, DriverOption | CoreOption, 0,
+       "Pass <arg> to the clang compiler", "<arg>")
+OPTION(prefix_1, "Xcuda-fatbinary", Xcuda_fatbinary, Separate, INVALID, INVALID, nullptr, 0, 0,
+       "Pass <arg> to fatbinary invocation", "<arg>")
+OPTION(prefix_1, "Xcuda-ptxas", Xcuda_ptxas, Separate, INVALID, INVALID, nullptr, 0, 0,
+       "Pass <arg> to the ptxas assembler", "<arg>")
+OPTION(prefix_1, "Xlinker", Xlinker, Separate, Link_Group, INVALID, nullptr, LinkerInput | RenderAsInput, 0,
+       "Pass <arg> to the linker", "<arg>")
+OPTION(prefix_1, "Xpreprocessor", Xpreprocessor, Separate, Preprocessor_Group, INVALID, nullptr, 0, 0,
+       "Pass <arg> to the preprocessor", "<arg>")
+OPTION(prefix_1, "X", X_Flag, Flag, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "X", X_Joined, Joined, INVALID, INVALID, nullptr, HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "X", _SLASH_X, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "x", x, JoinedOrSeparate, INVALID, INVALID, nullptr, DriverOption | CC1Option, 0,
+       "Treat subsequent input files as having type <language>", "<language>")
+OPTION(prefix_2, "Y-", _SLASH_Y_, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable precompiled headers, overrides /Yc and /Yu", nullptr)
+OPTION(prefix_2, "Yc", _SLASH_Yc, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Generate a pch file for all code up to and including <filename>", "<filename>")
+OPTION(prefix_2, "Yd", _SLASH_Yd, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Yl", _SLASH_Yl, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Yu", _SLASH_Yu, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Load a pch file and use it instead of all code up to and including <filename>", "<filename>")
+OPTION(prefix_1, "y", y, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Z-reserved-lib-cckext", Z_reserved_lib_cckext, Flag, reserved_lib_Group, INVALID, nullptr, LinkerInput | NoArgumentUnused | Unsupported | Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "Z-reserved-lib-stdc++", Z_reserved_lib_stdcxx, Flag, reserved_lib_Group, INVALID, nullptr, LinkerInput | NoArgumentUnused | Unsupported | Unsupported, 0, nullptr, nullptr)
+OPTION(prefix_1, "Z-Xlinker-no-demangle", Z_Xlinker__no_demangle, Flag, INVALID, INVALID, nullptr, Unsupported | NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_2, "Z7", _SLASH_Z7, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable CodeView debug information in object files", nullptr)
+OPTION(prefix_2, "Za", _SLASH_Za, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zc:auto", _SLASH_Zc_auto, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zc:forScope", _SLASH_Zc_forScope, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zc:inline", _SLASH_Zc_inline, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zc:rvalueCast", _SLASH_Zc_rvalueCast, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zc:sizedDealloc-", _SLASH_Zc_sizedDealloc_, Flag, cl_Group, fno_sized_deallocation, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable C++14 sized global deallocation functions", nullptr)
+OPTION(prefix_2, "Zc:sizedDealloc", _SLASH_Zc_sizedDealloc, Flag, cl_Group, fsized_deallocation, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable C++14 sized global deallocation functions", nullptr)
+OPTION(prefix_2, "Zc:strictStrings", _SLASH_Zc_strictStrings, Flag, cl_Group, W_Joined, "error=c++11-compat-deprecated-writable-strings\0", CLOption | DriverOption | CLOption, 0,
+       "Treat string literals as const", nullptr)
+OPTION(prefix_2, "Zc:threadSafeInit-", _SLASH_Zc_threadSafeInit_, Flag, cl_Group, fno_threadsafe_statics, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable thread-safe initialization of static variables", nullptr)
+OPTION(prefix_2, "Zc:threadSafeInit", _SLASH_Zc_threadSafeInit, Flag, cl_Group, fthreadsafe_statics, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable thread-safe initialization of static variables", nullptr)
+OPTION(prefix_2, "Zc:trigraphs-", _SLASH_Zc_trigraphs_off, Flag, cl_Group, fno_trigraphs, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Disable trigraphs (default)", nullptr)
+OPTION(prefix_2, "Zc:trigraphs", _SLASH_Zc_trigraphs, Flag, cl_Group, ftrigraphs, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Enable trigraphs", nullptr)
+OPTION(prefix_2, "Zc:wchar_t", _SLASH_Zc_wchar_t, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zc:", _SLASH_Zc, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zd", _SLASH_Zd, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Emit debug line number tables only", nullptr)
+OPTION(prefix_2, "Ze", _SLASH_Ze, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zg", _SLASH_Zg, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "ZI", _SLASH_ZI, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zi", _SLASH_Zi, Flag, cl_Group, _SLASH_Z7, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Alias for /Z7. Does not produce PDBs.", nullptr)
+OPTION(prefix_1, "Zlinker-input", Zlinker_input, Separate, INVALID, INVALID, nullptr, Unsupported | NoArgumentUnused, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zl", _SLASH_Zl, Flag, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Don't mention any default libraries in the object file", nullptr)
+OPTION(prefix_2, "Zm", _SLASH_Zm, Joined, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption | HelpHidden, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zo-", _SLASH_Zo_, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zo", _SLASH_Zo, Flag, cl_ignored_Group, INVALID, nullptr, CLOption | DriverOption, 0, nullptr, nullptr)
+OPTION(prefix_2, "Zp", _SLASH_Zp_flag, Flag, cl_Group, fpack_struct_EQ, "1\0", CLOption | DriverOption | CLOption, 0,
+       "Set the default maximum struct packing alignment to 1", nullptr)
+OPTION(prefix_2, "Zp", _SLASH_Zp, Joined, cl_Group, fpack_struct_EQ, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Specify the default maximum struct packing alignment", nullptr)
+OPTION(prefix_2, "Zs", _SLASH_Zs, Flag, cl_Group, fsyntax_only, nullptr, CLOption | DriverOption | CLOption, 0,
+       "Syntax-check only", nullptr)
+OPTION(prefix_2, "ZW", _SLASH_ZW, Joined, cl_Group, INVALID, nullptr, CLOption | DriverOption | CLOption, 0, nullptr, nullptr)
+OPTION(prefix_1, "Z", Z_Flag, Flag, Link_Group, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "Z", Z_Joined, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr)
+OPTION(prefix_1, "z", z, Separate, Link_Group, INVALID, nullptr, LinkerInput | RenderAsInput, 0,
+       "Pass -z <arg> to the linker", "<arg>")
+OPTION(prefix_3, "", _DASH_DASH, RemainingArgs, INVALID, INVALID, nullptr, DriverOption | CoreOption, 0, nullptr, nullptr)
+OPTION(prefix_3, "", _, Joined, INVALID, INVALID, nullptr, Unsupported, 0, nullptr, nullptr)
+#endif // OPTION
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Parse/AttrParserStringSwitches.inc b/clang-4053586/prebuilt_include/clang/include/clang/Parse/AttrParserStringSwitches.inc
new file mode 100644
index 0000000..053e605
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Parse/AttrParserStringSwitches.inc
@@ -0,0 +1,108 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Parser-related llvm::StringSwitch cases                                    *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#if defined(CLANG_ATTR_ARG_CONTEXT_LIST)
+.Case("acquire_capability", true)
+.Case("acquire_shared_capability", true)
+.Case("exclusive_lock_function", true)
+.Case("shared_lock_function", true)
+.Case("acquired_after", true)
+.Case("acquired_before", true)
+.Case("assert_capability", true)
+.Case("assert_shared_capability", true)
+.Case("assert_exclusive_lock", true)
+.Case("assert_shared_lock", true)
+.Case("exclusive_trylock_function", true)
+.Case("guarded_by", true)
+.Case("lock_returned", true)
+.Case("locks_excluded", true)
+.Case("pt_guarded_by", true)
+.Case("release_capability", true)
+.Case("release_shared_capability", true)
+.Case("release_generic_capability", true)
+.Case("unlock_function", true)
+.Case("requires_capability", true)
+.Case("exclusive_locks_required", true)
+.Case("requires_shared_capability", true)
+.Case("shared_locks_required", true)
+.Case("shared_trylock_function", true)
+.Case("try_acquire_capability", true)
+.Case("try_acquire_shared_capability", true)
+#endif // CLANG_ATTR_ARG_CONTEXT_LIST
+
+#if defined(CLANG_ATTR_IDENTIFIER_ARG_LIST)
+.Case("interrupt", true)
+.Case("argument_with_type_tag", true)
+.Case("pointer_with_type_tag", true)
+.Case("availability", true)
+.Case("blocks", true)
+.Case("callable_when", true)
+.Case("consumable", true)
+.Case("enum_extensibility", true)
+.Case("format", true)
+.Case("loop", true)
+.Case("unroll", true)
+.Case("nounroll", true)
+.Case("interrupt", true)
+.Case("mode", true)
+.Case("declare simd", true)
+.Case("declare target", true)
+.Case("objc_bridge", true)
+.Case("objc_bridge_mutable", true)
+.Case("objc_bridge_related", true)
+.Case("objc_gc", true)
+.Case("objc_method_family", true)
+.Case("objc_ownership", true)
+.Case("ownership_holds", true)
+.Case("ownership_returns", true)
+.Case("ownership_takes", true)
+.Case("param_typestate", true)
+.Case("pcs", true)
+.Case("return_typestate", true)
+.Case("set_typestate", true)
+.Case("test_typestate", true)
+.Case("type_tag_for_datatype", true)
+.Case("type_visibility", true)
+.Case("visibility", true)
+#endif // CLANG_ATTR_IDENTIFIER_ARG_LIST
+
+#if defined(CLANG_ATTR_TYPE_ARG_LIST)
+.Case("iboutletcollection", true)
+.Case("vec_type_hint", true)
+#endif // CLANG_ATTR_TYPE_ARG_LIST
+
+#if defined(CLANG_ATTR_LATE_PARSED_LIST)
+.Case("acquire_capability", 1)
+.Case("acquire_shared_capability", 1)
+.Case("exclusive_lock_function", 1)
+.Case("shared_lock_function", 1)
+.Case("acquired_after", 1)
+.Case("acquired_before", 1)
+.Case("assert_capability", 1)
+.Case("assert_shared_capability", 1)
+.Case("assert_exclusive_lock", 1)
+.Case("assert_shared_lock", 1)
+.Case("diagnose_if", 1)
+.Case("exclusive_trylock_function", 1)
+.Case("guarded_by", 1)
+.Case("lock_returned", 1)
+.Case("locks_excluded", 1)
+.Case("pt_guarded_by", 1)
+.Case("release_capability", 1)
+.Case("release_shared_capability", 1)
+.Case("release_generic_capability", 1)
+.Case("unlock_function", 1)
+.Case("requires_capability", 1)
+.Case("exclusive_locks_required", 1)
+.Case("requires_shared_capability", 1)
+.Case("shared_locks_required", 1)
+.Case("shared_trylock_function", 1)
+.Case("try_acquire_capability", 1)
+.Case("try_acquire_shared_capability", 1)
+#endif // CLANG_ATTR_LATE_PARSED_LIST
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrImpl.inc b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrImpl.inc
new file mode 100644
index 0000000..a956f8d
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrImpl.inc
@@ -0,0 +1,2041 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Parsed attribute helpers                                                   *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+static bool defaultAppertainsTo(Sema &, const AttributeList &,const Decl *) {
+  return true;
+}
+
+static bool defaultDiagnoseLangOpts(Sema &, const AttributeList &) {
+  return true;
+}
+
+static bool defaultTargetRequirements(const TargetInfo &) {
+  return true;
+}
+
+static unsigned defaultSpellingIndexToSemanticSpelling(const AttributeList &Attr) {
+  return UINT_MAX;
+}
+
+static bool checkAMDGPUFlatWorkGroupSizeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedKernelFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAMDGPUNumSGPRAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedKernelFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAMDGPUNumVGPRAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedKernelFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAMDGPUWavesPerEUAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedKernelFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool isTargetarmthumbarmebthumbebavrx86x86_64msp430mipsmipsel(const TargetInfo &Target) {
+  const llvm::Triple &T = Target.getTriple();
+  return (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb || T.getArch() == llvm::Triple::avr || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::msp430 || T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel);
+}
+
+static bool checkAVRSignalAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool isTargetavr(const TargetInfo &Target) {
+  const llvm::Triple &T = Target.getTriple();
+  return (T.getArch() == llvm::Triple::avr);
+}
+
+static bool isStruct(const Decl *D) {
+  if (const auto *S = dyn_cast<RecordDecl>(D))
+    return !S->isUnion();
+  return false;
+}
+
+static bool checkAbiTagAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isStruct(D) && !isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<NamespaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedStructClassVariableFunctionOrInlineNamespace;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAcquireCapabilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned AcquireCapabilityAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_acquire_capability = 0,
+    CXX11_clang_acquire_capability = 1,
+    GNU_acquire_shared_capability = 2,
+    CXX11_clang_acquire_shared_capability = 3,
+    GNU_exclusive_lock_function = 4,
+    GNU_shared_lock_function = 5
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_acquire_capability;
+    case 1: return CXX11_clang_acquire_capability;
+    case 2: return GNU_acquire_shared_capability;
+    case 3: return CXX11_clang_acquire_shared_capability;
+    case 4: return GNU_exclusive_lock_function;
+    case 5: return GNU_shared_lock_function;
+  }
+}
+
+static bool isSharedVar(const Decl *D) {
+  if (const auto *S = dyn_cast<VarDecl>(D))
+    return S->hasGlobalStorage() && !S->getTLSKind();
+  return false;
+}
+
+static bool checkAcquiredAfterAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FieldDecl>(D) && !isSharedVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFieldOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAcquiredBeforeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FieldDecl>(D) && !isSharedVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFieldOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool isGlobalVar(const Decl *D) {
+  if (const auto *S = dyn_cast<VarDecl>(D))
+    return S->hasGlobalStorage();
+  return false;
+}
+
+static bool checkAliasAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isGlobalVar(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAlignValueAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D) && !isa<TypedefNameDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariableOrTypedef;
+    return false;
+  }
+  return true;
+}
+
+static unsigned AlignedAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_aligned = 0,
+    CXX11_gnu_aligned = 1,
+    Declspec_align = 2,
+    Keyword_alignas = 3,
+    Keyword_Alignas = 4
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_aligned;
+    case 1: return CXX11_gnu_aligned;
+    case 2: return Declspec_align;
+    case 3: return Keyword_alignas;
+    case 4: return Keyword_Alignas;
+  }
+}
+
+static bool isHasFunctionProto(const Decl *D) {
+  if (const auto *S = dyn_cast<Decl>(D))
+    return (S->getFunctionType(true) != nullptr &&
+                              isa<FunctionProtoType>(S->getFunctionType())) ||
+                                       isa<ObjCMethodDecl>(S) ||
+                                       isa<BlockDecl>(S);
+  return false;
+}
+
+static bool checkAllocAlignAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isHasFunctionProto(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionWithProtoType;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAllocSizeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAlwaysInlineAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned AlwaysInlineAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_always_inline = 0,
+    CXX11_gnu_always_inline = 1,
+    Keyword_forceinline = 2
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_always_inline;
+    case 1: return CXX11_gnu_always_inline;
+    case 2: return Keyword_forceinline;
+  }
+}
+
+static bool checkArcWeakrefUnavailableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterface;
+    return false;
+  }
+  return true;
+}
+
+static unsigned ArgumentWithTypeTagAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_argument_with_type_tag = 0,
+    GNU_pointer_with_type_tag = 1
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_argument_with_type_tag;
+    case 1: return GNU_pointer_with_type_tag;
+  }
+}
+
+static bool checkAssertCapabilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned AssertCapabilityAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_assert_capability = 0,
+    CXX11_clang_assert_capability = 1,
+    GNU_assert_shared_capability = 2,
+    CXX11_clang_assert_shared_capability = 3
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_assert_capability;
+    case 1: return CXX11_clang_assert_capability;
+    case 2: return GNU_assert_shared_capability;
+    case 3: return CXX11_clang_assert_shared_capability;
+  }
+}
+
+static bool checkAssertExclusiveLockAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAssertSharedLockAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkAssumeAlignedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCFAuditedTransferAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCFConsumedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCFUnknownTransferAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCUDAConstantAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCUDALangOpts(Sema &S, const AttributeList &Attr) {
+  if (S.LangOpts.CUDA)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static bool checkCUDADeviceAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariableOrFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCUDAGlobalAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCUDAHostAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCUDAInvalidTargetAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool isFunctionLike(const Decl *D) {
+  if (const auto *S = dyn_cast<Decl>(D))
+    return S->getFunctionType(false) != nullptr;
+  return false;
+}
+
+static bool checkCUDALaunchBoundsAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isFunctionLike(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCUDASharedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCXX11NoReturnAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCallableWhenAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCapabilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D) && !isa<TypedefNameDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedStructOrUnionOrTypedef;
+    return false;
+  }
+  return true;
+}
+
+static unsigned CapabilityAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_capability = 0,
+    CXX11_clang_capability = 1,
+    GNU_shared_capability = 2,
+    CXX11_clang_shared_capability = 3
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_capability;
+    case 1: return CXX11_clang_capability;
+    case 2: return GNU_shared_capability;
+    case 3: return CXX11_clang_shared_capability;
+  }
+}
+
+static bool checkCarriesDependencyAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionMethodOrParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCleanupAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkColdAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCommonAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkConstructorAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkConsumableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkConsumableAutoCastAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkConsumableSetOnReadAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkConvergentAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkDLLExportAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<VarDecl>(D) && !isa<CXXRecordDecl>(D) && !isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus     ? ((S.getLangOpts().ObjC1 || S.getLangOpts().ObjC2)            ? ExpectedFunctionVariableClassOrObjCInterface            : ExpectedFunctionVariableOrClass)     : ((S.getLangOpts().ObjC1 || S.getLangOpts().ObjC2)            ? ExpectedFunctionVariableOrObjCInterface            : ExpectedVariableOrFunction));
+    return false;
+  }
+  return true;
+}
+
+static bool isTargetx86x86_64armthumbWin32(const TargetInfo &Target) {
+  const llvm::Triple &T = Target.getTriple();
+  return (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32);
+}
+
+static bool checkDLLImportAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<VarDecl>(D) && !isa<CXXRecordDecl>(D) && !isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus     ? ((S.getLangOpts().ObjC1 || S.getLangOpts().ObjC2)            ? ExpectedFunctionVariableClassOrObjCInterface            : ExpectedFunctionVariableOrClass)     : ((S.getLangOpts().ObjC1 || S.getLangOpts().ObjC2)            ? ExpectedFunctionVariableOrObjCInterface            : ExpectedVariableOrFunction));
+    return false;
+  }
+  return true;
+}
+
+static bool checkDestructorAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkDiagnoseIfAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkDisableTailCallsAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkEmptyBasesAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool isTargetx86x86_64armthumbMicrosoft(const TargetInfo &Target) {
+  const llvm::Triple &T = Target.getTriple();
+  return (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft);
+}
+
+static bool checkEnableIfAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkEnumExtensibilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<EnumDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedEnum;
+    return false;
+  }
+  return true;
+}
+
+static bool checkExclusiveTrylockFunctionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkExtVectorTypeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<TypedefNameDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedType;
+    return false;
+  }
+  return true;
+}
+
+static bool checkFlagEnumAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<EnumDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedEnum;
+    return false;
+  }
+  return true;
+}
+
+static bool checkFlattenAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkFormatAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isa<BlockDecl>(D) && !isHasFunctionProto(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionWithProtoType;
+    return false;
+  }
+  return true;
+}
+
+static bool checkFormatArgAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isHasFunctionProto(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionWithProtoType;
+    return false;
+  }
+  return true;
+}
+
+static bool checkGNUInlineAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkGuardedByAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FieldDecl>(D) && !isSharedVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFieldOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkGuardedVarAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FieldDecl>(D) && !isSharedVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFieldOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkHotAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool isObjCInstanceMethod(const Decl *D) {
+  if (const auto *S = dyn_cast<ObjCMethodDecl>(D))
+    return S->isInstanceMethod();
+  return false;
+}
+
+static bool checkIBActionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isObjCInstanceMethod(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjCInstanceMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkIFuncAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkInitPriorityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkInternalLinkageAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedFunctionVariableOrClass : ExpectedVariableOrFunction);
+    return false;
+  }
+  return true;
+}
+
+static bool checkLTOVisibilityPublicAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool checkLayoutVersionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkLockReturnedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkLockableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool checkLocksExcludedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned LoopHintAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    Pragma_clang_loop = 0,
+    Pragma_unroll = 1,
+    Pragma_nounroll = 2
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Pragma_clang_loop;
+    case 1: return Pragma_unroll;
+    case 2: return Pragma_nounroll;
+  }
+}
+
+static bool checkMicrosoftExtLangOpts(Sema &S, const AttributeList &Attr) {
+  if (S.LangOpts.MicrosoftExt)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static unsigned MSInheritanceAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    Keyword_single_inheritance = 0,
+    Keyword_multiple_inheritance = 1,
+    Keyword_virtual_inheritance = 2,
+    Keyword_unspecified_inheritance = 3
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Keyword_single_inheritance;
+    case 1: return Keyword_multiple_inheritance;
+    case 2: return Keyword_virtual_inheritance;
+    case 3: return Keyword_unspecified_inheritance;
+  }
+}
+
+static bool checkMSNoVTableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkMSStructAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool checkMinSizeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkMips16AppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool isTargetmipsmipsel(const TargetInfo &Target) {
+  const llvm::Triple &T = Target.getTriple();
+  return (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel);
+}
+
+static bool checkModeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D) && !isa<EnumDecl>(D) && !isa<TypedefNameDecl>(D) && !isa<FieldDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariableEnumFieldOrTypedef;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNSConsumedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNSConsumesSelfAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNakedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoAliasAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoCommonAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool isNonParmVar(const Decl *D) {
+  if (const auto *S = dyn_cast<VarDecl>(D))
+    return S->getKind() != Decl::ParmVar;
+  return false;
+}
+
+static bool checkNoDebugAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isFunctionLike(D) && !isa<ObjCMethodDecl>(D) && !isNonParmVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariableOrFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoDuplicateAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoInlineAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoInstrumentFunctionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoMips16AppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoSanitizeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D) && !isGlobalVar(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionMethodOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoSanitizeSpecificAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isGlobalVar(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoSplitStackAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNoThreadSafetyAnalysisAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNonNullAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isHasFunctionProto(D) && !isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionMethodOrParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNotTailCalledAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCBoxableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedStructOrUnion;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCBridgeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D) && !isa<TypedefNameDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedStructOrUnionOrTypedef;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCBridgeMutableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCBridgeRelatedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool isObjCInterfaceDeclInitMethod(const Decl *D) {
+  if (const auto *S = dyn_cast<ObjCMethodDecl>(D))
+    return S->getMethodFamily() == OMF_init &&
+                                 (isa<ObjCInterfaceDecl>(S->getDeclContext()) ||
+                                  (isa<ObjCCategoryDecl>(S->getDeclContext()) &&
+            cast<ObjCCategoryDecl>(S->getDeclContext())->IsClassExtension()));
+  return false;
+}
+
+static bool checkObjCDesignatedInitializerAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isObjCInterfaceDeclInitMethod(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjCInterfaceDeclInitMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCExceptionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterface;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCExplicitProtocolImplAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCProtocolDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCProtocol;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCMethodFamilyAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCPreciseLifetimeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCRequiresPropertyDefsAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterface;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCRequiresSuperAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCReturnsInnerPointerAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isa<ObjCPropertyDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethodOrProperty;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCRootClassAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterface;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCRuntimeNameAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D) && !isa<ObjCProtocolDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterfaceOrProtocol;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCRuntimeVisibleAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterface;
+    return false;
+  }
+  return true;
+}
+
+static bool checkObjCSubclassingRestrictedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCInterfaceDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedObjectiveCInterface;
+    return false;
+  }
+  return true;
+}
+
+static bool checkOpenCLAccessAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D) && !isa<TypedefNameDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameterOrTypedef;
+    return false;
+  }
+  return true;
+}
+
+static unsigned OpenCLAccessAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    Keyword_read_only = 0,
+    Keyword_write_only = 2,
+    Keyword_read_write = 4
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Keyword_read_only;
+    case 1: return Keyword_read_only;
+    case 2: return Keyword_write_only;
+    case 3: return Keyword_write_only;
+    case 4: return Keyword_read_write;
+    case 5: return Keyword_read_write;
+  }
+}
+
+static bool checkOpenCLKernelAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkOpenCLNoSVMAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkOpenCLLangOpts(Sema &S, const AttributeList &Attr) {
+  if (S.LangOpts.OpenCL)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static bool checkOptimizeNoneAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkOverloadableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkOwnershipAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isHasFunctionProto(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionWithProtoType;
+    return false;
+  }
+  return true;
+}
+
+static unsigned OwnershipAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_ownership_holds = 0,
+    GNU_ownership_returns = 1,
+    GNU_ownership_takes = 2
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_ownership_holds;
+    case 1: return GNU_ownership_returns;
+    case 2: return GNU_ownership_takes;
+  }
+}
+
+static bool checkParamTypestateAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkPassObjectSizeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkPtGuardedByAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FieldDecl>(D) && !isSharedVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFieldOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkPtGuardedVarAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FieldDecl>(D) && !isSharedVar(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFieldOrGlobalVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkReleaseCapabilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned ReleaseCapabilityAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_release_capability = 0,
+    CXX11_clang_release_capability = 1,
+    GNU_release_shared_capability = 2,
+    CXX11_clang_release_shared_capability = 3,
+    GNU_release_generic_capability = 4,
+    CXX11_clang_release_generic_capability = 5,
+    GNU_unlock_function = 6
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_release_capability;
+    case 1: return CXX11_clang_release_capability;
+    case 2: return GNU_release_shared_capability;
+    case 3: return CXX11_clang_release_shared_capability;
+    case 4: return GNU_release_generic_capability;
+    case 5: return CXX11_clang_release_generic_capability;
+    case 6: return GNU_unlock_function;
+  }
+}
+
+static bool checkRenderScriptKernelAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkRenderScriptLangOpts(Sema &S, const AttributeList &Attr) {
+  if (S.LangOpts.RenderScript)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static bool checkReqdWorkGroupSizeAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkRequireConstantInitAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isGlobalVar(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedStaticOrTLSVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkCPlusPlusLangOpts(Sema &S, const AttributeList &Attr) {
+  if (S.LangOpts.CPlusPlus)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static bool checkRequiresCapabilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned RequiresCapabilityAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_requires_capability = 0,
+    CXX11_clang_requires_capability = 1,
+    GNU_exclusive_locks_required = 2,
+    GNU_requires_shared_capability = 3,
+    CXX11_clang_requires_shared_capability = 4,
+    GNU_shared_locks_required = 5
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_requires_capability;
+    case 1: return CXX11_clang_requires_capability;
+    case 2: return GNU_exclusive_locks_required;
+    case 3: return GNU_requires_shared_capability;
+    case 4: return CXX11_clang_requires_shared_capability;
+    case 5: return GNU_shared_locks_required;
+  }
+}
+
+static bool checkRestrictAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned RestrictAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    Declspec_restrict = 0,
+    GNU_malloc = 1,
+    CXX11_gnu_malloc = 2
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return Declspec_restrict;
+    case 1: return GNU_malloc;
+    case 2: return CXX11_gnu_malloc;
+  }
+}
+
+static bool checkReturnTypestateAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionMethodOrParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkReturnsNonNullAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkReturnsTwiceAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkScopedLockableAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool checkSectionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D) && !isGlobalVar(D) && !isa<ObjCMethodDecl>(D) && !isa<ObjCPropertyDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionGlobalVarMethodOrProperty;
+    return false;
+  }
+  return true;
+}
+
+static unsigned SectionAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_section = 0,
+    CXX11_gnu_section = 1,
+    Declspec_allocate = 2
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_section;
+    case 1: return CXX11_gnu_section;
+    case 2: return Declspec_allocate;
+  }
+}
+
+static bool checkSetTypestateAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkSharedTrylockFunctionAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkSwiftContextAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkSwiftErrorResultAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool checkSwiftIndirectResultAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ParmVarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedParameter;
+    return false;
+  }
+  return true;
+}
+
+static bool isTLSVar(const Decl *D) {
+  if (const auto *S = dyn_cast<VarDecl>(D))
+    return S->getTLSKind() != 0;
+  return false;
+}
+
+static bool checkTLSModelAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isTLSVar(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedTLSVar;
+    return false;
+  }
+  return true;
+}
+
+static bool checkTargetAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkTestTypestateAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXMethodDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedMethod;
+    return false;
+  }
+  return true;
+}
+
+static bool checkThreadAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariable;
+    return false;
+  }
+  return true;
+}
+
+static bool checkNotCPlusPlusLangOpts(Sema &S, const AttributeList &Attr) {
+  if (!S.LangOpts.CPlusPlus)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static bool checkTryAcquireCapabilityAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static unsigned TryAcquireCapabilityAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_try_acquire_capability = 0,
+    CXX11_clang_try_acquire_capability = 1,
+    GNU_try_acquire_shared_capability = 2,
+    CXX11_clang_try_acquire_shared_capability = 3
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_try_acquire_capability;
+    case 1: return CXX11_clang_try_acquire_capability;
+    case 2: return GNU_try_acquire_shared_capability;
+    case 3: return CXX11_clang_try_acquire_shared_capability;
+  }
+}
+
+static bool checkUnusedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D) && !isa<ObjCIvarDecl>(D) && !isa<TypeDecl>(D) && !isa<EnumDecl>(D) && !isa<EnumConstantDecl>(D) && !isa<LabelDecl>(D) && !isa<FieldDecl>(D) && !isa<ObjCMethodDecl>(D) && !isFunctionLike(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedForMaybeUnused;
+    return false;
+  }
+  return true;
+}
+
+static unsigned UnusedAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    CXX11_maybe_unused = 0,
+    GNU_unused = 1,
+    CXX11_gnu_unused = 2
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return CXX11_maybe_unused;
+    case 1: return GNU_unused;
+    case 2: return CXX11_gnu_unused;
+  }
+}
+
+static bool checkUuidAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D) && !isa<EnumDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedEnumOrClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkMicrosoftExtBorlandLangOpts(Sema &S, const AttributeList &Attr) {
+  if (S.LangOpts.MicrosoftExt || S.LangOpts.Borland)
+    return true;
+
+  S.Diag(Attr.getLoc(), diag::warn_attribute_ignored) << Attr.getName();
+  return false;
+}
+
+static bool checkVecReturnAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedClass;
+    return false;
+  }
+  return true;
+}
+
+static bool checkVecTypeHintAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkWarnUnusedAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<RecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedStructOrUnionOrClass : ExpectedStructOrUnion);
+    return false;
+  }
+  return true;
+}
+
+static bool checkWarnUnusedResultAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<ObjCMethodDecl>(D) && !isa<EnumDecl>(D) && !isa<CXXRecordDecl>(D) && !isFunctionLike(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionMethodEnumOrClass;
+    return false;
+  }
+  return true;
+}
+
+static unsigned WarnUnusedResultAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    CXX11_nodiscard = 0,
+    CXX11_clang_warn_unused_result = 1,
+    GNU_warn_unused_result = 2,
+    CXX11_gnu_warn_unused_result = 3
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return CXX11_nodiscard;
+    case 1: return CXX11_clang_warn_unused_result;
+    case 2: return GNU_warn_unused_result;
+    case 3: return CXX11_gnu_warn_unused_result;
+  }
+}
+
+static bool checkWeakAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<CXXRecordDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << (S.getLangOpts().CPlusPlus ? ExpectedFunctionVariableOrClass : ExpectedVariableOrFunction);
+    return false;
+  }
+  return true;
+}
+
+static bool checkWeakRefAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<VarDecl>(D) && !isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedVariableOrFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool checkWorkGroupSizeHintAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunction;
+    return false;
+  }
+  return true;
+}
+
+static bool isTargetx86(const TargetInfo &Target) {
+  const llvm::Triple &T = Target.getTriple();
+  return (T.getArch() == llvm::Triple::x86);
+}
+
+static bool checkXRayInstrumentAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXMethodDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static unsigned XRayInstrumentAttrSpellingMap(const AttributeList &Attr) {
+  enum Spelling {
+    GNU_xray_always_instrument = 0,
+    CXX11_clang_xray_always_instrument = 1,
+    GNU_xray_never_instrument = 2,
+    CXX11_clang_xray_never_instrument = 3
+  };
+
+  unsigned Idx = Attr.getAttributeSpellingListIndex();
+  switch (Idx) {
+    default: llvm_unreachable("Unknown spelling list index");
+    case 0: return GNU_xray_always_instrument;
+    case 1: return CXX11_clang_xray_always_instrument;
+    case 2: return GNU_xray_never_instrument;
+    case 3: return CXX11_clang_xray_never_instrument;
+  }
+}
+
+static bool checkXRayLogArgsAppertainsTo(Sema &S, const AttributeList &Attr, const Decl *D) {
+  if (!isa<CXXMethodDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D)) {
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+      << Attr.getName() << ExpectedFunctionOrMethod;
+    return false;
+  }
+  return true;
+}
+
+static const ParsedAttrInfo AttrInfoMap[AttributeList::UnknownAttribute + 1] = {
+  { 2, 0, 0, 0, 0, 0, 0, checkAMDGPUFlatWorkGroupSizeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AMDGPUFlatWorkGroupSize
+  { 1, 0, 0, 0, 0, 0, 0, checkAMDGPUNumSGPRAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AMDGPUNumSGPR
+  { 1, 0, 0, 0, 0, 0, 0, checkAMDGPUNumVGPRAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AMDGPUNumVGPR
+  { 1, 1, 0, 0, 0, 0, 0, checkAMDGPUWavesPerEUAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AMDGPUWavesPerEU
+  { 0, 1, 1, 1, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, isTargetarmthumbarmebthumbebavrx86x86_64msp430mipsmipsel, defaultSpellingIndexToSemanticSpelling },  // AT_Interrupt
+  { 0, 0, 0, 1, 0, 0, 0, checkAVRSignalAppertainsTo, defaultDiagnoseLangOpts, isTargetavr, defaultSpellingIndexToSemanticSpelling },  // AT_AVRSignal
+  { 0, 15, 0, 0, 0, 0, 1, checkAbiTagAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AbiTag
+  { 0, 15, 0, 0, 0, 0, 0, checkAcquireCapabilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, AcquireCapabilityAttrSpellingMap },  // AT_AcquireCapability
+  { 0, 15, 0, 0, 0, 0, 0, checkAcquiredAfterAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AcquiredAfter
+  { 0, 15, 0, 0, 0, 0, 0, checkAcquiredBeforeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AcquiredBefore
+  { 1, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AddressSpace
+  { 1, 0, 0, 0, 0, 0, 1, checkAliasAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Alias
+  { 1, 0, 0, 0, 0, 0, 0, checkAlignValueAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AlignValue
+  { 0, 1, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, AlignedAttrSpellingMap },  // AT_Aligned
+  { 1, 0, 0, 0, 0, 0, 1, checkAllocAlignAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AllocAlign
+  { 1, 1, 0, 0, 0, 0, 1, checkAllocSizeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AllocSize
+  { 0, 0, 0, 0, 0, 0, 1, checkAlwaysInlineAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, AlwaysInlineAttrSpellingMap },  // AT_AlwaysInline
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AnalyzerNoReturn
+  { 1, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Annotate
+  { 0, 0, 0, 0, 0, 0, 0, checkArcWeakrefUnavailableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ArcWeakrefUnavailable
+  { 4, 0, 1, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, ArgumentWithTypeTagAttrSpellingMap },  // AT_ArgumentWithTypeTag
+  { 1, 0, 0, 0, 0, 0, 0, checkAssertCapabilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, AssertCapabilityAttrSpellingMap },  // AT_AssertCapability
+  { 0, 15, 0, 0, 0, 0, 0, checkAssertExclusiveLockAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AssertExclusiveLock
+  { 0, 15, 0, 0, 0, 0, 0, checkAssertSharedLockAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AssertSharedLock
+  { 1, 1, 0, 0, 0, 0, 1, checkAssumeAlignedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_AssumeAligned
+  { 8, 0, 1, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Availability
+  { 1, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Blocks
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CDecl
+  { 0, 0, 0, 0, 0, 0, 0, checkCFAuditedTransferAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CFAuditedTransfer
+  { 0, 0, 0, 0, 0, 0, 0, checkCFConsumedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CFConsumed
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CFReturnsNotRetained
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CFReturnsRetained
+  { 0, 0, 0, 0, 0, 0, 0, checkCFUnknownTransferAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CFUnknownTransfer
+  { 0, 0, 0, 0, 0, 0, 0, checkCUDAConstantAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDAConstant
+  { 0, 0, 0, 0, 0, 0, 0, checkCUDADeviceAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDADevice
+  { 0, 0, 0, 0, 0, 0, 0, checkCUDAGlobalAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDAGlobal
+  { 0, 0, 0, 0, 0, 0, 0, checkCUDAHostAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDAHost
+  { 0, 0, 0, 0, 0, 0, 0, checkCUDAInvalidTargetAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDAInvalidTarget
+  { 1, 1, 0, 0, 0, 0, 0, checkCUDALaunchBoundsAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDALaunchBounds
+  { 0, 0, 0, 0, 0, 0, 0, checkCUDASharedAppertainsTo, checkCUDALangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CUDAShared
+  { 0, 0, 0, 0, 0, 0, 0, checkCXX11NoReturnAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CXX11NoReturn
+  { 0, 15, 0, 0, 0, 0, 0, checkCallableWhenAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CallableWhen
+  { 1, 0, 0, 0, 0, 0, 0, checkCapabilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, CapabilityAttrSpellingMap },  // AT_Capability
+  { 0, 0, 0, 0, 0, 0, 0, checkCarriesDependencyAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_CarriesDependency
+  { 1, 0, 0, 0, 0, 0, 1, checkCleanupAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Cleanup
+  { 0, 0, 0, 0, 0, 0, 1, checkColdAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Cold
+  { 0, 0, 0, 0, 0, 0, 1, checkCommonAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Common
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Const
+  { 0, 1, 0, 0, 0, 0, 1, checkConstructorAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Constructor
+  { 1, 0, 0, 0, 0, 0, 0, checkConsumableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Consumable
+  { 0, 0, 0, 0, 0, 0, 0, checkConsumableAutoCastAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ConsumableAutoCast
+  { 0, 0, 0, 0, 0, 0, 0, checkConsumableSetOnReadAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ConsumableSetOnRead
+  { 0, 0, 0, 0, 0, 0, 0, checkConvergentAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Convergent
+  { 0, 0, 0, 1, 0, 0, 1, checkDLLExportAppertainsTo, defaultDiagnoseLangOpts, isTargetx86x86_64armthumbWin32, defaultSpellingIndexToSemanticSpelling },  // AT_DLLExport
+  { 0, 0, 0, 1, 0, 0, 1, checkDLLImportAppertainsTo, defaultDiagnoseLangOpts, isTargetx86x86_64armthumbWin32, defaultSpellingIndexToSemanticSpelling },  // AT_DLLImport
+  { 0, 2, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Deprecated
+  { 0, 1, 0, 0, 0, 0, 1, checkDestructorAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Destructor
+  { 3, 0, 0, 0, 0, 0, 0, checkDiagnoseIfAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_DiagnoseIf
+  { 0, 0, 0, 0, 0, 0, 0, checkDisableTailCallsAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_DisableTailCalls
+  { 0, 0, 0, 1, 0, 0, 0, checkEmptyBasesAppertainsTo, defaultDiagnoseLangOpts, isTargetx86x86_64armthumbMicrosoft, defaultSpellingIndexToSemanticSpelling },  // AT_EmptyBases
+  { 2, 0, 0, 0, 0, 0, 0, checkEnableIfAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_EnableIf
+  { 1, 0, 0, 0, 0, 0, 0, checkEnumExtensibilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_EnumExtensibility
+  { 1, 15, 0, 0, 0, 0, 0, checkExclusiveTrylockFunctionAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ExclusiveTrylockFunction
+  { 1, 0, 0, 0, 0, 0, 0, checkExtVectorTypeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ExtVectorType
+  { 0, 3, 1, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ExternalSourceSymbol
+  { 0, 0, 0, 0, 0, 1, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_FallThrough
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_FastCall
+  { 0, 0, 0, 0, 0, 0, 0, checkFlagEnumAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_FlagEnum
+  { 0, 0, 0, 0, 0, 0, 1, checkFlattenAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Flatten
+  { 3, 0, 0, 0, 0, 0, 1, checkFormatAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Format
+  { 1, 0, 0, 0, 0, 0, 1, checkFormatArgAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_FormatArg
+  { 0, 0, 0, 0, 0, 0, 1, checkGNUInlineAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_GNUInline
+  { 1, 0, 0, 0, 0, 0, 0, checkGuardedByAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_GuardedBy
+  { 0, 0, 0, 0, 0, 0, 0, checkGuardedVarAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_GuardedVar
+  { 0, 0, 0, 0, 0, 0, 1, checkHotAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Hot
+  { 0, 0, 0, 0, 0, 0, 0, checkIBActionAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_IBAction
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_IBOutlet
+  { 0, 1, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_IBOutletCollection
+  { 1, 0, 0, 0, 0, 0, 1, checkIFuncAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_IFunc
+  { 1, 0, 0, 0, 0, 0, 0, checkInitPriorityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_InitPriority
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_IntelOclBicc
+  { 0, 0, 0, 0, 0, 0, 0, checkInternalLinkageAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_InternalLinkage
+  { 0, 0, 0, 0, 0, 0, 0, checkLTOVisibilityPublicAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_LTOVisibilityPublic
+  { 1, 0, 0, 1, 0, 0, 0, checkLayoutVersionAppertainsTo, defaultDiagnoseLangOpts, isTargetx86x86_64armthumbMicrosoft, defaultSpellingIndexToSemanticSpelling },  // AT_LayoutVersion
+  { 1, 0, 0, 0, 0, 0, 0, checkLockReturnedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_LockReturned
+  { 0, 0, 0, 0, 0, 0, 0, checkLockableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Lockable
+  { 0, 15, 0, 0, 0, 0, 0, checkLocksExcludedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_LocksExcluded
+  { 3, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, LoopHintAttrSpellingMap },  // AT_LoopHint
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_MSABI
+  { 0, 1, 0, 0, 0, 0, 0, defaultAppertainsTo, checkMicrosoftExtLangOpts, defaultTargetRequirements, MSInheritanceAttrSpellingMap },  // AT_MSInheritance
+  { 0, 0, 0, 1, 0, 0, 0, checkMSNoVTableAppertainsTo, defaultDiagnoseLangOpts, isTargetx86x86_64armthumbMicrosoft, defaultSpellingIndexToSemanticSpelling },  // AT_MSNoVTable
+  { 0, 0, 0, 0, 0, 0, 1, checkMSStructAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_MSStruct
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_MayAlias
+  { 0, 0, 0, 0, 0, 0, 0, checkMinSizeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_MinSize
+  { 0, 0, 0, 1, 0, 0, 1, checkMips16AppertainsTo, defaultDiagnoseLangOpts, isTargetmipsmipsel, defaultSpellingIndexToSemanticSpelling },  // AT_Mips16
+  { 1, 0, 0, 0, 0, 0, 1, checkModeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Mode
+  { 0, 0, 0, 0, 0, 0, 0, checkNSConsumedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NSConsumed
+  { 0, 0, 0, 0, 0, 0, 0, checkNSConsumesSelfAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NSConsumesSelf
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NSReturnsAutoreleased
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NSReturnsNotRetained
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NSReturnsRetained
+  { 0, 0, 0, 0, 0, 0, 1, checkNakedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Naked
+  { 1, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NeonPolyVectorType
+  { 1, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NeonVectorType
+  { 0, 0, 0, 0, 0, 0, 0, checkNoAliasAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoAlias
+  { 0, 0, 0, 0, 0, 0, 1, checkNoCommonAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoCommon
+  { 0, 0, 0, 0, 0, 0, 1, checkNoDebugAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoDebug
+  { 0, 0, 0, 0, 0, 0, 0, checkNoDuplicateAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoDuplicate
+  { 0, 0, 0, 0, 0, 0, 1, checkNoInlineAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoInline
+  { 0, 0, 0, 0, 0, 0, 1, checkNoInstrumentFunctionAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoInstrumentFunction
+  { 0, 0, 0, 1, 0, 0, 1, checkNoMips16AppertainsTo, defaultDiagnoseLangOpts, isTargetmipsmipsel, defaultSpellingIndexToSemanticSpelling },  // AT_NoMips16
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoReturn
+  { 0, 15, 0, 0, 0, 0, 0, checkNoSanitizeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoSanitize
+  { 0, 0, 0, 0, 0, 0, 1, checkNoSanitizeSpecificAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoSanitizeSpecific
+  { 0, 0, 0, 0, 0, 0, 1, checkNoSplitStackAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoSplitStack
+  { 0, 0, 0, 0, 0, 0, 0, checkNoThreadSafetyAnalysisAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoThreadSafetyAnalysis
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NoThrow
+  { 0, 15, 0, 0, 0, 0, 1, checkNonNullAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NonNull
+  { 0, 0, 0, 0, 0, 0, 0, checkNotTailCalledAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_NotTailCalled
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCBoxableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCBoxable
+  { 1, 0, 0, 0, 0, 0, 0, checkObjCBridgeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCBridge
+  { 1, 0, 0, 0, 0, 0, 0, checkObjCBridgeMutableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCBridgeMutable
+  { 1, 2, 1, 0, 0, 0, 0, checkObjCBridgeRelatedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCBridgeRelated
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCDesignatedInitializerAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCDesignatedInitializer
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCExceptionAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCException
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCExplicitProtocolImplAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCExplicitProtocolImpl
+  { 1, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCGC
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCIndependentClass
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCKindOf
+  { 1, 0, 0, 0, 0, 0, 0, checkObjCMethodFamilyAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCMethodFamily
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCNSObject
+  { 1, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCOwnership
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCPreciseLifetimeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCPreciseLifetime
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCRequiresPropertyDefsAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCRequiresPropertyDefs
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCRequiresSuperAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCRequiresSuper
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCReturnsInnerPointerAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCReturnsInnerPointer
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCRootClassAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCRootClass
+  { 1, 0, 0, 0, 0, 0, 0, checkObjCRuntimeNameAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCRuntimeName
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCRuntimeVisibleAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCRuntimeVisible
+  { 0, 0, 0, 0, 0, 0, 0, checkObjCSubclassingRestrictedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ObjCSubclassingRestricted
+  { 0, 0, 0, 0, 0, 0, 0, checkOpenCLAccessAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, OpenCLAccessAttrSpellingMap },  // AT_OpenCLAccess
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLConstantAddressSpace
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLGenericAddressSpace
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLGlobalAddressSpace
+  { 0, 0, 0, 0, 0, 0, 0, checkOpenCLKernelAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLKernel
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLLocalAddressSpace
+  { 0, 0, 0, 0, 0, 0, 0, checkOpenCLNoSVMAppertainsTo, checkOpenCLLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLNoSVM
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLPrivateAddressSpace
+  { 1, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OpenCLUnrollHint
+  { 0, 0, 0, 0, 0, 0, 0, checkOptimizeNoneAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_OptimizeNone
+  { 0, 0, 0, 0, 0, 0, 0, checkOverloadableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Overloadable
+  { 1, 15, 0, 0, 0, 0, 0, checkOwnershipAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, OwnershipAttrSpellingMap },  // AT_Ownership
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Packed
+  { 1, 0, 0, 0, 0, 0, 0, checkParamTypestateAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ParamTypestate
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Pascal
+  { 1, 0, 0, 0, 0, 0, 0, checkPassObjectSizeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_PassObjectSize
+  { 1, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Pcs
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_PreserveAll
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_PreserveMost
+  { 1, 0, 0, 0, 0, 0, 0, checkPtGuardedByAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_PtGuardedBy
+  { 0, 0, 0, 0, 0, 0, 0, checkPtGuardedVarAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_PtGuardedVar
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Ptr32
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Ptr64
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Pure
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_RegCall
+  { 1, 0, 0, 0, 1, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Regparm
+  { 0, 15, 0, 0, 0, 0, 0, checkReleaseCapabilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, ReleaseCapabilityAttrSpellingMap },  // AT_ReleaseCapability
+  { 0, 0, 0, 0, 0, 0, 0, checkRenderScriptKernelAppertainsTo, checkRenderScriptLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_RenderScriptKernel
+  { 3, 0, 0, 0, 0, 0, 0, checkReqdWorkGroupSizeAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ReqdWorkGroupSize
+  { 0, 0, 0, 0, 0, 0, 0, checkRequireConstantInitAppertainsTo, checkCPlusPlusLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_RequireConstantInit
+  { 0, 15, 0, 0, 0, 0, 0, checkRequiresCapabilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, RequiresCapabilityAttrSpellingMap },  // AT_RequiresCapability
+  { 0, 0, 0, 0, 0, 0, 1, checkRestrictAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, RestrictAttrSpellingMap },  // AT_Restrict
+  { 1, 0, 0, 0, 0, 0, 0, checkReturnTypestateAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ReturnTypestate
+  { 0, 0, 0, 0, 0, 0, 1, checkReturnsNonNullAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ReturnsNonNull
+  { 0, 0, 0, 0, 0, 0, 1, checkReturnsTwiceAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ReturnsTwice
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SPtr
+  { 0, 0, 0, 0, 0, 0, 0, checkScopedLockableAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ScopedLockable
+  { 1, 0, 0, 0, 0, 0, 1, checkSectionAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, SectionAttrSpellingMap },  // AT_Section
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, checkMicrosoftExtLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SelectAny
+  { 0, 2, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Sentinel
+  { 1, 0, 0, 0, 0, 0, 0, checkSetTypestateAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SetTypestate
+  { 1, 15, 0, 0, 0, 0, 0, checkSharedTrylockFunctionAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SharedTrylockFunction
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_StdCall
+  { 0, 15, 0, 0, 0, 1, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Suppress
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SwiftCall
+  { 0, 0, 0, 0, 0, 0, 1, checkSwiftContextAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SwiftContext
+  { 0, 0, 0, 0, 0, 0, 1, checkSwiftErrorResultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SwiftErrorResult
+  { 0, 0, 0, 0, 0, 0, 1, checkSwiftIndirectResultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SwiftIndirectResult
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_SysVABI
+  { 1, 0, 0, 0, 0, 0, 1, checkTLSModelAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TLSModel
+  { 1, 0, 0, 0, 0, 0, 1, checkTargetAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Target
+  { 1, 0, 0, 0, 0, 0, 0, checkTestTypestateAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TestTypestate
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_ThisCall
+  { 0, 0, 0, 0, 0, 0, 0, checkThreadAppertainsTo, checkMicrosoftExtLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Thread
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, checkNotCPlusPlusLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TransparentUnion
+  { 1, 15, 0, 0, 0, 0, 0, checkTryAcquireCapabilityAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, TryAcquireCapabilityAttrSpellingMap },  // AT_TryAcquireCapability
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TypeNonNull
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TypeNullUnspecified
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TypeNullable
+  { 4, 0, 1, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TypeTagForDatatype
+  { 1, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_TypeVisibility
+  { 0, 0, 0, 0, 1, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_UPtr
+  { 0, 1, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Unavailable
+  { 0, 0, 0, 0, 0, 0, 1, checkUnusedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, UnusedAttrSpellingMap },  // AT_Unused
+  { 0, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Used
+  { 1, 0, 0, 0, 0, 0, 0, checkUuidAppertainsTo, checkMicrosoftExtBorlandLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Uuid
+  { 0, 0, 0, 0, 0, 0, 0, checkVecReturnAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_VecReturn
+  { 1, 0, 0, 0, 0, 0, 0, checkVecTypeHintAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_VecTypeHint
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_VectorCall
+  { 1, 0, 0, 0, 1, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_VectorSize
+  { 1, 0, 0, 0, 0, 0, 1, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Visibility
+  { 0, 0, 0, 0, 0, 0, 0, checkWarnUnusedAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_WarnUnused
+  { 0, 0, 0, 0, 0, 0, 1, checkWarnUnusedResultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, WarnUnusedResultAttrSpellingMap },  // AT_WarnUnusedResult
+  { 0, 0, 0, 0, 0, 0, 1, checkWeakAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_Weak
+  { 0, 0, 0, 0, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_WeakImport
+  { 0, 1, 0, 0, 0, 0, 1, checkWeakRefAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_WeakRef
+  { 3, 0, 0, 0, 0, 0, 0, checkWorkGroupSizeHintAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling },  // AT_WorkGroupSizeHint
+  { 0, 0, 0, 1, 0, 0, 0, defaultAppertainsTo, defaultDiagnoseLangOpts, isTargetx86, defaultSpellingIndexToSemanticSpelling },  // AT_X86ForceAlignArgPointer
+  { 0, 0, 0, 0, 0, 0, 0, checkXRayInstrumentAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, XRayInstrumentAttrSpellingMap },  // AT_XRayInstrument
+  { 1, 0, 0, 0, 0, 0, 0, checkXRayLogArgsAppertainsTo, defaultDiagnoseLangOpts, defaultTargetRequirements, defaultSpellingIndexToSemanticSpelling }  // AT_XRayLogArgs
+};
+
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrKinds.inc b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrKinds.inc
new file mode 100644
index 0000000..fb5220e
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrKinds.inc
@@ -0,0 +1,2520 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Attribute name matcher                                                     *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+static AttributeList::Kind getAttrKind(StringRef Name, AttributeList::Syntax Syntax) {
+  if (AttributeList::AS_GNU == Syntax) {
+  switch (Name.size()) {
+  default: break;
+  case 3:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ot", 2) != 0)
+        break;
+      return AttributeList::AT_Hot;	 // "hot"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "cs", 2) != 0)
+        break;
+      return AttributeList::AT_Pcs;	 // "pcs"
+    }
+    break;
+  case 4:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "old", 3) != 0)
+        break;
+      return AttributeList::AT_Cold;	 // "cold"
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ost", 3) != 0)
+        break;
+      return AttributeList::AT_CUDAHost;	 // "host"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ode", 3) != 0)
+        break;
+      return AttributeList::AT_Mode;	 // "mode"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ure", 3) != 0)
+        break;
+      return AttributeList::AT_Pure;	 // "pure"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "sed", 3) != 0)
+        break;
+      return AttributeList::AT_Used;	 // "used"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eak", 3) != 0)
+        break;
+      return AttributeList::AT_Weak;	 // "weak"
+    }
+    break;
+  case 5:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lias", 4) != 0)
+        break;
+      return AttributeList::AT_Alias;	 // "alias"
+    case 'c':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ecl", 3) != 0)
+          break;
+        return AttributeList::AT_CDecl;	 // "cdecl"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nst", 3) != 0)
+          break;
+        return AttributeList::AT_Const;	 // "const"
+      }
+      break;
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "func", 4) != 0)
+        break;
+      return AttributeList::AT_IFunc;	 // "ifunc"
+    case 'n':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ked", 3) != 0)
+          break;
+        return AttributeList::AT_Naked;	 // "naked"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "svm", 3) != 0)
+          break;
+        return AttributeList::AT_OpenCLNoSVM;	 // "nosvm"
+      }
+      break;
+    }
+    break;
+  case 6:	 // 15 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "locks", 5) != 0)
+        break;
+      return AttributeList::AT_Blocks;	 // "blocks"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ommon", 5) != 0)
+        break;
+      return AttributeList::AT_Common;	 // "common"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "evice", 5) != 0)
+        break;
+      return AttributeList::AT_CUDADevice;	 // "device"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ormat", 5) != 0)
+        break;
+      return AttributeList::AT_Format;	 // "format"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lobal", 5) != 0)
+        break;
+      return AttributeList::AT_CUDAGlobal;	 // "global"
+    case 'k':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ernel", 5) != 0)
+        break;
+      return AttributeList::AT_RenderScriptKernel;	 // "kernel"
+    case 'm':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "lloc", 4) != 0)
+          break;
+        return AttributeList::AT_Restrict;	 // "malloc"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ps16", 4) != 0)
+          break;
+        return AttributeList::AT_Mips16;	 // "mips16"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_abi", 4) != 0)
+          break;
+        return AttributeList::AT_MSABI;	 // "ms_abi"
+      }
+      break;
+    case 'p':	 // 2 strings to match.
+      if (Name[1] != 'a')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ked", 3) != 0)
+          break;
+        return AttributeList::AT_Packed;	 // "packed"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "cal", 3) != 0)
+          break;
+        return AttributeList::AT_Pascal;	 // "pascal"
+      }
+      break;
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ared", 4) != 0)
+          break;
+        return AttributeList::AT_CUDAShared;	 // "shared"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "gnal", 4) != 0)
+          break;
+        return AttributeList::AT_AVRSignal;	 // "signal"
+      }
+      break;
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "arget", 5) != 0)
+        break;
+      return AttributeList::AT_Target;	 // "target"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nused", 5) != 0)
+        break;
+      return AttributeList::AT_Unused;	 // "unused"
+    }
+    break;
+  case 7:	 // 18 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "_const", 6) != 0)
+        break;
+      return AttributeList::AT_Const;	 // "__const"
+    case 'a':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "i_tag", 5) != 0)
+          break;
+        return AttributeList::AT_AbiTag;	 // "abi_tag"
+      case 'l':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "igned", 5) != 0)
+          break;
+        return AttributeList::AT_Aligned;	 // "aligned"
+      }
+      break;
+    case 'b':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ounded", 6) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "bounded"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "leanup", 6) != 0)
+        break;
+      return AttributeList::AT_Cleanup;	 // "cleanup"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "latten", 6) != 0)
+        break;
+      return AttributeList::AT_Flatten;	 // "flatten"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "insize", 6) != 0)
+        break;
+      return AttributeList::AT_MinSize;	 // "minsize"
+    case 'n':	 // 4 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'o':	 // 3 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'd':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "ebug", 4) != 0)
+            break;
+          return AttributeList::AT_NoDebug;	 // "nodebug"
+        case 'n':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "null", 4) != 0)
+            break;
+          return AttributeList::AT_NonNull;	 // "nonnull"
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "hrow", 4) != 0)
+            break;
+          return AttributeList::AT_NoThrow;	 // "nothrow"
+        }
+        break;
+      case 'v':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_weak", 5) != 0)
+          break;
+        return AttributeList::IgnoredAttribute;	 // "nv_weak"
+      }
+      break;
+    case 'o':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "jc_gc", 5) != 0)
+          break;
+        return AttributeList::AT_ObjCGC;	 // "objc_gc"
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "tnone", 5) != 0)
+          break;
+        return AttributeList::AT_OptimizeNone;	 // "optnone"
+      }
+      break;
+    case 'r':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "eg", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "all", 3) != 0)
+          break;
+        return AttributeList::AT_RegCall;	 // "regcall"
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "arm", 3) != 0)
+          break;
+        return AttributeList::AT_Regparm;	 // "regparm"
+      }
+      break;
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ction", 5) != 0)
+          break;
+        return AttributeList::AT_Section;	 // "section"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "dcall", 5) != 0)
+          break;
+        return AttributeList::AT_StdCall;	 // "stdcall"
+      }
+      break;
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eakref", 6) != 0)
+        break;
+      return AttributeList::AT_WeakRef;	 // "weakref"
+    }
+    break;
+  case 8:	 // 14 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'N':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "SObject", 7) != 0)
+        break;
+      return AttributeList::AT_ObjCNSObject;	 // "NSObject"
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nnotate", 7) != 0)
+        break;
+      return AttributeList::AT_Annotate;	 // "annotate"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "onstant", 7) != 0)
+        break;
+      return AttributeList::AT_CUDAConstant;	 // "constant"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "astcall", 7) != 0)
+        break;
+      return AttributeList::AT_FastCall;	 // "fastcall"
+    case 'i':	 // 2 strings to match.
+      if (Name[1] != 'b')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ction", 5) != 0)
+          break;
+        return AttributeList::AT_IBAction;	 // "ibaction"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "utlet", 5) != 0)
+          break;
+        return AttributeList::AT_IBOutlet;	 // "iboutlet"
+      }
+      break;
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ockable", 7) != 0)
+        break;
+      return AttributeList::AT_Lockable;	 // "lockable"
+    case 'n':	 // 4 strings to match.
+      if (Name[1] != 'o')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ommon", 5) != 0)
+          break;
+        return AttributeList::AT_NoCommon;	 // "nocommon"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "nline", 5) != 0)
+          break;
+        return AttributeList::AT_NoInline;	 // "noinline"
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ips16", 5) != 0)
+          break;
+        return AttributeList::AT_NoMips16;	 // "nomips16"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "eturn", 5) != 0)
+          break;
+        return AttributeList::AT_NoReturn;	 // "noreturn"
+      }
+      break;
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ntinel", 6) != 0)
+          break;
+        return AttributeList::AT_Sentinel;	 // "sentinel"
+      case 'y':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "sv_abi", 6) != 0)
+          break;
+        return AttributeList::AT_SysVABI;	 // "sysv_abi"
+      }
+      break;
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "hiscall", 7) != 0)
+        break;
+      return AttributeList::AT_ThisCall;	 // "thiscall"
+    }
+    break;
+  case 9:	 // 10 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'd':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "ll", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "xport", 5) != 0)
+          break;
+        return AttributeList::AT_DLLExport;	 // "dllexport"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "mport", 5) != 0)
+          break;
+        return AttributeList::AT_DLLImport;	 // "dllimport"
+      }
+      break;
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nable_if", 8) != 0)
+        break;
+      return AttributeList::AT_EnableIf;	 // "enable_if"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lag_enum", 8) != 0)
+        break;
+      return AttributeList::AT_FlagEnum;	 // "flag_enum"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nterrupt", 8) != 0)
+        break;
+      return AttributeList::AT_Interrupt;	 // "interrupt"
+    case 'm':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "y_alias", 7) != 0)
+          break;
+        return AttributeList::AT_MayAlias;	 // "may_alias"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_struct", 7) != 0)
+          break;
+        return AttributeList::AT_MSStruct;	 // "ms_struct"
+      }
+      break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "wiftcall", 8) != 0)
+        break;
+      return AttributeList::AT_SwiftCall;	 // "swiftcall"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ls_model", 8) != 0)
+        break;
+      return AttributeList::AT_TLSModel;	 // "tls_model"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ecreturn", 8) != 0)
+        break;
+      return AttributeList::AT_VecReturn;	 // "vecreturn"
+    }
+    break;
+  case 10:	 // 11 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lloc_size", 9) != 0)
+        break;
+      return AttributeList::AT_AllocSize;	 // "alloc_size"
+    case 'c':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "pability", 8) != 0)
+          break;
+        return AttributeList::AT_Capability;	 // "capability"
+      case 'o':	 // 2 strings to match.
+        if (Name[2] != 'n')
+          break;
+        switch (Name[3]) {
+        default: break;
+        case 's':	 // 1 string to match.
+          if (memcmp(Name.data()+4, "umable", 6) != 0)
+            break;
+          return AttributeList::AT_Consumable;	 // "consumable"
+        case 'v':	 // 1 string to match.
+          if (memcmp(Name.data()+4, "ergent", 6) != 0)
+            break;
+          return AttributeList::AT_Convergent;	 // "convergent"
+        }
+        break;
+      }
+      break;
+    case 'd':	 // 2 strings to match.
+      if (Name[1] != 'e')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "recated", 7) != 0)
+          break;
+        return AttributeList::AT_Deprecated;	 // "deprecated"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "tructor", 7) != 0)
+          break;
+        return AttributeList::AT_Destructor;	 // "destructor"
+      }
+      break;
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ormat_arg", 9) != 0)
+        break;
+      return AttributeList::AT_FormatArg;	 // "format_arg"
+    case 'g':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "u_inline", 8) != 0)
+          break;
+        return AttributeList::AT_GNUInline;	 // "gnu_inline"
+      case 'u':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "arded_by", 8) != 0)
+          break;
+        return AttributeList::AT_GuardedBy;	 // "guarded_by"
+      }
+      break;
+    case 'v':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ctorcall", 8) != 0)
+          break;
+        return AttributeList::AT_VectorCall;	 // "vectorcall"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "sibility", 8) != 0)
+          break;
+        return AttributeList::AT_Visibility;	 // "visibility"
+      }
+      break;
+    }
+    break;
+  case 11:	 // 14 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 2 strings to match.
+      if (Name[1] != 'l')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "gn_value", 8) != 0)
+          break;
+        return AttributeList::AT_AlignValue;	 // "align_value"
+      case 'l':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "oc_align", 8) != 0)
+          break;
+        return AttributeList::AT_AllocAlign;	 // "alloc_align"
+      }
+      break;
+    case 'c':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_consumed", 9) != 0)
+          break;
+        return AttributeList::AT_CFConsumed;	 // "cf_consumed"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nstructor", 9) != 0)
+          break;
+        return AttributeList::AT_Constructor;	 // "constructor"
+      }
+      break;
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "iagnose_if", 10) != 0)
+        break;
+      return AttributeList::AT_DiagnoseIf;	 // "diagnose_if"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "uarded_var", 10) != 0)
+        break;
+      return AttributeList::AT_GuardedVar;	 // "guarded_var"
+    case 'n':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'o':	 // 2 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case '_':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "sanitize", 8) != 0)
+            break;
+          return AttributeList::AT_NoSanitize;	 // "no_sanitize"
+        case 'd':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "uplicate", 8) != 0)
+            break;
+          return AttributeList::AT_NoDuplicate;	 // "noduplicate"
+        }
+        break;
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_consumed", 9) != 0)
+          break;
+        return AttributeList::AT_NSConsumed;	 // "ns_consumed"
+      }
+      break;
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bjc_bridge", 10) != 0)
+        break;
+      return AttributeList::AT_ObjCBridge;	 // "objc_bridge"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "navailable", 10) != 0)
+        break;
+      return AttributeList::AT_Unavailable;	 // "unavailable"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ector_size", 10) != 0)
+        break;
+      return AttributeList::AT_VectorSize;	 // "vector_size"
+    case 'w':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "rn_unused", 9) != 0)
+          break;
+        return AttributeList::AT_WarnUnused;	 // "warn_unused"
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ak_import", 9) != 0)
+          break;
+        return AttributeList::AT_WeakImport;	 // "weak_import"
+      }
+      break;
+    }
+    break;
+  case 12:	 // 4 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "vailability", 11) != 0)
+        break;
+      return AttributeList::AT_Availability;	 // "availability"
+    case 'o':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "jc_boxable", 10) != 0)
+          break;
+        return AttributeList::AT_ObjCBoxable;	 // "objc_boxable"
+      case 'v':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "erloadable", 10) != 0)
+          break;
+        return AttributeList::AT_Overloadable;	 // "overloadable"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "reserve_all", 11) != 0)
+        break;
+      return AttributeList::AT_PreserveAll;	 // "preserve_all"
+    }
+    break;
+  case 13:	 // 13 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "dress_space", 11) != 0)
+          break;
+        return AttributeList::AT_AddressSpace;	 // "address_space"
+      case 'l':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ways_inline", 11) != 0)
+          break;
+        return AttributeList::AT_AlwaysInline;	 // "always_inline"
+      }
+      break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "allable_when", 12) != 0)
+        break;
+      return AttributeList::AT_CallableWhen;	 // "callable_when"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nit_priority", 12) != 0)
+        break;
+      return AttributeList::AT_InitPriority;	 // "init_priority"
+    case 'l':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "unch_bounds", 11) != 0)
+          break;
+        return AttributeList::AT_CUDALaunchBounds;	 // "launch_bounds"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ck_returned", 11) != 0)
+          break;
+        return AttributeList::AT_LockReturned;	 // "lock_returned"
+      }
+      break;
+    case 'p':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "eserve_most", 11) != 0)
+          break;
+        return AttributeList::AT_PreserveMost;	 // "preserve_most"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_guarded_by", 11) != 0)
+          break;
+        return AttributeList::AT_PtGuardedBy;	 // "pt_guarded_by"
+      }
+      break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eturns_twice", 12) != 0)
+        break;
+      return AttributeList::AT_ReturnsTwice;	 // "returns_twice"
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "t_typestate", 11) != 0)
+          break;
+        return AttributeList::AT_SetTypestate;	 // "set_typestate"
+      case 'w':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ift_context", 11) != 0)
+          break;
+        return AttributeList::AT_SwiftContext;	 // "swift_context"
+      }
+      break;
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ec_type_hint", 12) != 0)
+        break;
+      return AttributeList::AT_VecTypeHint;	 // "vec_type_hint"
+    case 'x':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ray_log_args", 12) != 0)
+        break;
+      return AttributeList::AT_XRayLogArgs;	 // "xray_log_args"
+    }
+    break;
+  case 14:	 // 11 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quired_after", 12) != 0)
+          break;
+        return AttributeList::AT_AcquiredAfter;	 // "acquired_after"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "sume_aligned", 12) != 0)
+          break;
+        return AttributeList::AT_AssumeAligned;	 // "assume_aligned"
+      }
+      break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "udart_builtin", 13) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "cudart_builtin"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "evice_builtin", 13) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "device_builtin"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ntel_ocl_bicc", 13) != 0)
+        break;
+      return AttributeList::AT_IntelOclBicc;	 // "intel_ocl_bicc"
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ocks_excluded", 13) != 0)
+        break;
+      return AttributeList::AT_LocksExcluded;	 // "locks_excluded"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "o_split_stack", 13) != 0)
+        break;
+      return AttributeList::AT_NoSplitStack;	 // "no_split_stack"
+    case 'o':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "bjc_", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "xception", 8) != 0)
+          break;
+        return AttributeList::AT_ObjCException;	 // "objc_exception"
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "wnership", 8) != 0)
+          break;
+        return AttributeList::AT_ObjCOwnership;	 // "objc_ownership"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "t_guarded_var", 13) != 0)
+        break;
+      return AttributeList::AT_PtGuardedVar;	 // "pt_guarded_var"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "est_typestate", 13) != 0)
+        break;
+      return AttributeList::AT_TestTypestate;	 // "test_typestate"
+    }
+    break;
+  case 15:	 // 13 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quired_before", 13) != 0)
+          break;
+        return AttributeList::AT_AcquiredBefore;	 // "acquired_before"
+      case 'm':	 // 2 strings to match.
+        if (memcmp(Name.data()+2, "dgpu_num_", 9) != 0)
+          break;
+        switch (Name[11]) {
+        default: break;
+        case 's':	 // 1 string to match.
+          if (memcmp(Name.data()+12, "gpr", 3) != 0)
+            break;
+          return AttributeList::AT_AMDGPUNumSGPR;	 // "amdgpu_num_sgpr"
+        case 'v':	 // 1 string to match.
+          if (memcmp(Name.data()+12, "gpr", 3) != 0)
+            break;
+          return AttributeList::AT_AMDGPUNumVGPR;	 // "amdgpu_num_vgpr"
+        }
+        break;
+      }
+      break;
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "xt_vector_type", 14) != 0)
+        break;
+      return AttributeList::AT_ExtVectorType;	 // "ext_vector_type"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ot_tail_called", 14) != 0)
+        break;
+      return AttributeList::AT_NotTailCalled;	 // "not_tail_called"
+    case 'o':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "jc_root_class", 13) != 0)
+          break;
+        return AttributeList::AT_ObjCRootClass;	 // "objc_root_class"
+      case 'w':	 // 2 strings to match.
+        if (memcmp(Name.data()+2, "nership_", 8) != 0)
+          break;
+        switch (Name[10]) {
+        default: break;
+        case 'h':	 // 1 string to match.
+          if (memcmp(Name.data()+11, "olds", 4) != 0)
+            break;
+          return AttributeList::AT_Ownership;	 // "ownership_holds"
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+11, "akes", 4) != 0)
+            break;
+          return AttributeList::AT_Ownership;	 // "ownership_takes"
+        }
+        break;
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "aram_typestate", 14) != 0)
+        break;
+      return AttributeList::AT_ParamTypestate;	 // "param_typestate"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eturns_nonnull", 14) != 0)
+        break;
+      return AttributeList::AT_ReturnsNonNull;	 // "returns_nonnull"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "coped_lockable", 14) != 0)
+        break;
+      return AttributeList::AT_ScopedLockable;	 // "scoped_lockable"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ype_visibility", 14) != 0)
+        break;
+      return AttributeList::AT_TypeVisibility;	 // "type_visibility"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nlock_function", 14) != 0)
+        break;
+      return AttributeList::AT_ReleaseCapability;	 // "unlock_function"
+    }
+    break;
+  case 16:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nternal_linkage", 15) != 0)
+        break;
+      return AttributeList::AT_InternalLinkage;	 // "internal_linkage"
+    case 'n':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "on_vector_type", 14) != 0)
+          break;
+        return AttributeList::AT_NeonVectorType;	 // "neon_vector_type"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_consumes_self", 14) != 0)
+          break;
+        return AttributeList::AT_NSConsumesSelf;	 // "ns_consumes_self"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ass_object_size", 15) != 0)
+        break;
+      return AttributeList::AT_PassObjectSize;	 // "pass_object_size"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eturn_typestate", 15) != 0)
+        break;
+      return AttributeList::AT_ReturnTypestate;	 // "return_typestate"
+    }
+    break;
+  case 17:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "alyzer_noreturn", 15) != 0)
+          break;
+        return AttributeList::AT_AnalyzerNoReturn;	 // "analyzer_noreturn"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "sert_capability", 15) != 0)
+          break;
+        return AttributeList::AT_AssertCapability;	 // "assert_capability"
+      }
+      break;
+    case 'o':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "jc_runtime_name", 15) != 0)
+          break;
+        return AttributeList::AT_ObjCRuntimeName;	 // "objc_runtime_name"
+      case 'w':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "nership_returns", 15) != 0)
+          break;
+        return AttributeList::AT_Ownership;	 // "ownership_returns"
+      }
+      break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "hared_capability", 16) != 0)
+        break;
+      return AttributeList::AT_Capability;	 // "shared_capability"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ransparent_union", 16) != 0)
+        break;
+      return AttributeList::AT_TransparentUnion;	 // "transparent_union"
+    }
+    break;
+  case 18:	 // 13 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "quire_capability", 16) != 0)
+          break;
+        return AttributeList::AT_AcquireCapability;	 // "acquire_capability"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "sert_shared_lock", 16) != 0)
+          break;
+        return AttributeList::AT_AssertSharedLock;	 // "assert_shared_lock"
+      }
+      break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "arries_dependency", 17) != 0)
+        break;
+      return AttributeList::AT_CarriesDependency;	 // "carries_dependency"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "isable_tail_calls", 17) != 0)
+        break;
+      return AttributeList::AT_DisableTailCalls;	 // "disable_tail_calls"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "num_extensibility", 17) != 0)
+        break;
+      return AttributeList::AT_EnumExtensibility;	 // "enum_extensibility"
+    case 'i':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "boutletcollection", 17) != 0)
+        break;
+      return AttributeList::AT_IBOutletCollection;	 // "iboutletcollection"
+    case 'n':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "o_sanitize_", 11) != 0)
+        break;
+      switch (Name[12]) {
+      default: break;
+      case 'm':	 // 1 string to match.
+        if (memcmp(Name.data()+13, "emory", 5) != 0)
+          break;
+        return AttributeList::AT_NoSanitizeSpecific;	 // "no_sanitize_memory"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+13, "hread", 5) != 0)
+          break;
+        return AttributeList::AT_NoSanitizeSpecific;	 // "no_sanitize_thread"
+      }
+      break;
+    case 'o':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'b':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "jc_method_family", 16) != 0)
+          break;
+        return AttributeList::AT_ObjCMethodFamily;	 // "objc_method_family"
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "encl_unroll_hint", 16) != 0)
+          break;
+        return AttributeList::AT_OpenCLUnrollHint;	 // "opencl_unroll_hint"
+      }
+      break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elease_capability", 17) != 0)
+        break;
+      return AttributeList::AT_ReleaseCapability;	 // "release_capability"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "wift_error_result", 17) != 0)
+        break;
+      return AttributeList::AT_SwiftErrorResult;	 // "swift_error_result"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "arn_unused_result", 17) != 0)
+        break;
+      return AttributeList::AT_WarnUnusedResult;	 // "warn_unused_result"
+    }
+    break;
+  case 19:	 // 10 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "mdgpu_waves_per_eu", 18) != 0)
+        break;
+      return AttributeList::AT_AMDGPUWavesPerEU;	 // "amdgpu_waves_per_eu"
+    case 'c':	 // 3 strings to match.
+      if (memcmp(Name.data()+1, "f_", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "udited_transfer", 15) != 0)
+          break;
+        return AttributeList::AT_CFAuditedTransfer;	 // "cf_audited_transfer"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "eturns_retained", 15) != 0)
+          break;
+        return AttributeList::AT_CFReturnsRetained;	 // "cf_returns_retained"
+      case 'u':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "nknown_transfer", 15) != 0)
+          break;
+        return AttributeList::AT_CFUnknownTransfer;	 // "cf_unknown_transfer"
+      }
+      break;
+    case 'n':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'o':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_sanitize_address", 17) != 0)
+          break;
+        return AttributeList::AT_NoSanitizeSpecific;	 // "no_sanitize_address"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "_returns_retained", 17) != 0)
+          break;
+        return AttributeList::AT_NSReturnsRetained;	 // "ns_returns_retained"
+      }
+      break;
+    case 'o':	 // 3 strings to match.
+      if (memcmp(Name.data()+1, "bjc_", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'b':	 // 2 strings to match.
+        if (memcmp(Name.data()+6, "ridge_", 6) != 0)
+          break;
+        switch (Name[12]) {
+        default: break;
+        case 'm':	 // 1 string to match.
+          if (memcmp(Name.data()+13, "utable", 6) != 0)
+            break;
+          return AttributeList::AT_ObjCBridgeMutable;	 // "objc_bridge_mutable"
+        case 'r':	 // 1 string to match.
+          if (memcmp(Name.data()+13, "elated", 6) != 0)
+            break;
+          return AttributeList::AT_ObjCBridgeRelated;	 // "objc_bridge_related"
+        }
+        break;
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "equires_super", 13) != 0)
+          break;
+        return AttributeList::AT_ObjCRequiresSuper;	 // "objc_requires_super"
+      }
+      break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "equires_capability", 18) != 0)
+        break;
+      return AttributeList::AT_RequiresCapability;	 // "requires_capability"
+    }
+    break;
+  case 20:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eon_polyvector_type", 19) != 0)
+        break;
+      return AttributeList::AT_NeonPolyVectorType;	 // "neon_polyvector_type"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bjc_runtime_visible", 19) != 0)
+        break;
+      return AttributeList::AT_ObjCRuntimeVisible;	 // "objc_runtime_visible"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eqd_work_group_size", 19) != 0)
+        break;
+      return AttributeList::AT_ReqdWorkGroupSize;	 // "reqd_work_group_size"
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "hared_lock_function", 19) != 0)
+        break;
+      return AttributeList::AT_AcquireCapability;	 // "shared_lock_function"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ork_group_size_hint", 19) != 0)
+        break;
+      return AttributeList::AT_WorkGroupSizeHint;	 // "work_group_size_hint"
+    }
+    break;
+  case 21:	 // 7 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ssert_exclusive_lock", 20) != 0)
+        break;
+      return AttributeList::AT_AssertExclusiveLock;	 // "assert_exclusive_lock"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bjc_precise_lifetime", 20) != 0)
+        break;
+      return AttributeList::AT_ObjCPreciseLifetime;	 // "objc_precise_lifetime"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ointer_with_type_tag", 20) != 0)
+        break;
+      return AttributeList::AT_ArgumentWithTypeTag;	 // "pointer_with_type_tag"
+    case 's':	 // 2 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'h':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ared_locks_required", 19) != 0)
+          break;
+        return AttributeList::AT_RequiresCapability;	 // "shared_locks_required"
+      case 'w':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ift_indirect_result", 19) != 0)
+          break;
+        return AttributeList::AT_SwiftIndirectResult;	 // "swift_indirect_result"
+      }
+      break;
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ype_tag_for_datatype", 20) != 0)
+        break;
+      return AttributeList::AT_TypeTagForDatatype;	 // "type_tag_for_datatype"
+    case 'x':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ray_never_instrument", 20) != 0)
+        break;
+      return AttributeList::AT_XRayInstrument;	 // "xray_never_instrument"
+    }
+    break;
+  case 22:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rgument_with_type_tag", 21) != 0)
+        break;
+      return AttributeList::AT_ArgumentWithTypeTag;	 // "argument_with_type_tag"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "xternal_source_symbol", 21) != 0)
+        break;
+      return AttributeList::AT_ExternalSourceSymbol;	 // "external_source_symbol"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "o_instrument_function", 21) != 0)
+        break;
+      return AttributeList::AT_NoInstrumentFunction;	 // "no_instrument_function"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bjc_independent_class", 21) != 0)
+        break;
+      return AttributeList::AT_ObjCIndependentClass;	 // "objc_independent_class"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ry_acquire_capability", 21) != 0)
+        break;
+      return AttributeList::AT_TryAcquireCapability;	 // "try_acquire_capability"
+    case 'x':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ray_always_instrument", 21) != 0)
+        break;
+      return AttributeList::AT_XRayInstrument;	 // "xray_always_instrument"
+    }
+    break;
+  case 23:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "f_returns_not_retained", 22) != 0)
+        break;
+      return AttributeList::AT_CFReturnsNotRetained;	 // "cf_returns_not_retained"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "xclusive_lock_function", 22) != 0)
+        break;
+      return AttributeList::AT_AcquireCapability;	 // "exclusive_lock_function"
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "orce_align_arg_pointer", 22) != 0)
+        break;
+      return AttributeList::AT_X86ForceAlignArgPointer;	 // "force_align_arg_pointer"
+    case 'n':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "s_returns_", 10) != 0)
+        break;
+      switch (Name[11]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+12, "utoreleased", 11) != 0)
+          break;
+        return AttributeList::AT_NSReturnsAutoreleased;	 // "ns_returns_autoreleased"
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+12, "ot_retained", 11) != 0)
+          break;
+        return AttributeList::AT_NSReturnsNotRetained;	 // "ns_returns_not_retained"
+      }
+      break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "hared_trylock_function", 22) != 0)
+        break;
+      return AttributeList::AT_SharedTrylockFunction;	 // "shared_trylock_function"
+    }
+    break;
+  case 24:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ssert_shared_capability", 23) != 0)
+        break;
+      return AttributeList::AT_AssertCapability;	 // "assert_shared_capability"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "xclusive_locks_required", 23) != 0)
+        break;
+      return AttributeList::AT_RequiresCapability;	 // "exclusive_locks_required"
+    }
+    break;
+  case 25:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "cquire_shared_capability", 24) != 0)
+        break;
+      return AttributeList::AT_AcquireCapability;	 // "acquire_shared_capability"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "o_thread_safety_analysis", 24) != 0)
+        break;
+      return AttributeList::AT_NoThreadSafetyAnalysis;	 // "no_thread_safety_analysis"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "elease_shared_capability", 24) != 0)
+        break;
+      return AttributeList::AT_ReleaseCapability;	 // "release_shared_capability"
+    }
+    break;
+  case 26:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "onsumable_auto_cast_state", 25) != 0)
+        break;
+      return AttributeList::AT_ConsumableAutoCast;	 // "consumable_auto_cast_state"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "xclusive_trylock_function", 25) != 0)
+        break;
+      return AttributeList::AT_ExclusiveTrylockFunction;	 // "exclusive_trylock_function"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "o_address_safety_analysis", 25) != 0)
+        break;
+      return AttributeList::AT_NoSanitizeSpecific;	 // "no_address_safety_analysis"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "bjc_returns_inner_pointer", 25) != 0)
+        break;
+      return AttributeList::AT_ObjCReturnsInnerPointer;	 // "objc_returns_inner_pointer"
+    case 'r':	 // 2 strings to match.
+      if (Name[1] != 'e')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'l':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "ease_generic_capability", 23) != 0)
+          break;
+        return AttributeList::AT_ReleaseCapability;	 // "release_generic_capability"
+      case 'q':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "uires_shared_capability", 23) != 0)
+          break;
+        return AttributeList::AT_RequiresCapability;	 // "requires_shared_capability"
+      }
+      break;
+    }
+    break;
+  case 27:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "mdgpu_flat_work_group_size", 26) != 0)
+        break;
+      return AttributeList::AT_AMDGPUFlatWorkGroupSize;	 // "amdgpu_flat_work_group_size"
+    case 'd':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "evice_builtin_", 14) != 0)
+        break;
+      switch (Name[15]) {
+      default: break;
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+16, "urface_type", 11) != 0)
+          break;
+        return AttributeList::IgnoredAttribute;	 // "device_builtin_surface_type"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+16, "exture_type", 11) != 0)
+          break;
+        return AttributeList::IgnoredAttribute;	 // "device_builtin_texture_type"
+      }
+      break;
+    case 'o':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "bjc_", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "esignated_initializer", 21) != 0)
+          break;
+        return AttributeList::AT_ObjCDesignatedInitializer;	 // "objc_designated_initializer"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "ubclassing_restricted", 21) != 0)
+          break;
+        return AttributeList::AT_ObjCSubclassingRestricted;	 // "objc_subclassing_restricted"
+      }
+      break;
+    }
+    break;
+  case 28:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "consumable_set_state_on_read", 28) != 0)
+      break;
+    return AttributeList::AT_ConsumableSetOnRead;	 // "consumable_set_state_on_read"
+  case 29:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "try_acquire_shared_capability", 29) != 0)
+      break;
+    return AttributeList::AT_TryAcquireCapability;	 // "try_acquire_shared_capability"
+  case 31:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "require_constant_initialization", 31) != 0)
+      break;
+    return AttributeList::AT_RequireConstantInit;	 // "require_constant_initialization"
+  case 34:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "objc_requires_property_definitions", 34) != 0)
+      break;
+    return AttributeList::AT_ObjCRequiresPropertyDefs;	 // "objc_requires_property_definitions"
+  case 35:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "objc_arc_weak_reference_unavailable", 35) != 0)
+      break;
+    return AttributeList::AT_ArcWeakrefUnavailable;	 // "objc_arc_weak_reference_unavailable"
+  case 46:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "objc_protocol_requires_explicit_implementation", 46) != 0)
+      break;
+    return AttributeList::AT_ObjCExplicitProtocolImpl;	 // "objc_protocol_requires_explicit_implementation"
+  }
+  } else if (AttributeList::AS_Declspec == Syntax) {
+  switch (Name.size()) {
+  default: break;
+  case 4:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "uuid", 4) != 0)
+      break;
+    return AttributeList::AT_Uuid;	 // "uuid"
+  case 5:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lign", 4) != 0)
+        break;
+      return AttributeList::AT_Aligned;	 // "align"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "aked", 4) != 0)
+        break;
+      return AttributeList::AT_Naked;	 // "naked"
+    }
+    break;
+  case 6:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "thread", 6) != 0)
+      break;
+    return AttributeList::AT_Thread;	 // "thread"
+  case 7:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "no", 2) != 0)
+      break;
+    switch (Name[2]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "lias", 4) != 0)
+        break;
+      return AttributeList::AT_NoAlias;	 // "noalias"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "hrow", 4) != 0)
+        break;
+      return AttributeList::AT_NoThrow;	 // "nothrow"
+    }
+    break;
+  case 8:	 // 7 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "_host__", 7) != 0)
+        break;
+      return AttributeList::AT_CUDAHost;	 // "__host__"
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "llocate", 7) != 0)
+        break;
+      return AttributeList::AT_Section;	 // "allocate"
+    case 'n':	 // 3 strings to match.
+      if (Name[1] != 'o')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "nline", 5) != 0)
+          break;
+        return AttributeList::AT_NoInline;	 // "noinline"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "eturn", 5) != 0)
+          break;
+        return AttributeList::AT_NoReturn;	 // "noreturn"
+      case 'v':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "table", 5) != 0)
+          break;
+        return AttributeList::AT_MSNoVTable;	 // "novtable"
+      }
+      break;
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "roperty", 7) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "property"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "estrict", 7) != 0)
+        break;
+      return AttributeList::AT_Restrict;	 // "restrict"
+    }
+    break;
+  case 9:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'd':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "ll", 2) != 0)
+        break;
+      switch (Name[3]) {
+      default: break;
+      case 'e':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "xport", 5) != 0)
+          break;
+        return AttributeList::AT_DLLExport;	 // "dllexport"
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+4, "mport", 5) != 0)
+          break;
+        return AttributeList::AT_DLLImport;	 // "dllimport"
+      }
+      break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "electany", 8) != 0)
+        break;
+      return AttributeList::AT_SelectAny;	 // "selectany"
+    }
+    break;
+  case 10:	 // 4 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 3 strings to match.
+      if (Name[1] != '_')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'd':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "evice__", 7) != 0)
+          break;
+        return AttributeList::AT_CUDADevice;	 // "__device__"
+      case 'g':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "lobal__", 7) != 0)
+          break;
+        return AttributeList::AT_CUDAGlobal;	 // "__global__"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "hared__", 7) != 0)
+          break;
+        return AttributeList::AT_CUDAShared;	 // "__shared__"
+      }
+      break;
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eprecated", 9) != 0)
+        break;
+      return AttributeList::AT_Deprecated;	 // "deprecated"
+    }
+    break;
+  case 11:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "empty_bases", 11) != 0)
+      break;
+    return AttributeList::AT_EmptyBases;	 // "empty_bases"
+  case 12:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__constant__", 12) != 0)
+      break;
+    return AttributeList::AT_CUDAConstant;	 // "__constant__"
+  case 14:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "layout_version", 14) != 0)
+      break;
+    return AttributeList::AT_LayoutVersion;	 // "layout_version"
+  case 17:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__launch_bounds__", 17) != 0)
+      break;
+    return AttributeList::AT_CUDALaunchBounds;	 // "__launch_bounds__"
+  case 18:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "__", 2) != 0)
+      break;
+    switch (Name[2]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "udart_builtin__", 15) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "__cudart_builtin__"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "evice_builtin__", 15) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "__device_builtin__"
+    }
+    break;
+  case 31:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "__device_builtin_", 17) != 0)
+      break;
+    switch (Name[17]) {
+    default: break;
+    case 's':	 // 1 string to match.
+      if (memcmp(Name.data()+18, "urface_type__", 13) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "__device_builtin_surface_type__"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+18, "exture_type__", 13) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "__device_builtin_texture_type__"
+    }
+    break;
+  }
+  } else if (AttributeList::AS_Microsoft == Syntax) {
+  switch (Name.size()) {
+  default: break;
+  case 4:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "uuid", 4) != 0)
+      break;
+    return AttributeList::AT_Uuid;	 // "uuid"
+  }
+  } else if (AttributeList::AS_CXX11 == Syntax) {
+  switch (Name.size()) {
+  default: break;
+  case 8:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "gnu::", 5) != 0)
+      break;
+    switch (Name[5]) {
+    default: break;
+    case 'h':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "ot", 2) != 0)
+        break;
+      return AttributeList::AT_Hot;	 // "gnu::hot"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "cs", 2) != 0)
+        break;
+      return AttributeList::AT_Pcs;	 // "gnu::pcs"
+    }
+    break;
+  case 9:	 // 5 strings to match.
+    if (memcmp(Name.data()+0, "gnu::", 5) != 0)
+      break;
+    switch (Name[5]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "old", 3) != 0)
+        break;
+      return AttributeList::AT_Cold;	 // "gnu::cold"
+    case 'm':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "ode", 3) != 0)
+        break;
+      return AttributeList::AT_Mode;	 // "gnu::mode"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "ure", 3) != 0)
+        break;
+      return AttributeList::AT_Pure;	 // "gnu::pure"
+    case 'u':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "sed", 3) != 0)
+        break;
+      return AttributeList::AT_Used;	 // "gnu::used"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "eak", 3) != 0)
+        break;
+      return AttributeList::AT_Weak;	 // "gnu::weak"
+    }
+    break;
+  case 10:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case ':':	 // 1 string to match.
+      if (memcmp(Name.data()+1, ":noreturn", 9) != 0)
+        break;
+      return AttributeList::AT_CXX11NoReturn;	 // "::noreturn"
+    case 'g':	 // 5 strings to match.
+      if (memcmp(Name.data()+1, "nu::", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "lias", 4) != 0)
+          break;
+        return AttributeList::AT_Alias;	 // "gnu::alias"
+      case 'c':	 // 2 strings to match.
+        switch (Name[6]) {
+        default: break;
+        case 'd':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "ecl", 3) != 0)
+            break;
+          return AttributeList::AT_CDecl;	 // "gnu::cdecl"
+        case 'o':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "nst", 3) != 0)
+            break;
+          return AttributeList::AT_Const;	 // "gnu::const"
+        }
+        break;
+      case 'i':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "func", 4) != 0)
+          break;
+        return AttributeList::AT_IFunc;	 // "gnu::ifunc"
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "aked", 4) != 0)
+          break;
+        return AttributeList::AT_Naked;	 // "gnu::naked"
+      }
+      break;
+    }
+    break;
+  case 11:	 // 9 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case ':':	 // 1 string to match.
+      if (memcmp(Name.data()+1, ":nodiscard", 10) != 0)
+        break;
+      return AttributeList::AT_WarnUnusedResult;	 // "::nodiscard"
+    case 'g':	 // 8 strings to match.
+      if (memcmp(Name.data()+1, "nu::", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "ommon", 5) != 0)
+          break;
+        return AttributeList::AT_Common;	 // "gnu::common"
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "ormat", 5) != 0)
+          break;
+        return AttributeList::AT_Format;	 // "gnu::format"
+      case 'm':	 // 3 strings to match.
+        switch (Name[6]) {
+        default: break;
+        case 'a':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "lloc", 4) != 0)
+            break;
+          return AttributeList::AT_Restrict;	 // "gnu::malloc"
+        case 'i':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "ps16", 4) != 0)
+            break;
+          return AttributeList::AT_Mips16;	 // "gnu::mips16"
+        case 's':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "_abi", 4) != 0)
+            break;
+          return AttributeList::AT_MSABI;	 // "gnu::ms_abi"
+        }
+        break;
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "acked", 5) != 0)
+          break;
+        return AttributeList::AT_Packed;	 // "gnu::packed"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "arget", 5) != 0)
+          break;
+        return AttributeList::AT_Target;	 // "gnu::target"
+      case 'u':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "nused", 5) != 0)
+          break;
+        return AttributeList::AT_Unused;	 // "gnu::unused"
+      }
+      break;
+    }
+    break;
+  case 12:	 // 14 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case ':':	 // 1 string to match.
+      if (memcmp(Name.data()+1, ":deprecated", 11) != 0)
+        break;
+      return AttributeList::AT_Deprecated;	 // "::deprecated"
+    case 'g':	 // 13 strings to match.
+      if (memcmp(Name.data()+1, "nu::", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case '_':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "_const", 6) != 0)
+          break;
+        return AttributeList::AT_Const;	 // "gnu::__const"
+      case 'a':	 // 2 strings to match.
+        switch (Name[6]) {
+        default: break;
+        case 'b':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "i_tag", 5) != 0)
+            break;
+          return AttributeList::AT_AbiTag;	 // "gnu::abi_tag"
+        case 'l':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "igned", 5) != 0)
+            break;
+          return AttributeList::AT_Aligned;	 // "gnu::aligned"
+        }
+        break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "leanup", 6) != 0)
+          break;
+        return AttributeList::AT_Cleanup;	 // "gnu::cleanup"
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "latten", 6) != 0)
+          break;
+        return AttributeList::AT_Flatten;	 // "gnu::flatten"
+      case 'n':	 // 3 strings to match.
+        if (Name[6] != 'o')
+          break;
+        switch (Name[7]) {
+        default: break;
+        case 'd':	 // 1 string to match.
+          if (memcmp(Name.data()+8, "ebug", 4) != 0)
+            break;
+          return AttributeList::AT_NoDebug;	 // "gnu::nodebug"
+        case 'n':	 // 1 string to match.
+          if (memcmp(Name.data()+8, "null", 4) != 0)
+            break;
+          return AttributeList::AT_NonNull;	 // "gnu::nonnull"
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+8, "hrow", 4) != 0)
+            break;
+          return AttributeList::AT_NoThrow;	 // "gnu::nothrow"
+        }
+        break;
+      case 'r':	 // 2 strings to match.
+        if (memcmp(Name.data()+6, "eg", 2) != 0)
+          break;
+        switch (Name[8]) {
+        default: break;
+        case 'c':	 // 1 string to match.
+          if (memcmp(Name.data()+9, "all", 3) != 0)
+            break;
+          return AttributeList::AT_RegCall;	 // "gnu::regcall"
+        case 'p':	 // 1 string to match.
+          if (memcmp(Name.data()+9, "arm", 3) != 0)
+            break;
+          return AttributeList::AT_Regparm;	 // "gnu::regparm"
+        }
+        break;
+      case 's':	 // 2 strings to match.
+        switch (Name[6]) {
+        default: break;
+        case 'e':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "ction", 5) != 0)
+            break;
+          return AttributeList::AT_Section;	 // "gnu::section"
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "dcall", 5) != 0)
+            break;
+          return AttributeList::AT_StdCall;	 // "gnu::stdcall"
+        }
+        break;
+      case 'w':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "eakref", 6) != 0)
+          break;
+        return AttributeList::AT_WeakRef;	 // "gnu::weakref"
+      }
+      break;
+    }
+    break;
+  case 13:	 // 10 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case ':':	 // 1 string to match.
+      if (memcmp(Name.data()+1, ":fallthrough", 12) != 0)
+        break;
+      return AttributeList::AT_FallThrough;	 // "::fallthrough"
+    case 'g':	 // 9 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'n':	 // 8 strings to match.
+        if (memcmp(Name.data()+2, "u::", 3) != 0)
+          break;
+        switch (Name[5]) {
+        default: break;
+        case 'f':	 // 1 string to match.
+          if (memcmp(Name.data()+6, "astcall", 7) != 0)
+            break;
+          return AttributeList::AT_FastCall;	 // "gnu::fastcall"
+        case 'n':	 // 4 strings to match.
+          if (Name[6] != 'o')
+            break;
+          switch (Name[7]) {
+          default: break;
+          case 'c':	 // 1 string to match.
+            if (memcmp(Name.data()+8, "ommon", 5) != 0)
+              break;
+            return AttributeList::AT_NoCommon;	 // "gnu::nocommon"
+          case 'i':	 // 1 string to match.
+            if (memcmp(Name.data()+8, "nline", 5) != 0)
+              break;
+            return AttributeList::AT_NoInline;	 // "gnu::noinline"
+          case 'm':	 // 1 string to match.
+            if (memcmp(Name.data()+8, "ips16", 5) != 0)
+              break;
+            return AttributeList::AT_NoMips16;	 // "gnu::nomips16"
+          case 'r':	 // 1 string to match.
+            if (memcmp(Name.data()+8, "eturn", 5) != 0)
+              break;
+            return AttributeList::AT_NoReturn;	 // "gnu::noreturn"
+          }
+          break;
+        case 's':	 // 2 strings to match.
+          switch (Name[6]) {
+          default: break;
+          case 'e':	 // 1 string to match.
+            if (memcmp(Name.data()+7, "ntinel", 6) != 0)
+              break;
+            return AttributeList::AT_Sentinel;	 // "gnu::sentinel"
+          case 'y':	 // 1 string to match.
+            if (memcmp(Name.data()+7, "sv_abi", 6) != 0)
+              break;
+            return AttributeList::AT_SysVABI;	 // "gnu::sysv_abi"
+          }
+          break;
+        case 't':	 // 1 string to match.
+          if (memcmp(Name.data()+6, "hiscall", 7) != 0)
+            break;
+          return AttributeList::AT_ThisCall;	 // "gnu::thiscall"
+        }
+        break;
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "l::suppress", 11) != 0)
+          break;
+        return AttributeList::AT_Suppress;	 // "gsl::suppress"
+      }
+      break;
+    }
+    break;
+  case 14:	 // 8 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case ':':	 // 1 string to match.
+      if (memcmp(Name.data()+1, ":maybe_unused", 13) != 0)
+        break;
+      return AttributeList::AT_Unused;	 // "::maybe_unused"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lang::optnone", 13) != 0)
+        break;
+      return AttributeList::AT_OptimizeNone;	 // "clang::optnone"
+    case 'g':	 // 6 strings to match.
+      if (memcmp(Name.data()+1, "nu::", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'd':	 // 2 strings to match.
+        if (memcmp(Name.data()+6, "ll", 2) != 0)
+          break;
+        switch (Name[8]) {
+        default: break;
+        case 'e':	 // 1 string to match.
+          if (memcmp(Name.data()+9, "xport", 5) != 0)
+            break;
+          return AttributeList::AT_DLLExport;	 // "gnu::dllexport"
+        case 'i':	 // 1 string to match.
+          if (memcmp(Name.data()+9, "mport", 5) != 0)
+            break;
+          return AttributeList::AT_DLLImport;	 // "gnu::dllimport"
+        }
+        break;
+      case 'm':	 // 2 strings to match.
+        switch (Name[6]) {
+        default: break;
+        case 'a':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "y_alias", 7) != 0)
+            break;
+          return AttributeList::AT_MayAlias;	 // "gnu::may_alias"
+        case 's':	 // 1 string to match.
+          if (memcmp(Name.data()+7, "_struct", 7) != 0)
+            break;
+          return AttributeList::AT_MSStruct;	 // "gnu::ms_struct"
+        }
+        break;
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "wiftcall", 8) != 0)
+          break;
+        return AttributeList::AT_SwiftCall;	 // "gnu::swiftcall"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "ls_model", 8) != 0)
+          break;
+        return AttributeList::AT_TLSModel;	 // "gnu::tls_model"
+      }
+      break;
+    }
+    break;
+  case 15:	 // 6 strings to match.
+    if (memcmp(Name.data()+0, "gnu::", 5) != 0)
+      break;
+    switch (Name[5]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "lloc_size", 9) != 0)
+        break;
+      return AttributeList::AT_AllocSize;	 // "gnu::alloc_size"
+    case 'd':	 // 2 strings to match.
+      if (Name[6] != 'e')
+        break;
+      switch (Name[7]) {
+      default: break;
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "recated", 7) != 0)
+          break;
+        return AttributeList::AT_Deprecated;	 // "gnu::deprecated"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "tructor", 7) != 0)
+          break;
+        return AttributeList::AT_Destructor;	 // "gnu::destructor"
+      }
+      break;
+    case 'f':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "ormat_arg", 9) != 0)
+        break;
+      return AttributeList::AT_FormatArg;	 // "gnu::format_arg"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "nu_inline", 9) != 0)
+        break;
+      return AttributeList::AT_GNUInline;	 // "gnu::gnu_inline"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "isibility", 9) != 0)
+        break;
+      return AttributeList::AT_Visibility;	 // "gnu::visibility"
+    }
+    break;
+  case 16:	 // 3 strings to match.
+    if (memcmp(Name.data()+0, "gnu::", 5) != 0)
+      break;
+    switch (Name[5]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "lloc_align", 10) != 0)
+        break;
+      return AttributeList::AT_AllocAlign;	 // "gnu::alloc_align"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "onstructor", 10) != 0)
+        break;
+      return AttributeList::AT_Constructor;	 // "gnu::constructor"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "ector_size", 10) != 0)
+        break;
+      return AttributeList::AT_VectorSize;	 // "gnu::vector_size"
+    }
+    break;
+  case 17:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "clang::c", 8) != 0)
+      break;
+    switch (Name[8]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+9, "pability", 8) != 0)
+        break;
+      return AttributeList::AT_Capability;	 // "clang::capability"
+    case 'o':	 // 1 string to match.
+      if (memcmp(Name.data()+9, "nvergent", 8) != 0)
+        break;
+      return AttributeList::AT_Convergent;	 // "clang::convergent"
+    }
+    break;
+  case 18:	 // 6 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 3 strings to match.
+      if (memcmp(Name.data()+1, "lang::", 6) != 0)
+        break;
+      switch (Name[7]) {
+      default: break;
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "allthrough", 10) != 0)
+          break;
+        return AttributeList::AT_FallThrough;	 // "clang::fallthrough"
+      case 'n':	 // 2 strings to match.
+        if (Name[8] != 'o')
+          break;
+        switch (Name[9]) {
+        default: break;
+        case '_':	 // 1 string to match.
+          if (memcmp(Name.data()+10, "sanitize", 8) != 0)
+            break;
+          return AttributeList::AT_NoSanitize;	 // "clang::no_sanitize"
+        case 'd':	 // 1 string to match.
+          if (memcmp(Name.data()+10, "uplicate", 8) != 0)
+            break;
+          return AttributeList::AT_NoDuplicate;	 // "clang::noduplicate"
+        }
+        break;
+      }
+      break;
+    case 'g':	 // 3 strings to match.
+      if (memcmp(Name.data()+1, "nu::", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "lways_inline", 12) != 0)
+          break;
+        return AttributeList::AT_AlwaysInline;	 // "gnu::always_inline"
+      case 'r':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "eturns_twice", 12) != 0)
+          break;
+        return AttributeList::AT_ReturnsTwice;	 // "gnu::returns_twice"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "wift_context", 12) != 0)
+          break;
+        return AttributeList::AT_SwiftContext;	 // "gnu::swift_context"
+      }
+      break;
+    }
+    break;
+  case 19:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "gnu::", 5) != 0)
+      break;
+    switch (Name[5]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "ssume_aligned", 13) != 0)
+        break;
+      return AttributeList::AT_AssumeAligned;	 // "gnu::assume_aligned"
+    case 'n':	 // 1 string to match.
+      if (memcmp(Name.data()+6, "o_split_stack", 13) != 0)
+        break;
+      return AttributeList::AT_NoSplitStack;	 // "gnu::no_split_stack"
+    }
+    break;
+  case 20:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case ':':	 // 1 string to match.
+      if (memcmp(Name.data()+1, ":carries_dependency", 19) != 0)
+        break;
+      return AttributeList::AT_CarriesDependency;	 // "::carries_dependency"
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lang::xray_log_args", 19) != 0)
+        break;
+      return AttributeList::AT_XRayLogArgs;	 // "clang::xray_log_args"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nu::returns_nonnull", 19) != 0)
+        break;
+      return AttributeList::AT_ReturnsNonNull;	 // "gnu::returns_nonnull"
+    }
+    break;
+  case 22:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "lang::", 6) != 0)
+        break;
+      switch (Name[7]) {
+      default: break;
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "ot_tail_called", 14) != 0)
+          break;
+        return AttributeList::AT_NotTailCalled;	 // "clang::not_tail_called"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "ype_visibility", 14) != 0)
+          break;
+        return AttributeList::AT_TypeVisibility;	 // "clang::type_visibility"
+      }
+      break;
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nu::transparent_union", 21) != 0)
+        break;
+      return AttributeList::AT_TransparentUnion;	 // "gnu::transparent_union"
+    }
+    break;
+  case 23:	 // 4 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lang::internal_linkage", 22) != 0)
+        break;
+      return AttributeList::AT_InternalLinkage;	 // "clang::internal_linkage"
+    case 'g':	 // 3 strings to match.
+      if (memcmp(Name.data()+1, "nu::", 4) != 0)
+        break;
+      switch (Name[5]) {
+      default: break;
+      case 'n':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "o_sanitize_thread", 17) != 0)
+          break;
+        return AttributeList::AT_NoSanitizeSpecific;	 // "gnu::no_sanitize_thread"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "wift_error_result", 17) != 0)
+          break;
+        return AttributeList::AT_SwiftErrorResult;	 // "gnu::swift_error_result"
+      case 'w':	 // 1 string to match.
+        if (memcmp(Name.data()+6, "arn_unused_result", 17) != 0)
+          break;
+        return AttributeList::AT_WarnUnusedResult;	 // "gnu::warn_unused_result"
+      }
+      break;
+    }
+    break;
+  case 24:	 // 3 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 2 strings to match.
+      if (memcmp(Name.data()+1, "lang::", 6) != 0)
+        break;
+      switch (Name[7]) {
+      default: break;
+      case 'a':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "ssert_capability", 16) != 0)
+          break;
+        return AttributeList::AT_AssertCapability;	 // "clang::assert_capability"
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+8, "hared_capability", 16) != 0)
+          break;
+        return AttributeList::AT_Capability;	 // "clang::shared_capability"
+      }
+      break;
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nu::no_sanitize_address", 23) != 0)
+        break;
+      return AttributeList::AT_NoSanitizeSpecific;	 // "gnu::no_sanitize_address"
+    }
+    break;
+  case 25:	 // 5 strings to match.
+    if (memcmp(Name.data()+0, "clang::", 7) != 0)
+      break;
+    switch (Name[7]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "cquire_capability", 17) != 0)
+        break;
+      return AttributeList::AT_AcquireCapability;	 // "clang::acquire_capability"
+    case 'd':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "isable_tail_calls", 17) != 0)
+        break;
+      return AttributeList::AT_DisableTailCalls;	 // "clang::disable_tail_calls"
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "num_extensibility", 17) != 0)
+        break;
+      return AttributeList::AT_EnumExtensibility;	 // "clang::enum_extensibility"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "elease_capability", 17) != 0)
+        break;
+      return AttributeList::AT_ReleaseCapability;	 // "clang::release_capability"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "arn_unused_result", 17) != 0)
+        break;
+      return AttributeList::AT_WarnUnusedResult;	 // "clang::warn_unused_result"
+    }
+    break;
+  case 26:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lang::requires_capability", 25) != 0)
+        break;
+      return AttributeList::AT_RequiresCapability;	 // "clang::requires_capability"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nu::swift_indirect_result", 25) != 0)
+        break;
+      return AttributeList::AT_SwiftIndirectResult;	 // "gnu::swift_indirect_result"
+    }
+    break;
+  case 27:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "gnu::no_instrument_function", 27) != 0)
+      break;
+    return AttributeList::AT_NoInstrumentFunction;	 // "gnu::no_instrument_function"
+  case 28:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "clang::", 7) != 0)
+      break;
+    switch (Name[7]) {
+    default: break;
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "to_visibility_public", 20) != 0)
+        break;
+      return AttributeList::AT_LTOVisibilityPublic;	 // "clang::lto_visibility_public"
+    case 'x':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "ray_never_instrument", 20) != 0)
+        break;
+      return AttributeList::AT_XRayInstrument;	 // "clang::xray_never_instrument"
+    }
+    break;
+  case 29:	 // 3 strings to match.
+    if (memcmp(Name.data()+0, "clang::", 7) != 0)
+      break;
+    switch (Name[7]) {
+    default: break;
+    case 'e':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "xternal_source_symbol", 21) != 0)
+        break;
+      return AttributeList::AT_ExternalSourceSymbol;	 // "clang::external_source_symbol"
+    case 't':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "ry_acquire_capability", 21) != 0)
+        break;
+      return AttributeList::AT_TryAcquireCapability;	 // "clang::try_acquire_capability"
+    case 'x':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "ray_always_instrument", 21) != 0)
+        break;
+      return AttributeList::AT_XRayInstrument;	 // "clang::xray_always_instrument"
+    }
+    break;
+  case 31:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lang::assert_shared_capability", 30) != 0)
+        break;
+      return AttributeList::AT_AssertCapability;	 // "clang::assert_shared_capability"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "nu::no_address_safety_analysis", 30) != 0)
+        break;
+      return AttributeList::AT_NoSanitizeSpecific;	 // "gnu::no_address_safety_analysis"
+    }
+    break;
+  case 32:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "clang::", 7) != 0)
+      break;
+    switch (Name[7]) {
+    default: break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "cquire_shared_capability", 24) != 0)
+        break;
+      return AttributeList::AT_AcquireCapability;	 // "clang::acquire_shared_capability"
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+8, "elease_shared_capability", 24) != 0)
+        break;
+      return AttributeList::AT_ReleaseCapability;	 // "clang::release_shared_capability"
+    }
+    break;
+  case 33:	 // 2 strings to match.
+    if (memcmp(Name.data()+0, "clang::re", 9) != 0)
+      break;
+    switch (Name[9]) {
+    default: break;
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+10, "ease_generic_capability", 23) != 0)
+        break;
+      return AttributeList::AT_ReleaseCapability;	 // "clang::release_generic_capability"
+    case 'q':	 // 1 string to match.
+      if (memcmp(Name.data()+10, "uires_shared_capability", 23) != 0)
+        break;
+      return AttributeList::AT_RequiresCapability;	 // "clang::requires_shared_capability"
+    }
+    break;
+  case 36:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "clang::try_acquire_shared_capability", 36) != 0)
+      break;
+    return AttributeList::AT_TryAcquireCapability;	 // "clang::try_acquire_shared_capability"
+  case 38:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "clang::require_constant_initialization", 38) != 0)
+      break;
+    return AttributeList::AT_RequireConstantInit;	 // "clang::require_constant_initialization"
+  }
+  } else if (AttributeList::AS_Keyword == Syntax || AttributeList::AS_ContextSensitiveKeyword == Syntax) {
+  switch (Name.size()) {
+  default: break;
+  case 5:	 // 2 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "_w64", 4) != 0)
+        break;
+      return AttributeList::IgnoredAttribute;	 // "__w64"
+    case 'l':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ocal", 4) != 0)
+        break;
+      return AttributeList::AT_OpenCLLocalAddressSpace;	 // "local"
+    }
+    break;
+  case 6:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 3 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case '_':	 // 2 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 's':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "ptr", 3) != 0)
+            break;
+          return AttributeList::AT_SPtr;	 // "__sptr"
+        case 'u':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "ptr", 3) != 0)
+            break;
+          return AttributeList::AT_UPtr;	 // "__uptr"
+        }
+        break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "decl", 4) != 0)
+          break;
+        return AttributeList::AT_CDecl;	 // "_cdecl"
+      }
+      break;
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lobal", 5) != 0)
+        break;
+      return AttributeList::AT_OpenCLGlobalAddressSpace;	 // "global"
+    case 'k':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ernel", 5) != 0)
+        break;
+      return AttributeList::AT_OpenCLKernel;	 // "kernel"
+    }
+    break;
+  case 7:	 // 8 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 5 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case '_':	 // 4 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'c':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "decl", 4) != 0)
+            break;
+          return AttributeList::AT_CDecl;	 // "__cdecl"
+        case 'l':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "ocal", 4) != 0)
+            break;
+          return AttributeList::AT_OpenCLLocalAddressSpace;	 // "__local"
+        case 'p':	 // 2 strings to match.
+          if (memcmp(Name.data()+3, "tr", 2) != 0)
+            break;
+          switch (Name[5]) {
+          default: break;
+          case '3':	 // 1 string to match.
+            if (Name[6] != '2')
+              break;
+            return AttributeList::AT_Ptr32;	 // "__ptr32"
+          case '6':	 // 1 string to match.
+            if (Name[6] != '4')
+              break;
+            return AttributeList::AT_Ptr64;	 // "__ptr64"
+          }
+          break;
+        }
+        break;
+      case 'p':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ascal", 5) != 0)
+          break;
+        return AttributeList::AT_Pascal;	 // "_pascal"
+      }
+      break;
+    case 'a':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "lignas", 6) != 0)
+        break;
+      return AttributeList::AT_Aligned;	 // "alignas"
+    case 'g':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "eneric", 6) != 0)
+        break;
+      return AttributeList::AT_OpenCLGenericAddressSpace;	 // "generic"
+    case 'p':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rivate", 6) != 0)
+        break;
+      return AttributeList::AT_OpenCLPrivateAddressSpace;	 // "private"
+    }
+    break;
+  case 8:	 // 8 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 7 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'A':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "lignas", 6) != 0)
+          break;
+        return AttributeList::AT_Aligned;	 // "_Alignas"
+      case 'N':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "onnull", 6) != 0)
+          break;
+        return AttributeList::AT_TypeNonNull;	 // "_Nonnull"
+      case '_':	 // 4 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'g':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "lobal", 5) != 0)
+            break;
+          return AttributeList::AT_OpenCLGlobalAddressSpace;	 // "__global"
+        case 'k':	 // 2 strings to match.
+          switch (Name[3]) {
+          default: break;
+          case 'e':	 // 1 string to match.
+            if (memcmp(Name.data()+4, "rnel", 4) != 0)
+              break;
+            return AttributeList::AT_OpenCLKernel;	 // "__kernel"
+          case 'i':	 // 1 string to match.
+            if (memcmp(Name.data()+4, "ndof", 4) != 0)
+              break;
+            return AttributeList::AT_ObjCKindOf;	 // "__kindof"
+          }
+          break;
+        case 'p':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "ascal", 5) != 0)
+            break;
+          return AttributeList::AT_Pascal;	 // "__pascal"
+        }
+        break;
+      case 's':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "tdcall", 6) != 0)
+          break;
+        return AttributeList::AT_StdCall;	 // "_stdcall"
+      }
+      break;
+    case 'c':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "onstant", 7) != 0)
+        break;
+      return AttributeList::AT_OpenCLConstantAddressSpace;	 // "constant"
+    }
+    break;
+  case 9:	 // 8 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 7 strings to match.
+      switch (Name[1]) {
+      default: break;
+      case 'N':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "ullable", 7) != 0)
+          break;
+        return AttributeList::AT_TypeNullable;	 // "_Nullable"
+      case '_':	 // 4 strings to match.
+        switch (Name[2]) {
+        default: break;
+        case 'g':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "eneric", 6) != 0)
+            break;
+          return AttributeList::AT_OpenCLGenericAddressSpace;	 // "__generic"
+        case 'p':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "rivate", 6) != 0)
+            break;
+          return AttributeList::AT_OpenCLPrivateAddressSpace;	 // "__private"
+        case 'r':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "egcall", 6) != 0)
+            break;
+          return AttributeList::AT_RegCall;	 // "__regcall"
+        case 's':	 // 1 string to match.
+          if (memcmp(Name.data()+3, "tdcall", 6) != 0)
+            break;
+          return AttributeList::AT_StdCall;	 // "__stdcall"
+        }
+        break;
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "astcall", 7) != 0)
+          break;
+        return AttributeList::AT_FastCall;	 // "_fastcall"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+2, "hiscall", 7) != 0)
+          break;
+        return AttributeList::AT_ThisCall;	 // "_thiscall"
+      }
+      break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ead_only", 8) != 0)
+        break;
+      return AttributeList::AT_OpenCLAccess;	 // "read_only"
+    }
+    break;
+  case 10:	 // 5 strings to match.
+    switch (Name[0]) {
+    default: break;
+    case '_':	 // 3 strings to match.
+      if (Name[1] != '_')
+        break;
+      switch (Name[2]) {
+      default: break;
+      case 'c':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "onstant", 7) != 0)
+          break;
+        return AttributeList::AT_OpenCLConstantAddressSpace;	 // "__constant"
+      case 'f':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "astcall", 7) != 0)
+          break;
+        return AttributeList::AT_FastCall;	 // "__fastcall"
+      case 't':	 // 1 string to match.
+        if (memcmp(Name.data()+3, "hiscall", 7) != 0)
+          break;
+        return AttributeList::AT_ThisCall;	 // "__thiscall"
+      }
+      break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "ead_write", 9) != 0)
+        break;
+      return AttributeList::AT_OpenCLAccess;	 // "read_write"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+1, "rite_only", 9) != 0)
+        break;
+      return AttributeList::AT_OpenCLAccess;	 // "write_only"
+    }
+    break;
+  case 11:	 // 2 strings to match.
+    if (Name[0] != '_')
+      break;
+    switch (Name[1]) {
+    default: break;
+    case '_':	 // 1 string to match.
+      if (memcmp(Name.data()+2, "read_only", 9) != 0)
+        break;
+      return AttributeList::AT_OpenCLAccess;	 // "__read_only"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+2, "ectorcall", 9) != 0)
+        break;
+      return AttributeList::AT_VectorCall;	 // "_vectorcall"
+    }
+    break;
+  case 12:	 // 3 strings to match.
+    if (memcmp(Name.data()+0, "__", 2) != 0)
+      break;
+    switch (Name[2]) {
+    default: break;
+    case 'r':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "ead_write", 9) != 0)
+        break;
+      return AttributeList::AT_OpenCLAccess;	 // "__read_write"
+    case 'v':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "ectorcall", 9) != 0)
+        break;
+      return AttributeList::AT_VectorCall;	 // "__vectorcall"
+    case 'w':	 // 1 string to match.
+      if (memcmp(Name.data()+3, "rite_only", 9) != 0)
+        break;
+      return AttributeList::AT_OpenCLAccess;	 // "__write_only"
+    }
+    break;
+  case 13:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__forceinline", 13) != 0)
+      break;
+    return AttributeList::AT_AlwaysInline;	 // "__forceinline"
+  case 17:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "_Null_unspecified", 17) != 0)
+      break;
+    return AttributeList::AT_TypeNullUnspecified;	 // "_Null_unspecified"
+  case 20:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__single_inheritance", 20) != 0)
+      break;
+    return AttributeList::AT_MSInheritance;	 // "__single_inheritance"
+  case 21:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__virtual_inheritance", 21) != 0)
+      break;
+    return AttributeList::AT_MSInheritance;	 // "__virtual_inheritance"
+  case 22:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__multiple_inheritance", 22) != 0)
+      break;
+    return AttributeList::AT_MSInheritance;	 // "__multiple_inheritance"
+  case 25:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "__unspecified_inheritance", 25) != 0)
+      break;
+    return AttributeList::AT_MSInheritance;	 // "__unspecified_inheritance"
+  }
+  } else if (AttributeList::AS_Pragma == Syntax) {
+  switch (Name.size()) {
+  default: break;
+  case 4:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "loop", 4) != 0)
+      break;
+    return AttributeList::AT_LoopHint;	 // "loop"
+  case 6:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "unroll", 6) != 0)
+      break;
+    return AttributeList::AT_LoopHint;	 // "unroll"
+  case 8:	 // 1 string to match.
+    if (memcmp(Name.data()+0, "nounroll", 8) != 0)
+      break;
+    return AttributeList::AT_LoopHint;	 // "nounroll"
+  }
+  }
+  return AttributeList::UnknownAttribute;
+}
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrList.inc b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrList.inc
new file mode 100644
index 0000000..c599a0e
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrParsedAttrList.inc
@@ -0,0 +1,232 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* List of all attributes that Clang recognizes                               *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef PARSED_ATTR
+#define PARSED_ATTR(NAME) NAME
+#endif
+
+PARSED_ATTR(AMDGPUFlatWorkGroupSize)
+PARSED_ATTR(AMDGPUNumSGPR)
+PARSED_ATTR(AMDGPUNumVGPR)
+PARSED_ATTR(AMDGPUWavesPerEU)
+PARSED_ATTR(Interrupt)
+PARSED_ATTR(AVRSignal)
+PARSED_ATTR(AbiTag)
+PARSED_ATTR(AcquireCapability)
+PARSED_ATTR(AcquiredAfter)
+PARSED_ATTR(AcquiredBefore)
+PARSED_ATTR(AddressSpace)
+PARSED_ATTR(Alias)
+PARSED_ATTR(AlignValue)
+PARSED_ATTR(Aligned)
+PARSED_ATTR(AllocAlign)
+PARSED_ATTR(AllocSize)
+PARSED_ATTR(AlwaysInline)
+PARSED_ATTR(AnalyzerNoReturn)
+PARSED_ATTR(Annotate)
+PARSED_ATTR(ArcWeakrefUnavailable)
+PARSED_ATTR(ArgumentWithTypeTag)
+PARSED_ATTR(AssertCapability)
+PARSED_ATTR(AssertExclusiveLock)
+PARSED_ATTR(AssertSharedLock)
+PARSED_ATTR(AssumeAligned)
+PARSED_ATTR(Availability)
+PARSED_ATTR(Blocks)
+PARSED_ATTR(CDecl)
+PARSED_ATTR(CFAuditedTransfer)
+PARSED_ATTR(CFConsumed)
+PARSED_ATTR(CFReturnsNotRetained)
+PARSED_ATTR(CFReturnsRetained)
+PARSED_ATTR(CFUnknownTransfer)
+PARSED_ATTR(CUDAConstant)
+PARSED_ATTR(CUDADevice)
+PARSED_ATTR(CUDAGlobal)
+PARSED_ATTR(CUDAHost)
+PARSED_ATTR(CUDAInvalidTarget)
+PARSED_ATTR(CUDALaunchBounds)
+PARSED_ATTR(CUDAShared)
+PARSED_ATTR(CXX11NoReturn)
+PARSED_ATTR(CallableWhen)
+PARSED_ATTR(Capability)
+PARSED_ATTR(CarriesDependency)
+PARSED_ATTR(Cleanup)
+PARSED_ATTR(Cold)
+PARSED_ATTR(Common)
+PARSED_ATTR(Const)
+PARSED_ATTR(Constructor)
+PARSED_ATTR(Consumable)
+PARSED_ATTR(ConsumableAutoCast)
+PARSED_ATTR(ConsumableSetOnRead)
+PARSED_ATTR(Convergent)
+PARSED_ATTR(DLLExport)
+PARSED_ATTR(DLLImport)
+PARSED_ATTR(Deprecated)
+PARSED_ATTR(Destructor)
+PARSED_ATTR(DiagnoseIf)
+PARSED_ATTR(DisableTailCalls)
+PARSED_ATTR(EmptyBases)
+PARSED_ATTR(EnableIf)
+PARSED_ATTR(EnumExtensibility)
+PARSED_ATTR(ExclusiveTrylockFunction)
+PARSED_ATTR(ExtVectorType)
+PARSED_ATTR(ExternalSourceSymbol)
+PARSED_ATTR(FallThrough)
+PARSED_ATTR(FastCall)
+PARSED_ATTR(FlagEnum)
+PARSED_ATTR(Flatten)
+PARSED_ATTR(Format)
+PARSED_ATTR(FormatArg)
+PARSED_ATTR(GNUInline)
+PARSED_ATTR(GuardedBy)
+PARSED_ATTR(GuardedVar)
+PARSED_ATTR(Hot)
+PARSED_ATTR(IBAction)
+PARSED_ATTR(IBOutlet)
+PARSED_ATTR(IBOutletCollection)
+PARSED_ATTR(IFunc)
+PARSED_ATTR(InitPriority)
+PARSED_ATTR(IntelOclBicc)
+PARSED_ATTR(InternalLinkage)
+PARSED_ATTR(LTOVisibilityPublic)
+PARSED_ATTR(LayoutVersion)
+PARSED_ATTR(LockReturned)
+PARSED_ATTR(Lockable)
+PARSED_ATTR(LocksExcluded)
+PARSED_ATTR(LoopHint)
+PARSED_ATTR(MSABI)
+PARSED_ATTR(MSInheritance)
+PARSED_ATTR(MSNoVTable)
+PARSED_ATTR(MSStruct)
+PARSED_ATTR(MayAlias)
+PARSED_ATTR(MinSize)
+PARSED_ATTR(Mips16)
+PARSED_ATTR(Mode)
+PARSED_ATTR(NSConsumed)
+PARSED_ATTR(NSConsumesSelf)
+PARSED_ATTR(NSReturnsAutoreleased)
+PARSED_ATTR(NSReturnsNotRetained)
+PARSED_ATTR(NSReturnsRetained)
+PARSED_ATTR(Naked)
+PARSED_ATTR(NeonPolyVectorType)
+PARSED_ATTR(NeonVectorType)
+PARSED_ATTR(NoAlias)
+PARSED_ATTR(NoCommon)
+PARSED_ATTR(NoDebug)
+PARSED_ATTR(NoDuplicate)
+PARSED_ATTR(NoInline)
+PARSED_ATTR(NoInstrumentFunction)
+PARSED_ATTR(NoMips16)
+PARSED_ATTR(NoReturn)
+PARSED_ATTR(NoSanitize)
+PARSED_ATTR(NoSanitizeSpecific)
+PARSED_ATTR(NoSplitStack)
+PARSED_ATTR(NoThreadSafetyAnalysis)
+PARSED_ATTR(NoThrow)
+PARSED_ATTR(NonNull)
+PARSED_ATTR(NotTailCalled)
+PARSED_ATTR(ObjCBoxable)
+PARSED_ATTR(ObjCBridge)
+PARSED_ATTR(ObjCBridgeMutable)
+PARSED_ATTR(ObjCBridgeRelated)
+PARSED_ATTR(ObjCDesignatedInitializer)
+PARSED_ATTR(ObjCException)
+PARSED_ATTR(ObjCExplicitProtocolImpl)
+PARSED_ATTR(ObjCGC)
+PARSED_ATTR(ObjCIndependentClass)
+PARSED_ATTR(ObjCKindOf)
+PARSED_ATTR(ObjCMethodFamily)
+PARSED_ATTR(ObjCNSObject)
+PARSED_ATTR(ObjCOwnership)
+PARSED_ATTR(ObjCPreciseLifetime)
+PARSED_ATTR(ObjCRequiresPropertyDefs)
+PARSED_ATTR(ObjCRequiresSuper)
+PARSED_ATTR(ObjCReturnsInnerPointer)
+PARSED_ATTR(ObjCRootClass)
+PARSED_ATTR(ObjCRuntimeName)
+PARSED_ATTR(ObjCRuntimeVisible)
+PARSED_ATTR(ObjCSubclassingRestricted)
+PARSED_ATTR(OpenCLAccess)
+PARSED_ATTR(OpenCLConstantAddressSpace)
+PARSED_ATTR(OpenCLGenericAddressSpace)
+PARSED_ATTR(OpenCLGlobalAddressSpace)
+PARSED_ATTR(OpenCLKernel)
+PARSED_ATTR(OpenCLLocalAddressSpace)
+PARSED_ATTR(OpenCLNoSVM)
+PARSED_ATTR(OpenCLPrivateAddressSpace)
+PARSED_ATTR(OpenCLUnrollHint)
+PARSED_ATTR(OptimizeNone)
+PARSED_ATTR(Overloadable)
+PARSED_ATTR(Ownership)
+PARSED_ATTR(Packed)
+PARSED_ATTR(ParamTypestate)
+PARSED_ATTR(Pascal)
+PARSED_ATTR(PassObjectSize)
+PARSED_ATTR(Pcs)
+PARSED_ATTR(PreserveAll)
+PARSED_ATTR(PreserveMost)
+PARSED_ATTR(PtGuardedBy)
+PARSED_ATTR(PtGuardedVar)
+PARSED_ATTR(Ptr32)
+PARSED_ATTR(Ptr64)
+PARSED_ATTR(Pure)
+PARSED_ATTR(RegCall)
+PARSED_ATTR(Regparm)
+PARSED_ATTR(ReleaseCapability)
+PARSED_ATTR(RenderScriptKernel)
+PARSED_ATTR(ReqdWorkGroupSize)
+PARSED_ATTR(RequireConstantInit)
+PARSED_ATTR(RequiresCapability)
+PARSED_ATTR(Restrict)
+PARSED_ATTR(ReturnTypestate)
+PARSED_ATTR(ReturnsNonNull)
+PARSED_ATTR(ReturnsTwice)
+PARSED_ATTR(SPtr)
+PARSED_ATTR(ScopedLockable)
+PARSED_ATTR(Section)
+PARSED_ATTR(SelectAny)
+PARSED_ATTR(Sentinel)
+PARSED_ATTR(SetTypestate)
+PARSED_ATTR(SharedTrylockFunction)
+PARSED_ATTR(StdCall)
+PARSED_ATTR(Suppress)
+PARSED_ATTR(SwiftCall)
+PARSED_ATTR(SwiftContext)
+PARSED_ATTR(SwiftErrorResult)
+PARSED_ATTR(SwiftIndirectResult)
+PARSED_ATTR(SysVABI)
+PARSED_ATTR(TLSModel)
+PARSED_ATTR(Target)
+PARSED_ATTR(TestTypestate)
+PARSED_ATTR(ThisCall)
+PARSED_ATTR(Thread)
+PARSED_ATTR(TransparentUnion)
+PARSED_ATTR(TryAcquireCapability)
+PARSED_ATTR(TypeNonNull)
+PARSED_ATTR(TypeNullUnspecified)
+PARSED_ATTR(TypeNullable)
+PARSED_ATTR(TypeTagForDatatype)
+PARSED_ATTR(TypeVisibility)
+PARSED_ATTR(UPtr)
+PARSED_ATTR(Unavailable)
+PARSED_ATTR(Unused)
+PARSED_ATTR(Used)
+PARSED_ATTR(Uuid)
+PARSED_ATTR(VecReturn)
+PARSED_ATTR(VecTypeHint)
+PARSED_ATTR(VectorCall)
+PARSED_ATTR(VectorSize)
+PARSED_ATTR(Visibility)
+PARSED_ATTR(WarnUnused)
+PARSED_ATTR(WarnUnusedResult)
+PARSED_ATTR(Weak)
+PARSED_ATTR(WeakImport)
+PARSED_ATTR(WeakRef)
+PARSED_ATTR(WorkGroupSizeHint)
+PARSED_ATTR(X86ForceAlignArgPointer)
+PARSED_ATTR(XRayInstrument)
+PARSED_ATTR(XRayLogArgs)
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrSpellingListIndex.inc b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrSpellingListIndex.inc
new file mode 100644
index 0000000..975dd14
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrSpellingListIndex.inc
@@ -0,0 +1,1453 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Code to translate different attribute spellings into internal identifiers  *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+  switch (AttrKind) {
+  case AT_AMDGPUFlatWorkGroupSize: {
+    if (Name == "amdgpu_flat_work_group_size" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AMDGPUNumSGPR: {
+    if (Name == "amdgpu_num_sgpr" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AMDGPUNumVGPR: {
+    if (Name == "amdgpu_num_vgpr" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AMDGPUWavesPerEU: {
+    if (Name == "amdgpu_waves_per_eu" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Interrupt: {
+    if (Name == "interrupt" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AVRSignal: {
+    if (Name == "signal" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AbiTag: {
+    if (Name == "abi_tag" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "abi_tag" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_AcquireCapability: {
+    if (Name == "acquire_capability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "acquire_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "acquire_shared_capability" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "acquire_shared_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 3;
+    if (Name == "exclusive_lock_function" && SyntaxUsed == 0 && Scope == "")
+        return 4;
+    if (Name == "shared_lock_function" && SyntaxUsed == 0 && Scope == "")
+        return 5;
+    break;
+  }
+  case AT_AcquiredAfter: {
+    if (Name == "acquired_after" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AcquiredBefore: {
+    if (Name == "acquired_before" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AddressSpace: {
+    if (Name == "address_space" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Alias: {
+    if (Name == "alias" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "alias" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_AlignValue: {
+    if (Name == "align_value" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Aligned: {
+    if (Name == "aligned" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "aligned" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "align" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    if (Name == "alignas" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    if (Name == "_Alignas" && SyntaxUsed == 4 && Scope == "")
+        return 4;
+    break;
+  }
+  case AT_AllocAlign: {
+    if (Name == "alloc_align" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "alloc_align" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_AllocSize: {
+    if (Name == "alloc_size" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "alloc_size" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_AlwaysInline: {
+    if (Name == "always_inline" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "always_inline" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__forceinline" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_AnalyzerNoReturn: {
+    if (Name == "analyzer_noreturn" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Annotate: {
+    if (Name == "annotate" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ArcWeakrefUnavailable: {
+    if (Name == "objc_arc_weak_reference_unavailable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ArgumentWithTypeTag: {
+    if (Name == "argument_with_type_tag" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "pointer_with_type_tag" && SyntaxUsed == 0 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_AssertCapability: {
+    if (Name == "assert_capability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "assert_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "assert_shared_capability" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "assert_shared_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 3;
+    break;
+  }
+  case AT_AssertExclusiveLock: {
+    if (Name == "assert_exclusive_lock" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AssertSharedLock: {
+    if (Name == "assert_shared_lock" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_AssumeAligned: {
+    if (Name == "assume_aligned" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "assume_aligned" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Availability: {
+    if (Name == "availability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Blocks: {
+    if (Name == "blocks" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CDecl: {
+    if (Name == "cdecl" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "cdecl" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__cdecl" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    if (Name == "_cdecl" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    break;
+  }
+  case AT_CFAuditedTransfer: {
+    if (Name == "cf_audited_transfer" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CFConsumed: {
+    if (Name == "cf_consumed" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CFReturnsNotRetained: {
+    if (Name == "cf_returns_not_retained" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CFReturnsRetained: {
+    if (Name == "cf_returns_retained" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CFUnknownTransfer: {
+    if (Name == "cf_unknown_transfer" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CUDAConstant: {
+    if (Name == "constant" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__constant__" && SyntaxUsed == 2 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_CUDADevice: {
+    if (Name == "device" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__device__" && SyntaxUsed == 2 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_CUDAGlobal: {
+    if (Name == "global" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__global__" && SyntaxUsed == 2 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_CUDAHost: {
+    if (Name == "host" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__host__" && SyntaxUsed == 2 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_CUDAInvalidTarget: {
+    break;
+  }
+  case AT_CUDALaunchBounds: {
+    if (Name == "launch_bounds" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__launch_bounds__" && SyntaxUsed == 2 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_CUDAShared: {
+    if (Name == "shared" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__shared__" && SyntaxUsed == 2 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_CXX11NoReturn: {
+    if (Name == "noreturn" && SyntaxUsed == 1 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_CallableWhen: {
+    if (Name == "callable_when" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Capability: {
+    if (Name == "capability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "shared_capability" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "shared_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 3;
+    break;
+  }
+  case AT_CarriesDependency: {
+    if (Name == "carries_dependency" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "carries_dependency" && SyntaxUsed == 1 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_Cleanup: {
+    if (Name == "cleanup" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "cleanup" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Cold: {
+    if (Name == "cold" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "cold" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Common: {
+    if (Name == "common" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "common" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Const: {
+    if (Name == "const" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "const" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__const" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "__const" && SyntaxUsed == 1 && Scope == "gnu")
+        return 3;
+    break;
+  }
+  case AT_Constructor: {
+    if (Name == "constructor" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "constructor" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Consumable: {
+    if (Name == "consumable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ConsumableAutoCast: {
+    if (Name == "consumable_auto_cast_state" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ConsumableSetOnRead: {
+    if (Name == "consumable_set_state_on_read" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Convergent: {
+    if (Name == "convergent" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "convergent" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_DLLExport: {
+    if (Name == "dllexport" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    if (Name == "dllexport" && SyntaxUsed == 0 && Scope == "")
+        return 1;
+    if (Name == "dllexport" && SyntaxUsed == 1 && Scope == "gnu")
+        return 2;
+    break;
+  }
+  case AT_DLLImport: {
+    if (Name == "dllimport" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    if (Name == "dllimport" && SyntaxUsed == 0 && Scope == "")
+        return 1;
+    if (Name == "dllimport" && SyntaxUsed == 1 && Scope == "gnu")
+        return 2;
+    break;
+  }
+  case AT_Deprecated: {
+    if (Name == "deprecated" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "deprecated" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "deprecated" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    if (Name == "deprecated" && SyntaxUsed == 1 && Scope == "")
+        return 3;
+    break;
+  }
+  case AT_Destructor: {
+    if (Name == "destructor" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "destructor" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_DiagnoseIf: {
+    if (Name == "diagnose_if" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_DisableTailCalls: {
+    if (Name == "disable_tail_calls" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "disable_tail_calls" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_EmptyBases: {
+    if (Name == "empty_bases" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_EnableIf: {
+    if (Name == "enable_if" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_EnumExtensibility: {
+    if (Name == "enum_extensibility" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "enum_extensibility" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_ExclusiveTrylockFunction: {
+    if (Name == "exclusive_trylock_function" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ExtVectorType: {
+    if (Name == "ext_vector_type" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ExternalSourceSymbol: {
+    if (Name == "external_source_symbol" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "external_source_symbol" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_FallThrough: {
+    if (Name == "fallthrough" && SyntaxUsed == 1 && Scope == "")
+        return 0;
+    if (Name == "fallthrough" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_FastCall: {
+    if (Name == "fastcall" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "fastcall" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__fastcall" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    if (Name == "_fastcall" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    break;
+  }
+  case AT_FlagEnum: {
+    if (Name == "flag_enum" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Flatten: {
+    if (Name == "flatten" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "flatten" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Format: {
+    if (Name == "format" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "format" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_FormatArg: {
+    if (Name == "format_arg" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "format_arg" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_GNUInline: {
+    if (Name == "gnu_inline" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "gnu_inline" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_GuardedBy: {
+    if (Name == "guarded_by" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_GuardedVar: {
+    if (Name == "guarded_var" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Hot: {
+    if (Name == "hot" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "hot" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_IBAction: {
+    if (Name == "ibaction" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_IBOutlet: {
+    if (Name == "iboutlet" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_IBOutletCollection: {
+    if (Name == "iboutletcollection" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_IFunc: {
+    if (Name == "ifunc" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "ifunc" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_InitPriority: {
+    if (Name == "init_priority" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_IntelOclBicc: {
+    if (Name == "intel_ocl_bicc" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_InternalLinkage: {
+    if (Name == "internal_linkage" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "internal_linkage" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_LTOVisibilityPublic: {
+    if (Name == "lto_visibility_public" && SyntaxUsed == 1 && Scope == "clang")
+        return 0;
+    break;
+  }
+  case AT_LayoutVersion: {
+    if (Name == "layout_version" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_LockReturned: {
+    if (Name == "lock_returned" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Lockable: {
+    if (Name == "lockable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_LocksExcluded: {
+    if (Name == "locks_excluded" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_LoopHint: {
+    if (Name == "loop" && SyntaxUsed == 5 && Scope == "clang")
+        return 0;
+    if (Name == "unroll" && SyntaxUsed == 5 && Scope == "")
+        return 1;
+    if (Name == "nounroll" && SyntaxUsed == 5 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_MSABI: {
+    if (Name == "ms_abi" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "ms_abi" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_MSInheritance: {
+    if (Name == "__single_inheritance" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "__multiple_inheritance" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    if (Name == "__virtual_inheritance" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    if (Name == "__unspecified_inheritance" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    break;
+  }
+  case AT_MSNoVTable: {
+    if (Name == "novtable" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_MSStruct: {
+    if (Name == "ms_struct" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "ms_struct" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_MayAlias: {
+    if (Name == "may_alias" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "may_alias" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_MinSize: {
+    if (Name == "minsize" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Mips16: {
+    if (Name == "mips16" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "mips16" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Mode: {
+    if (Name == "mode" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "mode" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NSConsumed: {
+    if (Name == "ns_consumed" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NSConsumesSelf: {
+    if (Name == "ns_consumes_self" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NSReturnsAutoreleased: {
+    if (Name == "ns_returns_autoreleased" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NSReturnsNotRetained: {
+    if (Name == "ns_returns_not_retained" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NSReturnsRetained: {
+    if (Name == "ns_returns_retained" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Naked: {
+    if (Name == "naked" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "naked" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "naked" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_NeonPolyVectorType: {
+    if (Name == "neon_polyvector_type" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NeonVectorType: {
+    if (Name == "neon_vector_type" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NoAlias: {
+    if (Name == "noalias" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NoCommon: {
+    if (Name == "nocommon" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "nocommon" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NoDebug: {
+    if (Name == "nodebug" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "nodebug" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NoDuplicate: {
+    if (Name == "noduplicate" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "noduplicate" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_NoInline: {
+    if (Name == "noinline" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "noinline" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "noinline" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_NoInstrumentFunction: {
+    if (Name == "no_instrument_function" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "no_instrument_function" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NoMips16: {
+    if (Name == "nomips16" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "nomips16" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NoReturn: {
+    if (Name == "noreturn" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "noreturn" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "noreturn" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_NoSanitize: {
+    if (Name == "no_sanitize" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "no_sanitize" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_NoSanitizeSpecific: {
+    if (Name == "no_address_safety_analysis" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "no_address_safety_analysis" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "no_sanitize_address" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "no_sanitize_address" && SyntaxUsed == 1 && Scope == "gnu")
+        return 3;
+    if (Name == "no_sanitize_thread" && SyntaxUsed == 0 && Scope == "")
+        return 4;
+    if (Name == "no_sanitize_thread" && SyntaxUsed == 1 && Scope == "gnu")
+        return 5;
+    if (Name == "no_sanitize_memory" && SyntaxUsed == 0 && Scope == "")
+        return 6;
+    break;
+  }
+  case AT_NoSplitStack: {
+    if (Name == "no_split_stack" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "no_split_stack" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NoThreadSafetyAnalysis: {
+    if (Name == "no_thread_safety_analysis" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_NoThrow: {
+    if (Name == "nothrow" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "nothrow" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "nothrow" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_NonNull: {
+    if (Name == "nonnull" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "nonnull" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_NotTailCalled: {
+    if (Name == "not_tail_called" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "not_tail_called" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_ObjCBoxable: {
+    if (Name == "objc_boxable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCBridge: {
+    if (Name == "objc_bridge" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCBridgeMutable: {
+    if (Name == "objc_bridge_mutable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCBridgeRelated: {
+    if (Name == "objc_bridge_related" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCDesignatedInitializer: {
+    if (Name == "objc_designated_initializer" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCException: {
+    if (Name == "objc_exception" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCExplicitProtocolImpl: {
+    if (Name == "objc_protocol_requires_explicit_implementation" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCGC: {
+    if (Name == "objc_gc" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCIndependentClass: {
+    if (Name == "objc_independent_class" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCKindOf: {
+    if (Name == "__kindof" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCMethodFamily: {
+    if (Name == "objc_method_family" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCNSObject: {
+    if (Name == "NSObject" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCOwnership: {
+    if (Name == "objc_ownership" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCPreciseLifetime: {
+    if (Name == "objc_precise_lifetime" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCRequiresPropertyDefs: {
+    if (Name == "objc_requires_property_definitions" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCRequiresSuper: {
+    if (Name == "objc_requires_super" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCReturnsInnerPointer: {
+    if (Name == "objc_returns_inner_pointer" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCRootClass: {
+    if (Name == "objc_root_class" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCRuntimeName: {
+    if (Name == "objc_runtime_name" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCRuntimeVisible: {
+    if (Name == "objc_runtime_visible" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ObjCSubclassingRestricted: {
+    if (Name == "objc_subclassing_restricted" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_OpenCLAccess: {
+    if (Name == "__read_only" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "read_only" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    if (Name == "__write_only" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    if (Name == "write_only" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    if (Name == "__read_write" && SyntaxUsed == 4 && Scope == "")
+        return 4;
+    if (Name == "read_write" && SyntaxUsed == 4 && Scope == "")
+        return 5;
+    break;
+  }
+  case AT_OpenCLConstantAddressSpace: {
+    if (Name == "__constant" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "constant" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_OpenCLGenericAddressSpace: {
+    if (Name == "__generic" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "generic" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_OpenCLGlobalAddressSpace: {
+    if (Name == "__global" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "global" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_OpenCLKernel: {
+    if (Name == "__kernel" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "kernel" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_OpenCLLocalAddressSpace: {
+    if (Name == "__local" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "local" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_OpenCLNoSVM: {
+    if (Name == "nosvm" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_OpenCLPrivateAddressSpace: {
+    if (Name == "__private" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    if (Name == "private" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_OpenCLUnrollHint: {
+    if (Name == "opencl_unroll_hint" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_OptimizeNone: {
+    if (Name == "optnone" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "optnone" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_Overloadable: {
+    if (Name == "overloadable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Ownership: {
+    if (Name == "ownership_holds" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "ownership_returns" && SyntaxUsed == 0 && Scope == "")
+        return 1;
+    if (Name == "ownership_takes" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_Packed: {
+    if (Name == "packed" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "packed" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_ParamTypestate: {
+    if (Name == "param_typestate" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Pascal: {
+    if (Name == "pascal" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__pascal" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    if (Name == "_pascal" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_PassObjectSize: {
+    if (Name == "pass_object_size" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Pcs: {
+    if (Name == "pcs" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "pcs" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_PreserveAll: {
+    if (Name == "preserve_all" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_PreserveMost: {
+    if (Name == "preserve_most" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_PtGuardedBy: {
+    if (Name == "pt_guarded_by" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_PtGuardedVar: {
+    if (Name == "pt_guarded_var" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Ptr32: {
+    if (Name == "__ptr32" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Ptr64: {
+    if (Name == "__ptr64" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Pure: {
+    if (Name == "pure" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "pure" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_RegCall: {
+    if (Name == "regcall" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "regcall" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__regcall" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_Regparm: {
+    if (Name == "regparm" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "regparm" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_ReleaseCapability: {
+    if (Name == "release_capability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "release_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "release_shared_capability" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "release_shared_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 3;
+    if (Name == "release_generic_capability" && SyntaxUsed == 0 && Scope == "")
+        return 4;
+    if (Name == "release_generic_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 5;
+    if (Name == "unlock_function" && SyntaxUsed == 0 && Scope == "")
+        return 6;
+    break;
+  }
+  case AT_RenderScriptKernel: {
+    if (Name == "kernel" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ReqdWorkGroupSize: {
+    if (Name == "reqd_work_group_size" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_RequireConstantInit: {
+    if (Name == "require_constant_initialization" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "require_constant_initialization" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_RequiresCapability: {
+    if (Name == "requires_capability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "requires_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "exclusive_locks_required" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "requires_shared_capability" && SyntaxUsed == 0 && Scope == "")
+        return 3;
+    if (Name == "requires_shared_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 4;
+    if (Name == "shared_locks_required" && SyntaxUsed == 0 && Scope == "")
+        return 5;
+    break;
+  }
+  case AT_Restrict: {
+    if (Name == "restrict" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    if (Name == "malloc" && SyntaxUsed == 0 && Scope == "")
+        return 1;
+    if (Name == "malloc" && SyntaxUsed == 1 && Scope == "gnu")
+        return 2;
+    break;
+  }
+  case AT_ReturnTypestate: {
+    if (Name == "return_typestate" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ReturnsNonNull: {
+    if (Name == "returns_nonnull" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "returns_nonnull" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_ReturnsTwice: {
+    if (Name == "returns_twice" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "returns_twice" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_SPtr: {
+    if (Name == "__sptr" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ScopedLockable: {
+    if (Name == "scoped_lockable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Section: {
+    if (Name == "section" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "section" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "allocate" && SyntaxUsed == 2 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_SelectAny: {
+    if (Name == "selectany" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Sentinel: {
+    if (Name == "sentinel" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "sentinel" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_SetTypestate: {
+    if (Name == "set_typestate" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_SharedTrylockFunction: {
+    if (Name == "shared_trylock_function" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_StdCall: {
+    if (Name == "stdcall" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "stdcall" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__stdcall" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    if (Name == "_stdcall" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    break;
+  }
+  case AT_Suppress: {
+    if (Name == "suppress" && SyntaxUsed == 1 && Scope == "gsl")
+        return 0;
+    break;
+  }
+  case AT_SwiftCall: {
+    if (Name == "swiftcall" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "swiftcall" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_SwiftContext: {
+    if (Name == "swift_context" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "swift_context" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_SwiftErrorResult: {
+    if (Name == "swift_error_result" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "swift_error_result" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_SwiftIndirectResult: {
+    if (Name == "swift_indirect_result" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "swift_indirect_result" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_SysVABI: {
+    if (Name == "sysv_abi" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "sysv_abi" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_TLSModel: {
+    if (Name == "tls_model" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "tls_model" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Target: {
+    if (Name == "target" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "target" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_TestTypestate: {
+    if (Name == "test_typestate" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_ThisCall: {
+    if (Name == "thiscall" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "thiscall" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    if (Name == "__thiscall" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    if (Name == "_thiscall" && SyntaxUsed == 4 && Scope == "")
+        return 3;
+    break;
+  }
+  case AT_Thread: {
+    if (Name == "thread" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_TransparentUnion: {
+    if (Name == "transparent_union" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "transparent_union" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_TryAcquireCapability: {
+    if (Name == "try_acquire_capability" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "try_acquire_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "try_acquire_shared_capability" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "try_acquire_shared_capability" && SyntaxUsed == 1 && Scope == "clang")
+        return 3;
+    break;
+  }
+  case AT_TypeNonNull: {
+    if (Name == "_Nonnull" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_TypeNullUnspecified: {
+    if (Name == "_Null_unspecified" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_TypeNullable: {
+    if (Name == "_Nullable" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_TypeTagForDatatype: {
+    if (Name == "type_tag_for_datatype" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_TypeVisibility: {
+    if (Name == "type_visibility" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "type_visibility" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  case AT_UPtr: {
+    if (Name == "__uptr" && SyntaxUsed == 4 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Unavailable: {
+    if (Name == "unavailable" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_Unused: {
+    if (Name == "maybe_unused" && SyntaxUsed == 1 && Scope == "")
+        return 0;
+    if (Name == "unused" && SyntaxUsed == 0 && Scope == "")
+        return 1;
+    if (Name == "unused" && SyntaxUsed == 1 && Scope == "gnu")
+        return 2;
+    break;
+  }
+  case AT_Used: {
+    if (Name == "used" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "used" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Uuid: {
+    if (Name == "uuid" && SyntaxUsed == 2 && Scope == "")
+        return 0;
+    if (Name == "uuid" && SyntaxUsed == 3 && Scope == "")
+        return 1;
+    break;
+  }
+  case AT_VecReturn: {
+    if (Name == "vecreturn" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_VecTypeHint: {
+    if (Name == "vec_type_hint" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_VectorCall: {
+    if (Name == "vectorcall" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "__vectorcall" && SyntaxUsed == 4 && Scope == "")
+        return 1;
+    if (Name == "_vectorcall" && SyntaxUsed == 4 && Scope == "")
+        return 2;
+    break;
+  }
+  case AT_VectorSize: {
+    if (Name == "vector_size" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "vector_size" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_Visibility: {
+    if (Name == "visibility" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "visibility" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_WarnUnused: {
+    if (Name == "warn_unused" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_WarnUnusedResult: {
+    if (Name == "nodiscard" && SyntaxUsed == 1 && Scope == "")
+        return 0;
+    if (Name == "warn_unused_result" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "warn_unused_result" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "warn_unused_result" && SyntaxUsed == 1 && Scope == "gnu")
+        return 3;
+    break;
+  }
+  case AT_Weak: {
+    if (Name == "weak" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "weak" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_WeakImport: {
+    if (Name == "weak_import" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_WeakRef: {
+    if (Name == "weakref" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "weakref" && SyntaxUsed == 1 && Scope == "gnu")
+        return 1;
+    break;
+  }
+  case AT_WorkGroupSizeHint: {
+    if (Name == "work_group_size_hint" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_X86ForceAlignArgPointer: {
+    if (Name == "force_align_arg_pointer" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    break;
+  }
+  case AT_XRayInstrument: {
+    if (Name == "xray_always_instrument" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "xray_always_instrument" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    if (Name == "xray_never_instrument" && SyntaxUsed == 0 && Scope == "")
+        return 2;
+    if (Name == "xray_never_instrument" && SyntaxUsed == 1 && Scope == "clang")
+        return 3;
+    break;
+  }
+  case AT_XRayLogArgs: {
+    if (Name == "xray_log_args" && SyntaxUsed == 0 && Scope == "")
+        return 0;
+    if (Name == "xray_log_args" && SyntaxUsed == 1 && Scope == "clang")
+        return 1;
+    break;
+  }
+  }
+  return 0;
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrTemplateInstantiate.inc b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrTemplateInstantiate.inc
new file mode 100644
index 0000000..e627504
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Sema/AttrTemplateInstantiate.inc
@@ -0,0 +1,1696 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Template instantiation code for attributes                                 *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+namespace clang {
+namespace sema {
+
+Attr *instantiateTemplateAttribute(const Attr *At, ASTContext &C, Sema &S,
+        const MultiLevelTemplateArgumentList &TemplateArgs) {
+  switch (At->getKind()) {
+    case attr::AMDGPUFlatWorkGroupSize: {
+      const auto *A = cast<AMDGPUFlatWorkGroupSizeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AMDGPUNumSGPR: {
+      const auto *A = cast<AMDGPUNumSGPRAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AMDGPUNumVGPR: {
+      const auto *A = cast<AMDGPUNumVGPRAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AMDGPUWavesPerEU: {
+      const auto *A = cast<AMDGPUWavesPerEUAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ARMInterrupt: {
+      const auto *A = cast<ARMInterruptAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AVRInterrupt: {
+      const auto *A = cast<AVRInterruptAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AVRSignal: {
+      const auto *A = cast<AVRSignalAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AbiTag: {
+      const auto *A = cast<AbiTagAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AcquireCapability: {
+      const auto *A = cast<AcquireCapabilityAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) AcquireCapabilityAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::AcquiredAfter: {
+      const auto *A = cast<AcquiredAfterAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) AcquiredAfterAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::AcquiredBefore: {
+      const auto *A = cast<AcquiredBeforeAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) AcquiredBeforeAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::Alias: {
+      const auto *A = cast<AliasAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AlignMac68k: {
+      const auto *A = cast<AlignMac68kAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AlignValue: {
+      const auto *A = cast<AlignValueAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Aligned: {
+      const auto *A = cast<AlignedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AllocAlign: {
+      const auto *A = cast<AllocAlignAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AllocSize: {
+      const auto *A = cast<AllocSizeAttr>(At);
+      return new (C) AllocSizeAttr(A->getLocation(), C, A->getElemSizeParam(), A->getNumElemsParam(), A->getSpellingListIndex());
+    }
+    case attr::AlwaysInline: {
+      const auto *A = cast<AlwaysInlineAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AnalyzerNoReturn: {
+      const auto *A = cast<AnalyzerNoReturnAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Annotate: {
+      const auto *A = cast<AnnotateAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AnyX86Interrupt: {
+      const auto *A = cast<AnyX86InterruptAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ArcWeakrefUnavailable: {
+      const auto *A = cast<ArcWeakrefUnavailableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ArgumentWithTypeTag: {
+      const auto *A = cast<ArgumentWithTypeTagAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AsmLabel: {
+      const auto *A = cast<AsmLabelAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AssertCapability: {
+      const auto *A = cast<AssertCapabilityAttr>(At);
+      Expr * tempInstExpr;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getExpr(), TemplateArgs);
+        tempInstExpr = Result.getAs<Expr>();
+      }
+      return new (C) AssertCapabilityAttr(A->getLocation(), C, tempInstExpr, A->getSpellingListIndex());
+    }
+    case attr::AssertExclusiveLock: {
+      const auto *A = cast<AssertExclusiveLockAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) AssertExclusiveLockAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::AssertSharedLock: {
+      const auto *A = cast<AssertSharedLockAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) AssertSharedLockAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::AssumeAligned: {
+      const auto *A = cast<AssumeAlignedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Availability: {
+      const auto *A = cast<AvailabilityAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Blocks: {
+      const auto *A = cast<BlocksAttr>(At);
+      return A->clone(C);
+    }
+    case attr::C11NoReturn: {
+      const auto *A = cast<C11NoReturnAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CDecl: {
+      const auto *A = cast<CDeclAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CFAuditedTransfer: {
+      const auto *A = cast<CFAuditedTransferAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CFConsumed: {
+      const auto *A = cast<CFConsumedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CFReturnsNotRetained: {
+      const auto *A = cast<CFReturnsNotRetainedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CFReturnsRetained: {
+      const auto *A = cast<CFReturnsRetainedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CFUnknownTransfer: {
+      const auto *A = cast<CFUnknownTransferAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDAConstant: {
+      const auto *A = cast<CUDAConstantAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDADevice: {
+      const auto *A = cast<CUDADeviceAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDAGlobal: {
+      const auto *A = cast<CUDAGlobalAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDAHost: {
+      const auto *A = cast<CUDAHostAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDAInvalidTarget: {
+      const auto *A = cast<CUDAInvalidTargetAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDALaunchBounds: {
+      const auto *A = cast<CUDALaunchBoundsAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CUDAShared: {
+      const auto *A = cast<CUDASharedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CXX11NoReturn: {
+      const auto *A = cast<CXX11NoReturnAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CallableWhen: {
+      const auto *A = cast<CallableWhenAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Capability: {
+      const auto *A = cast<CapabilityAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CapturedRecord: {
+      const auto *A = cast<CapturedRecordAttr>(At);
+      return A->clone(C);
+    }
+    case attr::CarriesDependency: {
+      const auto *A = cast<CarriesDependencyAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Cleanup: {
+      const auto *A = cast<CleanupAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Cold: {
+      const auto *A = cast<ColdAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Common: {
+      const auto *A = cast<CommonAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Const: {
+      const auto *A = cast<ConstAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Constructor: {
+      const auto *A = cast<ConstructorAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Consumable: {
+      const auto *A = cast<ConsumableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ConsumableAutoCast: {
+      const auto *A = cast<ConsumableAutoCastAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ConsumableSetOnRead: {
+      const auto *A = cast<ConsumableSetOnReadAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Convergent: {
+      const auto *A = cast<ConvergentAttr>(At);
+      return A->clone(C);
+    }
+    case attr::DLLExport: {
+      const auto *A = cast<DLLExportAttr>(At);
+      return A->clone(C);
+    }
+    case attr::DLLImport: {
+      const auto *A = cast<DLLImportAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Deprecated: {
+      const auto *A = cast<DeprecatedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Destructor: {
+      const auto *A = cast<DestructorAttr>(At);
+      return A->clone(C);
+    }
+    case attr::DiagnoseIf: {
+      const auto *A = cast<DiagnoseIfAttr>(At);
+      Expr * tempInstCond;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getCond(), TemplateArgs);
+        tempInstCond = Result.getAs<Expr>();
+      }
+      return new (C) DiagnoseIfAttr(A->getLocation(), C, tempInstCond, A->getMessage(), A->getDiagnosticType(), A->getArgDependent(), A->getParent(), A->getSpellingListIndex());
+    }
+    case attr::DisableTailCalls: {
+      const auto *A = cast<DisableTailCallsAttr>(At);
+      return A->clone(C);
+    }
+    case attr::EmptyBases: {
+      const auto *A = cast<EmptyBasesAttr>(At);
+      return A->clone(C);
+    }
+    case attr::EnableIf: {
+      const auto *A = cast<EnableIfAttr>(At);
+      Expr * tempInstCond;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getCond(), TemplateArgs);
+        tempInstCond = Result.getAs<Expr>();
+      }
+      return new (C) EnableIfAttr(A->getLocation(), C, tempInstCond, A->getMessage(), A->getSpellingListIndex());
+    }
+    case attr::EnumExtensibility: {
+      const auto *A = cast<EnumExtensibilityAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ExclusiveTrylockFunction: {
+      const auto *A = cast<ExclusiveTrylockFunctionAttr>(At);
+      Expr * tempInstSuccessValue;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getSuccessValue(), TemplateArgs);
+        tempInstSuccessValue = Result.getAs<Expr>();
+      }
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) ExclusiveTrylockFunctionAttr(A->getLocation(), C, tempInstSuccessValue, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::ExternalSourceSymbol: {
+      const auto *A = cast<ExternalSourceSymbolAttr>(At);
+      return A->clone(C);
+    }
+    case attr::FallThrough: {
+      const auto *A = cast<FallThroughAttr>(At);
+      return A->clone(C);
+    }
+    case attr::FastCall: {
+      const auto *A = cast<FastCallAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Final: {
+      const auto *A = cast<FinalAttr>(At);
+      return A->clone(C);
+    }
+    case attr::FlagEnum: {
+      const auto *A = cast<FlagEnumAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Flatten: {
+      const auto *A = cast<FlattenAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Format: {
+      const auto *A = cast<FormatAttr>(At);
+      return A->clone(C);
+    }
+    case attr::FormatArg: {
+      const auto *A = cast<FormatArgAttr>(At);
+      return A->clone(C);
+    }
+    case attr::GNUInline: {
+      const auto *A = cast<GNUInlineAttr>(At);
+      return A->clone(C);
+    }
+    case attr::GuardedBy: {
+      const auto *A = cast<GuardedByAttr>(At);
+      Expr * tempInstArg;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getArg(), TemplateArgs);
+        tempInstArg = Result.getAs<Expr>();
+      }
+      return new (C) GuardedByAttr(A->getLocation(), C, tempInstArg, A->getSpellingListIndex());
+    }
+    case attr::GuardedVar: {
+      const auto *A = cast<GuardedVarAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Hot: {
+      const auto *A = cast<HotAttr>(At);
+      return A->clone(C);
+    }
+    case attr::IBAction: {
+      const auto *A = cast<IBActionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::IBOutlet: {
+      const auto *A = cast<IBOutletAttr>(At);
+      return A->clone(C);
+    }
+    case attr::IBOutletCollection: {
+      const auto *A = cast<IBOutletCollectionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::IFunc: {
+      const auto *A = cast<IFuncAttr>(At);
+      return A->clone(C);
+    }
+    case attr::InitPriority: {
+      const auto *A = cast<InitPriorityAttr>(At);
+      return A->clone(C);
+    }
+    case attr::InitSeg: {
+      const auto *A = cast<InitSegAttr>(At);
+      return A->clone(C);
+    }
+    case attr::IntelOclBicc: {
+      const auto *A = cast<IntelOclBiccAttr>(At);
+      return A->clone(C);
+    }
+    case attr::InternalLinkage: {
+      const auto *A = cast<InternalLinkageAttr>(At);
+      return A->clone(C);
+    }
+    case attr::LTOVisibilityPublic: {
+      const auto *A = cast<LTOVisibilityPublicAttr>(At);
+      return A->clone(C);
+    }
+    case attr::LayoutVersion: {
+      const auto *A = cast<LayoutVersionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::LockReturned: {
+      const auto *A = cast<LockReturnedAttr>(At);
+      Expr * tempInstArg;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getArg(), TemplateArgs);
+        tempInstArg = Result.getAs<Expr>();
+      }
+      return new (C) LockReturnedAttr(A->getLocation(), C, tempInstArg, A->getSpellingListIndex());
+    }
+    case attr::LocksExcluded: {
+      const auto *A = cast<LocksExcludedAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) LocksExcludedAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::LoopHint: {
+      const auto *A = cast<LoopHintAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MSABI: {
+      const auto *A = cast<MSABIAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MSInheritance: {
+      const auto *A = cast<MSInheritanceAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MSNoVTable: {
+      const auto *A = cast<MSNoVTableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MSP430Interrupt: {
+      const auto *A = cast<MSP430InterruptAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MSStruct: {
+      const auto *A = cast<MSStructAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MSVtorDisp: {
+      const auto *A = cast<MSVtorDispAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MaxFieldAlignment: {
+      const auto *A = cast<MaxFieldAlignmentAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MayAlias: {
+      const auto *A = cast<MayAliasAttr>(At);
+      return A->clone(C);
+    }
+    case attr::MinSize: {
+      const auto *A = cast<MinSizeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Mips16: {
+      const auto *A = cast<Mips16Attr>(At);
+      return A->clone(C);
+    }
+    case attr::MipsInterrupt: {
+      const auto *A = cast<MipsInterruptAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Mode: {
+      const auto *A = cast<ModeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NSConsumed: {
+      const auto *A = cast<NSConsumedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NSConsumesSelf: {
+      const auto *A = cast<NSConsumesSelfAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NSReturnsAutoreleased: {
+      const auto *A = cast<NSReturnsAutoreleasedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NSReturnsNotRetained: {
+      const auto *A = cast<NSReturnsNotRetainedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NSReturnsRetained: {
+      const auto *A = cast<NSReturnsRetainedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Naked: {
+      const auto *A = cast<NakedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoAlias: {
+      const auto *A = cast<NoAliasAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoCommon: {
+      const auto *A = cast<NoCommonAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoDebug: {
+      const auto *A = cast<NoDebugAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoDuplicate: {
+      const auto *A = cast<NoDuplicateAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoInline: {
+      const auto *A = cast<NoInlineAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoInstrumentFunction: {
+      const auto *A = cast<NoInstrumentFunctionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoMips16: {
+      const auto *A = cast<NoMips16Attr>(At);
+      return A->clone(C);
+    }
+    case attr::NoReturn: {
+      const auto *A = cast<NoReturnAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoSanitize: {
+      const auto *A = cast<NoSanitizeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoSplitStack: {
+      const auto *A = cast<NoSplitStackAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoThreadSafetyAnalysis: {
+      const auto *A = cast<NoThreadSafetyAnalysisAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NoThrow: {
+      const auto *A = cast<NoThrowAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NonNull: {
+      const auto *A = cast<NonNullAttr>(At);
+      return A->clone(C);
+    }
+    case attr::NotTailCalled: {
+      const auto *A = cast<NotTailCalledAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OMPCaptureNoInit: {
+      const auto *A = cast<OMPCaptureNoInitAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OMPDeclareSimdDecl: {
+      const auto *A = cast<OMPDeclareSimdDeclAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OMPDeclareTargetDecl: {
+      const auto *A = cast<OMPDeclareTargetDeclAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OMPThreadPrivateDecl: {
+      const auto *A = cast<OMPThreadPrivateDeclAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCBoxable: {
+      const auto *A = cast<ObjCBoxableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCBridge: {
+      const auto *A = cast<ObjCBridgeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCBridgeMutable: {
+      const auto *A = cast<ObjCBridgeMutableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCBridgeRelated: {
+      const auto *A = cast<ObjCBridgeRelatedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCDesignatedInitializer: {
+      const auto *A = cast<ObjCDesignatedInitializerAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCException: {
+      const auto *A = cast<ObjCExceptionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCExplicitProtocolImpl: {
+      const auto *A = cast<ObjCExplicitProtocolImplAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCIndependentClass: {
+      const auto *A = cast<ObjCIndependentClassAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCMethodFamily: {
+      const auto *A = cast<ObjCMethodFamilyAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCNSObject: {
+      const auto *A = cast<ObjCNSObjectAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCPreciseLifetime: {
+      const auto *A = cast<ObjCPreciseLifetimeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCRequiresPropertyDefs: {
+      const auto *A = cast<ObjCRequiresPropertyDefsAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCRequiresSuper: {
+      const auto *A = cast<ObjCRequiresSuperAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCReturnsInnerPointer: {
+      const auto *A = cast<ObjCReturnsInnerPointerAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCRootClass: {
+      const auto *A = cast<ObjCRootClassAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCRuntimeName: {
+      const auto *A = cast<ObjCRuntimeNameAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCRuntimeVisible: {
+      const auto *A = cast<ObjCRuntimeVisibleAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ObjCSubclassingRestricted: {
+      const auto *A = cast<ObjCSubclassingRestrictedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OpenCLAccess: {
+      const auto *A = cast<OpenCLAccessAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OpenCLKernel: {
+      const auto *A = cast<OpenCLKernelAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OpenCLUnrollHint: {
+      const auto *A = cast<OpenCLUnrollHintAttr>(At);
+      return A->clone(C);
+    }
+    case attr::OptimizeNone: {
+      const auto *A = cast<OptimizeNoneAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Overloadable: {
+      const auto *A = cast<OverloadableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Override: {
+      const auto *A = cast<OverrideAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Ownership: {
+      const auto *A = cast<OwnershipAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Packed: {
+      const auto *A = cast<PackedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ParamTypestate: {
+      const auto *A = cast<ParamTypestateAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Pascal: {
+      const auto *A = cast<PascalAttr>(At);
+      return A->clone(C);
+    }
+    case attr::PassObjectSize: {
+      const auto *A = cast<PassObjectSizeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Pcs: {
+      const auto *A = cast<PcsAttr>(At);
+      return A->clone(C);
+    }
+    case attr::PreserveAll: {
+      const auto *A = cast<PreserveAllAttr>(At);
+      return A->clone(C);
+    }
+    case attr::PreserveMost: {
+      const auto *A = cast<PreserveMostAttr>(At);
+      return A->clone(C);
+    }
+    case attr::PtGuardedBy: {
+      const auto *A = cast<PtGuardedByAttr>(At);
+      Expr * tempInstArg;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getArg(), TemplateArgs);
+        tempInstArg = Result.getAs<Expr>();
+      }
+      return new (C) PtGuardedByAttr(A->getLocation(), C, tempInstArg, A->getSpellingListIndex());
+    }
+    case attr::PtGuardedVar: {
+      const auto *A = cast<PtGuardedVarAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Pure: {
+      const auto *A = cast<PureAttr>(At);
+      return A->clone(C);
+    }
+    case attr::RegCall: {
+      const auto *A = cast<RegCallAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ReleaseCapability: {
+      const auto *A = cast<ReleaseCapabilityAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) ReleaseCapabilityAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::RenderScriptKernel: {
+      const auto *A = cast<RenderScriptKernelAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ReqdWorkGroupSize: {
+      const auto *A = cast<ReqdWorkGroupSizeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::RequireConstantInit: {
+      const auto *A = cast<RequireConstantInitAttr>(At);
+      return A->clone(C);
+    }
+    case attr::RequiresCapability: {
+      const auto *A = cast<RequiresCapabilityAttr>(At);
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) RequiresCapabilityAttr(A->getLocation(), C, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::Restrict: {
+      const auto *A = cast<RestrictAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ReturnTypestate: {
+      const auto *A = cast<ReturnTypestateAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ReturnsNonNull: {
+      const auto *A = cast<ReturnsNonNullAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ReturnsTwice: {
+      const auto *A = cast<ReturnsTwiceAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ScopedLockable: {
+      const auto *A = cast<ScopedLockableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Section: {
+      const auto *A = cast<SectionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SelectAny: {
+      const auto *A = cast<SelectAnyAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Sentinel: {
+      const auto *A = cast<SentinelAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SetTypestate: {
+      const auto *A = cast<SetTypestateAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SharedTrylockFunction: {
+      const auto *A = cast<SharedTrylockFunctionAttr>(At);
+      Expr * tempInstSuccessValue;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getSuccessValue(), TemplateArgs);
+        tempInstSuccessValue = Result.getAs<Expr>();
+      }
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) SharedTrylockFunctionAttr(A->getLocation(), C, tempInstSuccessValue, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::StdCall: {
+      const auto *A = cast<StdCallAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Suppress: {
+      const auto *A = cast<SuppressAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SwiftCall: {
+      const auto *A = cast<SwiftCallAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SwiftContext: {
+      const auto *A = cast<SwiftContextAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SwiftErrorResult: {
+      const auto *A = cast<SwiftErrorResultAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SwiftIndirectResult: {
+      const auto *A = cast<SwiftIndirectResultAttr>(At);
+      return A->clone(C);
+    }
+    case attr::SysVABI: {
+      const auto *A = cast<SysVABIAttr>(At);
+      return A->clone(C);
+    }
+    case attr::TLSModel: {
+      const auto *A = cast<TLSModelAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Target: {
+      const auto *A = cast<TargetAttr>(At);
+      return A->clone(C);
+    }
+    case attr::TestTypestate: {
+      const auto *A = cast<TestTypestateAttr>(At);
+      return A->clone(C);
+    }
+    case attr::ThisCall: {
+      const auto *A = cast<ThisCallAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Thread: {
+      const auto *A = cast<ThreadAttr>(At);
+      return A->clone(C);
+    }
+    case attr::TransparentUnion: {
+      const auto *A = cast<TransparentUnionAttr>(At);
+      return A->clone(C);
+    }
+    case attr::TryAcquireCapability: {
+      const auto *A = cast<TryAcquireCapabilityAttr>(At);
+      Expr * tempInstSuccessValue;
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        ExprResult Result = S.SubstExpr(A->getSuccessValue(), TemplateArgs);
+        tempInstSuccessValue = Result.getAs<Expr>();
+      }
+      auto *tempInstArgs = new (C, 16) Expr *[A->args_size()];
+      {
+        EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
+        Expr * *TI = tempInstArgs;
+        Expr * *I = A->args_begin();
+        Expr * *E = A->args_end();
+        for (; I != E; ++I, ++TI) {
+          ExprResult Result = S.SubstExpr(*I, TemplateArgs);
+          *TI = Result.getAs<Expr>();
+        }
+      }
+      return new (C) TryAcquireCapabilityAttr(A->getLocation(), C, tempInstSuccessValue, tempInstArgs, A->args_size(), A->getSpellingListIndex());
+    }
+    case attr::TypeTagForDatatype: {
+      const auto *A = cast<TypeTagForDatatypeAttr>(At);
+      return A->clone(C);
+    }
+    case attr::TypeVisibility: {
+      return nullptr;
+    }
+    case attr::Unavailable: {
+      const auto *A = cast<UnavailableAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Unused: {
+      const auto *A = cast<UnusedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Used: {
+      const auto *A = cast<UsedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Uuid: {
+      const auto *A = cast<UuidAttr>(At);
+      return A->clone(C);
+    }
+    case attr::VecReturn: {
+      const auto *A = cast<VecReturnAttr>(At);
+      return A->clone(C);
+    }
+    case attr::VecTypeHint: {
+      const auto *A = cast<VecTypeHintAttr>(At);
+      return A->clone(C);
+    }
+    case attr::VectorCall: {
+      const auto *A = cast<VectorCallAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Visibility: {
+      return nullptr;
+    }
+    case attr::WarnUnused: {
+      const auto *A = cast<WarnUnusedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::WarnUnusedResult: {
+      const auto *A = cast<WarnUnusedResultAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Weak: {
+      const auto *A = cast<WeakAttr>(At);
+      return A->clone(C);
+    }
+    case attr::WeakImport: {
+      const auto *A = cast<WeakImportAttr>(At);
+      return A->clone(C);
+    }
+    case attr::WeakRef: {
+      const auto *A = cast<WeakRefAttr>(At);
+      return A->clone(C);
+    }
+    case attr::WorkGroupSizeHint: {
+      const auto *A = cast<WorkGroupSizeHintAttr>(At);
+      return A->clone(C);
+    }
+    case attr::X86ForceAlignArgPointer: {
+      const auto *A = cast<X86ForceAlignArgPointerAttr>(At);
+      return A->clone(C);
+    }
+    case attr::XRayInstrument: {
+      const auto *A = cast<XRayInstrumentAttr>(At);
+      return A->clone(C);
+    }
+    case attr::XRayLogArgs: {
+      const auto *A = cast<XRayLogArgsAttr>(At);
+      return A->clone(C);
+    }
+  } // end switch
+  llvm_unreachable("Unknown attribute!");
+  return nullptr;
+}
+
+Attr *instantiateTemplateAttributeForDecl(const Attr *At,
+ ASTContext &C, Sema &S,
+        const MultiLevelTemplateArgumentList &TemplateArgs) {
+  switch (At->getKind()) {
+    case attr::AMDGPUFlatWorkGroupSize: {
+      return nullptr;
+    }
+    case attr::AMDGPUNumSGPR: {
+      return nullptr;
+    }
+    case attr::AMDGPUNumVGPR: {
+      return nullptr;
+    }
+    case attr::AMDGPUWavesPerEU: {
+      return nullptr;
+    }
+    case attr::ARMInterrupt: {
+      return nullptr;
+    }
+    case attr::AVRInterrupt: {
+      return nullptr;
+    }
+    case attr::AVRSignal: {
+      return nullptr;
+    }
+    case attr::AbiTag: {
+      const auto *A = cast<AbiTagAttr>(At);
+      return A->clone(C);
+    }
+    case attr::AcquireCapability: {
+      return nullptr;
+    }
+    case attr::AcquiredAfter: {
+      return nullptr;
+    }
+    case attr::AcquiredBefore: {
+      return nullptr;
+    }
+    case attr::Alias: {
+      return nullptr;
+    }
+    case attr::AlignMac68k: {
+      return nullptr;
+    }
+    case attr::AlignValue: {
+      return nullptr;
+    }
+    case attr::Aligned: {
+      return nullptr;
+    }
+    case attr::AllocAlign: {
+      return nullptr;
+    }
+    case attr::AllocSize: {
+      return nullptr;
+    }
+    case attr::AlwaysInline: {
+      return nullptr;
+    }
+    case attr::AnalyzerNoReturn: {
+      return nullptr;
+    }
+    case attr::Annotate: {
+      return nullptr;
+    }
+    case attr::AnyX86Interrupt: {
+      return nullptr;
+    }
+    case attr::ArcWeakrefUnavailable: {
+      return nullptr;
+    }
+    case attr::ArgumentWithTypeTag: {
+      return nullptr;
+    }
+    case attr::AsmLabel: {
+      return nullptr;
+    }
+    case attr::AssertCapability: {
+      return nullptr;
+    }
+    case attr::AssertExclusiveLock: {
+      return nullptr;
+    }
+    case attr::AssertSharedLock: {
+      return nullptr;
+    }
+    case attr::AssumeAligned: {
+      return nullptr;
+    }
+    case attr::Availability: {
+      return nullptr;
+    }
+    case attr::Blocks: {
+      return nullptr;
+    }
+    case attr::C11NoReturn: {
+      return nullptr;
+    }
+    case attr::CDecl: {
+      return nullptr;
+    }
+    case attr::CFAuditedTransfer: {
+      return nullptr;
+    }
+    case attr::CFConsumed: {
+      return nullptr;
+    }
+    case attr::CFReturnsNotRetained: {
+      return nullptr;
+    }
+    case attr::CFReturnsRetained: {
+      return nullptr;
+    }
+    case attr::CFUnknownTransfer: {
+      return nullptr;
+    }
+    case attr::CUDAConstant: {
+      return nullptr;
+    }
+    case attr::CUDADevice: {
+      return nullptr;
+    }
+    case attr::CUDAGlobal: {
+      return nullptr;
+    }
+    case attr::CUDAHost: {
+      return nullptr;
+    }
+    case attr::CUDAInvalidTarget: {
+      return nullptr;
+    }
+    case attr::CUDALaunchBounds: {
+      return nullptr;
+    }
+    case attr::CUDAShared: {
+      return nullptr;
+    }
+    case attr::CXX11NoReturn: {
+      return nullptr;
+    }
+    case attr::CallableWhen: {
+      return nullptr;
+    }
+    case attr::Capability: {
+      return nullptr;
+    }
+    case attr::CapturedRecord: {
+      return nullptr;
+    }
+    case attr::CarriesDependency: {
+      return nullptr;
+    }
+    case attr::Cleanup: {
+      return nullptr;
+    }
+    case attr::Cold: {
+      return nullptr;
+    }
+    case attr::Common: {
+      return nullptr;
+    }
+    case attr::Const: {
+      return nullptr;
+    }
+    case attr::Constructor: {
+      return nullptr;
+    }
+    case attr::Consumable: {
+      return nullptr;
+    }
+    case attr::ConsumableAutoCast: {
+      return nullptr;
+    }
+    case attr::ConsumableSetOnRead: {
+      return nullptr;
+    }
+    case attr::Convergent: {
+      return nullptr;
+    }
+    case attr::DLLExport: {
+      return nullptr;
+    }
+    case attr::DLLImport: {
+      return nullptr;
+    }
+    case attr::Deprecated: {
+      const auto *A = cast<DeprecatedAttr>(At);
+      return A->clone(C);
+    }
+    case attr::Destructor: {
+      return nullptr;
+    }
+    case attr::DiagnoseIf: {
+      return nullptr;
+    }
+    case attr::DisableTailCalls: {
+      return nullptr;
+    }
+    case attr::EmptyBases: {
+      return nullptr;
+    }
+    case attr::EnableIf: {
+      return nullptr;
+    }
+    case attr::EnumExtensibility: {
+      return nullptr;
+    }
+    case attr::ExclusiveTrylockFunction: {
+      return nullptr;
+    }
+    case attr::ExternalSourceSymbol: {
+      return nullptr;
+    }
+    case attr::FallThrough: {
+      return nullptr;
+    }
+    case attr::FastCall: {
+      return nullptr;
+    }
+    case attr::Final: {
+      return nullptr;
+    }
+    case attr::FlagEnum: {
+      return nullptr;
+    }
+    case attr::Flatten: {
+      return nullptr;
+    }
+    case attr::Format: {
+      return nullptr;
+    }
+    case attr::FormatArg: {
+      return nullptr;
+    }
+    case attr::GNUInline: {
+      return nullptr;
+    }
+    case attr::GuardedBy: {
+      return nullptr;
+    }
+    case attr::GuardedVar: {
+      return nullptr;
+    }
+    case attr::Hot: {
+      return nullptr;
+    }
+    case attr::IBAction: {
+      return nullptr;
+    }
+    case attr::IBOutlet: {
+      return nullptr;
+    }
+    case attr::IBOutletCollection: {
+      return nullptr;
+    }
+    case attr::IFunc: {
+      return nullptr;
+    }
+    case attr::InitPriority: {
+      return nullptr;
+    }
+    case attr::InitSeg: {
+      return nullptr;
+    }
+    case attr::IntelOclBicc: {
+      return nullptr;
+    }
+    case attr::InternalLinkage: {
+      return nullptr;
+    }
+    case attr::LTOVisibilityPublic: {
+      return nullptr;
+    }
+    case attr::LayoutVersion: {
+      return nullptr;
+    }
+    case attr::LockReturned: {
+      return nullptr;
+    }
+    case attr::LocksExcluded: {
+      return nullptr;
+    }
+    case attr::LoopHint: {
+      return nullptr;
+    }
+    case attr::MSABI: {
+      return nullptr;
+    }
+    case attr::MSInheritance: {
+      return nullptr;
+    }
+    case attr::MSNoVTable: {
+      return nullptr;
+    }
+    case attr::MSP430Interrupt: {
+      return nullptr;
+    }
+    case attr::MSStruct: {
+      return nullptr;
+    }
+    case attr::MSVtorDisp: {
+      return nullptr;
+    }
+    case attr::MaxFieldAlignment: {
+      return nullptr;
+    }
+    case attr::MayAlias: {
+      return nullptr;
+    }
+    case attr::MinSize: {
+      return nullptr;
+    }
+    case attr::Mips16: {
+      return nullptr;
+    }
+    case attr::MipsInterrupt: {
+      return nullptr;
+    }
+    case attr::Mode: {
+      return nullptr;
+    }
+    case attr::NSConsumed: {
+      return nullptr;
+    }
+    case attr::NSConsumesSelf: {
+      return nullptr;
+    }
+    case attr::NSReturnsAutoreleased: {
+      return nullptr;
+    }
+    case attr::NSReturnsNotRetained: {
+      return nullptr;
+    }
+    case attr::NSReturnsRetained: {
+      return nullptr;
+    }
+    case attr::Naked: {
+      return nullptr;
+    }
+    case attr::NoAlias: {
+      return nullptr;
+    }
+    case attr::NoCommon: {
+      return nullptr;
+    }
+    case attr::NoDebug: {
+      return nullptr;
+    }
+    case attr::NoDuplicate: {
+      return nullptr;
+    }
+    case attr::NoInline: {
+      return nullptr;
+    }
+    case attr::NoInstrumentFunction: {
+      return nullptr;
+    }
+    case attr::NoMips16: {
+      return nullptr;
+    }
+    case attr::NoReturn: {
+      return nullptr;
+    }
+    case attr::NoSanitize: {
+      return nullptr;
+    }
+    case attr::NoSplitStack: {
+      return nullptr;
+    }
+    case attr::NoThreadSafetyAnalysis: {
+      return nullptr;
+    }
+    case attr::NoThrow: {
+      return nullptr;
+    }
+    case attr::NonNull: {
+      return nullptr;
+    }
+    case attr::NotTailCalled: {
+      return nullptr;
+    }
+    case attr::OMPCaptureNoInit: {
+      return nullptr;
+    }
+    case attr::OMPDeclareSimdDecl: {
+      return nullptr;
+    }
+    case attr::OMPDeclareTargetDecl: {
+      return nullptr;
+    }
+    case attr::OMPThreadPrivateDecl: {
+      return nullptr;
+    }
+    case attr::ObjCBoxable: {
+      return nullptr;
+    }
+    case attr::ObjCBridge: {
+      return nullptr;
+    }
+    case attr::ObjCBridgeMutable: {
+      return nullptr;
+    }
+    case attr::ObjCBridgeRelated: {
+      return nullptr;
+    }
+    case attr::ObjCDesignatedInitializer: {
+      return nullptr;
+    }
+    case attr::ObjCException: {
+      return nullptr;
+    }
+    case attr::ObjCExplicitProtocolImpl: {
+      return nullptr;
+    }
+    case attr::ObjCIndependentClass: {
+      return nullptr;
+    }
+    case attr::ObjCMethodFamily: {
+      return nullptr;
+    }
+    case attr::ObjCNSObject: {
+      return nullptr;
+    }
+    case attr::ObjCPreciseLifetime: {
+      return nullptr;
+    }
+    case attr::ObjCRequiresPropertyDefs: {
+      return nullptr;
+    }
+    case attr::ObjCRequiresSuper: {
+      return nullptr;
+    }
+    case attr::ObjCReturnsInnerPointer: {
+      return nullptr;
+    }
+    case attr::ObjCRootClass: {
+      return nullptr;
+    }
+    case attr::ObjCRuntimeName: {
+      return nullptr;
+    }
+    case attr::ObjCRuntimeVisible: {
+      return nullptr;
+    }
+    case attr::ObjCSubclassingRestricted: {
+      return nullptr;
+    }
+    case attr::OpenCLAccess: {
+      return nullptr;
+    }
+    case attr::OpenCLKernel: {
+      return nullptr;
+    }
+    case attr::OpenCLUnrollHint: {
+      return nullptr;
+    }
+    case attr::OptimizeNone: {
+      return nullptr;
+    }
+    case attr::Overloadable: {
+      return nullptr;
+    }
+    case attr::Override: {
+      return nullptr;
+    }
+    case attr::Ownership: {
+      return nullptr;
+    }
+    case attr::Packed: {
+      return nullptr;
+    }
+    case attr::ParamTypestate: {
+      return nullptr;
+    }
+    case attr::Pascal: {
+      return nullptr;
+    }
+    case attr::PassObjectSize: {
+      return nullptr;
+    }
+    case attr::Pcs: {
+      return nullptr;
+    }
+    case attr::PreserveAll: {
+      return nullptr;
+    }
+    case attr::PreserveMost: {
+      return nullptr;
+    }
+    case attr::PtGuardedBy: {
+      return nullptr;
+    }
+    case attr::PtGuardedVar: {
+      return nullptr;
+    }
+    case attr::Pure: {
+      return nullptr;
+    }
+    case attr::RegCall: {
+      return nullptr;
+    }
+    case attr::ReleaseCapability: {
+      return nullptr;
+    }
+    case attr::RenderScriptKernel: {
+      return nullptr;
+    }
+    case attr::ReqdWorkGroupSize: {
+      return nullptr;
+    }
+    case attr::RequireConstantInit: {
+      return nullptr;
+    }
+    case attr::RequiresCapability: {
+      return nullptr;
+    }
+    case attr::Restrict: {
+      return nullptr;
+    }
+    case attr::ReturnTypestate: {
+      return nullptr;
+    }
+    case attr::ReturnsNonNull: {
+      return nullptr;
+    }
+    case attr::ReturnsTwice: {
+      return nullptr;
+    }
+    case attr::ScopedLockable: {
+      return nullptr;
+    }
+    case attr::Section: {
+      return nullptr;
+    }
+    case attr::SelectAny: {
+      return nullptr;
+    }
+    case attr::Sentinel: {
+      return nullptr;
+    }
+    case attr::SetTypestate: {
+      return nullptr;
+    }
+    case attr::SharedTrylockFunction: {
+      return nullptr;
+    }
+    case attr::StdCall: {
+      return nullptr;
+    }
+    case attr::Suppress: {
+      return nullptr;
+    }
+    case attr::SwiftCall: {
+      return nullptr;
+    }
+    case attr::SwiftContext: {
+      return nullptr;
+    }
+    case attr::SwiftErrorResult: {
+      return nullptr;
+    }
+    case attr::SwiftIndirectResult: {
+      return nullptr;
+    }
+    case attr::SysVABI: {
+      return nullptr;
+    }
+    case attr::TLSModel: {
+      return nullptr;
+    }
+    case attr::Target: {
+      return nullptr;
+    }
+    case attr::TestTypestate: {
+      return nullptr;
+    }
+    case attr::ThisCall: {
+      return nullptr;
+    }
+    case attr::Thread: {
+      return nullptr;
+    }
+    case attr::TransparentUnion: {
+      return nullptr;
+    }
+    case attr::TryAcquireCapability: {
+      return nullptr;
+    }
+    case attr::TypeTagForDatatype: {
+      return nullptr;
+    }
+    case attr::TypeVisibility: {
+      return nullptr;
+    }
+    case attr::Unavailable: {
+      return nullptr;
+    }
+    case attr::Unused: {
+      return nullptr;
+    }
+    case attr::Used: {
+      return nullptr;
+    }
+    case attr::Uuid: {
+      return nullptr;
+    }
+    case attr::VecReturn: {
+      return nullptr;
+    }
+    case attr::VecTypeHint: {
+      return nullptr;
+    }
+    case attr::VectorCall: {
+      return nullptr;
+    }
+    case attr::Visibility: {
+      return nullptr;
+    }
+    case attr::WarnUnused: {
+      return nullptr;
+    }
+    case attr::WarnUnusedResult: {
+      return nullptr;
+    }
+    case attr::Weak: {
+      return nullptr;
+    }
+    case attr::WeakImport: {
+      return nullptr;
+    }
+    case attr::WeakRef: {
+      return nullptr;
+    }
+    case attr::WorkGroupSizeHint: {
+      return nullptr;
+    }
+    case attr::X86ForceAlignArgPointer: {
+      return nullptr;
+    }
+    case attr::XRayInstrument: {
+      return nullptr;
+    }
+    case attr::XRayLogArgs: {
+      return nullptr;
+    }
+  } // end switch
+  llvm_unreachable("Unknown attribute!");
+  return nullptr;
+}
+
+} // end namespace sema
+} // end namespace clang
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Serialization/AttrPCHRead.inc b/clang-4053586/prebuilt_include/clang/include/clang/Serialization/AttrPCHRead.inc
new file mode 100644
index 0000000..4aa7575
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Serialization/AttrPCHRead.inc
@@ -0,0 +1,2137 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Attribute deserialization code                                             *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+  switch (Kind) {
+  case attr::AMDGPUFlatWorkGroupSize: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned min = Record.readInt();
+    unsigned max = Record.readInt();
+    New = new (Context) AMDGPUFlatWorkGroupSizeAttr(Range, Context, min, max, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AMDGPUNumSGPR: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned numSGPR = Record.readInt();
+    New = new (Context) AMDGPUNumSGPRAttr(Range, Context, numSGPR, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AMDGPUNumVGPR: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned numVGPR = Record.readInt();
+    New = new (Context) AMDGPUNumVGPRAttr(Range, Context, numVGPR, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AMDGPUWavesPerEU: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned min = Record.readInt();
+    unsigned max = Record.readInt();
+    New = new (Context) AMDGPUWavesPerEUAttr(Range, Context, min, max, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ARMInterrupt: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    ARMInterruptAttr::InterruptType interrupt(static_cast<ARMInterruptAttr::InterruptType>(Record.readInt()));
+    New = new (Context) ARMInterruptAttr(Range, Context, interrupt, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AVRInterrupt: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) AVRInterruptAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AVRSignal: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) AVRSignalAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AbiTag: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned tagsSize = Record.readInt();
+    SmallVector<StringRef, 4> tags;
+    tags.reserve(tagsSize);
+    SmallVector<std::string, 4> tagsStorage;
+    tagsStorage.reserve(tagsSize);
+    for (unsigned i = 0; i != tagsSize; ++i)
+      tagsStorage.push_back(Record.readString());
+    for (unsigned i = 0; i != tagsSize; ++i)
+      tags.push_back(tagsStorage[i]);
+    New = new (Context) AbiTagAttr(Range, Context, tags.data(), tagsSize, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AcquireCapability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) AcquireCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AcquiredAfter: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) AcquiredAfterAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AcquiredBefore: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) AcquiredBeforeAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Alias: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string aliasee= Record.readString();
+    New = new (Context) AliasAttr(Range, Context, aliasee, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AlignMac68k: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) AlignMac68kAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AlignValue: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * alignment = Record.readExpr();
+    New = new (Context) AlignValueAttr(Range, Context, alignment, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Aligned: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    bool isalignmentExpr = Record.readInt();
+    void *alignmentPtr;
+    if (isalignmentExpr)
+      alignmentPtr = Record.readExpr();
+    else
+      alignmentPtr = Record.getTypeSourceInfo();
+    New = new (Context) AlignedAttr(Range, Context, isalignmentExpr, alignmentPtr, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AllocAlign: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int paramIndex = Record.readInt();
+    New = new (Context) AllocAlignAttr(Range, Context, paramIndex, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AllocSize: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int elemSizeParam = Record.readInt();
+    int numElemsParam = Record.readInt();
+    New = new (Context) AllocSizeAttr(Range, Context, elemSizeParam, numElemsParam, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AlwaysInline: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) AlwaysInlineAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AnalyzerNoReturn: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) AnalyzerNoReturnAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Annotate: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string annotation= Record.readString();
+    New = new (Context) AnnotateAttr(Range, Context, annotation, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AnyX86Interrupt: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) AnyX86InterruptAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ArcWeakrefUnavailable: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ArcWeakrefUnavailableAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ArgumentWithTypeTag: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * argumentKind = Record.getIdentifierInfo();
+    unsigned argumentIdx = Record.readInt();
+    unsigned typeTagIdx = Record.readInt();
+    bool isPointer = Record.readInt();
+    New = new (Context) ArgumentWithTypeTagAttr(Range, Context, argumentKind, argumentIdx, typeTagIdx, isPointer, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AsmLabel: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string label= Record.readString();
+    New = new (Context) AsmLabelAttr(Range, Context, label, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AssertCapability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * expr = Record.readExpr();
+    New = new (Context) AssertCapabilityAttr(Range, Context, expr, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AssertExclusiveLock: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) AssertExclusiveLockAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AssertSharedLock: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) AssertSharedLockAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::AssumeAligned: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * alignment = Record.readExpr();
+    Expr * offset = Record.readExpr();
+    New = new (Context) AssumeAlignedAttr(Range, Context, alignment, offset, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Availability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * platform = Record.getIdentifierInfo();
+    VersionTuple introduced= Record.readVersionTuple();
+    VersionTuple deprecated= Record.readVersionTuple();
+    VersionTuple obsoleted= Record.readVersionTuple();
+    bool unavailable = Record.readInt();
+    std::string message= Record.readString();
+    bool strict = Record.readInt();
+    std::string replacement= Record.readString();
+    New = new (Context) AvailabilityAttr(Range, Context, platform, introduced, deprecated, obsoleted, unavailable, message, strict, replacement, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Blocks: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    BlocksAttr::BlockType type(static_cast<BlocksAttr::BlockType>(Record.readInt()));
+    New = new (Context) BlocksAttr(Range, Context, type, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::C11NoReturn: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) C11NoReturnAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CDecl: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CDeclAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CFAuditedTransfer: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CFAuditedTransferAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CFConsumed: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CFConsumedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CFReturnsNotRetained: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CFReturnsNotRetainedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CFReturnsRetained: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CFReturnsRetainedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CFUnknownTransfer: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CFUnknownTransferAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDAConstant: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CUDAConstantAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDADevice: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CUDADeviceAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDAGlobal: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CUDAGlobalAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDAHost: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CUDAHostAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDAInvalidTarget: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CUDAInvalidTargetAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDALaunchBounds: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * maxThreads = Record.readExpr();
+    Expr * minBlocks = Record.readExpr();
+    New = new (Context) CUDALaunchBoundsAttr(Range, Context, maxThreads, minBlocks, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CUDAShared: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CUDASharedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CXX11NoReturn: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CXX11NoReturnAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CallableWhen: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned callableStatesSize = Record.readInt();
+    SmallVector<CallableWhenAttr::ConsumedState, 4> callableStates;
+    callableStates.reserve(callableStatesSize);
+    for (unsigned i = callableStatesSize; i; --i)
+      callableStates.push_back(static_cast<CallableWhenAttr::ConsumedState>(Record.readInt()));
+    New = new (Context) CallableWhenAttr(Range, Context, callableStates.data(), callableStatesSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Capability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string name= Record.readString();
+    New = new (Context) CapabilityAttr(Range, Context, name, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CapturedRecord: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CapturedRecordAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::CarriesDependency: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CarriesDependencyAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Cleanup: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    FunctionDecl * functionDecl = Record.GetLocalDeclAs<FunctionDecl >(Record.readInt());
+    New = new (Context) CleanupAttr(Range, Context, functionDecl, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Cold: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ColdAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Common: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) CommonAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Const: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ConstAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Constructor: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int priority = Record.readInt();
+    New = new (Context) ConstructorAttr(Range, Context, priority, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Consumable: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    ConsumableAttr::ConsumedState defaultState(static_cast<ConsumableAttr::ConsumedState>(Record.readInt()));
+    New = new (Context) ConsumableAttr(Range, Context, defaultState, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ConsumableAutoCast: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ConsumableAutoCastAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ConsumableSetOnRead: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ConsumableSetOnReadAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Convergent: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ConvergentAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::DLLExport: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) DLLExportAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::DLLImport: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) DLLImportAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Deprecated: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string message= Record.readString();
+    std::string replacement= Record.readString();
+    New = new (Context) DeprecatedAttr(Range, Context, message, replacement, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Destructor: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int priority = Record.readInt();
+    New = new (Context) DestructorAttr(Range, Context, priority, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::DiagnoseIf: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * cond = Record.readExpr();
+    std::string message= Record.readString();
+    DiagnoseIfAttr::DiagnosticType diagnosticType(static_cast<DiagnoseIfAttr::DiagnosticType>(Record.readInt()));
+    bool argDependent = Record.readInt();
+    FunctionDecl * parent = Record.GetLocalDeclAs<FunctionDecl >(Record.readInt());
+    New = new (Context) DiagnoseIfAttr(Range, Context, cond, message, diagnosticType, argDependent, parent, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::DisableTailCalls: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) DisableTailCallsAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::EmptyBases: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) EmptyBasesAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::EnableIf: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * cond = Record.readExpr();
+    std::string message= Record.readString();
+    New = new (Context) EnableIfAttr(Range, Context, cond, message, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::EnumExtensibility: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    EnumExtensibilityAttr::Kind extensibility(static_cast<EnumExtensibilityAttr::Kind>(Record.readInt()));
+    New = new (Context) EnumExtensibilityAttr(Range, Context, extensibility, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ExclusiveTrylockFunction: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * successValue = Record.readExpr();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) ExclusiveTrylockFunctionAttr(Range, Context, successValue, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ExternalSourceSymbol: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string language= Record.readString();
+    std::string definedIn= Record.readString();
+    bool generatedDeclaration = Record.readInt();
+    New = new (Context) ExternalSourceSymbolAttr(Range, Context, language, definedIn, generatedDeclaration, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::FallThrough: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) FallThroughAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::FastCall: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) FastCallAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Final: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) FinalAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::FlagEnum: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) FlagEnumAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Flatten: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) FlattenAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Format: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * type = Record.getIdentifierInfo();
+    int formatIdx = Record.readInt();
+    int firstArg = Record.readInt();
+    New = new (Context) FormatAttr(Range, Context, type, formatIdx, firstArg, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::FormatArg: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int formatIdx = Record.readInt();
+    New = new (Context) FormatArgAttr(Range, Context, formatIdx, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::GNUInline: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) GNUInlineAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::GuardedBy: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * arg = Record.readExpr();
+    New = new (Context) GuardedByAttr(Range, Context, arg, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::GuardedVar: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) GuardedVarAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Hot: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) HotAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::IBAction: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) IBActionAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::IBOutlet: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) IBOutletAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::IBOutletCollection: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    TypeSourceInfo * interface_ = Record.getTypeSourceInfo();
+    New = new (Context) IBOutletCollectionAttr(Range, Context, interface_, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::IFunc: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string resolver= Record.readString();
+    New = new (Context) IFuncAttr(Range, Context, resolver, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::InitPriority: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned priority = Record.readInt();
+    New = new (Context) InitPriorityAttr(Range, Context, priority, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::InitSeg: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string section= Record.readString();
+    New = new (Context) InitSegAttr(Range, Context, section, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::IntelOclBicc: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) IntelOclBiccAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::InternalLinkage: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) InternalLinkageAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::LTOVisibilityPublic: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) LTOVisibilityPublicAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::LayoutVersion: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned version = Record.readInt();
+    New = new (Context) LayoutVersionAttr(Range, Context, version, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::LockReturned: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * arg = Record.readExpr();
+    New = new (Context) LockReturnedAttr(Range, Context, arg, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::LocksExcluded: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) LocksExcludedAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::LoopHint: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    LoopHintAttr::OptionType option(static_cast<LoopHintAttr::OptionType>(Record.readInt()));
+    LoopHintAttr::LoopHintState state(static_cast<LoopHintAttr::LoopHintState>(Record.readInt()));
+    Expr * value = Record.readExpr();
+    New = new (Context) LoopHintAttr(Range, Context, option, state, value, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MSABI: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) MSABIAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MSInheritance: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    bool bestCase = Record.readInt();
+    New = new (Context) MSInheritanceAttr(Range, Context, bestCase, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MSNoVTable: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) MSNoVTableAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MSP430Interrupt: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned number = Record.readInt();
+    New = new (Context) MSP430InterruptAttr(Range, Context, number, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MSStruct: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) MSStructAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MSVtorDisp: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned vdm = Record.readInt();
+    New = new (Context) MSVtorDispAttr(Range, Context, vdm, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MaxFieldAlignment: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned alignment = Record.readInt();
+    New = new (Context) MaxFieldAlignmentAttr(Range, Context, alignment, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MayAlias: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) MayAliasAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MinSize: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) MinSizeAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Mips16: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) Mips16Attr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::MipsInterrupt: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    MipsInterruptAttr::InterruptType interrupt(static_cast<MipsInterruptAttr::InterruptType>(Record.readInt()));
+    New = new (Context) MipsInterruptAttr(Range, Context, interrupt, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Mode: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * mode = Record.getIdentifierInfo();
+    New = new (Context) ModeAttr(Range, Context, mode, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NSConsumed: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NSConsumedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NSConsumesSelf: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NSConsumesSelfAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NSReturnsAutoreleased: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NSReturnsAutoreleasedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NSReturnsNotRetained: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NSReturnsNotRetainedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NSReturnsRetained: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NSReturnsRetainedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Naked: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NakedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoAlias: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoAliasAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoCommon: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoCommonAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoDebug: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoDebugAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoDuplicate: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoDuplicateAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoInline: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoInlineAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoInstrumentFunction: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoInstrumentFunctionAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoMips16: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoMips16Attr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoReturn: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoReturnAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoSanitize: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned sanitizersSize = Record.readInt();
+    SmallVector<StringRef, 4> sanitizers;
+    sanitizers.reserve(sanitizersSize);
+    SmallVector<std::string, 4> sanitizersStorage;
+    sanitizersStorage.reserve(sanitizersSize);
+    for (unsigned i = 0; i != sanitizersSize; ++i)
+      sanitizersStorage.push_back(Record.readString());
+    for (unsigned i = 0; i != sanitizersSize; ++i)
+      sanitizers.push_back(sanitizersStorage[i]);
+    New = new (Context) NoSanitizeAttr(Range, Context, sanitizers.data(), sanitizersSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoSplitStack: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoSplitStackAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoThreadSafetyAnalysis: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoThreadSafetyAnalysisAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NoThrow: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NoThrowAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NonNull: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<unsigned, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readInt());
+    New = new (Context) NonNullAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::NotTailCalled: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) NotTailCalledAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OMPCaptureNoInit: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OMPCaptureNoInitAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OMPDeclareSimdDecl: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    OMPDeclareSimdDeclAttr::BranchStateTy branchState(static_cast<OMPDeclareSimdDeclAttr::BranchStateTy>(Record.readInt()));
+    Expr * simdlen = Record.readExpr();
+    unsigned uniformsSize = Record.readInt();
+    SmallVector<Expr *, 4> uniforms;
+    uniforms.reserve(uniformsSize);
+    for (unsigned i = 0; i != uniformsSize; ++i)
+      uniforms.push_back(Record.readExpr());
+    unsigned alignedsSize = Record.readInt();
+    SmallVector<Expr *, 4> aligneds;
+    aligneds.reserve(alignedsSize);
+    for (unsigned i = 0; i != alignedsSize; ++i)
+      aligneds.push_back(Record.readExpr());
+    unsigned alignmentsSize = Record.readInt();
+    SmallVector<Expr *, 4> alignments;
+    alignments.reserve(alignmentsSize);
+    for (unsigned i = 0; i != alignmentsSize; ++i)
+      alignments.push_back(Record.readExpr());
+    unsigned linearsSize = Record.readInt();
+    SmallVector<Expr *, 4> linears;
+    linears.reserve(linearsSize);
+    for (unsigned i = 0; i != linearsSize; ++i)
+      linears.push_back(Record.readExpr());
+    unsigned modifiersSize = Record.readInt();
+    SmallVector<unsigned, 4> modifiers;
+    modifiers.reserve(modifiersSize);
+    for (unsigned i = 0; i != modifiersSize; ++i)
+      modifiers.push_back(Record.readInt());
+    unsigned stepsSize = Record.readInt();
+    SmallVector<Expr *, 4> steps;
+    steps.reserve(stepsSize);
+    for (unsigned i = 0; i != stepsSize; ++i)
+      steps.push_back(Record.readExpr());
+    New = new (Context) OMPDeclareSimdDeclAttr(Range, Context, branchState, simdlen, uniforms.data(), uniformsSize, aligneds.data(), alignedsSize, alignments.data(), alignmentsSize, linears.data(), linearsSize, modifiers.data(), modifiersSize, steps.data(), stepsSize, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OMPDeclareTargetDecl: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    OMPDeclareTargetDeclAttr::MapTypeTy mapType(static_cast<OMPDeclareTargetDeclAttr::MapTypeTy>(Record.readInt()));
+    New = new (Context) OMPDeclareTargetDeclAttr(Range, Context, mapType, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OMPThreadPrivateDecl: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OMPThreadPrivateDeclAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCBoxable: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCBoxableAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCBridge: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * bridgedType = Record.getIdentifierInfo();
+    New = new (Context) ObjCBridgeAttr(Range, Context, bridgedType, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCBridgeMutable: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * bridgedType = Record.getIdentifierInfo();
+    New = new (Context) ObjCBridgeMutableAttr(Range, Context, bridgedType, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCBridgeRelated: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * relatedClass = Record.getIdentifierInfo();
+    IdentifierInfo * classMethod = Record.getIdentifierInfo();
+    IdentifierInfo * instanceMethod = Record.getIdentifierInfo();
+    New = new (Context) ObjCBridgeRelatedAttr(Range, Context, relatedClass, classMethod, instanceMethod, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCDesignatedInitializer: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCDesignatedInitializerAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCException: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCExceptionAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCExplicitProtocolImpl: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCExplicitProtocolImplAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCIndependentClass: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCIndependentClassAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCMethodFamily: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    ObjCMethodFamilyAttr::FamilyKind family(static_cast<ObjCMethodFamilyAttr::FamilyKind>(Record.readInt()));
+    New = new (Context) ObjCMethodFamilyAttr(Range, Context, family, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCNSObject: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCNSObjectAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCPreciseLifetime: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCPreciseLifetimeAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCRequiresPropertyDefs: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCRequiresPropertyDefsAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCRequiresSuper: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCRequiresSuperAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCReturnsInnerPointer: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCReturnsInnerPointerAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCRootClass: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCRootClassAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCRuntimeName: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string metadataName= Record.readString();
+    New = new (Context) ObjCRuntimeNameAttr(Range, Context, metadataName, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCRuntimeVisible: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCRuntimeVisibleAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ObjCSubclassingRestricted: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ObjCSubclassingRestrictedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OpenCLAccess: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OpenCLAccessAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OpenCLKernel: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OpenCLKernelAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OpenCLUnrollHint: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned unrollHint = Record.readInt();
+    New = new (Context) OpenCLUnrollHintAttr(Range, Context, unrollHint, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::OptimizeNone: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OptimizeNoneAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Overloadable: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OverloadableAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Override: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) OverrideAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Ownership: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * module = Record.getIdentifierInfo();
+    unsigned argsSize = Record.readInt();
+    SmallVector<unsigned, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readInt());
+    New = new (Context) OwnershipAttr(Range, Context, module, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Packed: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) PackedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ParamTypestate: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    ParamTypestateAttr::ConsumedState paramState(static_cast<ParamTypestateAttr::ConsumedState>(Record.readInt()));
+    New = new (Context) ParamTypestateAttr(Range, Context, paramState, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Pascal: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) PascalAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::PassObjectSize: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int type = Record.readInt();
+    New = new (Context) PassObjectSizeAttr(Range, Context, type, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Pcs: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    PcsAttr::PCSType pCS(static_cast<PcsAttr::PCSType>(Record.readInt()));
+    New = new (Context) PcsAttr(Range, Context, pCS, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::PreserveAll: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) PreserveAllAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::PreserveMost: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) PreserveMostAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::PtGuardedBy: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * arg = Record.readExpr();
+    New = new (Context) PtGuardedByAttr(Range, Context, arg, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::PtGuardedVar: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) PtGuardedVarAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Pure: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) PureAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::RegCall: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) RegCallAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ReleaseCapability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) ReleaseCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::RenderScriptKernel: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) RenderScriptKernelAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ReqdWorkGroupSize: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned xDim = Record.readInt();
+    unsigned yDim = Record.readInt();
+    unsigned zDim = Record.readInt();
+    New = new (Context) ReqdWorkGroupSizeAttr(Range, Context, xDim, yDim, zDim, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::RequireConstantInit: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) RequireConstantInitAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::RequiresCapability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) RequiresCapabilityAttr(Range, Context, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Restrict: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) RestrictAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ReturnTypestate: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    ReturnTypestateAttr::ConsumedState state(static_cast<ReturnTypestateAttr::ConsumedState>(Record.readInt()));
+    New = new (Context) ReturnTypestateAttr(Range, Context, state, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ReturnsNonNull: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ReturnsNonNullAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ReturnsTwice: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ReturnsTwiceAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ScopedLockable: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ScopedLockableAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Section: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string name= Record.readString();
+    New = new (Context) SectionAttr(Range, Context, name, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SelectAny: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) SelectAnyAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Sentinel: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    int sentinel = Record.readInt();
+    int nullPos = Record.readInt();
+    New = new (Context) SentinelAttr(Range, Context, sentinel, nullPos, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SetTypestate: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    SetTypestateAttr::ConsumedState newState(static_cast<SetTypestateAttr::ConsumedState>(Record.readInt()));
+    New = new (Context) SetTypestateAttr(Range, Context, newState, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SharedTrylockFunction: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * successValue = Record.readExpr();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) SharedTrylockFunctionAttr(Range, Context, successValue, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::StdCall: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) StdCallAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Suppress: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned diagnosticIdentifiersSize = Record.readInt();
+    SmallVector<StringRef, 4> diagnosticIdentifiers;
+    diagnosticIdentifiers.reserve(diagnosticIdentifiersSize);
+    SmallVector<std::string, 4> diagnosticIdentifiersStorage;
+    diagnosticIdentifiersStorage.reserve(diagnosticIdentifiersSize);
+    for (unsigned i = 0; i != diagnosticIdentifiersSize; ++i)
+      diagnosticIdentifiersStorage.push_back(Record.readString());
+    for (unsigned i = 0; i != diagnosticIdentifiersSize; ++i)
+      diagnosticIdentifiers.push_back(diagnosticIdentifiersStorage[i]);
+    New = new (Context) SuppressAttr(Range, Context, diagnosticIdentifiers.data(), diagnosticIdentifiersSize, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SwiftCall: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) SwiftCallAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SwiftContext: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) SwiftContextAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SwiftErrorResult: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) SwiftErrorResultAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SwiftIndirectResult: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) SwiftIndirectResultAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::SysVABI: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) SysVABIAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::TLSModel: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string model= Record.readString();
+    New = new (Context) TLSModelAttr(Range, Context, model, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Target: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string featuresStr= Record.readString();
+    New = new (Context) TargetAttr(Range, Context, featuresStr, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::TestTypestate: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    TestTypestateAttr::ConsumedState testState(static_cast<TestTypestateAttr::ConsumedState>(Record.readInt()));
+    New = new (Context) TestTypestateAttr(Range, Context, testState, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::ThisCall: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ThisCallAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Thread: {
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) ThreadAttr(Range, Context, Spelling);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::TransparentUnion: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) TransparentUnionAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::TryAcquireCapability: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    Expr * successValue = Record.readExpr();
+    unsigned argsSize = Record.readInt();
+    SmallVector<Expr *, 4> args;
+    args.reserve(argsSize);
+    for (unsigned i = 0; i != argsSize; ++i)
+      args.push_back(Record.readExpr());
+    New = new (Context) TryAcquireCapabilityAttr(Range, Context, successValue, args.data(), argsSize, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::TypeTagForDatatype: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    IdentifierInfo * argumentKind = Record.getIdentifierInfo();
+    TypeSourceInfo * matchingCType = Record.getTypeSourceInfo();
+    bool layoutCompatible = Record.readInt();
+    bool mustBeNull = Record.readInt();
+    New = new (Context) TypeTagForDatatypeAttr(Range, Context, argumentKind, matchingCType, layoutCompatible, mustBeNull, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::TypeVisibility: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    TypeVisibilityAttr::VisibilityType visibility(static_cast<TypeVisibilityAttr::VisibilityType>(Record.readInt()));
+    New = new (Context) TypeVisibilityAttr(Range, Context, visibility, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Unavailable: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string message= Record.readString();
+    UnavailableAttr::ImplicitReason implicitReason(static_cast<UnavailableAttr::ImplicitReason>(Record.readInt()));
+    New = new (Context) UnavailableAttr(Range, Context, message, implicitReason, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Unused: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) UnusedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Used: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) UsedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Uuid: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string guid= Record.readString();
+    New = new (Context) UuidAttr(Range, Context, guid, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::VecReturn: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) VecReturnAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::VecTypeHint: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    TypeSourceInfo * typeHint = Record.getTypeSourceInfo();
+    New = new (Context) VecTypeHintAttr(Range, Context, typeHint, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::VectorCall: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) VectorCallAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Visibility: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    VisibilityAttr::VisibilityType visibility(static_cast<VisibilityAttr::VisibilityType>(Record.readInt()));
+    New = new (Context) VisibilityAttr(Range, Context, visibility, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::WarnUnused: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) WarnUnusedAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::WarnUnusedResult: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) WarnUnusedResultAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::Weak: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) WeakAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::WeakImport: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) WeakImportAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::WeakRef: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    std::string aliasee= Record.readString();
+    New = new (Context) WeakRefAttr(Range, Context, aliasee, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::WorkGroupSizeHint: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned xDim = Record.readInt();
+    unsigned yDim = Record.readInt();
+    unsigned zDim = Record.readInt();
+    New = new (Context) WorkGroupSizeHintAttr(Range, Context, xDim, yDim, zDim, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::X86ForceAlignArgPointer: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) X86ForceAlignArgPointerAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::XRayInstrument: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    New = new (Context) XRayInstrumentAttr(Range, Context, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  case attr::XRayLogArgs: {
+    bool isInherited = Record.readInt();
+    bool isImplicit = Record.readInt();
+    unsigned Spelling = Record.readInt();
+    unsigned argumentCount = Record.readInt();
+    New = new (Context) XRayLogArgsAttr(Range, Context, argumentCount, Spelling);
+    cast<InheritableAttr>(New)->setInherited(isInherited);
+    New->setImplicit(isImplicit);
+    break;
+  }
+  }
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/Serialization/AttrPCHWrite.inc b/clang-4053586/prebuilt_include/clang/include/clang/Serialization/AttrPCHWrite.inc
new file mode 100644
index 0000000..19403cb
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/Serialization/AttrPCHWrite.inc
@@ -0,0 +1,1663 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|*                                                                            *|
+|* Attribute serialization code                                               *|
+|*                                                                            *|
+|* Automatically generated file, do not edit!                                 *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+  switch (A->getKind()) {
+  case attr::AMDGPUFlatWorkGroupSize: {
+    const auto *SA = cast<AMDGPUFlatWorkGroupSizeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getMin());
+    Record.push_back(SA->getMax());
+    break;
+  }
+  case attr::AMDGPUNumSGPR: {
+    const auto *SA = cast<AMDGPUNumSGPRAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getNumSGPR());
+    break;
+  }
+  case attr::AMDGPUNumVGPR: {
+    const auto *SA = cast<AMDGPUNumVGPRAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getNumVGPR());
+    break;
+  }
+  case attr::AMDGPUWavesPerEU: {
+    const auto *SA = cast<AMDGPUWavesPerEUAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getMin());
+    Record.push_back(SA->getMax());
+    break;
+  }
+  case attr::ARMInterrupt: {
+    const auto *SA = cast<ARMInterruptAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getInterrupt());
+    break;
+  }
+  case attr::AVRInterrupt: {
+    const auto *SA = cast<AVRInterruptAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::AVRSignal: {
+    const auto *SA = cast<AVRSignalAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::AbiTag: {
+    const auto *SA = cast<AbiTagAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->tags_size());
+    for (auto &Val : SA->tags())
+      Record.AddString(Val);
+    break;
+  }
+  case attr::AcquireCapability: {
+    const auto *SA = cast<AcquireCapabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::AcquiredAfter: {
+    const auto *SA = cast<AcquiredAfterAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::AcquiredBefore: {
+    const auto *SA = cast<AcquiredBeforeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::Alias: {
+    const auto *SA = cast<AliasAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getAliasee());
+    break;
+  }
+  case attr::AlignMac68k: {
+    const auto *SA = cast<AlignMac68kAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::AlignValue: {
+    const auto *SA = cast<AlignValueAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getAlignment());
+    break;
+  }
+  case attr::Aligned: {
+    const auto *SA = cast<AlignedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->isAlignmentExpr());
+    if (SA->isAlignmentExpr())
+      Record.AddStmt(SA->getAlignmentExpr());
+    else
+      Record.AddTypeSourceInfo(SA->getAlignmentType());
+    break;
+  }
+  case attr::AllocAlign: {
+    const auto *SA = cast<AllocAlignAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getParamIndex());
+    break;
+  }
+  case attr::AllocSize: {
+    const auto *SA = cast<AllocSizeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getElemSizeParam());
+    Record.push_back(SA->getNumElemsParam());
+    break;
+  }
+  case attr::AlwaysInline: {
+    const auto *SA = cast<AlwaysInlineAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::AnalyzerNoReturn: {
+    const auto *SA = cast<AnalyzerNoReturnAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Annotate: {
+    const auto *SA = cast<AnnotateAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getAnnotation());
+    break;
+  }
+  case attr::AnyX86Interrupt: {
+    const auto *SA = cast<AnyX86InterruptAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ArcWeakrefUnavailable: {
+    const auto *SA = cast<ArcWeakrefUnavailableAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ArgumentWithTypeTag: {
+    const auto *SA = cast<ArgumentWithTypeTagAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getArgumentKind());
+    Record.push_back(SA->getArgumentIdx());
+    Record.push_back(SA->getTypeTagIdx());
+    Record.push_back(SA->getIsPointer());
+    break;
+  }
+  case attr::AsmLabel: {
+    const auto *SA = cast<AsmLabelAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getLabel());
+    break;
+  }
+  case attr::AssertCapability: {
+    const auto *SA = cast<AssertCapabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getExpr());
+    break;
+  }
+  case attr::AssertExclusiveLock: {
+    const auto *SA = cast<AssertExclusiveLockAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::AssertSharedLock: {
+    const auto *SA = cast<AssertSharedLockAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::AssumeAligned: {
+    const auto *SA = cast<AssumeAlignedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getAlignment());
+    Record.AddStmt(SA->getOffset());
+    break;
+  }
+  case attr::Availability: {
+    const auto *SA = cast<AvailabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getPlatform());
+    Record.AddVersionTuple(SA->getIntroduced());
+    Record.AddVersionTuple(SA->getDeprecated());
+    Record.AddVersionTuple(SA->getObsoleted());
+    Record.push_back(SA->getUnavailable());
+    Record.AddString(SA->getMessage());
+    Record.push_back(SA->getStrict());
+    Record.AddString(SA->getReplacement());
+    break;
+  }
+  case attr::Blocks: {
+    const auto *SA = cast<BlocksAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getType());
+    break;
+  }
+  case attr::C11NoReturn: {
+    const auto *SA = cast<C11NoReturnAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CDecl: {
+    const auto *SA = cast<CDeclAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CFAuditedTransfer: {
+    const auto *SA = cast<CFAuditedTransferAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CFConsumed: {
+    const auto *SA = cast<CFConsumedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CFReturnsNotRetained: {
+    const auto *SA = cast<CFReturnsNotRetainedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CFReturnsRetained: {
+    const auto *SA = cast<CFReturnsRetainedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CFUnknownTransfer: {
+    const auto *SA = cast<CFUnknownTransferAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CUDAConstant: {
+    const auto *SA = cast<CUDAConstantAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CUDADevice: {
+    const auto *SA = cast<CUDADeviceAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CUDAGlobal: {
+    const auto *SA = cast<CUDAGlobalAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CUDAHost: {
+    const auto *SA = cast<CUDAHostAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CUDAInvalidTarget: {
+    const auto *SA = cast<CUDAInvalidTargetAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CUDALaunchBounds: {
+    const auto *SA = cast<CUDALaunchBoundsAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getMaxThreads());
+    Record.AddStmt(SA->getMinBlocks());
+    break;
+  }
+  case attr::CUDAShared: {
+    const auto *SA = cast<CUDASharedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CXX11NoReturn: {
+    const auto *SA = cast<CXX11NoReturnAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CallableWhen: {
+    const auto *SA = cast<CallableWhenAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->callableStates_size());
+    for (CallableWhenAttr::callableStates_iterator i = SA->callableStates_begin(), e = SA->callableStates_end(); i != e; ++i)
+      Record.push_back((*i));
+    break;
+  }
+  case attr::Capability: {
+    const auto *SA = cast<CapabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getName());
+    break;
+  }
+  case attr::CapturedRecord: {
+    const auto *SA = cast<CapturedRecordAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::CarriesDependency: {
+    const auto *SA = cast<CarriesDependencyAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Cleanup: {
+    const auto *SA = cast<CleanupAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddDeclRef(SA->getFunctionDecl());
+    break;
+  }
+  case attr::Cold: {
+    const auto *SA = cast<ColdAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Common: {
+    const auto *SA = cast<CommonAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Const: {
+    const auto *SA = cast<ConstAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Constructor: {
+    const auto *SA = cast<ConstructorAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getPriority());
+    break;
+  }
+  case attr::Consumable: {
+    const auto *SA = cast<ConsumableAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getDefaultState());
+    break;
+  }
+  case attr::ConsumableAutoCast: {
+    const auto *SA = cast<ConsumableAutoCastAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ConsumableSetOnRead: {
+    const auto *SA = cast<ConsumableSetOnReadAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Convergent: {
+    const auto *SA = cast<ConvergentAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::DLLExport: {
+    const auto *SA = cast<DLLExportAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::DLLImport: {
+    const auto *SA = cast<DLLImportAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Deprecated: {
+    const auto *SA = cast<DeprecatedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getMessage());
+    Record.AddString(SA->getReplacement());
+    break;
+  }
+  case attr::Destructor: {
+    const auto *SA = cast<DestructorAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getPriority());
+    break;
+  }
+  case attr::DiagnoseIf: {
+    const auto *SA = cast<DiagnoseIfAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getCond());
+    Record.AddString(SA->getMessage());
+Record.push_back(SA->getDiagnosticType());
+    Record.push_back(SA->getArgDependent());
+    Record.AddDeclRef(SA->getParent());
+    break;
+  }
+  case attr::DisableTailCalls: {
+    const auto *SA = cast<DisableTailCallsAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::EmptyBases: {
+    const auto *SA = cast<EmptyBasesAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::EnableIf: {
+    const auto *SA = cast<EnableIfAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getCond());
+    Record.AddString(SA->getMessage());
+    break;
+  }
+  case attr::EnumExtensibility: {
+    const auto *SA = cast<EnumExtensibilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getExtensibility());
+    break;
+  }
+  case attr::ExclusiveTrylockFunction: {
+    const auto *SA = cast<ExclusiveTrylockFunctionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getSuccessValue());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::ExternalSourceSymbol: {
+    const auto *SA = cast<ExternalSourceSymbolAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getLanguage());
+    Record.AddString(SA->getDefinedIn());
+    Record.push_back(SA->getGeneratedDeclaration());
+    break;
+  }
+  case attr::FallThrough: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::FastCall: {
+    const auto *SA = cast<FastCallAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Final: {
+    const auto *SA = cast<FinalAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::FlagEnum: {
+    const auto *SA = cast<FlagEnumAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Flatten: {
+    const auto *SA = cast<FlattenAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Format: {
+    const auto *SA = cast<FormatAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getType());
+    Record.push_back(SA->getFormatIdx());
+    Record.push_back(SA->getFirstArg());
+    break;
+  }
+  case attr::FormatArg: {
+    const auto *SA = cast<FormatArgAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getFormatIdx());
+    break;
+  }
+  case attr::GNUInline: {
+    const auto *SA = cast<GNUInlineAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::GuardedBy: {
+    const auto *SA = cast<GuardedByAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getArg());
+    break;
+  }
+  case attr::GuardedVar: {
+    const auto *SA = cast<GuardedVarAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Hot: {
+    const auto *SA = cast<HotAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::IBAction: {
+    const auto *SA = cast<IBActionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::IBOutlet: {
+    const auto *SA = cast<IBOutletAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::IBOutletCollection: {
+    const auto *SA = cast<IBOutletCollectionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddTypeSourceInfo(SA->getInterfaceLoc());
+    break;
+  }
+  case attr::IFunc: {
+    const auto *SA = cast<IFuncAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getResolver());
+    break;
+  }
+  case attr::InitPriority: {
+    const auto *SA = cast<InitPriorityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getPriority());
+    break;
+  }
+  case attr::InitSeg: {
+    const auto *SA = cast<InitSegAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getSection());
+    break;
+  }
+  case attr::IntelOclBicc: {
+    const auto *SA = cast<IntelOclBiccAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::InternalLinkage: {
+    const auto *SA = cast<InternalLinkageAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::LTOVisibilityPublic: {
+    const auto *SA = cast<LTOVisibilityPublicAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::LayoutVersion: {
+    const auto *SA = cast<LayoutVersionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getVersion());
+    break;
+  }
+  case attr::LockReturned: {
+    const auto *SA = cast<LockReturnedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getArg());
+    break;
+  }
+  case attr::LocksExcluded: {
+    const auto *SA = cast<LocksExcludedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::LoopHint: {
+    const auto *SA = cast<LoopHintAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getOption());
+Record.push_back(SA->getState());
+    Record.AddStmt(SA->getValue());
+    break;
+  }
+  case attr::MSABI: {
+    const auto *SA = cast<MSABIAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::MSInheritance: {
+    const auto *SA = cast<MSInheritanceAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getBestCase());
+    break;
+  }
+  case attr::MSNoVTable: {
+    const auto *SA = cast<MSNoVTableAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::MSP430Interrupt: {
+    const auto *SA = cast<MSP430InterruptAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getNumber());
+    break;
+  }
+  case attr::MSStruct: {
+    const auto *SA = cast<MSStructAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::MSVtorDisp: {
+    const auto *SA = cast<MSVtorDispAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getVdm());
+    break;
+  }
+  case attr::MaxFieldAlignment: {
+    const auto *SA = cast<MaxFieldAlignmentAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getAlignment());
+    break;
+  }
+  case attr::MayAlias: {
+    const auto *SA = cast<MayAliasAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::MinSize: {
+    const auto *SA = cast<MinSizeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Mips16: {
+    const auto *SA = cast<Mips16Attr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::MipsInterrupt: {
+    const auto *SA = cast<MipsInterruptAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getInterrupt());
+    break;
+  }
+  case attr::Mode: {
+    const auto *SA = cast<ModeAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getMode());
+    break;
+  }
+  case attr::NSConsumed: {
+    const auto *SA = cast<NSConsumedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NSConsumesSelf: {
+    const auto *SA = cast<NSConsumesSelfAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NSReturnsAutoreleased: {
+    const auto *SA = cast<NSReturnsAutoreleasedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NSReturnsNotRetained: {
+    const auto *SA = cast<NSReturnsNotRetainedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NSReturnsRetained: {
+    const auto *SA = cast<NSReturnsRetainedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Naked: {
+    const auto *SA = cast<NakedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoAlias: {
+    const auto *SA = cast<NoAliasAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoCommon: {
+    const auto *SA = cast<NoCommonAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoDebug: {
+    const auto *SA = cast<NoDebugAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoDuplicate: {
+    const auto *SA = cast<NoDuplicateAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoInline: {
+    const auto *SA = cast<NoInlineAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoInstrumentFunction: {
+    const auto *SA = cast<NoInstrumentFunctionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoMips16: {
+    const auto *SA = cast<NoMips16Attr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoReturn: {
+    const auto *SA = cast<NoReturnAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoSanitize: {
+    const auto *SA = cast<NoSanitizeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->sanitizers_size());
+    for (auto &Val : SA->sanitizers())
+      Record.AddString(Val);
+    break;
+  }
+  case attr::NoSplitStack: {
+    const auto *SA = cast<NoSplitStackAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoThreadSafetyAnalysis: {
+    const auto *SA = cast<NoThreadSafetyAnalysisAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NoThrow: {
+    const auto *SA = cast<NoThrowAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::NonNull: {
+    const auto *SA = cast<NonNullAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.push_back(Val);
+    break;
+  }
+  case attr::NotTailCalled: {
+    const auto *SA = cast<NotTailCalledAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::OMPCaptureNoInit: {
+    const auto *SA = cast<OMPCaptureNoInitAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::OMPDeclareSimdDecl: {
+    const auto *SA = cast<OMPDeclareSimdDeclAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getBranchState());
+    Record.AddStmt(SA->getSimdlen());
+    Record.push_back(SA->uniforms_size());
+    for (auto &Val : SA->uniforms())
+      Record.AddStmt(Val);
+    Record.push_back(SA->aligneds_size());
+    for (auto &Val : SA->aligneds())
+      Record.AddStmt(Val);
+    Record.push_back(SA->alignments_size());
+    for (auto &Val : SA->alignments())
+      Record.AddStmt(Val);
+    Record.push_back(SA->linears_size());
+    for (auto &Val : SA->linears())
+      Record.AddStmt(Val);
+    Record.push_back(SA->modifiers_size());
+    for (auto &Val : SA->modifiers())
+      Record.push_back(Val);
+    Record.push_back(SA->steps_size());
+    for (auto &Val : SA->steps())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::OMPDeclareTargetDecl: {
+    const auto *SA = cast<OMPDeclareTargetDeclAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getMapType());
+    break;
+  }
+  case attr::OMPThreadPrivateDecl: {
+    const auto *SA = cast<OMPThreadPrivateDeclAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCBoxable: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCBridge: {
+    const auto *SA = cast<ObjCBridgeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getBridgedType());
+    break;
+  }
+  case attr::ObjCBridgeMutable: {
+    const auto *SA = cast<ObjCBridgeMutableAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getBridgedType());
+    break;
+  }
+  case attr::ObjCBridgeRelated: {
+    const auto *SA = cast<ObjCBridgeRelatedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getRelatedClass());
+    Record.AddIdentifierRef(SA->getClassMethod());
+    Record.AddIdentifierRef(SA->getInstanceMethod());
+    break;
+  }
+  case attr::ObjCDesignatedInitializer: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCException: {
+    const auto *SA = cast<ObjCExceptionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCExplicitProtocolImpl: {
+    const auto *SA = cast<ObjCExplicitProtocolImplAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCIndependentClass: {
+    const auto *SA = cast<ObjCIndependentClassAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCMethodFamily: {
+    const auto *SA = cast<ObjCMethodFamilyAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getFamily());
+    break;
+  }
+  case attr::ObjCNSObject: {
+    const auto *SA = cast<ObjCNSObjectAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCPreciseLifetime: {
+    const auto *SA = cast<ObjCPreciseLifetimeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCRequiresPropertyDefs: {
+    const auto *SA = cast<ObjCRequiresPropertyDefsAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCRequiresSuper: {
+    const auto *SA = cast<ObjCRequiresSuperAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCReturnsInnerPointer: {
+    const auto *SA = cast<ObjCReturnsInnerPointerAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCRootClass: {
+    const auto *SA = cast<ObjCRootClassAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCRuntimeName: {
+    const auto *SA = cast<ObjCRuntimeNameAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getMetadataName());
+    break;
+  }
+  case attr::ObjCRuntimeVisible: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ObjCSubclassingRestricted: {
+    const auto *SA = cast<ObjCSubclassingRestrictedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::OpenCLAccess: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::OpenCLKernel: {
+    const auto *SA = cast<OpenCLKernelAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::OpenCLUnrollHint: {
+    const auto *SA = cast<OpenCLUnrollHintAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getUnrollHint());
+    break;
+  }
+  case attr::OptimizeNone: {
+    const auto *SA = cast<OptimizeNoneAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Overloadable: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Override: {
+    const auto *SA = cast<OverrideAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Ownership: {
+    const auto *SA = cast<OwnershipAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getModule());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.push_back(Val);
+    break;
+  }
+  case attr::Packed: {
+    const auto *SA = cast<PackedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ParamTypestate: {
+    const auto *SA = cast<ParamTypestateAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getParamState());
+    break;
+  }
+  case attr::Pascal: {
+    const auto *SA = cast<PascalAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::PassObjectSize: {
+    const auto *SA = cast<PassObjectSizeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getType());
+    break;
+  }
+  case attr::Pcs: {
+    const auto *SA = cast<PcsAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getPCS());
+    break;
+  }
+  case attr::PreserveAll: {
+    const auto *SA = cast<PreserveAllAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::PreserveMost: {
+    const auto *SA = cast<PreserveMostAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::PtGuardedBy: {
+    const auto *SA = cast<PtGuardedByAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getArg());
+    break;
+  }
+  case attr::PtGuardedVar: {
+    const auto *SA = cast<PtGuardedVarAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Pure: {
+    const auto *SA = cast<PureAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::RegCall: {
+    const auto *SA = cast<RegCallAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ReleaseCapability: {
+    const auto *SA = cast<ReleaseCapabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::RenderScriptKernel: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ReqdWorkGroupSize: {
+    const auto *SA = cast<ReqdWorkGroupSizeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getXDim());
+    Record.push_back(SA->getYDim());
+    Record.push_back(SA->getZDim());
+    break;
+  }
+  case attr::RequireConstantInit: {
+    const auto *SA = cast<RequireConstantInitAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::RequiresCapability: {
+    const auto *SA = cast<RequiresCapabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::Restrict: {
+    const auto *SA = cast<RestrictAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ReturnTypestate: {
+    const auto *SA = cast<ReturnTypestateAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getState());
+    break;
+  }
+  case attr::ReturnsNonNull: {
+    const auto *SA = cast<ReturnsNonNullAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ReturnsTwice: {
+    const auto *SA = cast<ReturnsTwiceAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::ScopedLockable: {
+    const auto *SA = cast<ScopedLockableAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Section: {
+    const auto *SA = cast<SectionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getName());
+    break;
+  }
+  case attr::SelectAny: {
+    const auto *SA = cast<SelectAnyAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Sentinel: {
+    const auto *SA = cast<SentinelAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getSentinel());
+    Record.push_back(SA->getNullPos());
+    break;
+  }
+  case attr::SetTypestate: {
+    const auto *SA = cast<SetTypestateAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getNewState());
+    break;
+  }
+  case attr::SharedTrylockFunction: {
+    const auto *SA = cast<SharedTrylockFunctionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getSuccessValue());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::StdCall: {
+    const auto *SA = cast<StdCallAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Suppress: {
+    const auto *SA = cast<SuppressAttr>(A);
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->diagnosticIdentifiers_size());
+    for (auto &Val : SA->diagnosticIdentifiers())
+      Record.AddString(Val);
+    break;
+  }
+  case attr::SwiftCall: {
+    const auto *SA = cast<SwiftCallAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::SwiftContext: {
+    const auto *SA = cast<SwiftContextAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::SwiftErrorResult: {
+    const auto *SA = cast<SwiftErrorResultAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::SwiftIndirectResult: {
+    const auto *SA = cast<SwiftIndirectResultAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::SysVABI: {
+    const auto *SA = cast<SysVABIAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::TLSModel: {
+    const auto *SA = cast<TLSModelAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getModel());
+    break;
+  }
+  case attr::Target: {
+    const auto *SA = cast<TargetAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getFeaturesStr());
+    break;
+  }
+  case attr::TestTypestate: {
+    const auto *SA = cast<TestTypestateAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getTestState());
+    break;
+  }
+  case attr::ThisCall: {
+    const auto *SA = cast<ThisCallAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Thread: {
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::TransparentUnion: {
+    const auto *SA = cast<TransparentUnionAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::TryAcquireCapability: {
+    const auto *SA = cast<TryAcquireCapabilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddStmt(SA->getSuccessValue());
+    Record.push_back(SA->args_size());
+    for (auto &Val : SA->args())
+      Record.AddStmt(Val);
+    break;
+  }
+  case attr::TypeTagForDatatype: {
+    const auto *SA = cast<TypeTagForDatatypeAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddIdentifierRef(SA->getArgumentKind());
+    Record.AddTypeSourceInfo(SA->getMatchingCTypeLoc());
+    Record.push_back(SA->getLayoutCompatible());
+    Record.push_back(SA->getMustBeNull());
+    break;
+  }
+  case attr::TypeVisibility: {
+    const auto *SA = cast<TypeVisibilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getVisibility());
+    break;
+  }
+  case attr::Unavailable: {
+    const auto *SA = cast<UnavailableAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getMessage());
+Record.push_back(SA->getImplicitReason());
+    break;
+  }
+  case attr::Unused: {
+    const auto *SA = cast<UnusedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Used: {
+    const auto *SA = cast<UsedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Uuid: {
+    const auto *SA = cast<UuidAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getGuid());
+    break;
+  }
+  case attr::VecReturn: {
+    const auto *SA = cast<VecReturnAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::VecTypeHint: {
+    const auto *SA = cast<VecTypeHintAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddTypeSourceInfo(SA->getTypeHintLoc());
+    break;
+  }
+  case attr::VectorCall: {
+    const auto *SA = cast<VectorCallAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Visibility: {
+    const auto *SA = cast<VisibilityAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+Record.push_back(SA->getVisibility());
+    break;
+  }
+  case attr::WarnUnused: {
+    const auto *SA = cast<WarnUnusedAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::WarnUnusedResult: {
+    const auto *SA = cast<WarnUnusedResultAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::Weak: {
+    const auto *SA = cast<WeakAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::WeakImport: {
+    const auto *SA = cast<WeakImportAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::WeakRef: {
+    const auto *SA = cast<WeakRefAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.AddString(SA->getAliasee());
+    break;
+  }
+  case attr::WorkGroupSizeHint: {
+    const auto *SA = cast<WorkGroupSizeHintAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getXDim());
+    Record.push_back(SA->getYDim());
+    Record.push_back(SA->getZDim());
+    break;
+  }
+  case attr::X86ForceAlignArgPointer: {
+    const auto *SA = cast<X86ForceAlignArgPointerAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::XRayInstrument: {
+    const auto *SA = cast<XRayInstrumentAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    break;
+  }
+  case attr::XRayLogArgs: {
+    const auto *SA = cast<XRayLogArgsAttr>(A);
+    Record.push_back(SA->isInherited());
+    Record.push_back(A->isImplicit());
+    Record.push_back(A->getSpellingListIndex());
+    Record.push_back(SA->getArgumentCount());
+    break;
+  }
+  }
diff --git a/clang-4053586/prebuilt_include/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc b/clang-4053586/prebuilt_include/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc
new file mode 100644
index 0000000..8050602
--- /dev/null
+++ b/clang-4053586/prebuilt_include/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc
@@ -0,0 +1,509 @@
+
+#ifdef GET_GROUPS
+#endif // GET_GROUPS
+
+
+#ifdef GET_PACKAGES
+PACKAGE("alpha", -1, false)
+PACKAGE("alpha.clone", -1, true)
+PACKAGE("alpha.core", -1, true)
+PACKAGE("alpha.cplusplus", -1, true)
+PACKAGE("alpha.deadcode", -1, true)
+PACKAGE("alpha.osx", -1, true)
+PACKAGE("alpha.osx.cocoa", -1, true)
+PACKAGE("alpha.osx.cocoa.localizability", -1, true)
+PACKAGE("alpha.security", -1, true)
+PACKAGE("alpha.security.taint", -1, true)
+PACKAGE("alpha.unix", -1, true)
+PACKAGE("alpha.unix.cstring", -1, true)
+PACKAGE("apiModeling", -1, true)
+PACKAGE("apiModeling.google", -1, true)
+PACKAGE("core", -1, false)
+PACKAGE("core.builtin", -1, false)
+PACKAGE("core.uninitialized", -1, false)
+PACKAGE("cplusplus", -1, false)
+PACKAGE("deadcode", -1, false)
+PACKAGE("debug", -1, false)
+PACKAGE("llvm", -1, false)
+PACKAGE("nullability", -1, false)
+PACKAGE("optin", -1, false)
+PACKAGE("optin.cplusplus", -1, false)
+PACKAGE("optin.mpi", -1, false)
+PACKAGE("optin.osx", -1, false)
+PACKAGE("optin.osx.cocoa", -1, false)
+PACKAGE("optin.osx.cocoa.localizability", -1, false)
+PACKAGE("optin.performance", -1, false)
+PACKAGE("osx", -1, false)
+PACKAGE("osx.cocoa", -1, false)
+PACKAGE("osx.coreFoundation", -1, false)
+PACKAGE("osx.coreFoundation.containers", -1, false)
+PACKAGE("security", -1, false)
+PACKAGE("security.insecureAPI", -1, false)
+PACKAGE("unix", -1, false)
+PACKAGE("unix.cstring", -1, true)
+PACKAGE("valist", -1, false)
+#endif // GET_PACKAGES
+
+
+#ifdef GET_CHECKERS
+CHECKER("debug.AnalysisOrder", AnalysisOrderChecker, AnalysisOrder.cpp, "Print callbacks that are called during analysis in order", -1, false)
+CHECKER("debug.Stats", AnalyzerStatsChecker, AnalyzerStatsChecker.cpp, "Emit warnings with analyzer statistics", -1, false)
+CHECKER("alpha.security.ArrayBound", ArrayBoundChecker, ArrayBoundChecker.cpp, "Warn about buffer overflows (older checker)", -1, true)
+CHECKER("alpha.security.ArrayBoundV2", ArrayBoundCheckerV2, ArrayBoundCheckerV2.cpp, "Warn about buffer overflows (newer checker)", -1, true)
+CHECKER("alpha.unix.BlockInCriticalSection", BlockInCriticalSectionChecker, BlockInCriticalSectionChecker.cpp, "Check for calls to blocking functions inside a critical section", -1, true)
+CHECKER("alpha.core.BoolAssignment", BoolAssignmentChecker, BoolAssignmentChecker.cpp, "Warn about assigning non-{0,1} values to Boolean variables", -1, true)
+CHECKER("debug.DumpBugHash", BugHashDumper, DebugCheckers.cpp, "Dump the bug hash for all statements.", -1, false)
+CHECKER("core.builtin.BuiltinFunctions", BuiltinFunctionChecker, BuiltinFunctionChecker.cpp, "Evaluate compiler builtin functions (e.g., alloca())", -1, false)
+CHECKER("osx.coreFoundation.CFError", CFErrorChecker, NSErrorChecker.cpp, "Check usage of CFErrorRef* parameters", -1, false)
+CHECKER("debug.DumpCFG", CFGDumper, DebugCheckers.cpp, "Display Control-Flow Graphs", -1, false)
+CHECKER("debug.ViewCFG", CFGViewer, DebugCheckers.cpp, "View Control-Flow Graphs using GraphViz", -1, false)
+CHECKER("osx.coreFoundation.CFNumber", CFNumberChecker, BasicObjCFoundationChecks.cpp, "Check for proper uses of CFNumber APIs", -1, false)
+CHECKER("osx.coreFoundation.CFRetainRelease", CFRetainReleaseChecker, BasicObjCFoundationChecks.cpp, "Check for null arguments to CFRetain/CFRelease/CFMakeCollectable", -1, false)
+CHECKER("alpha.unix.cstring.BufferOverlap", CStringBufferOverlap, CStringChecker.cpp, "Checks for overlap in two buffer arguments", -1, true)
+CHECKER("alpha.unix.cstring.NotNullTerminated", CStringNotNullTerm, CStringChecker.cpp, "Check for arguments which are not null-terminating strings", -1, true)
+CHECKER("unix.cstring.NullArg", CStringNullArg, CStringChecker.cpp, "Check for null pointers being passed as arguments to C string functions", -1, true)
+CHECKER("alpha.unix.cstring.OutOfBounds", CStringOutOfBounds, CStringChecker.cpp, "Check for out-of-bounds access in string functions", -1, true)
+CHECKER("unix.cstring.BadSizeArg", CStringSyntaxChecker, CStringSyntaxChecker.cpp, "Check the size argument passed into C string functions for common erroneous patterns", -1, true)
+CHECKER("cplusplus.SelfAssignment", CXXSelfAssignmentChecker, CXXSelfAssignmentChecker.cpp, "Checks C++ copy and move assignment operators for self assignment", -1, false)
+CHECKER("core.CallAndMessage", CallAndMessageChecker, CallAndMessageChecker.cpp, "Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers)", -1, false)
+CHECKER("alpha.core.CallAndMessageUnInitRefArg", CallAndMessageUnInitRefArg, CallAndMessageChecker.cpp, "Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers, and pointer to undefined variables)", -1, true)
+CHECKER("debug.DumpCalls", CallDumper, TraversalChecker.cpp, "Print calls as they are traversed by the engine", -1, false)
+CHECKER("debug.DumpCallGraph", CallGraphDumper, DebugCheckers.cpp, "Display Call Graph", -1, false)
+CHECKER("debug.ViewCallGraph", CallGraphViewer, DebugCheckers.cpp, "View Call Graph using GraphViz", -1, false)
+CHECKER("alpha.core.CastSize", CastSizeChecker, CastSizeChecker.cpp, "Check when casting a malloc'ed type T, whether the size is a multiple of the size of T", -1, true)
+CHECKER("alpha.core.CastToStruct", CastToStructChecker, CastToStructChecker.cpp, "Check for cast from non-struct pointer to struct pointer", -1, true)
+CHECKER("alpha.unix.Chroot", ChrootChecker, ChrootChecker.cpp, "Check improper use of chroot", -1, true)
+CHECKER("osx.cocoa.ClassRelease", ClassReleaseChecker, BasicObjCFoundationChecks.cpp, "Check for sending 'retain', 'release', or 'autorelease' directly to a Class", -1, false)
+CHECKER("alpha.clone.CloneChecker", CloneChecker, CloneChecker.cpp, "Reports similar pieces of code.", -1, true)
+CHECKER("debug.ConfigDumper", ConfigDumper, DebugCheckers.cpp, "Dump config table", -1, false)
+CHECKER("alpha.core.Conversion", ConversionChecker, ConversionChecker.cpp, "Loss of sign/precision in implicit conversions", -1, true)
+CHECKER("valist.CopyToSelf", CopyToSelfChecker, ValistChecker.cpp, "Check for va_lists which are copied onto itself.", -1, false)
+CHECKER("deadcode.DeadStores", DeadStoresChecker, DeadStoresChecker.cpp, "Check for values stored to variables that are never read afterwards", -1, false)
+CHECKER("core.NullDereference", DereferenceChecker, DereferenceChecker.cpp, "Check for dereferences of null pointers", -1, false)
+CHECKER("alpha.osx.cocoa.DirectIvarAssignment", DirectIvarAssignment, DirectIvarAssignment.cpp, "Check for direct assignments to instance variables", -1, true)
+CHECKER("alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions", DirectIvarAssignmentForAnnotatedFunctions, DirectIvarAssignment.cpp, "Check for direct assignments to instance variables in the methods annotated with objc_no_direct_instance_variable_assignment", -1, true)
+CHECKER("core.DivideZero", DivZeroChecker, DivZeroChecker.cpp, "Check for division by zero", -1, false)
+CHECKER("debug.DumpDominators", DominatorsTreeDumper, DebugCheckers.cpp, "Print the dominance tree for a given CFG", -1, false)
+CHECKER("alpha.core.DynamicTypeChecker", DynamicTypeChecker, DynamicTypeChecker.cpp, "Check for cases where the dynamic and the static type of an object are unrelated.", -1, true)
+CHECKER("core.DynamicTypePropagation", DynamicTypePropagation, DynamicTypePropagation.cpp, "Generate dynamic type information", -1, false)
+CHECKER("optin.osx.cocoa.localizability.EmptyLocalizationContextChecker", EmptyLocalizationContextChecker, LocalizationChecker.cpp, "Check that NSLocalizedString macros include a comment for context", -1, false)
+CHECKER("debug.ViewExplodedGraph", ExplodedGraphViewer, DebugCheckers.cpp, "View Exploded Graphs using GraphViz", -1, false)
+CHECKER("debug.ExprInspection", ExprInspectionChecker, ExprInspectionChecker.cpp, "Check the analyzer's understanding of expressions", -1, false)
+CHECKER("alpha.core.FixedAddr", FixedAddressChecker, FixedAddressChecker.cpp, "Check for assignment of a fixed address to a pointer", -1, true)
+CHECKER("security.FloatLoopCounter", FloatLoopCounter, CheckSecuritySyntaxOnly.cpp, "Warn on using a floating point value as a loop counter (CERT: FLP30-C, FLP30-CPP)", -1, false)
+CHECKER("apiModeling.google.GTest", GTestChecker, GTestChecker.cpp, "Model gtest assertion APIs", -1, true)
+CHECKER("alpha.security.taint.TaintPropagation", GenericTaintChecker, GenericTaintChecker.cpp, "Generate taint information used by other checkers", -1, true)
+CHECKER("alpha.core.IdenticalExpr", IdenticalExprChecker, IdenticalExprChecker.cpp, "Warn about unintended use of identical expressions in operators", -1, true)
+CHECKER("alpha.osx.cocoa.InstanceVariableInvalidation", InstanceVariableInvalidation, IvarInvalidationChecker.cpp, "Check that the invalidatable instance variables are invalidated in the methods annotated with objc_instance_variable_invalidator", -1, true)
+CHECKER("alpha.cplusplus.IteratorPastEnd", IteratorPastEndChecker, IteratorPastEndChecker.cpp, "Check iterators used past end", -1, true)
+CHECKER("llvm.Conventions", LLVMConventionsChecker, LLVMConventionsChecker.cpp, "Check code for LLVM codebase conventions", -1, false)
+CHECKER("debug.DumpLiveVars", LiveVariablesDumper, DebugCheckers.cpp, "Print results of live variable analysis", -1, false)
+CHECKER("optin.mpi.MPI-Checker", MPIChecker, MPIChecker.cpp, "Checks MPI code", -1, false)
+CHECKER("osx.SecKeychainAPI", MacOSKeychainAPIChecker, MacOSKeychainAPIChecker.cpp, "Check for proper uses of Secure Keychain APIs", -1, false)
+CHECKER("osx.API", MacOSXAPIChecker, MacOSXAPIChecker.cpp, "Check for proper uses of various Apple APIs", -1, false)
+CHECKER("unix.Malloc", MallocChecker, MallocChecker.cpp, "Check for memory leaks, double free, and use-after-free problems. Traces memory managed by malloc()/free().", -1, false)
+CHECKER("alpha.security.MallocOverflow", MallocOverflowSecurityChecker, MallocOverflowSecurityChecker.cpp, "Check for overflows in the arguments to malloc()", -1, true)
+CHECKER("unix.MallocSizeof", MallocSizeofChecker, MallocSizeofChecker.cpp, "Check for dubious malloc arguments involving sizeof", -1, false)
+CHECKER("unix.MismatchedDeallocator", MismatchedDeallocatorChecker, MallocChecker.cpp, "Check for mismatched deallocators.", -1, false)
+CHECKER("alpha.osx.cocoa.MissingInvalidationMethod", MissingInvalidationMethod, IvarInvalidationChecker.cpp, "Check that the invalidation methods are present in classes that contain invalidatable instance variables", -1, true)
+CHECKER("alpha.cplusplus.MisusedMovedObject", MisusedMovedObjectChecker, MisusedMovedObjectChecker.cpp, "Method calls on a moved-from object and copying a moved-from object will be reported", -1, true)
+CHECKER("osx.cocoa.NSAutoreleasePool", NSAutoreleasePoolChecker, NSAutoreleasePoolChecker.cpp, "Warn for suboptimal uses of NSAutoreleasePool in Objective-C GC mode", -1, false)
+CHECKER("osx.cocoa.NSError", NSErrorChecker, NSErrorChecker.cpp, "Check usage of NSError** parameters", -1, false)
+CHECKER("cplusplus.NewDelete", NewDeleteChecker, MallocChecker.cpp, "Check for double-free and use-after-free problems. Traces memory managed by new/delete.", -1, false)
+CHECKER("cplusplus.NewDeleteLeaks", NewDeleteLeaksChecker, MallocChecker.cpp, "Check for memory leaks. Traces memory managed by new/delete.", -1, false)
+CHECKER("osx.cocoa.NilArg", NilArgChecker, BasicObjCFoundationChecks.cpp, "Check for prohibited nil arguments to ObjC method calls", -1, false)
+CHECKER("core.builtin.NoReturnFunctions", NoReturnFunctionChecker, NoReturnFunctionChecker.cpp, "Evaluate \"panic\" functions that are known to not return to the caller", -1, false)
+CHECKER("optin.osx.cocoa.localizability.NonLocalizedStringChecker", NonLocalizedStringChecker, LocalizationChecker.cpp, "Warns about uses of non-localized NSStrings passed to UI methods expecting localized NSStrings", -1, false)
+CHECKER("core.NonNullParamChecker", NonNullParamChecker, NonNullParamChecker.cpp, "Check for null pointers passed as arguments to a function whose arguments are references or marked with the 'nonnull' attribute", -1, false)
+CHECKER("nullability.NullPassedToNonnull", NullPassedToNonnullChecker, NullabilityChecker.cpp, "Warns when a null pointer is passed to a pointer which has a _Nonnull type.", -1, false)
+CHECKER("nullability.NullReturnedFromNonnull", NullReturnedFromNonnullChecker, NullabilityChecker.cpp, "Warns when a null pointer is returned from a function that has _Nonnull return type.", -1, false)
+CHECKER("nullability.NullableDereferenced", NullableDereferencedChecker, NullabilityChecker.cpp, "Warns when a nullable pointer is dereferenced.", -1, false)
+CHECKER("nullability.NullablePassedToNonnull", NullablePassedToNonnullChecker, NullabilityChecker.cpp, "Warns when a nullable pointer is passed to a pointer which has a _Nonnull type.", -1, false)
+CHECKER("nullability.NullableReturnedFromNonnull", NullableReturnedFromNonnullChecker, NullabilityChecker.cpp, "Warns when a nullable pointer is returned from a function that has _Nonnull return type.", -1, false)
+CHECKER("osx.NumberObjectConversion", NumberObjectConversionChecker, NumberObjectConversionChecker.cpp, "Check for erroneous conversions of objects representing numbers into numbers", -1, false)
+CHECKER("osx.cocoa.AtSync", ObjCAtSyncChecker, ObjCAtSyncChecker.cpp, "Check for nil pointers used as mutexes for @synchronized", -1, false)
+CHECKER("osx.coreFoundation.containers.PointerSizedValues", ObjCContainersASTChecker, ObjCContainersASTChecker.cpp, "Warns if 'CFArray', 'CFDictionary', 'CFSet' are created with non-pointer-size values", -1, false)
+CHECKER("osx.coreFoundation.containers.OutOfBounds", ObjCContainersChecker, ObjCContainersChecker.cpp, "Checks for index out-of-bounds when using 'CFArray' API", -1, false)
+CHECKER("osx.cocoa.Dealloc", ObjCDeallocChecker, CheckObjCDealloc.cpp, "Warn about Objective-C classes that lack a correct implementation of -dealloc", -1, false)
+CHECKER("osx.cocoa.ObjCGenerics", ObjCGenericsChecker, DynamicTypePropagation.cpp, "Check for type errors when using Objective-C generics", -1, false)
+CHECKER("osx.cocoa.Loops", ObjCLoopChecker, BasicObjCFoundationChecks.cpp, "Improved modeling of loops using Cocoa collection types", -1, false)
+CHECKER("osx.cocoa.IncompatibleMethodTypes", ObjCMethSigsChecker, CheckObjCInstMethSignature.cpp, "Warn about Objective-C method signatures with type incompatibilities", -1, false)
+CHECKER("osx.cocoa.NonNilReturnValue", ObjCNonNilReturnValueChecker, BasicObjCFoundationChecks.cpp, "Model the APIs that are guaranteed to return a non-nil value", -1, false)
+CHECKER("osx.ObjCProperty", ObjCPropertyChecker, ObjCPropertyChecker.cpp, "Check for proper uses of Objective-C properties", -1, false)
+CHECKER("osx.cocoa.SelfInit", ObjCSelfInitChecker, ObjCSelfInitChecker.cpp, "Check that 'self' is properly initialized inside an initializer method", -1, false)
+CHECKER("osx.cocoa.MissingSuperCall", ObjCSuperCallChecker, ObjCMissingSuperCallChecker.cpp, "Warn about Objective-C methods that lack a necessary call to super", -1, false)
+CHECKER("osx.cocoa.SuperDealloc", ObjCSuperDeallocChecker, ObjCSuperDeallocChecker.cpp, "Warn about improper use of '[super dealloc]' in Objective-C", -1, false)
+CHECKER("osx.cocoa.UnusedIvars", ObjCUnusedIvarsChecker, ObjCUnusedIVarsChecker.cpp, "Warn about private ivars that are never used", -1, false)
+CHECKER("optin.performance.Padding", PaddingChecker, PaddingChecker.cpp, "Check for excessively padded structs.", -1, false)
+CHECKER("alpha.osx.cocoa.localizability.PluralMisuseChecker", PluralMisuseChecker, LocalizationChecker.cpp, "Warns against using one vs. many plural pattern in code when generating localized strings.", -1, true)
+CHECKER("alpha.core.PointerArithm", PointerArithChecker, PointerArithChecker, "Check for pointer arithmetic on locations other than array elements", -1, true)
+CHECKER("alpha.core.PointerSub", PointerSubChecker, PointerSubChecker, "Check for pointer subtractions on two pointers pointing to different memory chunks", -1, true)
+CHECKER("alpha.unix.PthreadLock", PthreadLockChecker, PthreadLockChecker.cpp, "Simple lock -> unlock checker", -1, true)
+CHECKER("osx.cocoa.RetainCount", RetainCountChecker, RetainCountChecker.cpp, "Check for leaks and improper reference count management", -1, false)
+CHECKER("alpha.security.ReturnPtrRange", ReturnPointerRangeChecker, ReturnPointerRangeChecker.cpp, "Check for an out-of-bound pointer being returned to callers", -1, true)
+CHECKER("core.uninitialized.UndefReturn", ReturnUndefChecker, ReturnUndefChecker.cpp, "Check for uninitialized values being returned to the caller", -1, false)
+CHECKER("alpha.unix.SimpleStream", SimpleStreamChecker, SimpleStreamChecker.cpp, "Check for misuses of stream APIs", -1, true)
+CHECKER("alpha.core.SizeofPtr", SizeofPointerChecker, CheckSizeofPointer.cpp, "Warn about unintended use of sizeof() on pointer expressions", -1, true)
+CHECKER("core.StackAddressEscape", StackAddrEscapeChecker, StackAddrEscapeChecker.cpp, "Check that addresses to stack memory do not escape the function", -1, false)
+CHECKER("unix.StdCLibraryFunctions", StdCLibraryFunctionsChecker, StdLibraryFunctionsChecker.cpp, "Improve modeling of the C standard library functions", -1, false)
+CHECKER("alpha.unix.Stream", StreamChecker, StreamChecker.cpp, "Check stream handling functions", -1, true)
+CHECKER("debug.TaintTest", TaintTesterChecker, TaintTesterChecker.cpp, "Mark tainted symbols as such.", -1, false)
+CHECKER("alpha.core.TestAfterDivZero", TestAfterDivZeroChecker, TestAfterDivZeroChecker.cpp, "Check for division by variable that is later compared against 0. Either the comparison is useless or there is division by zero.", -1, true)
+CHECKER("debug.DumpTraversal", TraversalDumper, TraversalChecker.cpp, "Print branch conditions as they are traversed by the engine", -1, false)
+CHECKER("security.insecureAPI.UncheckedReturn", UncheckedReturn, CheckSecuritySyntaxOnly.cpp, "Warn on uses of functions whose return values must be always checked", -1, false)
+CHECKER("core.uninitialized.Branch", UndefBranchChecker, UndefBranchChecker.cpp, "Check for uninitialized values used as branch conditions", -1, false)
+CHECKER("core.uninitialized.CapturedBlockVariable", UndefCapturedBlockVarChecker, UndefCapturedBlockVarChecker.cpp, "Check for blocks that capture uninitialized values", -1, false)
+CHECKER("core.UndefinedBinaryOperatorResult", UndefResultChecker, UndefResultChecker.cpp, "Check for undefined results of binary operators", -1, false)
+CHECKER("core.uninitialized.ArraySubscript", UndefinedArraySubscriptChecker, UndefinedArraySubscriptChecker.cpp, "Check for uninitialized values used as array subscripts", -1, false)
+CHECKER("core.uninitialized.Assign", UndefinedAssignmentChecker, UndefinedAssignmentChecker.cpp, "Check for assigning uninitialized values", -1, false)
+CHECKER("valist.Uninitialized", UninitializedChecker, ValistChecker.cpp, "Check for usages of uninitialized (or already released) va_lists.", -1, false)
+CHECKER("unix.API", UnixAPIChecker, UnixAPIChecker.cpp, "Check calls to various UNIX/Posix functions", -1, false)
+CHECKER("alpha.deadcode.UnreachableCode", UnreachableCodeChecker, UnreachableCodeChecker.cpp, "Check unreachable code", -1, true)
+CHECKER("valist.Unterminated", UnterminatedChecker, ValistChecker.cpp, "Check for va_lists which are not released by a va_end call.", -1, false)
+CHECKER("core.VLASize", VLASizeChecker, VLASizeChecker.cpp, "Check for declarations of VLA of undefined or zero size", -1, false)
+CHECKER("osx.cocoa.VariadicMethodTypes", VariadicMethodTypeChecker, BasicObjCFoundationChecks.cpp, "Check for passing non-Objective-C types to variadic collection initialization methods that expect only Objective-C types", -1, false)
+CHECKER("unix.Vfork", VforkChecker, VforkChecker.cpp, "Check for proper usage of vfork", -1, false)
+CHECKER("optin.cplusplus.VirtualCall", VirtualCallChecker, VirtualCallChecker.cpp, "Check virtual function calls during construction or destruction", -1, false)
+CHECKER("security.insecureAPI.getpw", getpw, CheckSecuritySyntaxOnly.cpp, "Warn on uses of the 'getpw' function", -1, false)
+CHECKER("security.insecureAPI.gets", gets, CheckSecuritySyntaxOnly.cpp, "Warn on uses of the 'gets' function", -1, false)
+CHECKER("security.insecureAPI.mkstemp", mkstemp, CheckSecuritySyntaxOnly.cpp, "Warn when 'mkstemp' is passed fewer than 6 X's in the format string", -1, false)
+CHECKER("security.insecureAPI.mktemp", mktemp, CheckSecuritySyntaxOnly.cpp, "Warn on uses of the 'mktemp' function", -1, false)
+CHECKER("security.insecureAPI.rand", rand, CheckSecuritySyntaxOnly.cpp, "Warn on uses of the 'rand', 'random', and related functions", -1, false)
+CHECKER("security.insecureAPI.strcpy", strcpy, CheckSecuritySyntaxOnly.cpp, "Warn on uses of the 'strcpy' and 'strcat' functions", -1, false)
+CHECKER("security.insecureAPI.vfork", vfork, CheckSecuritySyntaxOnly.cpp, "Warn on uses of the 'vfork' function", -1, false)
+#endif // GET_CHECKERS
+
+
+#ifdef GET_MEMBER_ARRAYS
+static const short SubPackageArray0[] = { 3, 16, 19, 29, 36, 21, 1, -1 };
+static const short SubPackageArray1[] = { 2, -1 };
+static const short CheckerArray2[] = { 28, -1 };
+static const short SubPackageArray3[] = { 4, 6, 7, 8, 11, 10, 12, 13, 14, 5, 15, 9, -1 };
+static const short CheckerArray4[] = { 5, -1 };
+static const short CheckerArray5[] = { 20, -1 };
+static const short CheckerArray6[] = { 24, -1 };
+static const short CheckerArray7[] = { 25, -1 };
+static const short CheckerArray8[] = { 30, -1 };
+static const short CheckerArray9[] = { 38, -1 };
+static const short CheckerArray10[] = { 43, -1 };
+static const short CheckerArray11[] = { 47, -1 };
+static const short CheckerArray12[] = { 90, -1 };
+static const short CheckerArray13[] = { 91, -1 };
+static const short CheckerArray14[] = { 97, -1 };
+static const short CheckerArray15[] = { 102, -1 };
+static const short SubPackageArray16[] = { 18, 17, -1 };
+static const short CheckerArray17[] = { 49, -1 };
+static const short CheckerArray18[] = { 60, -1 };
+static const short SubPackageArray19[] = { 20, -1 };
+static const short CheckerArray20[] = { 112, -1 };
+static const short SubPackageArray21[] = { 22, -1 };
+static const short SubPackageArray22[] = { 27, 25, 26, 23, 24, -1 };
+static const short CheckerArray23[] = { 34, -1 };
+static const short CheckerArray24[] = { 35, -1 };
+static const short CheckerArray25[] = { 48, -1 };
+static const short CheckerArray26[] = { 59, -1 };
+static const short SubPackageArray27[] = { 28, -1 };
+static const short CheckerArray28[] = { 89, -1 };
+static const short SubPackageArray29[] = { 34, 30, 31, 33, 32, -1 };
+static const short CheckerArray30[] = { 2, -1 };
+static const short CheckerArray31[] = { 3, -1 };
+static const short CheckerArray32[] = { 56, -1 };
+static const short CheckerArray33[] = { 94, -1 };
+static const short SubPackageArray34[] = { 35, -1 };
+static const short CheckerArray35[] = { 46, -1 };
+static const short SubPackageArray36[] = { 42, 38, 39, 41, 40, 37, -1 };
+static const short CheckerArray37[] = { 4, -1 };
+static const short CheckerArray38[] = { 26, -1 };
+static const short CheckerArray39[] = { 92, -1 };
+static const short CheckerArray40[] = { 96, -1 };
+static const short CheckerArray41[] = { 100, -1 };
+static const short SubPackageArray42[] = { 45, 43, 44, -1 };
+static const short CheckerArray43[] = { 13, -1 };
+static const short CheckerArray44[] = { 14, -1 };
+static const short CheckerArray45[] = { 16, -1 };
+static const short SubPackageArray46[] = { 47, -1 };
+static const short SubPackageArray47[] = { 48, -1 };
+static const short CheckerArray48[] = { 45, -1 };
+static const short SubPackageArray49[] = { 58, 61, 54, 50, 53, 57, 51, 56, 55, 52, -1 };
+static const short CheckerArray50[] = { 19, -1 };
+static const short CheckerArray51[] = { 36, -1 };
+static const short CheckerArray52[] = { 39, -1 };
+static const short CheckerArray53[] = { 68, -1 };
+static const short CheckerArray54[] = { 33, -1 };
+static const short CheckerArray55[] = { 98, -1 };
+static const short CheckerArray56[] = { 107, -1 };
+static const short CheckerArray57[] = { 114, -1 };
+static const short SubPackageArray58[] = { 60, 59, -1 };
+static const short CheckerArray59[] = { 7, -1 };
+static const short CheckerArray60[] = { 66, -1 };
+static const short SubPackageArray61[] = { 62, 63, 64, 65, 66, -1 };
+static const short CheckerArray62[] = { 108, -1 };
+static const short CheckerArray63[] = { 109, -1 };
+static const short CheckerArray64[] = { 105, -1 };
+static const short CheckerArray65[] = { 106, -1 };
+static const short CheckerArray66[] = { 95, -1 };
+static const short SubPackageArray67[] = { 68, 69, 70, -1 };
+static const short CheckerArray68[] = { 63, -1 };
+static const short CheckerArray69[] = { 64, -1 };
+static const short CheckerArray70[] = { 18, -1 };
+static const short SubPackageArray71[] = { 72, -1 };
+static const short CheckerArray72[] = { 32, -1 };
+static const short SubPackageArray73[] = { 74, 80, 81, 86, 77, 87, 78, 75, 82, 79, 84, 85, 83, 88, 76, -1 };
+static const short CheckerArray74[] = { 0, -1 };
+static const short CheckerArray75[] = { 29, -1 };
+static const short CheckerArray76[] = { 6, -1 };
+static const short CheckerArray77[] = { 9, -1 };
+static const short CheckerArray78[] = { 22, -1 };
+static const short CheckerArray79[] = { 21, -1 };
+static const short CheckerArray80[] = { 37, -1 };
+static const short CheckerArray81[] = { 51, -1 };
+static const short CheckerArray82[] = { 103, -1 };
+static const short CheckerArray83[] = { 42, -1 };
+static const short CheckerArray84[] = { 1, -1 };
+static const short CheckerArray85[] = { 101, -1 };
+static const short CheckerArray86[] = { 10, -1 };
+static const short CheckerArray87[] = { 23, -1 };
+static const short CheckerArray88[] = { 41, -1 };
+static const short SubPackageArray89[] = { 90, -1 };
+static const short CheckerArray90[] = { 50, -1 };
+static const short SubPackageArray91[] = { 92, 93, 94, 95, 96, -1 };
+static const short CheckerArray92[] = { 69, -1 };
+static const short CheckerArray93[] = { 70, -1 };
+static const short CheckerArray94[] = { 71, -1 };
+static const short CheckerArray95[] = { 72, -1 };
+static const short CheckerArray96[] = { 73, -1 };
+static const short SubPackageArray97[] = { 98, 107, 102, 100, -1 };
+static const short SubPackageArray98[] = { 99, -1 };
+static const short CheckerArray99[] = { 117, -1 };
+static const short SubPackageArray100[] = { 101, -1 };
+static const short CheckerArray101[] = { 52, -1 };
+static const short SubPackageArray102[] = { 103, -1 };
+static const short SubPackageArray103[] = { 104, -1 };
+static const short SubPackageArray104[] = { 106, 105, -1 };
+static const short CheckerArray105[] = { 40, -1 };
+static const short CheckerArray106[] = { 67, -1 };
+static const short SubPackageArray107[] = { 108, -1 };
+static const short CheckerArray108[] = { 88, -1 };
+static const short SubPackageArray109[] = { 114, 131, 111, 110, 113, 112, -1 };
+static const short CheckerArray110[] = { 54, -1 };
+static const short CheckerArray111[] = { 74, -1 };
+static const short CheckerArray112[] = { 83, -1 };
+static const short CheckerArray113[] = { 53, -1 };
+static const short SubPackageArray114[] = { 115, 123, 116, 130, 121, 118, 129, 127, 119, 124, 120, 122, 126, 125, 117, 128, -1 };
+static const short CheckerArray115[] = { 75, -1 };
+static const short CheckerArray116[] = { 27, -1 };
+static const short CheckerArray117[] = { 78, -1 };
+static const short CheckerArray118[] = { 81, -1 };
+static const short CheckerArray119[] = { 80, -1 };
+static const short CheckerArray120[] = { 85, -1 };
+static const short CheckerArray121[] = { 61, -1 };
+static const short CheckerArray122[] = { 62, -1 };
+static const short CheckerArray123[] = { 65, -1 };
+static const short CheckerArray124[] = { 82, -1 };
+static const short CheckerArray125[] = { 79, -1 };
+static const short CheckerArray126[] = { 93, -1 };
+static const short CheckerArray127[] = { 84, -1 };
+static const short CheckerArray128[] = { 86, -1 };
+static const short CheckerArray129[] = { 87, -1 };
+static const short CheckerArray130[] = { 115, -1 };
+static const short SubPackageArray131[] = { 135, 133, 134, 132, -1 };
+static const short CheckerArray132[] = { 8, -1 };
+static const short CheckerArray133[] = { 11, -1 };
+static const short CheckerArray134[] = { 12, -1 };
+static const short SubPackageArray135[] = { 137, 136, -1 };
+static const short CheckerArray136[] = { 77, -1 };
+static const short CheckerArray137[] = { 76, -1 };
+static const short SubPackageArray138[] = { 140, 139, -1 };
+static const short CheckerArray139[] = { 44, -1 };
+static const short SubPackageArray140[] = { 143, 142, 145, 144, 146, 147, 148, 141, -1 };
+static const short CheckerArray141[] = { 104, -1 };
+static const short CheckerArray142[] = { 118, -1 };
+static const short CheckerArray143[] = { 119, -1 };
+static const short CheckerArray144[] = { 120, -1 };
+static const short CheckerArray145[] = { 121, -1 };
+static const short CheckerArray146[] = { 122, -1 };
+static const short CheckerArray147[] = { 123, -1 };
+static const short CheckerArray148[] = { 124, -1 };
+static const short SubPackageArray149[] = { 156, 150, 151, 152, 153, 155, 154, -1 };
+static const short CheckerArray150[] = { 111, -1 };
+static const short CheckerArray151[] = { 55, -1 };
+static const short CheckerArray152[] = { 57, -1 };
+static const short CheckerArray153[] = { 58, -1 };
+static const short CheckerArray154[] = { 99, -1 };
+static const short CheckerArray155[] = { 116, -1 };
+static const short SubPackageArray156[] = { 158, 157, -1 };
+static const short CheckerArray157[] = { 17, -1 };
+static const short CheckerArray158[] = { 15, -1 };
+static const short SubPackageArray159[] = { 161, 162, 160, -1 };
+static const short CheckerArray160[] = { 31, -1 };
+static const short CheckerArray161[] = { 110, -1 };
+static const short CheckerArray162[] = { 113, -1 };
+#endif // GET_MEMBER_ARRAYS
+
+
+#ifdef GET_CHECKNAME_TABLE
+  { "alpha",                                                          0, SubPackageArray0, false },
+  { "alpha.clone",                                                    0, SubPackageArray1, true },
+  { "alpha.clone.CloneChecker",                                       CheckerArray2, 0, false },
+  { "alpha.core",                                                     0, SubPackageArray3, true },
+  { "alpha.core.BoolAssignment",                                      CheckerArray4, 0, false },
+  { "alpha.core.CallAndMessageUnInitRefArg",                          CheckerArray5, 0, false },
+  { "alpha.core.CastSize",                                            CheckerArray6, 0, false },
+  { "alpha.core.CastToStruct",                                        CheckerArray7, 0, false },
+  { "alpha.core.Conversion",                                          CheckerArray8, 0, false },
+  { "alpha.core.DynamicTypeChecker",                                  CheckerArray9, 0, false },
+  { "alpha.core.FixedAddr",                                           CheckerArray10, 0, false },
+  { "alpha.core.IdenticalExpr",                                       CheckerArray11, 0, false },
+  { "alpha.core.PointerArithm",                                       CheckerArray12, 0, false },
+  { "alpha.core.PointerSub",                                          CheckerArray13, 0, false },
+  { "alpha.core.SizeofPtr",                                           CheckerArray14, 0, false },
+  { "alpha.core.TestAfterDivZero",                                    CheckerArray15, 0, false },
+  { "alpha.cplusplus",                                                0, SubPackageArray16, true },
+  { "alpha.cplusplus.IteratorPastEnd",                                CheckerArray17, 0, false },
+  { "alpha.cplusplus.MisusedMovedObject",                             CheckerArray18, 0, false },
+  { "alpha.deadcode",                                                 0, SubPackageArray19, true },
+  { "alpha.deadcode.UnreachableCode",                                 CheckerArray20, 0, false },
+  { "alpha.osx",                                                      0, SubPackageArray21, true },
+  { "alpha.osx.cocoa",                                                0, SubPackageArray22, true },
+  { "alpha.osx.cocoa.DirectIvarAssignment",                           CheckerArray23, 0, false },
+  { "alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions",      CheckerArray24, 0, false },
+  { "alpha.osx.cocoa.InstanceVariableInvalidation",                   CheckerArray25, 0, false },
+  { "alpha.osx.cocoa.MissingInvalidationMethod",                      CheckerArray26, 0, false },
+  { "alpha.osx.cocoa.localizability",                                 0, SubPackageArray27, true },
+  { "alpha.osx.cocoa.localizability.PluralMisuseChecker",             CheckerArray28, 0, false },
+  { "alpha.security",                                                 0, SubPackageArray29, true },
+  { "alpha.security.ArrayBound",                                      CheckerArray30, 0, false },
+  { "alpha.security.ArrayBoundV2",                                    CheckerArray31, 0, false },
+  { "alpha.security.MallocOverflow",                                  CheckerArray32, 0, false },
+  { "alpha.security.ReturnPtrRange",                                  CheckerArray33, 0, false },
+  { "alpha.security.taint",                                           0, SubPackageArray34, true },
+  { "alpha.security.taint.TaintPropagation",                          CheckerArray35, 0, false },
+  { "alpha.unix",                                                     0, SubPackageArray36, true },
+  { "alpha.unix.BlockInCriticalSection",                              CheckerArray37, 0, false },
+  { "alpha.unix.Chroot",                                              CheckerArray38, 0, false },
+  { "alpha.unix.PthreadLock",                                         CheckerArray39, 0, false },
+  { "alpha.unix.SimpleStream",                                        CheckerArray40, 0, false },
+  { "alpha.unix.Stream",                                              CheckerArray41, 0, false },
+  { "alpha.unix.cstring",                                             0, SubPackageArray42, true },
+  { "alpha.unix.cstring.BufferOverlap",                               CheckerArray43, 0, false },
+  { "alpha.unix.cstring.NotNullTerminated",                           CheckerArray44, 0, false },
+  { "alpha.unix.cstring.OutOfBounds",                                 CheckerArray45, 0, false },
+  { "apiModeling",                                                    0, SubPackageArray46, true },
+  { "apiModeling.google",                                             0, SubPackageArray47, true },
+  { "apiModeling.google.GTest",                                       CheckerArray48, 0, false },
+  { "core",                                                           0, SubPackageArray49, false },
+  { "core.CallAndMessage",                                            CheckerArray50, 0, false },
+  { "core.DivideZero",                                                CheckerArray51, 0, false },
+  { "core.DynamicTypePropagation",                                    CheckerArray52, 0, false },
+  { "core.NonNullParamChecker",                                       CheckerArray53, 0, false },
+  { "core.NullDereference",                                           CheckerArray54, 0, false },
+  { "core.StackAddressEscape",                                        CheckerArray55, 0, false },
+  { "core.UndefinedBinaryOperatorResult",                             CheckerArray56, 0, false },
+  { "core.VLASize",                                                   CheckerArray57, 0, false },
+  { "core.builtin",                                                   0, SubPackageArray58, false },
+  { "core.builtin.BuiltinFunctions",                                  CheckerArray59, 0, false },
+  { "core.builtin.NoReturnFunctions",                                 CheckerArray60, 0, false },
+  { "core.uninitialized",                                             0, SubPackageArray61, false },
+  { "core.uninitialized.ArraySubscript",                              CheckerArray62, 0, false },
+  { "core.uninitialized.Assign",                                      CheckerArray63, 0, false },
+  { "core.uninitialized.Branch",                                      CheckerArray64, 0, false },
+  { "core.uninitialized.CapturedBlockVariable",                       CheckerArray65, 0, false },
+  { "core.uninitialized.UndefReturn",                                 CheckerArray66, 0, false },
+  { "cplusplus",                                                      0, SubPackageArray67, false },
+  { "cplusplus.NewDelete",                                            CheckerArray68, 0, false },
+  { "cplusplus.NewDeleteLeaks",                                       CheckerArray69, 0, false },
+  { "cplusplus.SelfAssignment",                                       CheckerArray70, 0, false },
+  { "deadcode",                                                       0, SubPackageArray71, false },
+  { "deadcode.DeadStores",                                            CheckerArray72, 0, false },
+  { "debug",                                                          0, SubPackageArray73, false },
+  { "debug.AnalysisOrder",                                            CheckerArray74, 0, false },
+  { "debug.ConfigDumper",                                             CheckerArray75, 0, false },
+  { "debug.DumpBugHash",                                              CheckerArray76, 0, false },
+  { "debug.DumpCFG",                                                  CheckerArray77, 0, false },
+  { "debug.DumpCallGraph",                                            CheckerArray78, 0, false },
+  { "debug.DumpCalls",                                                CheckerArray79, 0, false },
+  { "debug.DumpDominators",                                           CheckerArray80, 0, false },
+  { "debug.DumpLiveVars",                                             CheckerArray81, 0, false },
+  { "debug.DumpTraversal",                                            CheckerArray82, 0, false },
+  { "debug.ExprInspection",                                           CheckerArray83, 0, false },
+  { "debug.Stats",                                                    CheckerArray84, 0, false },
+  { "debug.TaintTest",                                                CheckerArray85, 0, false },
+  { "debug.ViewCFG",                                                  CheckerArray86, 0, false },
+  { "debug.ViewCallGraph",                                            CheckerArray87, 0, false },
+  { "debug.ViewExplodedGraph",                                        CheckerArray88, 0, false },
+  { "llvm",                                                           0, SubPackageArray89, false },
+  { "llvm.Conventions",                                               CheckerArray90, 0, false },
+  { "nullability",                                                    0, SubPackageArray91, false },
+  { "nullability.NullPassedToNonnull",                                CheckerArray92, 0, false },
+  { "nullability.NullReturnedFromNonnull",                            CheckerArray93, 0, false },
+  { "nullability.NullableDereferenced",                               CheckerArray94, 0, false },
+  { "nullability.NullablePassedToNonnull",                            CheckerArray95, 0, false },
+  { "nullability.NullableReturnedFromNonnull",                        CheckerArray96, 0, false },
+  { "optin",                                                          0, SubPackageArray97, false },
+  { "optin.cplusplus",                                                0, SubPackageArray98, false },
+  { "optin.cplusplus.VirtualCall",                                    CheckerArray99, 0, false },
+  { "optin.mpi",                                                      0, SubPackageArray100, false },
+  { "optin.mpi.MPI-Checker",                                          CheckerArray101, 0, false },
+  { "optin.osx",                                                      0, SubPackageArray102, false },
+  { "optin.osx.cocoa",                                                0, SubPackageArray103, false },
+  { "optin.osx.cocoa.localizability",                                 0, SubPackageArray104, false },
+  { "optin.osx.cocoa.localizability.EmptyLocalizationContextChecker", CheckerArray105, 0, false },
+  { "optin.osx.cocoa.localizability.NonLocalizedStringChecker",       CheckerArray106, 0, false },
+  { "optin.performance",                                              0, SubPackageArray107, false },
+  { "optin.performance.Padding",                                      CheckerArray108, 0, false },
+  { "osx",                                                            0, SubPackageArray109, false },
+  { "osx.API",                                                        CheckerArray110, 0, false },
+  { "osx.NumberObjectConversion",                                     CheckerArray111, 0, false },
+  { "osx.ObjCProperty",                                               CheckerArray112, 0, false },
+  { "osx.SecKeychainAPI",                                             CheckerArray113, 0, false },
+  { "osx.cocoa",                                                      0, SubPackageArray114, false },
+  { "osx.cocoa.AtSync",                                               CheckerArray115, 0, false },
+  { "osx.cocoa.ClassRelease",                                         CheckerArray116, 0, false },
+  { "osx.cocoa.Dealloc",                                              CheckerArray117, 0, false },
+  { "osx.cocoa.IncompatibleMethodTypes",                              CheckerArray118, 0, false },
+  { "osx.cocoa.Loops",                                                CheckerArray119, 0, false },
+  { "osx.cocoa.MissingSuperCall",                                     CheckerArray120, 0, false },
+  { "osx.cocoa.NSAutoreleasePool",                                    CheckerArray121, 0, false },
+  { "osx.cocoa.NSError",                                              CheckerArray122, 0, false },
+  { "osx.cocoa.NilArg",                                               CheckerArray123, 0, false },
+  { "osx.cocoa.NonNilReturnValue",                                    CheckerArray124, 0, false },
+  { "osx.cocoa.ObjCGenerics",                                         CheckerArray125, 0, false },
+  { "osx.cocoa.RetainCount",                                          CheckerArray126, 0, false },
+  { "osx.cocoa.SelfInit",                                             CheckerArray127, 0, false },
+  { "osx.cocoa.SuperDealloc",                                         CheckerArray128, 0, false },
+  { "osx.cocoa.UnusedIvars",                                          CheckerArray129, 0, false },
+  { "osx.cocoa.VariadicMethodTypes",                                  CheckerArray130, 0, false },
+  { "osx.coreFoundation",                                             0, SubPackageArray131, false },
+  { "osx.coreFoundation.CFError",                                     CheckerArray132, 0, false },
+  { "osx.coreFoundation.CFNumber",                                    CheckerArray133, 0, false },
+  { "osx.coreFoundation.CFRetainRelease",                             CheckerArray134, 0, false },
+  { "osx.coreFoundation.containers",                                  0, SubPackageArray135, false },
+  { "osx.coreFoundation.containers.OutOfBounds",                      CheckerArray136, 0, false },
+  { "osx.coreFoundation.containers.PointerSizedValues",               CheckerArray137, 0, false },
+  { "security",                                                       0, SubPackageArray138, false },
+  { "security.FloatLoopCounter",                                      CheckerArray139, 0, false },
+  { "security.insecureAPI",                                           0, SubPackageArray140, false },
+  { "security.insecureAPI.UncheckedReturn",                           CheckerArray141, 0, false },
+  { "security.insecureAPI.getpw",                                     CheckerArray142, 0, false },
+  { "security.insecureAPI.gets",                                      CheckerArray143, 0, false },
+  { "security.insecureAPI.mkstemp",                                   CheckerArray144, 0, false },
+  { "security.insecureAPI.mktemp",                                    CheckerArray145, 0, false },
+  { "security.insecureAPI.rand",                                      CheckerArray146, 0, false },
+  { "security.insecureAPI.strcpy",                                    CheckerArray147, 0, false },
+  { "security.insecureAPI.vfork",                                     CheckerArray148, 0, false },
+  { "unix",                                                           0, SubPackageArray149, false },
+  { "unix.API",                                                       CheckerArray150, 0, false },
+  { "unix.Malloc",                                                    CheckerArray151, 0, false },
+  { "unix.MallocSizeof",                                              CheckerArray152, 0, false },
+  { "unix.MismatchedDeallocator",                                     CheckerArray153, 0, false },
+  { "unix.StdCLibraryFunctions",                                      CheckerArray154, 0, false },
+  { "unix.Vfork",                                                     CheckerArray155, 0, false },
+  { "unix.cstring",                                                   0, SubPackageArray156, true },
+  { "unix.cstring.BadSizeArg",                                        CheckerArray157, 0, false },
+  { "unix.cstring.NullArg",                                           CheckerArray158, 0, false },
+  { "valist",                                                         0, SubPackageArray159, false },
+  { "valist.CopyToSelf",                                              CheckerArray160, 0, false },
+  { "valist.Uninitialized",                                           CheckerArray161, 0, false },
+  { "valist.Unterminated",                                            CheckerArray162, 0, false },
+#endif // GET_CHECKNAME_TABLE
+
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmParsers.def b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmParsers.def
new file mode 100644
index 0000000..8fd67da
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmParsers.def
@@ -0,0 +1,32 @@
+//===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file enumerates all of the assembly-language parsers
+// supported by this build of LLVM. Clients of this file should define
+// the LLVM_ASM_PARSER macro to be a function-like macro with a
+// single parameter (the name of the target whose assembly can be
+// generated); including this file will then enumerate all of the
+// targets with assembly parsers.
+//
+// The set of targets supported by LLVM is generated at configuration
+// time, at which point this header is generated. Do not modify this
+// header directly.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ASM_PARSER
+#  error Please define the macro LLVM_ASM_PARSER(TargetName)
+#endif
+
+LLVM_ASM_PARSER(ARM)
+LLVM_ASM_PARSER(Mips)
+LLVM_ASM_PARSER(X86)
+LLVM_ASM_PARSER(AArch64)
+
+#undef LLVM_ASM_PARSER
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmParsers.def.in b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmParsers.def.in
deleted file mode 100644
index d636753..0000000
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmParsers.def.in
+++ /dev/null
@@ -1,29 +0,0 @@
-/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file enumerates all of the assembly-language parsers                  *|
-|* supported by this build of LLVM. Clients of this file should define        *|
-|* the LLVM_ASM_PARSER macro to be a function-like macro with a               *|
-|* single parameter (the name of the target whose assembly can be             *|
-|* generated); including this file will then enumerate all of the             *|
-|* targets with assembly parsers.                                             *|
-|*                                                                            *|
-|* The set of targets supported by LLVM is generated at configuration         *|
-|* time, at which point this header is generated. Do not modify this          *|
-|* header directly.                                                           *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#ifndef LLVM_ASM_PARSER
-#  error Please define the macro LLVM_ASM_PARSER(TargetName)
-#endif
-
-@LLVM_ENUM_ASM_PARSERS@
-
-#undef LLVM_ASM_PARSER
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmPrinters.def b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmPrinters.def
new file mode 100644
index 0000000..07f6adf
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmPrinters.def
@@ -0,0 +1,32 @@
+//===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file enumerates all of the assembly-language printers
+// supported by this build of LLVM. Clients of this file should define
+// the LLVM_ASM_PRINTER macro to be a function-like macro with a
+// single parameter (the name of the target whose assembly can be
+// generated); including this file will then enumerate all of the
+// targets with assembly printers.
+//
+// The set of targets supported by LLVM is generated at configuration
+// time, at which point this header is generated. Do not modify this
+// header directly.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ASM_PRINTER
+#  error Please define the macro LLVM_ASM_PRINTER(TargetName)
+#endif
+
+LLVM_ASM_PRINTER(ARM)
+LLVM_ASM_PRINTER(Mips)
+LLVM_ASM_PRINTER(X86)
+LLVM_ASM_PRINTER(AArch64)
+
+#undef LLVM_ASM_PRINTER
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmPrinters.def.in b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmPrinters.def.in
deleted file mode 100644
index f0152a4..0000000
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/AsmPrinters.def.in
+++ /dev/null
@@ -1,29 +0,0 @@
-/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file enumerates all of the assembly-language printers                 *|
-|* supported by this build of LLVM. Clients of this file should define        *|
-|* the LLVM_ASM_PRINTER macro to be a function-like macro with a              *|
-|* single parameter (the name of the target whose assembly can be             *|
-|* generated); including this file will then enumerate all of the             *|
-|* targets with assembly printers.                                            *|
-|*                                                                            *|
-|* The set of targets supported by LLVM is generated at configuration         *|
-|* time, at which point this header is generated. Do not modify this          *|
-|* header directly.                                                           *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#ifndef LLVM_ASM_PRINTER
-#  error Please define the macro LLVM_ASM_PRINTER(TargetName)
-#endif
-
-@LLVM_ENUM_ASM_PRINTERS@
-
-#undef LLVM_ASM_PRINTER
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Disassemblers.def b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Disassemblers.def
new file mode 100644
index 0000000..18557af
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Disassemblers.def
@@ -0,0 +1,32 @@
+//===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file enumerates all of the assembly-language parsers
+// supported by this build of LLVM. Clients of this file should define
+// the LLVM_ASM_PARSER macro to be a function-like macro with a
+// single parameter (the name of the target whose assembly can be
+// generated); including this file will then enumerate all of the
+// targets with assembly parsers.
+//
+// The set of targets supported by LLVM is generated at configuration
+// time, at which point this header is generated. Do not modify this
+// header directly.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DISASSEMBLER
+#  error Please define the macro LLVM_DISASSEMBLER(TargetName)
+#endif
+
+LLVM_DISASSEMBLER(ARM)
+LLVM_DISASSEMBLER(Mips)
+LLVM_DISASSEMBLER(X86)
+LLVM_DISASSEMBLER(AArch64)
+
+#undef LLVM_DISASSEMBLER
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Disassemblers.def.in b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Disassemblers.def.in
deleted file mode 100644
index d3a9bbd..0000000
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Disassemblers.def.in
+++ /dev/null
@@ -1,29 +0,0 @@
-/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file enumerates all of the assembly-language parsers                  *|
-|* supported by this build of LLVM. Clients of this file should define        *|
-|* the LLVM_DISASSEMBLER macro to be a function-like macro with a             *|
-|* single parameter (the name of the target whose assembly can be             *|
-|* generated); including this file will then enumerate all of the             *|
-|* targets with assembly parsers.                                             *|
-|*                                                                            *|
-|* The set of targets supported by LLVM is generated at configuration         *|
-|* time, at which point this header is generated. Do not modify this          *|
-|* header directly.                                                           *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#ifndef LLVM_DISASSEMBLER
-#  error Please define the macro LLVM_DISASSEMBLER(TargetName)
-#endif
-
-@LLVM_ENUM_DISASSEMBLERS@
-
-#undef LLVM_DISASSEMBLER
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Targets.def.in b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Targets.def
similarity index 95%
rename from clang-4053586/prebuilt_include/llvm/include/llvm/Config/Targets.def.in
rename to clang-4053586/prebuilt_include/llvm/include/llvm/Config/Targets.def
index d589ece..2985cf3 100644
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Targets.def.in
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/Targets.def
@@ -23,6 +23,9 @@
 #  error Please define the macro LLVM_TARGET(TargetName)
 #endif
 
-@LLVM_ENUM_TARGETS@
+LLVM_TARGET(ARM)
+LLVM_TARGET(Mips)
+LLVM_TARGET(X86)
+LLVM_TARGET(AArch64)
 
 #undef LLVM_TARGET
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/abi-breaking.h.cmake b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/abi-breaking.h
similarity index 97%
rename from clang-4053586/prebuilt_include/llvm/include/llvm/Config/abi-breaking.h.cmake
rename to clang-4053586/prebuilt_include/llvm/include/llvm/Config/abi-breaking.h
index 4ce487b..66740da 100644
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/abi-breaking.h.cmake
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/abi-breaking.h
@@ -13,7 +13,7 @@
 #define LLVM_ABI_BREAKING_CHECKS_H
 
 /* Define to enable checks that alter the LLVM C++ ABI */
-#cmakedefine01 LLVM_ENABLE_ABI_BREAKING_CHECKS
+#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
 
 /* Allow selectively disabling link-time mismatch checking so that header-only
    ADT content from LLVM can be used without linking libSupport. */
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/config.h b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/config.h
new file mode 100644
index 0000000..6d37afb
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/config.h
@@ -0,0 +1,763 @@
+/* include/llvm/Config/config.h.  Generated from config.h.in by configure.  */
+/* include/llvm/Config/config.h.in.  Generated from autoconf/configure.ac by autoheader.  */
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/* Bug report URL. */
+#define BUG_REPORT_URL "http://llvm.org/bugs/"
+
+/* Relative directory for resource files */
+#define CLANG_RESOURCE_DIR ""
+
+/* Directories clang will search for headers */
+#define C_INCLUDE_DIRS ""
+
+/* Default <path> to all compiler invocations for --sysroot=<path>. */
+#define DEFAULT_SYSROOT ""
+
+/* Define if position independent code is enabled */
+#define ENABLE_PIC 1
+
+/* Define if timestamp information (e.g., __DATE___) is allowed */
+/* #undef ENABLE_TIMESTAMPS */
+
+/* Directory where gcc is installed. */
+#define GCC_INSTALL_PREFIX ""
+
+/* Define to 1 if you have the `argz_append' function. */
+/* #undef HAVE_ARGZ_APPEND */
+
+/* Define to 1 if you have the `argz_create_sep' function. */
+/* #undef HAVE_ARGZ_CREATE_SEP */
+
+/* Define to 1 if you have the <argz.h> header file. */
+/* #undef HAVE_ARGZ_H */
+
+/* Define to 1 if you have the `argz_insert' function. */
+/* #undef HAVE_ARGZ_INSERT */
+
+/* Define to 1 if you have the `argz_next' function. */
+/* #undef HAVE_ARGZ_NEXT */
+
+/* Define to 1 if you have the `argz_stringify' function. */
+/* #undef HAVE_ARGZ_STRINGIFY */
+
+/* Define to 1 if you have the <assert.h> header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the `backtrace' function. */
+/* #define HAVE_BACKTRACE 1 */ /* Defined by AndroidConfig.h */
+
+/* Define to 1 if you have the `bcopy' function. */
+/* #undef HAVE_BCOPY */
+
+/* Define to 1 if you have the `ceilf' function. */
+#define HAVE_CEILF 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_CIRCO */
+
+/* Define to 1 if you have the `closedir' function. */
+#define HAVE_CLOSEDIR 1
+
+/* Define to 1 if you have the <CrashReporterClient.h> header file. */
+/* #undef HAVE_CRASHREPORTERCLIENT_H */
+
+/* Define if __crashreporter_info__ exists. */
+#define HAVE_CRASHREPORTER_INFO 0
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#define HAVE_CTYPE_H 1
+
+/* Define to 1 if you have the <cxxabi.h> header file. */
+#define HAVE_CXXABI_H 0
+
+/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRERROR_S 0
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+#define HAVE_DIRENT_H 1
+
+/* Define if you have the GNU dld library. */
+/* #undef HAVE_DLD */
+
+/* Define to 1 if you have the <dld.h> header file. */
+/* #undef HAVE_DLD_H */
+
+/* Define to 1 if you have the `dlerror' function. */
+#define HAVE_DLERROR 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define if dlopen() is available on this platform. */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the <dl.h> header file. */
+/* #undef HAVE_DL_H */
+
+/* Define if the dot program is available */
+/* #undef HAVE_DOT */
+
+/* Define if the dotty program is available */
+/* #undef HAVE_DOTTY */
+
+/* Define if you have the _dyld_func_lookup function. */
+/* #undef HAVE_DYLD */
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if the system has the type `error_t'. */
+#define HAVE_ERROR_T 1
+
+/* Define to 1 if you have the <execinfo.h> header file. */
+#ifndef __BIONIC__
+#define HAVE_EXECINFO_H 1
+#endif
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_FDP */
+
+/* Define to 1 if you have the <fenv.h> header file. */
+#define HAVE_FENV_H 1
+
+/* Define if libffi is available on this platform. */
+/* #undef HAVE_FFI_CALL */
+
+/* Define to 1 if you have the <ffi/ffi.h> header file. */
+/* #undef HAVE_FFI_FFI_H */
+
+/* Define to 1 if you have the <ffi.h> header file. */
+/* #undef HAVE_FFI_H */
+
+/* Set to 1 if the finite function is found in <ieeefp.h> */
+/* #undef HAVE_FINITE_IN_IEEEFP_H */
+
+/* Define to 1 if you have the `floorf' function. */
+#define HAVE_FLOORF 1
+
+/* Define to 1 if you have the `fmodf' function. */
+#define HAVE_FMODF 1
+
+#ifdef __APPLE__
+/* Define to 1 if you have the `futimes' function. */
+#define HAVE_FUTIMES 1
+#else
+/* Define to 1 if you have the `futimens' function. */
+#define HAVE_FUTIMENS 1
+#endif  // __APPLE__
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getrlimit' function. */
+#define HAVE_GETRLIMIT 1
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define if the Graphviz program is available */
+/* #undef HAVE_GRAPHVIZ */
+
+/* Define if the gv program is available */
+/* #undef HAVE_GV */
+
+/* Define to 1 if you have the `index' function. */
+/* #undef HAVE_INDEX */
+
+/* Define to 1 if the system has the type `int64_t'. */
+#define HAVE_INT64_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `isatty' function. */
+#define HAVE_ISATTY 1
+
+/* Set to 1 if the isinf function is found in <cmath> */
+#define HAVE_ISINF_IN_CMATH 1
+
+/* Set to 1 if the isinf function is found in <math.h> */
+#define HAVE_ISINF_IN_MATH_H 1
+
+/* Set to 1 if the isnan function is found in <cmath> */
+#define HAVE_ISNAN_IN_CMATH 1
+
+/* Set to 1 if the isnan function is found in <math.h> */
+#define HAVE_ISNAN_IN_MATH_H 1
+
+/* Define if you have the libdl library or equivalent. */
+#define HAVE_LIBDL 1
+
+/* Define to 1 if you have the `imagehlp' library (-limagehlp). */
+/* #undef HAVE_LIBIMAGEHLP */
+
+/* Define to 1 if you have the `m' library (-lm). */
+#define HAVE_LIBM 1
+
+/* Define to 1 if you have the `psapi' library (-lpsapi). */
+/* #undef HAVE_LIBPSAPI */
+
+/* Define to 1 if you have the `pthread' library (-lpthread). */
+#define HAVE_LIBPTHREAD 1
+
+/* Define to 1 if you have the `shell32' library (-lshell32). */
+#define HAVE_LIBSHELL32 1
+
+/* Define to 1 if you have the `udis86' library (-ludis86). */
+/* #undef HAVE_LIBUDIS86 */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you can use -Wl,-export-dynamic. */
+#define HAVE_LINK_EXPORT_DYNAMIC 1
+
+/* Define to 1 if you have the <link.h> header file. */
+#if defined(__APPLE__)
+/* #undef HAVE_LINK_H */
+#else
+#define HAVE_LINK_H 1
+#endif
+
+/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add
+   the current directory to the dynamic linker search path. */
+#define HAVE_LINK_R 1
+
+/* Define to 1 if you have the `longjmp' function. */
+#define HAVE_LONGJMP 1
+
+/* Define to 1 if you have the <mach/mach.h> header file. */
+/* #undef HAVE_MACH_MACH_H */
+
+/* Define to 1 if you have the <mach-o/dyld.h> header file. */
+/* #undef HAVE_MACH_O_DYLD_H */
+
+/* Define if mallinfo() is available on this platform. */
+#if !defined(__APPLE__)
+#define HAVE_MALLINFO 1
+#else
+/* #undef HAVE_MALLINFO */
+#endif
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#if !defined(__APPLE__)
+#define HAVE_MALLOC_H 1
+#else
+/* #undef HAVE_MALLOC_H */
+#endif
+
+/* Define to 1 if you have the <malloc/malloc.h> header file. */
+/* #undef HAVE_MALLOC_MALLOC_H */
+
+/* Define to 1 if you have the `malloc_zone_statistics' function. */
+/* #undef HAVE_MALLOC_ZONE_STATISTICS */
+
+/* Define to 1 if you have the `memcpy' function. */
+#define HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `mkdtemp' function. */
+#define HAVE_MKDTEMP 1
+
+/* Define to 1 if you have the `mkstemp' function. */
+#define HAVE_MKSTEMP 1
+
+/* Define to 1 if you have the `mktemp' function. */
+#define HAVE_MKTEMP 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if
+   it uses MAP_ANON */
+#if !defined(__APPLE__)
+#define HAVE_MMAP_ANONYMOUS
+#else
+/* #undef HAVE_MMAP_ANONYMOUS */
+#endif
+
+/* Define if mmap() can map files into memory */
+#define HAVE_MMAP_FILE
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the `nearbyintf' function. */
+#define HAVE_NEARBYINTF 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_NEATO */
+
+/* Define to 1 if you have the `opendir' function. */
+#define HAVE_OPENDIR 1
+
+/* Define to 1 if you have the `posix_spawn' function. */
+#ifndef __BIONIC__
+#define HAVE_POSIX_SPAWN 1
+#endif
+
+/* Define to 1 if you have the `powf' function. */
+#define HAVE_POWF 1
+
+/* Define to 1 if you have the `pread' function. */
+#if !defined(_WIN32) && !defined(_WIN64)
+#define HAVE_PREAD 1
+#endif
+
+/* Define if libtool can extract symbol lists from object files. */
+#define HAVE_PRELOADED_SYMBOLS 1
+
+/* Define to have the %a format string */
+#define HAVE_PRINTF_A 1
+
+#if !defined(_WIN32) && !defined(_WIN64)
+
+/* Have pthread_getspecific */
+#define HAVE_PTHREAD_GETSPECIFIC 1
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#define HAVE_PTHREAD_H 1
+
+/* Have pthread_mutex_lock */
+#define HAVE_PTHREAD_MUTEX_LOCK 1
+
+/* Have pthread_rwlock_init */
+#define HAVE_PTHREAD_RWLOCK_INIT 1
+
+#endif /* !defined(_WIN32) && !defined(_WIN64) */
+
+/* Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h> */
+#define HAVE_RAND48 1
+
+/* Define to 1 if you have the `readdir' function. */
+#define HAVE_READDIR 1
+
+/* Define to 1 if you have the `realpath' function. */
+#if !defined(_WIN32) && !defined(_WIN64)
+#define HAVE_REALPATH 1
+#else
+// Do not define HAVE_REALPATH
+#endif
+
+/* Define to 1 if you have the `rindex' function. */
+/* #undef HAVE_RINDEX */
+
+/* Define to 1 if you have the `rintf' function. */
+#define HAVE_RINTF 1
+
+/* Define to 1 if you have the `round' function. */
+#define HAVE_ROUND 1
+
+/* Define to 1 if you have the `roundf' function. */
+#define HAVE_ROUNDF 1
+
+/* Define to 1 if you have the `sbrk' function. */
+#define HAVE_SBRK 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `setjmp' function. */
+#define HAVE_SETJMP 1
+
+/* Define to 1 if you have the <setjmp.h> header file. */
+#define HAVE_SETJMP_H 1
+
+/* Define to 1 if you have the `setrlimit' function. */
+#define HAVE_SETRLIMIT 1
+
+/* Define if you have the shl_load function. */
+/* #undef HAVE_SHL_LOAD */
+
+/* Define to 1 if you have the `siglongjmp' function. */
+#define HAVE_SIGLONGJMP 1
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the `sigsetjmp' function. */
+/* #undef HAVE_SIGSETJMP */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Set to 1 if the std::isinf function is found in <cmath> */
+#define HAVE_STD_ISINF_IN_CMATH 1
+
+/* Set to 1 if the std::isnan function is found in <cmath> */
+#define HAVE_STD_ISNAN_IN_CMATH 1
+
+/* Define to 1 if you have the `strchr' function. */
+#define HAVE_STRCHR 1
+
+/* Define to 1 if you have the `strcmp' function. */
+#define HAVE_STRCMP 1
+
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+#ifndef USE_MINGW
+#define HAVE_STRERROR_R 1
+#endif
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strrchr' function. */
+#define HAVE_STRRCHR 1
+
+/* Define to 1 if you have the `strtof' function. */
+#define HAVE_STRTOF 1
+
+/* Define to 1 if you have the `strtoll' function. */
+#define HAVE_STRTOLL 1
+
+/* Define to 1 if you have the `strtoq' function. */
+#define HAVE_STRTOQ 1
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/dl.h> header file. */
+/* #undef HAVE_SYS_DL_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define if the setupterm() function is supported this platform. */
+#ifndef __BIONIC__
+#define HAVE_TERMINFO 1
+#endif
+
+/* Define to 1 if you have the <termios.h> header file. */
+#define HAVE_TERMIOS_H 1
+
+/* Define if the neat program is available */
+/* #undef HAVE_TWOPI */
+
+/* Define to 1 if the system has the type `uint64_t'. */
+#define HAVE_UINT64_T 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <utime.h> header file. */
+#define HAVE_UTIME_H 1
+
+/* Define to 1 if the system has the type `u_int64_t'. */
+/* #undef HAVE_U_INT64_T */
+
+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
+/* #undef HAVE_VALGRIND_VALGRIND_H */
+
+#if defined(_WIN32) || defined(_WIN64)
+/* Define to 1 if you have the <windows.h> header file. */
+#define HAVE_WINDOWS_H 1
+
+/* Define to 1 if you have the `writev' function. */
+/* #undef HAVE_WRITEV */
+
+#else
+/* Define to 1 if you have the <windows.h> header file. */
+/* #undef HAVE_WINDOWS_H */
+
+/* Define to 1 if you have the `writev' function. */
+#define HAVE_WRITEV 1
+#endif
+
+/* Define if the xdot.py program is available */
+/* #undef HAVE_XDOT_PY */
+
+/* Have host's _alloca */
+/* #undef HAVE__ALLOCA */
+
+/* Have host's __alloca */
+/* #undef HAVE___ALLOCA */
+
+/* Have host's __ashldi3 */
+/* #undef HAVE___ASHLDI3 */
+
+/* Have host's __ashrdi3 */
+/* #undef HAVE___ASHRDI3 */
+
+/* Have host's __chkstk */
+/* #undef HAVE___CHKSTK */
+
+/* Have host's __cmpdi2 */
+/* #undef HAVE___CMPDI2 */
+
+/* Have host's __divdi3 */
+/* #undef HAVE___DIVDI3 */
+
+/* Define to 1 if you have the `__dso_handle' function. */
+/* #undef HAVE___DSO_HANDLE */
+
+/* Have host's __fixdfdi */
+/* #undef HAVE___FIXDFDI */
+
+/* Have host's __fixsfdi */
+/* #undef HAVE___FIXSFDI */
+
+/* Have host's __floatdidf */
+/* #undef HAVE___FLOATDIDF */
+
+/* Have host's __lshrdi3 */
+/* #undef HAVE___LSHRDI3 */
+
+/* Have host's __main */
+/* #undef HAVE___MAIN */
+
+/* Have host's __moddi3 */
+/* #undef HAVE___MODDI3 */
+
+/* Have host's __udivdi3 */
+/* #undef HAVE___UDIVDI3 */
+
+/* Have host's __umoddi3 */
+/* #undef HAVE___UMODDI3 */
+
+/* Have host's ___chkstk */
+/* #undef HAVE____CHKSTK */
+
+/* Linker version detected at compile time. */
+#define HOST_LINK_VERSION "2.20.1"
+
+/* Installation directory for binary executables */
+#define LLVM_BINDIR "/opt/llvm-android/bin"
+
+/* Time at which LLVM was configured */
+#define LLVM_CONFIGTIME "Tue May  8 14:22:45 CST 2012"
+
+/* Installation directory for data files */
+#define LLVM_DATADIR "/opt/llvm-android/share/llvm"
+
+/* Target triple LLVM will generate code for by default */
+#if defined(__APPLE__)
+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin"
+#else
+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux"
+#endif
+
+/* Installation directory for documentation */
+#define LLVM_DOCSDIR "/opt/llvm-android/share/doc/llvm"
+
+/* Define if threads enabled */
+#if !defined(_WIN32) && !defined(_WIN64)
+#define LLVM_ENABLE_THREADS 1
+#else
+#define LLVM_ENABLE_THREADS 0
+#endif
+
+/* Installation directory for config files */
+#define LLVM_ETCDIR "/opt/llvm-android/etc/llvm"
+
+#if !defined(_WIN32) && !defined(_WIN64)
+
+/* Has gcc/MSVC atomic intrinsics */
+#define LLVM_HAS_ATOMICS 1
+
+#else
+
+#define LLVM_HAS_ATOMICS 0
+
+#endif /* !defined(_WIN32) && !defined(_WIN64) */
+
+/* Installation directory for include files */
+#define LLVM_INCLUDEDIR "/opt/llvm-android/include"
+
+/* Installation directory for .info files */
+#define LLVM_INFODIR "/opt/llvm-android/info"
+
+/* Installation directory for libraries */
+#define LLVM_LIBDIR "/opt/llvm-android/lib"
+
+/* Installation directory for man pages */
+#define LLVM_MANDIR "/opt/llvm-android/man"
+
+/* Define to path to circo program if found or 'echo circo' otherwise */
+/* #undef LLVM_PATH_CIRCO */
+
+/* Define to path to dot program if found or 'echo dot' otherwise */
+/* #undef LLVM_PATH_DOT */
+
+/* Define to path to dotty program if found or 'echo dotty' otherwise */
+/* #undef LLVM_PATH_DOTTY */
+
+/* Define to path to fdp program if found or 'echo fdp' otherwise */
+/* #undef LLVM_PATH_FDP */
+
+/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */
+/* #undef LLVM_PATH_GRAPHVIZ */
+
+/* Define to path to gv program if found or 'echo gv' otherwise */
+/* #undef LLVM_PATH_GV */
+
+/* Define to path to neato program if found or 'echo neato' otherwise */
+/* #undef LLVM_PATH_NEATO */
+
+/* Define to path to twopi program if found or 'echo twopi' otherwise */
+/* #undef LLVM_PATH_TWOPI */
+
+/* Define to path to xdot.py program if found or 'echo xdot.py' otherwise */
+/* #undef LLVM_PATH_XDOT_PY */
+
+/* Installation prefix directory */
+#define LLVM_PREFIX "/opt/llvm-android"
+
+/* 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
+
+/* Major version of the LLVM API */
+#define LLVM_VERSION_MAJOR 5
+
+/* Minor version of the LLVM API */
+#define LLVM_VERSION_MINOR 0
+
+/* Patch version of the LLVM API */
+#define LLVM_VERSION_PATCH 300080
+
+/* Define if the OS needs help to load dependent libraries for dlopen(). */
+/* #undef LTDL_DLOPEN_DEPLIBS */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LTDL_OBJDIR ".libs/"
+
+/* Define to the name of the environment variable that determines the dynamic
+   library search path. */
+#define LTDL_SHLIBPATH_VAR "LD_LIBRARY_PATH"
+
+/* Define to the extension used for shared libraries, say, ".so". */
+#if defined(__APPLE__)
+#define LTDL_SHLIB_EXT ".dylib"
+#elif defined(_WIN32)
+#define LTDL_SHLIB_EXT ".dll"
+#else
+#define LTDL_SHLIB_EXT ".so"
+#endif  /* __APPLE__ */
+
+/* Define to the system default library search path. */
+#define LTDL_SYSSEARCHPATH "/lib:/usr/lib:/usr/local/lib:/lib:/usr/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32:/usr/x86_64-pc-linux-gnu/lib:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32"
+
+/* Define if /dev/zero should be used when mapping RWX memory, or undefine if
+   its not necessary */
+/* #undef NEED_DEV_ZERO_FOR_MMAP */
+
+/* Define if dlsym() requires a leading underscore in symbol names. */
+/* #undef NEED_USCORE */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "http://llvm.org/bugs/"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "LLVM"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "LLVM 5.0.300080"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "llvm"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "5.0.300080"
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Define if use udis86 library */
+#define USE_UDIS86 0
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to a type to use for `error_t' if it is not otherwise available. */
+/* #undef error_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+#include "llvm/Config/llvm-platform-config.h"
+
+#endif
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/config.h.cmake b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/config.h.cmake
deleted file mode 100644
index a3c919d..0000000
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/config.h.cmake
+++ /dev/null
@@ -1,440 +0,0 @@
-#ifndef CONFIG_H
-#define CONFIG_H
-
-/* Exported configuration */
-#include "llvm/Config/llvm-config.h"
-
-/* Bug report URL. */
-#define BUG_REPORT_URL "${BUG_REPORT_URL}"
-
-/* Define to 1 to enable backtraces, and to 0 otherwise. */
-#cmakedefine01 ENABLE_BACKTRACES
-
-/* Define to 1 to enable crash overrides, and to 0 otherwise. */
-#cmakedefine01 ENABLE_CRASH_OVERRIDES
-
-/* Define to 1 if you have the `backtrace' function. */
-#cmakedefine HAVE_BACKTRACE ${HAVE_BACKTRACE}
-
-#define BACKTRACE_HEADER <${BACKTRACE_HEADER}>
-
-/* Define to 1 if you have the <CrashReporterClient.h> header file. */
-#cmakedefine HAVE_CRASHREPORTERCLIENT_H
-
-/* can use __crashreporter_info__ */
-#cmakedefine01 HAVE_CRASHREPORTER_INFO
-
-/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
-   don't. */
-#cmakedefine01 HAVE_DECL_ARC4RANDOM
-
-/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
-   don't. */
-#cmakedefine01 HAVE_DECL_FE_ALL_EXCEPT
-
-/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
-   don't. */
-#cmakedefine01 HAVE_DECL_FE_INEXACT
-
-/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
-   don't. */
-#cmakedefine01 HAVE_DECL_STRERROR_S
-
-/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
-#cmakedefine01 LLVM_ENABLE_DIA_SDK
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#cmakedefine HAVE_DIRENT_H ${HAVE_DIRENT_H}
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#cmakedefine HAVE_DLFCN_H ${HAVE_DLFCN_H}
-
-/* Define if dlopen() is available on this platform. */
-#cmakedefine HAVE_DLOPEN ${HAVE_DLOPEN}
-
-/* Define if dladdr() is available on this platform. */
-#cmakedefine HAVE_DLADDR ${HAVE_DLADDR}
-
-/* Define to 1 if you have the <errno.h> header file. */
-#cmakedefine HAVE_ERRNO_H ${HAVE_ERRNO_H}
-
-/* Define to 1 if you have the <execinfo.h> header file. */
-#cmakedefine HAVE_EXECINFO_H ${HAVE_EXECINFO_H}
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#cmakedefine HAVE_FCNTL_H ${HAVE_FCNTL_H}
-
-/* Define to 1 if you have the <fenv.h> header file. */
-#cmakedefine HAVE_FENV_H ${HAVE_FENV_H}
-
-/* Define if libffi is available on this platform. */
-#cmakedefine HAVE_FFI_CALL ${HAVE_FFI_CALL}
-
-/* Define to 1 if you have the <ffi/ffi.h> header file. */
-#cmakedefine HAVE_FFI_FFI_H ${HAVE_FFI_FFI_H}
-
-/* Define to 1 if you have the <ffi.h> header file. */
-#cmakedefine HAVE_FFI_H ${HAVE_FFI_H}
-
-/* Define to 1 if you have the `futimens' function. */
-#cmakedefine HAVE_FUTIMENS ${HAVE_FUTIMENS}
-
-/* Define to 1 if you have the `futimes' function. */
-#cmakedefine HAVE_FUTIMES ${HAVE_FUTIMES}
-
-/* Define to 1 if you have the `getcwd' function. */
-#cmakedefine HAVE_GETCWD ${HAVE_GETCWD}
-
-/* Define to 1 if you have the `getpagesize' function. */
-#cmakedefine HAVE_GETPAGESIZE ${HAVE_GETPAGESIZE}
-
-/* Define to 1 if you have the `getrlimit' function. */
-#cmakedefine HAVE_GETRLIMIT ${HAVE_GETRLIMIT}
-
-/* Define to 1 if you have the `getrusage' function. */
-#cmakedefine HAVE_GETRUSAGE ${HAVE_GETRUSAGE}
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#cmakedefine HAVE_GETTIMEOFDAY ${HAVE_GETTIMEOFDAY}
-
-/* Define to 1 if the system has the type `int64_t'. */
-#cmakedefine HAVE_INT64_T ${HAVE_INT64_T}
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}
-
-/* Define to 1 if you have the `isatty' function. */
-#cmakedefine HAVE_ISATTY 1
-
-/* Define to 1 if you have the `edit' library (-ledit). */
-#cmakedefine HAVE_LIBEDIT ${HAVE_LIBEDIT}
-
-/* Define to 1 if you have the `psapi' library (-lpsapi). */
-#cmakedefine HAVE_LIBPSAPI ${HAVE_LIBPSAPI}
-
-/* Define to 1 if you have the `pthread' library (-lpthread). */
-#cmakedefine HAVE_LIBPTHREAD ${HAVE_LIBPTHREAD}
-
-/* Define to 1 if you have the `shell32' library (-lshell32). */
-#cmakedefine HAVE_LIBSHELL32 ${HAVE_LIBSHELL32}
-
-/* Define to 1 if you have the `z' library (-lz). */
-#cmakedefine HAVE_LIBZ ${HAVE_LIBZ}
-
-/* Define to 1 if you have the <link.h> header file. */
-#cmakedefine HAVE_LINK_H ${HAVE_LINK_H}
-
-/* Define to 1 if you have the `lseek64' function. */
-#cmakedefine HAVE_LSEEK64 ${HAVE_LSEEK64}
-
-/* Define to 1 if you have the <mach/mach.h> header file. */
-#cmakedefine HAVE_MACH_MACH_H ${HAVE_MACH_MACH_H}
-
-/* Define to 1 if you have the `mallctl' function. */
-#cmakedefine HAVE_MALLCTL ${HAVE_MALLCTL}
-
-/* Define to 1 if you have the `mallinfo' function. */
-#cmakedefine HAVE_MALLINFO ${HAVE_MALLINFO}
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#cmakedefine HAVE_MALLOC_H ${HAVE_MALLOC_H}
-
-/* Define to 1 if you have the <malloc/malloc.h> header file. */
-#cmakedefine HAVE_MALLOC_MALLOC_H ${HAVE_MALLOC_MALLOC_H}
-
-/* Define to 1 if you have the `malloc_zone_statistics' function. */
-#cmakedefine HAVE_MALLOC_ZONE_STATISTICS ${HAVE_MALLOC_ZONE_STATISTICS}
-
-/* Define to 1 if you have the `mkdtemp' function. */
-#cmakedefine HAVE_MKDTEMP ${HAVE_MKDTEMP}
-
-/* Define to 1 if you have the `mkstemp' function. */
-#cmakedefine HAVE_MKSTEMP ${HAVE_MKSTEMP}
-
-/* Define to 1 if you have the `mktemp' function. */
-#cmakedefine HAVE_MKTEMP ${HAVE_MKTEMP}
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#cmakedefine HAVE_NDIR_H ${HAVE_NDIR_H}
-
-/* Define to 1 if you have the `posix_fallocate' function. */
-#cmakedefine HAVE_POSIX_FALLOCATE ${HAVE_POSIX_FALLOCATE}
-
-/* Define to 1 if you have the `posix_spawn' function. */
-#cmakedefine HAVE_POSIX_SPAWN ${HAVE_POSIX_SPAWN}
-
-/* Define to 1 if you have the `pread' function. */
-#cmakedefine HAVE_PREAD ${HAVE_PREAD}
-
-/* Have pthread_getspecific */
-#cmakedefine HAVE_PTHREAD_GETSPECIFIC ${HAVE_PTHREAD_GETSPECIFIC}
-
-/* Define to 1 if you have the <pthread.h> header file. */
-#cmakedefine HAVE_PTHREAD_H ${HAVE_PTHREAD_H}
-
-/* Have pthread_mutex_lock */
-#cmakedefine HAVE_PTHREAD_MUTEX_LOCK ${HAVE_PTHREAD_MUTEX_LOCK}
-
-/* Have pthread_rwlock_init */
-#cmakedefine HAVE_PTHREAD_RWLOCK_INIT ${HAVE_PTHREAD_RWLOCK_INIT}
-
-/* Define to 1 if you have the `realpath' function. */
-#cmakedefine HAVE_REALPATH ${HAVE_REALPATH}
-
-/* Define to 1 if you have the `sbrk' function. */
-#cmakedefine HAVE_SBRK ${HAVE_SBRK}
-
-/* Define to 1 if you have the `setenv' function. */
-#cmakedefine HAVE_SETENV ${HAVE_SETENV}
-
-/* Define to 1 if you have the `setrlimit' function. */
-#cmakedefine HAVE_SETRLIMIT ${HAVE_SETRLIMIT}
-
-/* Define to 1 if you have the `sigaltstack' function. */
-#cmakedefine HAVE_SIGALTSTACK ${HAVE_SIGALTSTACK}
-
-/* Define to 1 if you have the <signal.h> header file. */
-#cmakedefine HAVE_SIGNAL_H ${HAVE_SIGNAL_H}
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H}
-
-/* Define to 1 if you have the `strerror' function. */
-#cmakedefine HAVE_STRERROR ${HAVE_STRERROR}
-
-/* Define to 1 if you have the `strerror_r' function. */
-#cmakedefine HAVE_STRERROR_R ${HAVE_STRERROR_R}
-
-/* Define to 1 if you have the `strtoll' function. */
-#cmakedefine HAVE_STRTOLL ${HAVE_STRTOLL}
-
-/* Define to 1 if you have the `sysconf' function. */
-#cmakedefine HAVE_SYSCONF ${HAVE_SYSCONF}
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-#cmakedefine HAVE_SYS_DIR_H ${HAVE_SYS_DIR_H}
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#cmakedefine HAVE_SYS_IOCTL_H ${HAVE_SYS_IOCTL_H}
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#cmakedefine HAVE_SYS_MMAN_H ${HAVE_SYS_MMAN_H}
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-#cmakedefine HAVE_SYS_NDIR_H ${HAVE_SYS_NDIR_H}
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#cmakedefine HAVE_SYS_PARAM_H ${HAVE_SYS_PARAM_H}
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#cmakedefine HAVE_SYS_RESOURCE_H ${HAVE_SYS_RESOURCE_H}
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#cmakedefine HAVE_SYS_STAT_H ${HAVE_SYS_STAT_H}
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#cmakedefine HAVE_SYS_TIME_H ${HAVE_SYS_TIME_H}
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H}
-
-/* Define to 1 if you have the <sys/uio.h> header file. */
-#cmakedefine HAVE_SYS_UIO_H ${HAVE_SYS_UIO_H}
-
-/* Define if the setupterm() function is supported this platform. */
-#cmakedefine HAVE_TERMINFO ${HAVE_TERMINFO}
-
-/* Define if the xar_open() function is supported this platform. */
-#cmakedefine HAVE_LIBXAR ${HAVE_LIBXAR}
-
-/* Define to 1 if you have the <termios.h> header file. */
-#cmakedefine HAVE_TERMIOS_H ${HAVE_TERMIOS_H}
-
-/* Define to 1 if the system has the type `uint64_t'. */
-#cmakedefine HAVE_UINT64_T ${HAVE_UINT64_T}
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#cmakedefine HAVE_UNISTD_H ${HAVE_UNISTD_H}
-
-/* Define to 1 if the system has the type `u_int64_t'. */
-#cmakedefine HAVE_U_INT64_T ${HAVE_U_INT64_T}
-
-/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-#cmakedefine HAVE_VALGRIND_VALGRIND_H ${HAVE_VALGRIND_VALGRIND_H}
-
-/* Define to 1 if you have the `writev' function. */
-#cmakedefine HAVE_WRITEV ${HAVE_WRITEV}
-
-/* Define to 1 if you have the <zlib.h> header file. */
-#cmakedefine HAVE_ZLIB_H ${HAVE_ZLIB_H}
-
-/* Have host's _alloca */
-#cmakedefine HAVE__ALLOCA ${HAVE__ALLOCA}
-
-/* Define to 1 if you have the `_chsize_s' function. */
-#cmakedefine HAVE__CHSIZE_S ${HAVE__CHSIZE_S}
-
-/* Define to 1 if you have the `_Unwind_Backtrace' function. */
-#cmakedefine HAVE__UNWIND_BACKTRACE ${HAVE__UNWIND_BACKTRACE}
-
-/* Have host's __alloca */
-#cmakedefine HAVE___ALLOCA ${HAVE___ALLOCA}
-
-/* Have host's __ashldi3 */
-#cmakedefine HAVE___ASHLDI3 ${HAVE___ASHLDI3}
-
-/* Have host's __ashrdi3 */
-#cmakedefine HAVE___ASHRDI3 ${HAVE___ASHRDI3}
-
-/* Have host's __chkstk */
-#cmakedefine HAVE___CHKSTK ${HAVE___CHKSTK}
-
-/* Have host's __chkstk_ms */
-#cmakedefine HAVE___CHKSTK_MS ${HAVE___CHKSTK_MS}
-
-/* Have host's __cmpdi2 */
-#cmakedefine HAVE___CMPDI2 ${HAVE___CMPDI2}
-
-/* Have host's __divdi3 */
-#cmakedefine HAVE___DIVDI3 ${HAVE___DIVDI3}
-
-/* Have host's __fixdfdi */
-#cmakedefine HAVE___FIXDFDI ${HAVE___FIXDFDI}
-
-/* Have host's __fixsfdi */
-#cmakedefine HAVE___FIXSFDI ${HAVE___FIXSFDI}
-
-/* Have host's __floatdidf */
-#cmakedefine HAVE___FLOATDIDF ${HAVE___FLOATDIDF}
-
-/* Have host's __lshrdi3 */
-#cmakedefine HAVE___LSHRDI3 ${HAVE___LSHRDI3}
-
-/* Have host's __main */
-#cmakedefine HAVE___MAIN ${HAVE___MAIN}
-
-/* Have host's __moddi3 */
-#cmakedefine HAVE___MODDI3 ${HAVE___MODDI3}
-
-/* Have host's __udivdi3 */
-#cmakedefine HAVE___UDIVDI3 ${HAVE___UDIVDI3}
-
-/* Have host's __umoddi3 */
-#cmakedefine HAVE___UMODDI3 ${HAVE___UMODDI3}
-
-/* Have host's ___chkstk */
-#cmakedefine HAVE____CHKSTK ${HAVE____CHKSTK}
-
-/* Have host's ___chkstk_ms */
-#cmakedefine HAVE____CHKSTK_MS ${HAVE____CHKSTK_MS}
-
-/* Linker version detected at compile time. */
-#cmakedefine HOST_LINK_VERSION "${HOST_LINK_VERSION}"
-
-/* Define if we link Polly to the tools */
-#cmakedefine LINK_POLLY_INTO_TOOLS
-
-/* Target triple LLVM will generate code for by default */
-/* Doesn't use `cmakedefine` because it is allowed to be empty. */
-#define LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_DEFAULT_TARGET_TRIPLE}"
-
-/* Define if threads enabled */
-#cmakedefine01 LLVM_ENABLE_THREADS
-
-/* Define if zlib compression is available */
-#cmakedefine01 LLVM_ENABLE_ZLIB
-
-/* Has gcc/MSVC atomic intrinsics */
-#cmakedefine01 LLVM_HAS_ATOMICS
-
-/* Host triple LLVM will be executed on */
-#cmakedefine LLVM_HOST_TRIPLE "${LLVM_HOST_TRIPLE}"
-
-/* LLVM architecture name for the native architecture, if available */
-#cmakedefine LLVM_NATIVE_ARCH ${LLVM_NATIVE_ARCH}
-
-/* LLVM name for the native AsmParser init function, if available */
-#cmakedefine LLVM_NATIVE_ASMPARSER LLVMInitialize${LLVM_NATIVE_ARCH}AsmParser
-
-/* LLVM name for the native AsmPrinter init function, if available */
-#cmakedefine LLVM_NATIVE_ASMPRINTER LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter
-
-/* LLVM name for the native Disassembler init function, if available */
-#cmakedefine LLVM_NATIVE_DISASSEMBLER LLVMInitialize${LLVM_NATIVE_ARCH}Disassembler
-
-/* LLVM name for the native Target init function, if available */
-#cmakedefine LLVM_NATIVE_TARGET LLVMInitialize${LLVM_NATIVE_ARCH}Target
-
-/* LLVM name for the native TargetInfo init function, if available */
-#cmakedefine LLVM_NATIVE_TARGETINFO LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo
-
-/* LLVM name for the native target MC init function, if available */
-#cmakedefine LLVM_NATIVE_TARGETMC LLVMInitialize${LLVM_NATIVE_ARCH}TargetMC
-
-/* Define if this is Unixish platform */
-#cmakedefine LLVM_ON_UNIX ${LLVM_ON_UNIX}
-
-/* Define if this is Win32ish platform */
-#cmakedefine LLVM_ON_WIN32 ${LLVM_ON_WIN32}
-
-/* Define if we have the Intel JIT API runtime support library */
-#cmakedefine01 LLVM_USE_INTEL_JITEVENTS
-
-/* Define if we have the oprofile JIT-support library */
-#cmakedefine01 LLVM_USE_OPROFILE
-
-/* LLVM version information */
-#cmakedefine LLVM_VERSION_INFO "${LLVM_VERSION_INFO}"
-
-/* Major version of the LLVM API */
-#define LLVM_VERSION_MAJOR ${LLVM_VERSION_MAJOR}
-
-/* Minor version of the LLVM API */
-#define LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR}
-
-/* Patch version of the LLVM API */
-#define LLVM_VERSION_PATCH ${LLVM_VERSION_PATCH}
-
-/* LLVM version string */
-#define LLVM_VERSION_STRING "${PACKAGE_VERSION}"
-
-/* Define to the extension used for shared libraries, say, ".so". */
-#cmakedefine LTDL_SHLIB_EXT "${LTDL_SHLIB_EXT}"
-
-/* Define to the address where bug reports for this package should be sent. */
-#cmakedefine PACKAGE_BUGREPORT "${PACKAGE_BUGREPORT}"
-
-/* Define to the full name of this package. */
-#cmakedefine PACKAGE_NAME "${PACKAGE_NAME}"
-
-/* Define to the full name and version of this package. */
-#cmakedefine PACKAGE_STRING "${PACKAGE_STRING}"
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#cmakedefine PACKAGE_VERSION "${PACKAGE_VERSION}"
-
-/* Define to the vendor of this package. */
-#cmakedefine PACKAGE_VENDOR "${PACKAGE_VENDOR}"
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#cmakedefine RETSIGTYPE ${RETSIGTYPE}
-
-/* Define to a function replacing strtoll */
-#cmakedefine strtoll ${strtoll}
-
-/* Define to a function implementing strtoull */
-#cmakedefine strtoull ${strtoull}
-
-/* Define to a function implementing stricmp */
-#cmakedefine stricmp ${stricmp}
-
-/* Define to a function implementing strdup */
-#cmakedefine strdup ${strdup}
-
-#endif
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/llvm-config.h b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/llvm-config.h
new file mode 100644
index 0000000..ab3f812
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/llvm-config.h
@@ -0,0 +1,116 @@
+/* include/llvm/Config/llvm-config.h.  Generated from llvm-config.h.in by configure.  */
+/*===-- llvm/config/llvm-config.h - llvm configure variable -------*- C -*-===*/
+/*                                                                            */
+/*                     The LLVM Compiler Infrastructure                       */
+/*                                                                            */
+/* This file is distributed under the University of Illinois Open Source      */
+/* License. See LICENSE.TXT for details.                                      */
+/*                                                                            */
+/*===----------------------------------------------------------------------===*/
+
+/* This file enumerates all of the llvm variables from configure so that
+   they can be in exported headers and won't override package specific
+   directives.  This is a C file so we can include it in the llvm-c headers.  */
+
+/* To avoid multiple inclusions of these variables when we include the exported
+   headers and config.h, conditionally include these.  */
+/* TODO: This is a bit of a hack.  */
+#ifndef CONFIG_H
+
+/* Installation directory for binary executables */
+#define LLVM_BINDIR "/opt/llvm-android/bin"
+
+/* Time at which LLVM was configured */
+#define LLVM_CONFIGTIME "Tue May  8 14:22:45 CST 2012"
+
+/* Installation directory for data files */
+#define LLVM_DATADIR "/opt/llvm-android/share/llvm"
+
+/* Target triple LLVM will generate code for by default */
+#if defined(__APPLE__)
+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin"
+#else
+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux"
+#endif
+
+/* Installation directory for documentation */
+#define LLVM_DOCSDIR "/opt/llvm-android/share/doc/llvm"
+
+/* Define if threads enabled */
+#if !defined(_WIN32) && !defined(_WIN64)
+#define LLVM_ENABLE_THREADS 1
+#else
+#define LLVM_ENABLE_THREADS 0
+#endif
+
+/* Installation directory for config files */
+#define LLVM_ETCDIR "/opt/llvm-android/etc/llvm"
+
+#if !defined(_WIN32) && !defined(_WIN64)
+
+/* Has gcc/MSVC atomic intrinsics */
+#define LLVM_HAS_ATOMICS 1
+
+#else
+
+#define LLVM_HAS_ATOMICS 0
+
+#endif /* !defined(_WIN32) && !defined(_WIN64) */
+
+/* Installation directory for include files */
+#define LLVM_INCLUDEDIR "/opt/llvm-android/include"
+
+/* Installation directory for .info files */
+#define LLVM_INFODIR "/opt/llvm-android/info"
+
+/* Installation directory for libraries */
+#define LLVM_LIBDIR "/opt/llvm-android/lib"
+
+/* Installation directory for man pages */
+#define LLVM_MANDIR "/opt/llvm-android/man"
+
+/* Define to path to circo program if found or 'echo circo' otherwise */
+/* #undef LLVM_PATH_CIRCO */
+
+/* Define to path to dot program if found or 'echo dot' otherwise */
+/* #undef LLVM_PATH_DOT */
+
+/* Define to path to dotty program if found or 'echo dotty' otherwise */
+/* #undef LLVM_PATH_DOTTY */
+
+/* Define to path to fdp program if found or 'echo fdp' otherwise */
+/* #undef LLVM_PATH_FDP */
+
+/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */
+/* #undef LLVM_PATH_GRAPHVIZ */
+
+/* Define to path to gv program if found or 'echo gv' otherwise */
+/* #undef LLVM_PATH_GV */
+
+/* Define to path to neato program if found or 'echo neato' otherwise */
+/* #undef LLVM_PATH_NEATO */
+
+/* Define to path to twopi program if found or 'echo twopi' otherwise */
+/* #undef LLVM_PATH_TWOPI */
+
+/* Define to path to xdot.py program if found or 'echo xdot.py' otherwise */
+/* #undef LLVM_PATH_XDOT_PY */
+
+/* Installation prefix directory */
+#define LLVM_PREFIX "/opt/llvm-android"
+
+/* Major version of the LLVM API */
+#define LLVM_VERSION_MAJOR 5
+
+/* Minor version of the LLVM API */
+#define LLVM_VERSION_MINOR 0
+
+/* Patch version of the LLVM API */
+#define LLVM_VERSION_PATCH 300080
+
+/* LLVM version string */
+#define LLVM_VERSION_STRING "5.0.300080"
+
+#include "llvm/Config/llvm-platform-config.h"
+
+#endif
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/llvm-config.h.cmake b/clang-4053586/prebuilt_include/llvm/include/llvm/Config/llvm-config.h.cmake
deleted file mode 100644
index 4b0c594..0000000
--- a/clang-4053586/prebuilt_include/llvm/include/llvm/Config/llvm-config.h.cmake
+++ /dev/null
@@ -1,77 +0,0 @@
-/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
-/*                                                                            */
-/*                     The LLVM Compiler Infrastructure                       */
-/*                                                                            */
-/* This file is distributed under the University of Illinois Open Source      */
-/* License. See LICENSE.TXT for details.                                      */
-/*                                                                            */
-/*===----------------------------------------------------------------------===*/
-
-/* This file enumerates variables from the LLVM configuration so that they
-   can be in exported headers and won't override package specific directives.
-   This is a C header that can be included in the llvm-c headers. */
-
-#ifndef LLVM_CONFIG_H
-#define LLVM_CONFIG_H
-
-/* Define if we link Polly to the tools */
-#cmakedefine LINK_POLLY_INTO_TOOLS
-
-/* Target triple LLVM will generate code for by default */
-#cmakedefine LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_DEFAULT_TARGET_TRIPLE}"
-
-/* Define if threads enabled */
-#cmakedefine01 LLVM_ENABLE_THREADS
-
-/* Has gcc/MSVC atomic intrinsics */
-#cmakedefine01 LLVM_HAS_ATOMICS
-
-/* Host triple LLVM will be executed on */
-#cmakedefine LLVM_HOST_TRIPLE "${LLVM_HOST_TRIPLE}"
-
-/* LLVM architecture name for the native architecture, if available */
-#cmakedefine LLVM_NATIVE_ARCH ${LLVM_NATIVE_ARCH}
-
-/* LLVM name for the native AsmParser init function, if available */
-#cmakedefine LLVM_NATIVE_ASMPARSER LLVMInitialize${LLVM_NATIVE_ARCH}AsmParser
-
-/* LLVM name for the native AsmPrinter init function, if available */
-#cmakedefine LLVM_NATIVE_ASMPRINTER LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter
-
-/* LLVM name for the native Disassembler init function, if available */
-#cmakedefine LLVM_NATIVE_DISASSEMBLER LLVMInitialize${LLVM_NATIVE_ARCH}Disassembler
-
-/* LLVM name for the native Target init function, if available */
-#cmakedefine LLVM_NATIVE_TARGET LLVMInitialize${LLVM_NATIVE_ARCH}Target
-
-/* LLVM name for the native TargetInfo init function, if available */
-#cmakedefine LLVM_NATIVE_TARGETINFO LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo
-
-/* LLVM name for the native target MC init function, if available */
-#cmakedefine LLVM_NATIVE_TARGETMC LLVMInitialize${LLVM_NATIVE_ARCH}TargetMC
-
-/* Define if this is Unixish platform */
-#cmakedefine LLVM_ON_UNIX ${LLVM_ON_UNIX}
-
-/* Define if this is Win32ish platform */
-#cmakedefine LLVM_ON_WIN32 ${LLVM_ON_WIN32}
-
-/* Define if we have the Intel JIT API runtime support library */
-#cmakedefine01 LLVM_USE_INTEL_JITEVENTS
-
-/* Define if we have the oprofile JIT-support library */
-#cmakedefine01 LLVM_USE_OPROFILE
-
-/* Major version of the LLVM API */
-#define LLVM_VERSION_MAJOR ${LLVM_VERSION_MAJOR}
-
-/* Minor version of the LLVM API */
-#define LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR}
-
-/* Patch version of the LLVM API */
-#define LLVM_VERSION_PATCH ${LLVM_VERSION_PATCH}
-
-/* LLVM version string */
-#define LLVM_VERSION_STRING "${PACKAGE_VERSION}"
-
-#endif
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/IR/Attributes.gen b/clang-4053586/prebuilt_include/llvm/include/llvm/IR/Attributes.gen
new file mode 100644
index 0000000..e9610ec
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/IR/Attributes.gen
@@ -0,0 +1,458 @@
+#ifdef GET_ATTR_ENUM
+#undef GET_ATTR_ENUM
+Alignment,
+AllocSize,
+AlwaysInline,
+ArgMemOnly,
+Builtin,
+ByVal,
+Cold,
+Convergent,
+Dereferenceable,
+DereferenceableOrNull,
+InAlloca,
+InReg,
+InaccessibleMemOnly,
+InaccessibleMemOrArgMemOnly,
+InlineHint,
+JumpTable,
+MinSize,
+Naked,
+Nest,
+NoAlias,
+NoBuiltin,
+NoCapture,
+NoDuplicate,
+NoImplicitFloat,
+NoInline,
+NoRecurse,
+NoRedZone,
+NoReturn,
+NoUnwind,
+NonLazyBind,
+NonNull,
+OptimizeForSize,
+OptimizeNone,
+ReadNone,
+ReadOnly,
+Returned,
+ReturnsTwice,
+SExt,
+SafeStack,
+SanitizeAddress,
+SanitizeMemory,
+SanitizeThread,
+StackAlignment,
+StackProtect,
+StackProtectReq,
+StackProtectStrong,
+StructRet,
+SwiftError,
+SwiftSelf,
+UWTable,
+WriteOnly,
+ZExt,
+#endif
+#ifdef GET_ATTR_KIND_FROM_NAME
+#undef GET_ATTR_KIND_FROM_NAME
+static Attribute::AttrKind getAttrKindFromName(StringRef AttrName) {
+  return StringSwitch<Attribute::AttrKind>(AttrName)
+    .Case("align", Attribute::Alignment)
+    .Case("allocsize", Attribute::AllocSize)
+    .Case("alwaysinline", Attribute::AlwaysInline)
+    .Case("argmemonly", Attribute::ArgMemOnly)
+    .Case("builtin", Attribute::Builtin)
+    .Case("byval", Attribute::ByVal)
+    .Case("cold", Attribute::Cold)
+    .Case("convergent", Attribute::Convergent)
+    .Case("dereferenceable", Attribute::Dereferenceable)
+    .Case("dereferenceable_or_null", Attribute::DereferenceableOrNull)
+    .Case("inalloca", Attribute::InAlloca)
+    .Case("inreg", Attribute::InReg)
+    .Case("inaccessiblememonly", Attribute::InaccessibleMemOnly)
+    .Case("inaccessiblemem_or_argmemonly", Attribute::InaccessibleMemOrArgMemOnly)
+    .Case("inlinehint", Attribute::InlineHint)
+    .Case("jumptable", Attribute::JumpTable)
+    .Case("minsize", Attribute::MinSize)
+    .Case("naked", Attribute::Naked)
+    .Case("nest", Attribute::Nest)
+    .Case("noalias", Attribute::NoAlias)
+    .Case("nobuiltin", Attribute::NoBuiltin)
+    .Case("nocapture", Attribute::NoCapture)
+    .Case("noduplicate", Attribute::NoDuplicate)
+    .Case("noimplicitfloat", Attribute::NoImplicitFloat)
+    .Case("noinline", Attribute::NoInline)
+    .Case("norecurse", Attribute::NoRecurse)
+    .Case("noredzone", Attribute::NoRedZone)
+    .Case("noreturn", Attribute::NoReturn)
+    .Case("nounwind", Attribute::NoUnwind)
+    .Case("nonlazybind", Attribute::NonLazyBind)
+    .Case("nonnull", Attribute::NonNull)
+    .Case("optsize", Attribute::OptimizeForSize)
+    .Case("optnone", Attribute::OptimizeNone)
+    .Case("readnone", Attribute::ReadNone)
+    .Case("readonly", Attribute::ReadOnly)
+    .Case("returned", Attribute::Returned)
+    .Case("returns_twice", Attribute::ReturnsTwice)
+    .Case("signext", Attribute::SExt)
+    .Case("safestack", Attribute::SafeStack)
+    .Case("sanitize_address", Attribute::SanitizeAddress)
+    .Case("sanitize_memory", Attribute::SanitizeMemory)
+    .Case("sanitize_thread", Attribute::SanitizeThread)
+    .Case("alignstack", Attribute::StackAlignment)
+    .Case("ssp", Attribute::StackProtect)
+    .Case("sspreq", Attribute::StackProtectReq)
+    .Case("sspstrong", Attribute::StackProtectStrong)
+    .Case("sret", Attribute::StructRet)
+    .Case("swifterror", Attribute::SwiftError)
+    .Case("swiftself", Attribute::SwiftSelf)
+    .Case("uwtable", Attribute::UWTable)
+    .Case("writeonly", Attribute::WriteOnly)
+    .Case("zeroext", Attribute::ZExt)
+    .Default(Attribute::None);
+}
+
+#endif
+#ifdef GET_ATTR_COMPAT_FUNC
+#undef GET_ATTR_COMPAT_FUNC
+struct EnumAttr {
+  static bool isSet(const Function &Fn,
+                    Attribute::AttrKind Kind) {
+    return Fn.hasFnAttribute(Kind);
+  }
+
+  static void set(Function &Fn,
+                  Attribute::AttrKind Kind, bool Val) {
+    if (Val)
+      Fn.addFnAttr(Kind);
+    else
+      Fn.removeFnAttr(Kind);
+  }
+};
+
+struct StrBoolAttr {
+  static bool isSet(const Function &Fn,
+                    StringRef Kind) {
+    auto A = Fn.getFnAttribute(Kind);
+    return A.getValueAsString().equals("true");
+  }
+
+  static void set(Function &Fn,
+                  StringRef Kind, bool Val) {
+    Fn.addFnAttr(Kind, Val ? "true" : "false");
+  }
+};
+
+// EnumAttr classes
+struct AlignmentAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Alignment;
+  }
+};
+struct AllocSizeAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::AllocSize;
+  }
+};
+struct AlwaysInlineAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::AlwaysInline;
+  }
+};
+struct ArgMemOnlyAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ArgMemOnly;
+  }
+};
+struct BuiltinAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Builtin;
+  }
+};
+struct ByValAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ByVal;
+  }
+};
+struct ColdAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Cold;
+  }
+};
+struct ConvergentAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Convergent;
+  }
+};
+struct DereferenceableAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Dereferenceable;
+  }
+};
+struct DereferenceableOrNullAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::DereferenceableOrNull;
+  }
+};
+struct InAllocaAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::InAlloca;
+  }
+};
+struct InRegAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::InReg;
+  }
+};
+struct InaccessibleMemOnlyAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::InaccessibleMemOnly;
+  }
+};
+struct InaccessibleMemOrArgMemOnlyAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::InaccessibleMemOrArgMemOnly;
+  }
+};
+struct InlineHintAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::InlineHint;
+  }
+};
+struct JumpTableAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::JumpTable;
+  }
+};
+struct MinSizeAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::MinSize;
+  }
+};
+struct NakedAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Naked;
+  }
+};
+struct NestAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Nest;
+  }
+};
+struct NoAliasAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoAlias;
+  }
+};
+struct NoBuiltinAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoBuiltin;
+  }
+};
+struct NoCaptureAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoCapture;
+  }
+};
+struct NoDuplicateAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoDuplicate;
+  }
+};
+struct NoImplicitFloatAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoImplicitFloat;
+  }
+};
+struct NoInlineAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoInline;
+  }
+};
+struct NoRecurseAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoRecurse;
+  }
+};
+struct NoRedZoneAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoRedZone;
+  }
+};
+struct NoReturnAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoReturn;
+  }
+};
+struct NoUnwindAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NoUnwind;
+  }
+};
+struct NonLazyBindAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NonLazyBind;
+  }
+};
+struct NonNullAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::NonNull;
+  }
+};
+struct OptimizeForSizeAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::OptimizeForSize;
+  }
+};
+struct OptimizeNoneAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::OptimizeNone;
+  }
+};
+struct ReadNoneAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ReadNone;
+  }
+};
+struct ReadOnlyAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ReadOnly;
+  }
+};
+struct ReturnedAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::Returned;
+  }
+};
+struct ReturnsTwiceAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ReturnsTwice;
+  }
+};
+struct SExtAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SExt;
+  }
+};
+struct SafeStackAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SafeStack;
+  }
+};
+struct SanitizeAddressAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SanitizeAddress;
+  }
+};
+struct SanitizeMemoryAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SanitizeMemory;
+  }
+};
+struct SanitizeThreadAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SanitizeThread;
+  }
+};
+struct StackAlignmentAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::StackAlignment;
+  }
+};
+struct StackProtectAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::StackProtect;
+  }
+};
+struct StackProtectReqAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::StackProtectReq;
+  }
+};
+struct StackProtectStrongAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::StackProtectStrong;
+  }
+};
+struct StructRetAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::StructRet;
+  }
+};
+struct SwiftErrorAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SwiftError;
+  }
+};
+struct SwiftSelfAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::SwiftSelf;
+  }
+};
+struct UWTableAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::UWTable;
+  }
+};
+struct WriteOnlyAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::WriteOnly;
+  }
+};
+struct ZExtAttr : EnumAttr {
+  static enum Attribute::AttrKind getKind() {
+    return llvm::Attribute::ZExt;
+  }
+};
+
+// StrBoolAttr classes
+struct LessPreciseFPMADAttr : StrBoolAttr {
+  static StringRef getKind() {
+    return "less-precise-fpmad";
+  }
+};
+struct NoInfsFPMathAttr : StrBoolAttr {
+  static StringRef getKind() {
+    return "no-infs-fp-math";
+  }
+};
+struct NoJumpTablesAttr : StrBoolAttr {
+  static StringRef getKind() {
+    return "no-jump-tables";
+  }
+};
+struct NoNansFPMathAttr : StrBoolAttr {
+  static StringRef getKind() {
+    return "no-nans-fp-math";
+  }
+};
+struct UnsafeFPMathAttr : StrBoolAttr {
+  static StringRef getKind() {
+    return "unsafe-fp-math";
+  }
+};
+
+static inline bool hasCompatibleFnAttrs(const Function &Caller,
+                                        const Function &Callee) {
+  bool Ret = true;
+
+  Ret &= isEqual<SanitizeAddressAttr>(Caller, Callee);
+  Ret &= isEqual<SanitizeThreadAttr>(Caller, Callee);
+  Ret &= isEqual<SanitizeMemoryAttr>(Caller, Callee);
+  Ret &= isEqual<SafeStackAttr>(Caller, Callee);
+
+  return Ret;
+}
+
+static inline void mergeFnAttrs(Function &Caller,
+                                const Function &Callee) {
+  adjustCallerSSPLevel(Caller, Callee);
+  setAND<LessPreciseFPMADAttr>(Caller, Callee);
+  setAND<NoInfsFPMathAttr>(Caller, Callee);
+  setAND<NoNansFPMathAttr>(Caller, Callee);
+  setAND<UnsafeFPMathAttr>(Caller, Callee);
+  setOR<NoImplicitFloatAttr>(Caller, Callee);
+  setOR<NoJumpTablesAttr>(Caller, Callee);
+}
+
+#endif
diff --git a/clang-4053586/prebuilt_include/llvm/include/llvm/IR/Intrinsics.gen b/clang-4053586/prebuilt_include/llvm/include/llvm/IR/Intrinsics.gen
new file mode 100644
index 0000000..72b8fce
--- /dev/null
+++ b/clang-4053586/prebuilt_include/llvm/include/llvm/IR/Intrinsics.gen
@@ -0,0 +1,34493 @@
+/*===- 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
+    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_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_fadd,             // llvm.experimental.constrained.fadd
+    experimental_constrained_fdiv,             // llvm.experimental.constrained.fdiv
+    experimental_constrained_fmul,             // llvm.experimental.constrained.fmul
+    experimental_constrained_frem,             // llvm.experimental.constrained.frem
+    experimental_constrained_fsub,             // llvm.experimental.constrained.fsub
+    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
+    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
+    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_atomic,                     // llvm.memcpy.element.atomic
+    memmove,                                   // llvm.memmove
+    memset,                                    // llvm.memset
+    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
+    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
+    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_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_u8_f32,                      // llvm.amdgcn.cvt.pk.u8.f32
+    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_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_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_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_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_sffbh,                              // llvm.amdgcn.sffbh
+    amdgcn_sin,                                // llvm.amdgcn.sin
+    amdgcn_trig_preop,                         // llvm.amdgcn.trig.preop
+    amdgcn_ubfe,                               // llvm.amdgcn.ubfe
+    amdgcn_unreachable,                        // llvm.amdgcn.unreachable
+    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
+    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_qsub,                                  // llvm.arm.qsub
+    arm_set_fpscr,                             // llvm.arm.set.fpscr
+    arm_space,                                 // llvm.arm.space
+    arm_ssat,                                  // llvm.arm.ssat
+    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_undefined,                             // llvm.arm.undefined
+    arm_usat,                                  // llvm.arm.usat
+    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_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_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_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_SI_to_SXTHI_asrh,                  // llvm.hexagon.SI.to.SXTHI.asrh
+    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_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_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_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_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_vasruwuhrndsat,                 // llvm.hexagon.V6.vasruwuhrndsat
+    hexagon_V6_vasruwuhrndsat_128B,            // llvm.hexagon.V6.vasruwuhrndsat.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_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_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_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_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_vlutb,                          // llvm.hexagon.V6.vlutb
+    hexagon_V6_vlutb_128B,                     // llvm.hexagon.V6.vlutb.128B
+    hexagon_V6_vlutb_acc,                      // llvm.hexagon.V6.vlutb.acc
+    hexagon_V6_vlutb_acc_128B,                 // llvm.hexagon.V6.vlutb.acc.128B
+    hexagon_V6_vlutb_dv,                       // llvm.hexagon.V6.vlutb.dv
+    hexagon_V6_vlutb_dv_128B,                  // llvm.hexagon.V6.vlutb.dv.128B
+    hexagon_V6_vlutb_dv_acc,                   // llvm.hexagon.V6.vlutb.dv.acc
+    hexagon_V6_vlutb_dv_acc_128B,              // llvm.hexagon.V6.vlutb.dv.acc.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_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_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_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_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_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_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_vrdelta,                        // llvm.hexagon.V6.vrdelta
+    hexagon_V6_vrdelta_128B,                   // llvm.hexagon.V6.vrdelta.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_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_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_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_brev_ldb,                          // llvm.hexagon.brev.ldb
+    hexagon_brev_ldd,                          // llvm.hexagon.brev.ldd
+    hexagon_brev_ldh,                          // llvm.hexagon.brev.ldh
+    hexagon_brev_ldub,                         // llvm.hexagon.brev.ldub
+    hexagon_brev_lduh,                         // llvm.hexagon.brev.lduh
+    hexagon_brev_ldw,                          // llvm.hexagon.brev.ldw
+    hexagon_brev_stb,                          // llvm.hexagon.brev.stb
+    hexagon_brev_std,                          // llvm.hexagon.brev.std
+    hexagon_brev_sth,                          // llvm.hexagon.brev.sth
+    hexagon_brev_sthhi,                        // llvm.hexagon.brev.sthhi
+    hexagon_brev_stw,                          // llvm.hexagon.brev.stw
+    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_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_barrier,                              // llvm.nvvm.barrier
+    nvvm_barrier_n,                            // llvm.nvvm.barrier.n
+    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_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_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_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
+    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_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_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_vfchdbs,                              // llvm.s390.vfchdbs
+    s390_vfchedbs,                             // llvm.s390.vfchedbs
+    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_vftcidb,                              // llvm.s390.vftcidb
+    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_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_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_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_grow_memory,                          // llvm.wasm.grow.memory
+    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_aesdeclast,                      // llvm.x86.aesni.aesdeclast
+    x86_aesni_aesenc,                          // llvm.x86.aesni.aesenc
+    x86_aesni_aesenclast,                      // llvm.x86.aesni.aesenclast
+    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_vperm2f128_pd_256,                 // llvm.x86.avx.vperm2f128.pd.256
+    x86_avx_vperm2f128_ps_256,                 // llvm.x86.avx.vperm2f128.ps.256
+    x86_avx_vperm2f128_si_256,                 // llvm.x86.avx.vperm2f128.si.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_movntdqa,                         // llvm.x86.avx2.movntdqa
+    x86_avx2_mpsadbw,                          // llvm.x86.avx2.mpsadbw
+    x86_avx2_pabs_b,                           // llvm.x86.avx2.pabs.b
+    x86_avx2_pabs_d,                           // llvm.x86.avx2.pabs.d
+    x86_avx2_pabs_w,                           // llvm.x86.avx2.pabs.w
+    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_pavg_b,                           // llvm.x86.avx2.pavg.b
+    x86_avx2_pavg_w,                           // llvm.x86.avx2.pavg.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_avx2_vperm2i128,                       // llvm.x86.avx2.vperm2i128
+    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_cvtb2mask_128,                  // llvm.x86.avx512.cvtb2mask.128
+    x86_avx512_cvtb2mask_256,                  // llvm.x86.avx512.cvtb2mask.256
+    x86_avx512_cvtb2mask_512,                  // llvm.x86.avx512.cvtb2mask.512
+    x86_avx512_cvtd2mask_128,                  // llvm.x86.avx512.cvtd2mask.128
+    x86_avx512_cvtd2mask_256,                  // llvm.x86.avx512.cvtd2mask.256
+    x86_avx512_cvtd2mask_512,                  // llvm.x86.avx512.cvtd2mask.512
+    x86_avx512_cvtq2mask_128,                  // llvm.x86.avx512.cvtq2mask.128
+    x86_avx512_cvtq2mask_256,                  // llvm.x86.avx512.cvtq2mask.256
+    x86_avx512_cvtq2mask_512,                  // llvm.x86.avx512.cvtq2mask.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_cvtw2mask_128,                  // llvm.x86.avx512.cvtw2mask.128
+    x86_avx512_cvtw2mask_256,                  // llvm.x86.avx512.cvtw2mask.256
+    x86_avx512_cvtw2mask_512,                  // llvm.x86.avx512.cvtw2mask.512
+    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_kand_w,                         // llvm.x86.avx512.kand.w
+    x86_avx512_kandn_w,                        // llvm.x86.avx512.kandn.w
+    x86_avx512_knot_w,                         // llvm.x86.avx512.knot.w
+    x86_avx512_kor_w,                          // llvm.x86.avx512.kor.w
+    x86_avx512_kortestc_w,                     // llvm.x86.avx512.kortestc.w
+    x86_avx512_kortestz_w,                     // llvm.x86.avx512.kortestz.w
+    x86_avx512_kunpck_bw,                      // llvm.x86.avx512.kunpck.bw
+    x86_avx512_kunpck_dq,                      // llvm.x86.avx512.kunpck.dq
+    x86_avx512_kunpck_wd,                      // llvm.x86.avx512.kunpck.wd
+    x86_avx512_kxnor_w,                        // llvm.x86.avx512.kxnor.w
+    x86_avx512_kxor_w,                         // llvm.x86.avx512.kxor.w
+    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_broadcastf32x2_256,        // llvm.x86.avx512.mask.broadcastf32x2.256
+    x86_avx512_mask_broadcastf32x2_512,        // llvm.x86.avx512.mask.broadcastf32x2.512
+    x86_avx512_mask_broadcastf32x4_256,        // llvm.x86.avx512.mask.broadcastf32x4.256
+    x86_avx512_mask_broadcastf32x4_512,        // llvm.x86.avx512.mask.broadcastf32x4.512
+    x86_avx512_mask_broadcastf32x8_512,        // llvm.x86.avx512.mask.broadcastf32x8.512
+    x86_avx512_mask_broadcastf64x2_256,        // llvm.x86.avx512.mask.broadcastf64x2.256
+    x86_avx512_mask_broadcastf64x2_512,        // llvm.x86.avx512.mask.broadcastf64x2.512
+    x86_avx512_mask_broadcastf64x4_512,        // llvm.x86.avx512.mask.broadcastf64x4.512
+    x86_avx512_mask_broadcasti32x2_128,        // llvm.x86.avx512.mask.broadcasti32x2.128
+    x86_avx512_mask_broadcasti32x2_256,        // llvm.x86.avx512.mask.broadcasti32x2.256
+    x86_avx512_mask_broadcasti32x2_512,        // llvm.x86.avx512.mask.broadcasti32x2.512
+    x86_avx512_mask_broadcasti32x4_256,        // llvm.x86.avx512.mask.broadcasti32x4.256
+    x86_avx512_mask_broadcasti32x4_512,        // llvm.x86.avx512.mask.broadcasti32x4.512
+    x86_avx512_mask_broadcasti32x8_512,        // llvm.x86.avx512.mask.broadcasti32x8.512
+    x86_avx512_mask_broadcasti64x2_256,        // llvm.x86.avx512.mask.broadcasti64x2.256
+    x86_avx512_mask_broadcasti64x2_512,        // llvm.x86.avx512.mask.broadcasti64x2.512
+    x86_avx512_mask_broadcasti64x4_512,        // llvm.x86.avx512.mask.broadcasti64x4.512
+    x86_avx512_mask_cmp_b_128,                 // llvm.x86.avx512.mask.cmp.b.128
+    x86_avx512_mask_cmp_b_256,                 // llvm.x86.avx512.mask.cmp.b.256
+    x86_avx512_mask_cmp_b_512,                 // llvm.x86.avx512.mask.cmp.b.512
+    x86_avx512_mask_cmp_d_128,                 // llvm.x86.avx512.mask.cmp.d.128
+    x86_avx512_mask_cmp_d_256,                 // llvm.x86.avx512.mask.cmp.d.256
+    x86_avx512_mask_cmp_d_512,                 // llvm.x86.avx512.mask.cmp.d.512
+    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_q_128,                 // llvm.x86.avx512.mask.cmp.q.128
+    x86_avx512_mask_cmp_q_256,                 // llvm.x86.avx512.mask.cmp.q.256
+    x86_avx512_mask_cmp_q_512,                 // llvm.x86.avx512.mask.cmp.q.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_cmp_w_128,                 // llvm.x86.avx512.mask.cmp.w.128
+    x86_avx512_mask_cmp_w_256,                 // llvm.x86.avx512.mask.cmp.w.256
+    x86_avx512_mask_cmp_w_512,                 // llvm.x86.avx512.mask.cmp.w.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_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_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_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_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_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_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_pabs_b_128,                // llvm.x86.avx512.mask.pabs.b.128
+    x86_avx512_mask_pabs_b_256,                // llvm.x86.avx512.mask.pabs.b.256
+    x86_avx512_mask_pabs_b_512,                // llvm.x86.avx512.mask.pabs.b.512
+    x86_avx512_mask_pabs_d_128,                // llvm.x86.avx512.mask.pabs.d.128
+    x86_avx512_mask_pabs_d_256,                // llvm.x86.avx512.mask.pabs.d.256
+    x86_avx512_mask_pabs_d_512,                // llvm.x86.avx512.mask.pabs.d.512
+    x86_avx512_mask_pabs_q_128,                // llvm.x86.avx512.mask.pabs.q.128
+    x86_avx512_mask_pabs_q_256,                // llvm.x86.avx512.mask.pabs.q.256
+    x86_avx512_mask_pabs_q_512,                // llvm.x86.avx512.mask.pabs.q.512
+    x86_avx512_mask_pabs_w_128,                // llvm.x86.avx512.mask.pabs.w.128
+    x86_avx512_mask_pabs_w_256,                // llvm.x86.avx512.mask.pabs.w.256
+    x86_avx512_mask_pabs_w_512,                // llvm.x86.avx512.mask.pabs.w.512
+    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_pavg_b_128,                // llvm.x86.avx512.mask.pavg.b.128
+    x86_avx512_mask_pavg_b_256,                // llvm.x86.avx512.mask.pavg.b.256
+    x86_avx512_mask_pavg_b_512,                // llvm.x86.avx512.mask.pavg.b.512
+    x86_avx512_mask_pavg_w_128,                // llvm.x86.avx512.mask.pavg.w.128
+    x86_avx512_mask_pavg_w_256,                // llvm.x86.avx512.mask.pavg.w.256
+    x86_avx512_mask_pavg_w_512,                // llvm.x86.avx512.mask.pavg.w.512
+    x86_avx512_mask_pbroadcast_b_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.b.gpr.128
+    x86_avx512_mask_pbroadcast_b_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.b.gpr.256
+    x86_avx512_mask_pbroadcast_b_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.b.gpr.512
+    x86_avx512_mask_pbroadcast_d_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.d.gpr.128
+    x86_avx512_mask_pbroadcast_d_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.d.gpr.256
+    x86_avx512_mask_pbroadcast_d_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
+    x86_avx512_mask_pbroadcast_q_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.q.gpr.128
+    x86_avx512_mask_pbroadcast_q_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.q.gpr.256
+    x86_avx512_mask_pbroadcast_q_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
+    x86_avx512_mask_pbroadcast_q_mem_512,      // llvm.x86.avx512.mask.pbroadcast.q.mem.512
+    x86_avx512_mask_pbroadcast_w_gpr_128,      // llvm.x86.avx512.mask.pbroadcast.w.gpr.128
+    x86_avx512_mask_pbroadcast_w_gpr_256,      // llvm.x86.avx512.mask.pbroadcast.w.gpr.256
+    x86_avx512_mask_pbroadcast_w_gpr_512,      // llvm.x86.avx512.mask.pbroadcast.w.gpr.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_pmul_hr_sw_128,            // llvm.x86.avx512.mask.pmul.hr.sw.128
+    x86_avx512_mask_pmul_hr_sw_256,            // llvm.x86.avx512.mask.pmul.hr.sw.256
+    x86_avx512_mask_pmul_hr_sw_512,            // llvm.x86.avx512.mask.pmul.hr.sw.512
+    x86_avx512_mask_pmulh_w_128,               // llvm.x86.avx512.mask.pmulh.w.128
+    x86_avx512_mask_pmulh_w_256,               // llvm.x86.avx512.mask.pmulh.w.256
+    x86_avx512_mask_pmulh_w_512,               // llvm.x86.avx512.mask.pmulh.w.512
+    x86_avx512_mask_pmulhu_w_128,              // llvm.x86.avx512.mask.pmulhu.w.128
+    x86_avx512_mask_pmulhu_w_256,              // llvm.x86.avx512.mask.pmulhu.w.256
+    x86_avx512_mask_pmulhu_w_512,              // llvm.x86.avx512.mask.pmulhu.w.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_shuf_f32x4,                // llvm.x86.avx512.mask.shuf.f32x4
+    x86_avx512_mask_shuf_f32x4_256,            // llvm.x86.avx512.mask.shuf.f32x4.256
+    x86_avx512_mask_shuf_f64x2,                // llvm.x86.avx512.mask.shuf.f64x2
+    x86_avx512_mask_shuf_f64x2_256,            // llvm.x86.avx512.mask.shuf.f64x2.256
+    x86_avx512_mask_shuf_i32x4,                // llvm.x86.avx512.mask.shuf.i32x4
+    x86_avx512_mask_shuf_i32x4_256,            // llvm.x86.avx512.mask.shuf.i32x4.256
+    x86_avx512_mask_shuf_i64x2,                // llvm.x86.avx512.mask.shuf.i64x2
+    x86_avx512_mask_shuf_i64x2_256,            // llvm.x86.avx512.mask.shuf.i64x2.256
+    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_ucmp_b_128,                // llvm.x86.avx512.mask.ucmp.b.128
+    x86_avx512_mask_ucmp_b_256,                // llvm.x86.avx512.mask.ucmp.b.256
+    x86_avx512_mask_ucmp_b_512,                // llvm.x86.avx512.mask.ucmp.b.512
+    x86_avx512_mask_ucmp_d_128,                // llvm.x86.avx512.mask.ucmp.d.128
+    x86_avx512_mask_ucmp_d_256,                // llvm.x86.avx512.mask.ucmp.d.256
+    x86_avx512_mask_ucmp_d_512,                // llvm.x86.avx512.mask.ucmp.d.512
+    x86_avx512_mask_ucmp_q_128,                // llvm.x86.avx512.mask.ucmp.q.128
+    x86_avx512_mask_ucmp_q_256,                // llvm.x86.avx512.mask.ucmp.q.256
+    x86_avx512_mask_ucmp_q_512,                // llvm.x86.avx512.mask.ucmp.q.512
+    x86_avx512_mask_ucmp_w_128,                // llvm.x86.avx512.mask.ucmp.w.128
+    x86_avx512_mask_ucmp_w_256,                // llvm.x86.avx512.mask.ucmp.w.256
+    x86_avx512_mask_ucmp_w_512,                // llvm.x86.avx512.mask.ucmp.w.512
+    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_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_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_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_movntdqa,                       // llvm.x86.avx512.movntdqa
+    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_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_ptestm_b_128,                   // llvm.x86.avx512.ptestm.b.128
+    x86_avx512_ptestm_b_256,                   // llvm.x86.avx512.ptestm.b.256
+    x86_avx512_ptestm_b_512,                   // llvm.x86.avx512.ptestm.b.512
+    x86_avx512_ptestm_d_128,                   // llvm.x86.avx512.ptestm.d.128
+    x86_avx512_ptestm_d_256,                   // llvm.x86.avx512.ptestm.d.256
+    x86_avx512_ptestm_d_512,                   // llvm.x86.avx512.ptestm.d.512
+    x86_avx512_ptestm_q_128,                   // llvm.x86.avx512.ptestm.q.128
+    x86_avx512_ptestm_q_256,                   // llvm.x86.avx512.ptestm.q.256
+    x86_avx512_ptestm_q_512,                   // llvm.x86.avx512.ptestm.q.512
+    x86_avx512_ptestm_w_128,                   // llvm.x86.avx512.ptestm.w.128
+    x86_avx512_ptestm_w_256,                   // llvm.x86.avx512.ptestm.w.256
+    x86_avx512_ptestm_w_512,                   // llvm.x86.avx512.ptestm.w.512
+    x86_avx512_ptestnm_b_128,                  // llvm.x86.avx512.ptestnm.b.128
+    x86_avx512_ptestnm_b_256,                  // llvm.x86.avx512.ptestnm.b.256
+    x86_avx512_ptestnm_b_512,                  // llvm.x86.avx512.ptestnm.b.512
+    x86_avx512_ptestnm_d_128,                  // llvm.x86.avx512.ptestnm.d.128
+    x86_avx512_ptestnm_d_256,                  // llvm.x86.avx512.ptestnm.d.256
+    x86_avx512_ptestnm_d_512,                  // llvm.x86.avx512.ptestnm.d.512
+    x86_avx512_ptestnm_q_128,                  // llvm.x86.avx512.ptestnm.q.128
+    x86_avx512_ptestnm_q_256,                  // llvm.x86.avx512.ptestnm.q.256
+    x86_avx512_ptestnm_q_512,                  // llvm.x86.avx512.ptestnm.q.512
+    x86_avx512_ptestnm_w_128,                  // llvm.x86.avx512.ptestnm.w.128
+    x86_avx512_ptestnm_w_256,                  // llvm.x86.avx512.ptestnm.w.256
+    x86_avx512_ptestnm_w_512,                  // llvm.x86.avx512.ptestnm.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_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_fxrstor,                               // llvm.x86.fxrstor
+    x86_fxrstor64,                             // llvm.x86.fxrstor64
+    x86_fxsave,                                // llvm.x86.fxsave
+    x86_fxsave64,                              // llvm.x86.fxsave64
+    x86_int,                                   // llvm.x86.int
+    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_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_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_rdtsc,                                 // llvm.x86.rdtsc
+    x86_rdtscp,                                // llvm.x86.rdtscp
+    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_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_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_pavg_b,                           // llvm.x86.sse2.pavg.b
+    x86_sse2_pavg_w,                           // llvm.x86.sse2.pavg.w
+    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_movntdqa,                        // llvm.x86.sse41.movntdqa
+    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_b_128,                      // llvm.x86.ssse3.pabs.b.128
+    x86_ssse3_pabs_d,                          // llvm.x86.ssse3.pabs.d
+    x86_ssse3_pabs_d_128,                      // llvm.x86.ssse3.pabs.d.128
+    x86_ssse3_pabs_w,                          // llvm.x86.ssse3.pabs.w
+    x86_ssse3_pabs_w_128,                      // llvm.x86.ssse3.pabs.w.128
+    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_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_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, 141},
+  {llvm::StringLiteral("aarch64"), 141, 189},
+  {llvm::StringLiteral("amdgcn"), 330, 192},
+  {llvm::StringLiteral("arm"), 522, 171},
+  {llvm::StringLiteral("bpf"), 693, 4},
+  {llvm::StringLiteral("hexagon"), 697, 1587},
+  {llvm::StringLiteral("mips"), 2284, 667},
+  {llvm::StringLiteral("nvvm"), 2951, 924},
+  {llvm::StringLiteral("ppc"), 3875, 395},
+  {llvm::StringLiteral("r600"), 4270, 21},
+  {llvm::StringLiteral("s390"), 4291, 207},
+  {llvm::StringLiteral("wasm"), 4498, 2},
+  {llvm::StringLiteral("x86"), 4500, 1510},
+  {llvm::StringLiteral("xcore"), 6010, 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.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.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.fadd",
+  "llvm.experimental.constrained.fdiv",
+  "llvm.experimental.constrained.fmul",
+  "llvm.experimental.constrained.frem",
+  "llvm.experimental.constrained.fsub",
+  "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.fabs",
+  "llvm.floor",
+  "llvm.flt.rounds",
+  "llvm.fma",
+  "llvm.fmuladd",
+  "llvm.frameaddress",
+  "llvm.gcread",
+  "llvm.gcroot",
+  "llvm.gcwrite",
+  "llvm.get.dynamic.area.offset",
+  "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.atomic",
+  "llvm.memmove",
+  "llvm.memset",
+  "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.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.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.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.u8.f32",
+  "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.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.interp.mov",
+  "llvm.amdgcn.interp.p1",
+  "llvm.amdgcn.interp.p2",
+  "llvm.amdgcn.kernarg.segment.ptr",
+  "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.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.sffbh",
+  "llvm.amdgcn.sin",
+  "llvm.amdgcn.trig.preop",
+  "llvm.amdgcn.ubfe",
+  "llvm.amdgcn.unreachable",
+  "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.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.qsub",
+  "llvm.arm.set.fpscr",
+  "llvm.arm.space",
+  "llvm.arm.ssat",
+  "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.undefined",
+  "llvm.arm.usat",
+  "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.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.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.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.SI.to.SXTHI.asrh",
+  "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.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.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.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.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.vasruwuhrndsat",
+  "llvm.hexagon.V6.vasruwuhrndsat.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.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.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.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.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.vlutb",
+  "llvm.hexagon.V6.vlutb.128B",
+  "llvm.hexagon.V6.vlutb.acc",
+  "llvm.hexagon.V6.vlutb.acc.128B",
+  "llvm.hexagon.V6.vlutb.dv",
+  "llvm.hexagon.V6.vlutb.dv.128B",
+  "llvm.hexagon.V6.vlutb.dv.acc",
+  "llvm.hexagon.V6.vlutb.dv.acc.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.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.vmpauhb",
+  "llvm.hexagon.V6.vmpauhb.128B",
+  "llvm.hexagon.V6.vmpauhb.acc",
+  "llvm.hexagon.V6.vmpauhb.acc.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.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.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.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.vrdelta",
+  "llvm.hexagon.V6.vrdelta.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.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.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.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.brev.ldb",
+  "llvm.hexagon.brev.ldd",
+  "llvm.hexagon.brev.ldh",
+  "llvm.hexagon.brev.ldub",
+  "llvm.hexagon.brev.lduh",
+  "llvm.hexagon.brev.ldw",
+  "llvm.hexagon.brev.stb",
+  "llvm.hexagon.brev.std",
+  "llvm.hexagon.brev.sth",
+  "llvm.hexagon.brev.sthhi",
+  "llvm.hexagon.brev.stw",
+  "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.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.barrier",
+  "llvm.nvvm.barrier.n",
+  "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.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.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.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.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.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.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.vfchdbs",
+  "llvm.s390.vfchedbs",
+  "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.vftcidb",
+  "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.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.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.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.grow.memory",
+  "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.aesdeclast",
+  "llvm.x86.aesni.aesenc",
+  "llvm.x86.aesni.aesenclast",
+  "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.vperm2f128.pd.256",
+  "llvm.x86.avx.vperm2f128.ps.256",
+  "llvm.x86.avx.vperm2f128.si.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.movntdqa",
+  "llvm.x86.avx2.mpsadbw",
+  "llvm.x86.avx2.pabs.b",
+  "llvm.x86.avx2.pabs.d",
+  "llvm.x86.avx2.pabs.w",
+  "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.pavg.b",
+  "llvm.x86.avx2.pavg.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.avx2.vperm2i128",
+  "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.cvtb2mask.128",
+  "llvm.x86.avx512.cvtb2mask.256",
+  "llvm.x86.avx512.cvtb2mask.512",
+  "llvm.x86.avx512.cvtd2mask.128",
+  "llvm.x86.avx512.cvtd2mask.256",
+  "llvm.x86.avx512.cvtd2mask.512",
+  "llvm.x86.avx512.cvtq2mask.128",
+  "llvm.x86.avx512.cvtq2mask.256",
+  "llvm.x86.avx512.cvtq2mask.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.cvtw2mask.128",
+  "llvm.x86.avx512.cvtw2mask.256",
+  "llvm.x86.avx512.cvtw2mask.512",
+  "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.kand.w",
+  "llvm.x86.avx512.kandn.w",
+  "llvm.x86.avx512.knot.w",
+  "llvm.x86.avx512.kor.w",
+  "llvm.x86.avx512.kortestc.w",
+  "llvm.x86.avx512.kortestz.w",
+  "llvm.x86.avx512.kunpck.bw",
+  "llvm.x86.avx512.kunpck.dq",
+  "llvm.x86.avx512.kunpck.wd",
+  "llvm.x86.avx512.kxnor.w",
+  "llvm.x86.avx512.kxor.w",
+  "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.broadcastf32x2.256",
+  "llvm.x86.avx512.mask.broadcastf32x2.512",
+  "llvm.x86.avx512.mask.broadcastf32x4.256",
+  "llvm.x86.avx512.mask.broadcastf32x4.512",
+  "llvm.x86.avx512.mask.broadcastf32x8.512",
+  "llvm.x86.avx512.mask.broadcastf64x2.256",
+  "llvm.x86.avx512.mask.broadcastf64x2.512",
+  "llvm.x86.avx512.mask.broadcastf64x4.512",
+  "llvm.x86.avx512.mask.broadcasti32x2.128",
+  "llvm.x86.avx512.mask.broadcasti32x2.256",
+  "llvm.x86.avx512.mask.broadcasti32x2.512",
+  "llvm.x86.avx512.mask.broadcasti32x4.256",
+  "llvm.x86.avx512.mask.broadcasti32x4.512",
+  "llvm.x86.avx512.mask.broadcasti32x8.512",
+  "llvm.x86.avx512.mask.broadcasti64x2.256",
+  "llvm.x86.avx512.mask.broadcasti64x2.512",
+  "llvm.x86.avx512.mask.broadcasti64x4.512",
+  "llvm.x86.avx512.mask.cmp.b.128",
+  "llvm.x86.avx512.mask.cmp.b.256",
+  "llvm.x86.avx512.mask.cmp.b.512",
+  "llvm.x86.avx512.mask.cmp.d.128",
+  "llvm.x86.avx512.mask.cmp.d.256",
+  "llvm.x86.avx512.mask.cmp.d.512",
+  "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.q.128",
+  "llvm.x86.avx512.mask.cmp.q.256",
+  "llvm.x86.avx512.mask.cmp.q.512",
+  "llvm.x86.avx512.mask.cmp.sd",
+  "llvm.x86.avx512.mask.cmp.ss",
+  "llvm.x86.avx512.mask.cmp.w.128",
+  "llvm.x86.avx512.mask.cmp.w.256",
+  "llvm.x86.avx512.mask.cmp.w.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.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.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.d.128",
+  "llvm.x86.avx512.mask.expand.d.256",
+  "llvm.x86.avx512.mask.expand.d.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.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.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.pabs.b.128",
+  "llvm.x86.avx512.mask.pabs.b.256",
+  "llvm.x86.avx512.mask.pabs.b.512",
+  "llvm.x86.avx512.mask.pabs.d.128",
+  "llvm.x86.avx512.mask.pabs.d.256",
+  "llvm.x86.avx512.mask.pabs.d.512",
+  "llvm.x86.avx512.mask.pabs.q.128",
+  "llvm.x86.avx512.mask.pabs.q.256",
+  "llvm.x86.avx512.mask.pabs.q.512",
+  "llvm.x86.avx512.mask.pabs.w.128",
+  "llvm.x86.avx512.mask.pabs.w.256",
+  "llvm.x86.avx512.mask.pabs.w.512",
+  "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.pavg.b.128",
+  "llvm.x86.avx512.mask.pavg.b.256",
+  "llvm.x86.avx512.mask.pavg.b.512",
+  "llvm.x86.avx512.mask.pavg.w.128",
+  "llvm.x86.avx512.mask.pavg.w.256",
+  "llvm.x86.avx512.mask.pavg.w.512",
+  "llvm.x86.avx512.mask.pbroadcast.b.gpr.128",
+  "llvm.x86.avx512.mask.pbroadcast.b.gpr.256",
+  "llvm.x86.avx512.mask.pbroadcast.b.gpr.512",
+  "llvm.x86.avx512.mask.pbroadcast.d.gpr.128",
+  "llvm.x86.avx512.mask.pbroadcast.d.gpr.256",
+  "llvm.x86.avx512.mask.pbroadcast.d.gpr.512",
+  "llvm.x86.avx512.mask.pbroadcast.q.gpr.128",
+  "llvm.x86.avx512.mask.pbroadcast.q.gpr.256",
+  "llvm.x86.avx512.mask.pbroadcast.q.gpr.512",
+  "llvm.x86.avx512.mask.pbroadcast.q.mem.512",
+  "llvm.x86.avx512.mask.pbroadcast.w.gpr.128",
+  "llvm.x86.avx512.mask.pbroadcast.w.gpr.256",
+  "llvm.x86.avx512.mask.pbroadcast.w.gpr.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.pmul.hr.sw.128",
+  "llvm.x86.avx512.mask.pmul.hr.sw.256",
+  "llvm.x86.avx512.mask.pmul.hr.sw.512",
+  "llvm.x86.avx512.mask.pmulh.w.128",
+  "llvm.x86.avx512.mask.pmulh.w.256",
+  "llvm.x86.avx512.mask.pmulh.w.512",
+  "llvm.x86.avx512.mask.pmulhu.w.128",
+  "llvm.x86.avx512.mask.pmulhu.w.256",
+  "llvm.x86.avx512.mask.pmulhu.w.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.shuf.f32x4",
+  "llvm.x86.avx512.mask.shuf.f32x4.256",
+  "llvm.x86.avx512.mask.shuf.f64x2",
+  "llvm.x86.avx512.mask.shuf.f64x2.256",
+  "llvm.x86.avx512.mask.shuf.i32x4",
+  "llvm.x86.avx512.mask.shuf.i32x4.256",
+  "llvm.x86.avx512.mask.shuf.i64x2",
+  "llvm.x86.avx512.mask.shuf.i64x2.256",
+  "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.ucmp.b.128",
+  "llvm.x86.avx512.mask.ucmp.b.256",
+  "llvm.x86.avx512.mask.ucmp.b.512",
+  "llvm.x86.avx512.mask.ucmp.d.128",
+  "llvm.x86.avx512.mask.ucmp.d.256",
+  "llvm.x86.avx512.mask.ucmp.d.512",
+  "llvm.x86.avx512.mask.ucmp.q.128",
+  "llvm.x86.avx512.mask.ucmp.q.256",
+  "llvm.x86.avx512.mask.ucmp.q.512",
+  "llvm.x86.avx512.mask.ucmp.w.128",
+  "llvm.x86.avx512.mask.ucmp.w.256",
+  "llvm.x86.avx512.mask.ucmp.w.512",
+  "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.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.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.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.movntdqa",
+  "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.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.ptestm.b.128",
+  "llvm.x86.avx512.ptestm.b.256",
+  "llvm.x86.avx512.ptestm.b.512",
+  "llvm.x86.avx512.ptestm.d.128",
+  "llvm.x86.avx512.ptestm.d.256",
+  "llvm.x86.avx512.ptestm.d.512",
+  "llvm.x86.avx512.ptestm.q.128",
+  "llvm.x86.avx512.ptestm.q.256",
+  "llvm.x86.avx512.ptestm.q.512",
+  "llvm.x86.avx512.ptestm.w.128",
+  "llvm.x86.avx512.ptestm.w.256",
+  "llvm.x86.avx512.ptestm.w.512",
+  "llvm.x86.avx512.ptestnm.b.128",
+  "llvm.x86.avx512.ptestnm.b.256",
+  "llvm.x86.avx512.ptestnm.b.512",
+  "llvm.x86.avx512.ptestnm.d.128",
+  "llvm.x86.avx512.ptestnm.d.256",
+  "llvm.x86.avx512.ptestnm.d.512",
+  "llvm.x86.avx512.ptestnm.q.128",
+  "llvm.x86.avx512.ptestnm.q.256",
+  "llvm.x86.avx512.ptestnm.q.512",
+  "llvm.x86.avx512.ptestnm.w.128",
+  "llvm.x86.avx512.ptestnm.w.256",
+  "llvm.x86.avx512.ptestnm.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.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.fxrstor",
+  "llvm.x86.fxrstor64",
+  "llvm.x86.fxsave",
+  "llvm.x86.fxsave64",
+  "llvm.x86.int",
+  "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.rdfsbase.32",
+  "llvm.x86.rdfsbase.64",
+  "llvm.x86.rdgsbase.32",
+  "llvm.x86.rdgsbase.64",
+  "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.rdtsc",
+  "llvm.x86.rdtscp",
+  "llvm.x86.seh.ehguard",
+  "llvm.x86.seh.ehregnode",
+  "llvm.x86.seh.lsda",
+  "llvm.x86.seh.recoverfp",
+  "llvm.x86.sha1msg1",
+  "llvm.x86.sha1msg2",
+  "llvm.x86.sha1nexte",
+  "llvm.x86.sha1rnds4",
+  "llvm.x86.sha256msg1",
+  "llvm.x86.sha256msg2",
+  "llvm.x86.sha256rnds2",
+  "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.pavg.b",
+  "llvm.x86.sse2.pavg.w",
+  "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.movntdqa",
+  "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.b.128",
+  "llvm.x86.ssse3.pabs.d",
+  "llvm.x86.ssse3.pabs.d.128",
+  "llvm.x86.ssse3.pabs.w",
+  "llvm.x86.ssse3.pabs.w.128",
+  "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.wrfsbase.32",
+  "llvm.x86.wrfsbase.64",
+  "llvm.x86.wrgsbase.32",
+  "llvm.x86.wrgsbase.64",
+  "llvm.x86.wrpkru",
+  "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<<2) | (1<<3) | (1<<4),
+  0,
+  0 | (1<<1) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
+  0 | (1<<6),
+  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),
+  0 | (1<<1) | (1<<2) | (1<<4) | (1<<5),
+  0 | (1<<2) | (1<<7),
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+  0 | (1<<0) | (1<<1) | (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<<3) | (1<<4) | (1<<6) | (1<<7),
+  0 | (1<<2) | (1<<3) | (1<<4),
+  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<<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<<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<<6) | (1<<7),
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<7),
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+  0,
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<4),
+  0 | (1<<0) | (1<<1),
+  0 | (1<<2) | (1<<3) | (1<<4),
+  0 | (1<<3) | (1<<4) | (1<<5) | (1<<7),
+  0 | (1<<1) | (1<<2) | (1<<3) | (1<<5),
+  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 | (1<<1) | (1<<3) | (1<<7),
+  0 | (1<<6),
+  0 | (1<<2) | (1<<3),
+  0,
+  0 | (1<<6) | (1<<7),
+  0 | (1<<0) | (1<<1) | (1<<2),
+  0,
+  0,
+  0 | (1<<2),
+  0 | (1<<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<<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),
+  0,
+  0 | (1<<6),
+  0 | (1<<0) | (1<<4) | (1<<5),
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  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) | (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<<3) | (1<<4),
+  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),
+  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 | (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 | (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 | (1<<2) | (1<<3),
+  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 | (1<<3) | (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,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  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<<5) | (1<<7),
+  0 | (1<<3) | (1<<4) | (1<<5) | (1<<6),
+  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<<3) | (1<<4) | (1<<5) | (1<<7),
+  0 | (1<<0) | (1<<3) | (1<<4) | (1<<5)
+};
+
+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) | 1633, 0x10, 0x1F1F, 0x1F1F, 0x2F2F, 
+  0x2F2F, 0x2E2E0, 0x32F, 0x2F3, 0x2F2F2F, (1U<<31) | 3505, (1U<<31) | 920, 0x2E0, 
+  0x2E1, 0x12E1, 0x2E, (1U<<31) | 920, (1U<<31) | 893, 0x2E2E1, 0x142E2E, 0x2E0, 
+  (1U<<31) | 922, 0x1F, 0x22E2E, (1U<<31) | 161, 0x2F2F, 0x11F1F, 0x1F1F, 0x11F1F, 
+  (1U<<31) | 3545, (1U<<31) | 3539, 0x0, 0x0, 0x42E, (1U<<31) | 3509, (1U<<31) | 3508, 0x2E40, 
+  0x2E50, 0x40, 0x2E0, 0x2E0, 0x2E, 0x2E4, 0x0, 0x2E4, 
+  0x0, 0x2F2F, 0x2F2F, 0x1F1F1F, (1U<<31) | 3530, (1U<<31) | 3530, (1U<<31) | 3530, (1U<<31) | 3530, 
+  (1U<<31) | 3530, (1U<<31) | 3550, (1U<<31) | 2244, (1U<<31) | 3501, (1U<<31) | 3574, (1U<<31) | 3554, (1U<<31) | 3566, (1U<<31) | 3558, 
+  (1U<<31) | 3583, 0x2F2F, 0x2F2F, 0x4, 0x2F2F2F2F, 0x2F2F2F2F, 0x42E, 0x2EE2E2E, 
+  0x2E2EE0, 0x2EE2E2E0, 0x1F, 0x2E2E2E0, 0x4452E0, 0x54452E0, 0x44552E0, (1U<<31) | 2707, 
+  0x2E2E, (1U<<31) | 2708, 0x4F50, 0x4F50, 0x1F2E2E, 0x2E, (1U<<31) | 3551, 0x42E2E2E, 
+  0x2F2F, 0x2F2F, 0x2F2F, 0x42E0, (1U<<31) | 93, (1U<<31) | 1105, (1U<<31) | 1115, (1U<<31) | 1126, 
+  (1U<<31) | 102, (1U<<31) | 112, 0x2F2F2F, (1U<<31) | 132, 0x45CF4F0, (1U<<31) | 132, 0x149F24F0, 0x2F2F2F, 
+  0x2F2F, 0x11CF1F, 0x40, 0x2F2F2F, 0x42F2F, 0x4442E0, (1U<<31) | 1643, (1U<<31) | 3512, 
+  0x5, 0x42E, 0x2F2F, 0x2F2F, (1U<<31) | 147, 0x2E4, 0x42E0, 0x42E4, 
+  0x2F2F, (1U<<31) | 147, 0x2F2F, 0xF0F, (1U<<31) | 147, 0x2E, 0x2EE2E0, 0x2E0, 
+  0x2E, 0x2E, 0x0, 0x2F2F, (1U<<31) | 3521, (1U<<31) | 3516, (1U<<31) | 147, (1U<<31) | 147, 
+  (1U<<31) | 147, 0x2E2E0, 0x2E0, 0x2E0, 0x42E2E2E0, (1U<<31) | 156, 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) | 908, 0x4F5, (1U<<31) | 908, 0x4F5, 0x1F1F, (1U<<31) | 1181, 0x3F3F3F, 
+  0x3F3F, 0x3F3F3F, 0xAFAF1F, 0xAFAF1F, 0xBF2F, 0xAF1F, 0xAF1F, 0xAF1F, 
+  0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xAF1F, 0xBF3F, 0xAF1F, 0xAF1F, 
+  0x3F3F3F, 0x2F2F2F, 0x3F3F3F, 0xBF2F, 0x3F3F3F, 0xBF2F, 0x3F3F3F, 0x2F2F2F, 
+  0x3F3F3F, 0xBF2F, 0x3F3F3F, 0xBF2F, 0x2F2F2F, 0x2F2F, 0x2F2F2F, 0x2F2F, 
+  0x2F2F, 0x2F2F, 0x2F2F2F, (1U<<31) | 3387, (1U<<31) | 3377, (1U<<31) | 3365, (1U<<31) | 3387, (1U<<31) | 3466, 
+  (1U<<31) | 3387, (1U<<31) | 3377, (1U<<31) | 3449, (1U<<31) | 3377, (1U<<31) | 3365, (1U<<31) | 3428, (1U<<31) | 3365, 0x3F3F3F, 
+  (1U<<31) | 1193, 0x552C, (1U<<31) | 1181, 0x3F3F, (1U<<31) | 1200, (1U<<31) | 1181, 0x3F3F3F, 0xBF3F, 
+  0xBF1F, 0xBF1F, 0x9F1F, 0x9F1F, 0x9F1F, 0x3F3F3F, (1U<<31) | 1188, 0x3F3F3F, 
+  0x3F3F3F, 0x3F3F3F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, (1U<<31) | 1193, 0x1F1F, 
+  0x1F1F1F, 0x1F1F1F, (1U<<31) | 1193, 0x445, 0x1F1F, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1200, 
+  (1U<<31) | 1200, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1200, (1U<<31) | 1200, 0x1F1F1F, (1U<<31) | 165, (1U<<31) | 165, 
+  0x3F3F3F, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1777, 0xCF3F3F0, (1U<<31) | 3343, (1U<<31) | 3353, 0xCF3F3F0, 
+  (1U<<31) | 3395, (1U<<31) | 3343, (1U<<31) | 3404, (1U<<31) | 3353, (1U<<31) | 3415, (1U<<31) | 1181, 0x1F1F1F, 0x3F2C3F, 
+  0x3F2C2C3F, (1U<<31) | 1154, (1U<<31) | 1139, 0x3F2C3F3F, (1U<<31) | 1165, (1U<<31) | 1152, (1U<<31) | 1137, 0x3F3F3F, 
+  0xBF3F, 0xBF1F, 0xBF1F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0xBF1F, 
+  0x3F3F3F, 0x3F3F3F, 0xBF1F, (1U<<31) | 1193, 0x1F1F1F, 0x1F1F1F, (1U<<31) | 1200, 0x1F1F1F, 
+  (1U<<31) | 1200, 0x1F1F1F, (1U<<31) | 165, 0x3F3F, 0x3F3F3F, 0x1F1F1F, 0x3F3F, 0x1F1F1F, 
+  (1U<<31) | 1777, 0x1F1F1F, 0x53F5BF3F, 0x4AF1F, 0x4AF1F, 0x7A3A, 0x49F2F, 0x49F2F, 
+  0x3A7A, 0x43F3F3F, 0x43F3F3F, 0x1F1F1F, 0x2F2F2F, 0x87, 0x2E554, 0x4F54, 
+  0x2E554, 0x4F54, 0x1F1F1F, (1U<<31) | 122, (1U<<31) | 122, 0x55, 0x1444A44, 0x1444A44, 
+  0x1444A444, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 0x1444A44, 
+  0x1444A44, 0x11444A2F, 0x11444A2F, (1U<<31) | 63, (1U<<31) | 63, 0x0, 0x0, 0x0, 
+  0x42F1, 0x2F2F, 0x7777, 0x7777, 0x7777, 0x7777, 0x4474, 0x7769, 
+  0x5, (1U<<31) | 184, 0x2F2F2F2F, (1U<<31) | 83, (1U<<31) | 73, 0x444, 0x444, 0x444, 
+  (1U<<31) | 2771, 0x555, 0x50, (1U<<31) | 0, (1U<<31) | 53, 0x42F2F5, 0x777, 0x2F2F2F2F, 
+  0x777, 0x2F2F, 0xAF1F, 0x2F2F, 0x4, 0x41F1F5, (1U<<31) | 142, 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) | 184, (1U<<31) | 184, 0x44447, 0x44477, 0x444777, 
+  (1U<<31) | 184, 0x42F2F, 0x4444, 0x2F2F, 0x51, 0x444, 0x444, 0x14441F1F, 
+  0x5455, 0x4A454A, 0x4444, 0x1, 0x5455, (1U<<31) | 184, 0x2F2F, 0x77, 
+  0x44, 0x444, 0x2F2F, 0x2F2F, 0x77, 0x0, 0x0, 0x0, 
+  0x0, 0x0, 0x40, 0x44, 0x40, 0x5, 0x5, 0x440, 
+  0x440, 0x40, 0x40, 0x4444, 0x4444, 0x4444, 0x441F1F, 0x1F1F, 
+  0x2F2F, 0x42F2F, 0x441F1F, 0x0, 0x0, 0x4, 0x4, 0x4, 
+  0x4, 0x4, 0x4, 0x4444440, 0x4444440, 0x0, 0x444, 0x444, 
+  0x444, 0x444, 0x444, 0x444, 0x40, 0x40, 0x40, 0x4, 
+  0x40, 0x40, 0x4F4, (1U<<31) | 902, 0x2E440, 0x2E440, 0x2E440, 0x2E440, 
+  0x4F4, (1U<<31) | 902, 0x4444440, 0x4444440, 0x444440, 0x444440, 0x444444, 0x444444, 
+  (1U<<31) | 1871, (1U<<31) | 1871, 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) | 2640, (1U<<31) | 1847, (1U<<31) | 2629, (1U<<31) | 1829, (1U<<31) | 2616, (1U<<31) | 1807, 
+  0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1193, (1U<<31) | 1193, 
+  (1U<<31) | 1193, 0x3F3F3F, 0xBF3F3F, 0xBF3F3F, 0x3F3F3F, 0xBF3F, 0xBF3F, 0x3F3F3F, 
+  0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, (1U<<31) | 1193, 
+  (1U<<31) | 1176, (1U<<31) | 1176, (1U<<31) | 1176, 0x3F3F, 0x3F3F3F, (1U<<31) | 1181, (1U<<31) | 1181, (1U<<31) | 1181, 
+  0x3F3F3F, 0x3F3F3F, (1U<<31) | 1181, (1U<<31) | 1181, (1U<<31) | 1181, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 
+  0x3F3F3F, 0x3F3F3F, (1U<<31) | 1181, 0x3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x3F3F, 
+  0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, 0x3F3F, (1U<<31) | 1181, 0x3F3F3F, 0x3F3F3F, 
+  0x3F3F, 0x3F3F3F, (1U<<31) | 1181, 0x3F3F3F3F, 0x3F3F3F, 0x3F3F3F, 0x4BF4F0, 0x4BFBF4F0, 
+  (1U<<31) | 2113, (1U<<31) | 2550, (1U<<31) | 2123, (1U<<31) | 2561, (1U<<31) | 2135, 0x2B2B2B, 0x2B2B2B2B, (1U<<31) | 866, 
+  (1U<<31) | 864, 0x2B2B2B2B, (1U<<31) | 866, (1U<<31) | 864, (1U<<31) | 862, 0x444, 0x444, 0x40, 
+  0x444, 0x444, 0x2E440, 0x2E440, 0x2E440, 0x2E440, 0x4F44, 0x2E444, 
+  0x4F44, 0x2E444, 0x40, 0x444, 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, 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, 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, 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, 0x44, 0x44C4, 
+  0x44D4, 0x4D4C, (1U<<31) | 2719, 0x4D4C, (1U<<31) | 2719, 0x44C, 0x44D, 0x44C, 
+  0x44D, 0x44C, 0x44D, (1U<<31) | 170, (1U<<31) | 177, (1U<<31) | 170, (1U<<31) | 177, (1U<<31) | 172, 
+  (1U<<31) | 179, (1U<<31) | 170, (1U<<31) | 177, (1U<<31) | 170, (1U<<31) | 177, (1U<<31) | 1210, (1U<<31) | 1218, (1U<<31) | 1210, 
+  (1U<<31) | 1218, (1U<<31) | 170, (1U<<31) | 177, (1U<<31) | 170, (1U<<31) | 177, (1U<<31) | 170, (1U<<31) | 177, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
+  0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, (1U<<31) | 2598, (1U<<31) | 2673, (1U<<31) | 2598, (1U<<31) | 2673, 0x4C4C4C, 
+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, (1U<<31) | 2598, (1U<<31) | 2673, (1U<<31) | 2598, (1U<<31) | 2673, 0x4C4C4C, 
+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, (1U<<31) | 2691, 0x4C4C4D, 
+  (1U<<31) | 2693, 0x4C4C4D4D, (1U<<31) | 2691, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, 
+  (1U<<31) | 2691, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, 
+  (1U<<31) | 2724, (1U<<31) | 2598, (1U<<31) | 2673, (1U<<31) | 2598, (1U<<31) | 2673, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, 
+  (1U<<31) | 2724, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, (1U<<31) | 1208, 
+  (1U<<31) | 1216, (1U<<31) | 1206, (1U<<31) | 1214, (1U<<31) | 1208, (1U<<31) | 1216, (1U<<31) | 1206, (1U<<31) | 1214, (1U<<31) | 2574, 
+  (1U<<31) | 2649, (1U<<31) | 2574, (1U<<31) | 2649, (1U<<31) | 2151, (1U<<31) | 2189, (1U<<31) | 2149, (1U<<31) | 2187, 0x44C4C, 
+  0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 
+  0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C, 
+  0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 
+  0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
+  0x4D4D, 0x4D4D, (1U<<31) | 2726, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C, 0x4D4D, 0x4C4C4D, 
+  (1U<<31) | 2693, 0x4C, 0x4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 
+  0x4D4D, 0x44C4C4D, (1U<<31) | 2207, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 
+  0x44D4D4D, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, 0x44C4C, 0x44D4D, 0x44C4C4C, 
+  0x44D4D4D, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, 0x44D4C, (1U<<31) | 2225, 0x44D4C4C, 
+  (1U<<31) | 2223, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x44D4C, (1U<<31) | 2225, 0x44D4C4C, 
+  (1U<<31) | 2223, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 
+  0x4D4D4D4D, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2591, (1U<<31) | 2666, (1U<<31) | 2589, 
+  (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, (1U<<31) | 2589, (1U<<31) | 2664, 0x44C4C, 0x44D4D, 0x44C4C4C, 
+  0x44D4D4D, 0x44C4C4C, 0x44D4D4D, 0x44C4C, 0x44D4D, 0x44C4C, 0x44D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x44C4C, 0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x454C4C, 0x454D4D, 0x454C4C4C, 
+  0x454D4D4D, 0x454D4D, (1U<<31) | 2284, 0x454D4D4D, (1U<<31) | 2282, 0x44C4C4C, 0x44D4D4D, 0x44C4C4C, 
+  0x44D4D4D, (1U<<31) | 2167, (1U<<31) | 2195, (1U<<31) | 2167, (1U<<31) | 2195, 0x44C4C4C, 0x44D4D4D, 0x44C4C4D, 
+  (1U<<31) | 2207, 0x44C4C4D, (1U<<31) | 2207, (1U<<31) | 2177, (1U<<31) | 2205, (1U<<31) | 2177, (1U<<31) | 2205, 0x44C4C4D, 
+  (1U<<31) | 2207, (1U<<31) | 2581, (1U<<31) | 2656, (1U<<31) | 2581, (1U<<31) | 2656, (1U<<31) | 2581, (1U<<31) | 2656, (1U<<31) | 2581, 
+  (1U<<31) | 2656, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, 
+  (1U<<31) | 2231, 0x4D4D4D, (1U<<31) | 2724, 0x4D4D4D, (1U<<31) | 2724, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, 
+  (1U<<31) | 2231, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, 0x44C4D, (1U<<31) | 2217, 0x44C4D4D, 
+  (1U<<31) | 2215, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, (1U<<31) | 2691, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, 
+  (1U<<31) | 2691, 0x4C4C4C, 0x4D4D4D, 0x4C4C4D, (1U<<31) | 2693, 0x44C4D, (1U<<31) | 2217, 0x44C4D4D, 
+  (1U<<31) | 2215, 0x44C4C, 0x44D4D, 0x44C4C, 0x44D4D, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, 
+  (1U<<31) | 2691, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, (1U<<31) | 2691, 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) | 2691, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4D, 
+  (1U<<31) | 2217, 0x44C4D4D, (1U<<31) | 2215, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, (1U<<31) | 2691, 0x44C4D, 
+  (1U<<31) | 2217, 0x44C4D4D, (1U<<31) | 2215, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D4D, (1U<<31) | 2691, (1U<<31) | 2598, 
+  (1U<<31) | 2673, 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, 0x4C4C4C, 0x4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x444D4D, 
+  (1U<<31) | 1956, 0x444D4D4D, (1U<<31) | 1954, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4C, 0x44D4D, 0x44C4C4C, 0x44D4D4D, 0x444D4D, 
+  (1U<<31) | 1956, 0x444D4D4D, (1U<<31) | 1954, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C4C, 0x4D4D4D4D, 0x44C4C, 
+  0x44D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x444D4D, (1U<<31) | 1956, 0x444D4D4D, 
+  (1U<<31) | 1954, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4C4D, 
+  (1U<<31) | 2702, 0x4C4D, (1U<<31) | 2702, 0x4C4C4C, 0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4C, 0x4D4D, 0x4C4C4C, 0x4D4D4D, 0x44C4C4D, (1U<<31) | 2207, 0x4C4C4D, 
+  (1U<<31) | 2693, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, 
+  (1U<<31) | 2724, (1U<<31) | 2598, (1U<<31) | 2673, (1U<<31) | 2598, (1U<<31) | 2673, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, 
+  (1U<<31) | 2724, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, (1U<<31) | 2598, (1U<<31) | 2673, (1U<<31) | 2598, 
+  (1U<<31) | 2673, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4D, 
+  (1U<<31) | 2693, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4C, 0x4D4D4D, 0x4C4C4C, 
+  0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, 0x4C4C4D, (1U<<31) | 2693, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, 
+  (1U<<31) | 2724, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, (1U<<31) | 2598, (1U<<31) | 2673, (1U<<31) | 2598, 
+  (1U<<31) | 2673, 0x4C4C4C, 0x4D4D4D, 0x4D4D4D, (1U<<31) | 2724, (1U<<31) | 2607, (1U<<31) | 2682, 0x44D4D, 
+  (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, 0x44D4D, (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, 0x44D4D, 
+  (1U<<31) | 2233, 0x44D4D4D, (1U<<31) | 2231, 0x4C4D, (1U<<31) | 2702, 0x4C4D, (1U<<31) | 2702, 0x4C4D4D, 
+  (1U<<31) | 2700, 0x4C4D4D, (1U<<31) | 2700, 0x4C4D, (1U<<31) | 2702, 0x4C4D, (1U<<31) | 2702, 0x4C4C4C, 
+  0x4D4D4D, 0x4C4D, (1U<<31) | 2702, 0x4C4D, (1U<<31) | 2702, 0x42E2E2E, 0x42E2E2E, 0x42E2E2E, 
+  0x42E2E2E, 0x42E2E2E, 0x42E2E2E, 0x442E2E, 0x452E2E, 0x442E2E, 0x442E2E, 0x442E2E, 
+  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) | 3321, 0x7A7A7A7A, 
+  0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 0x898989, 0x7A7A7A, 
+  (1U<<31) | 3321, 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, 0x44F4, 0x44F4, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 
+  0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x1FCF1F, 0x40, 0x440, 0x40, 
+  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, 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, 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, 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) | 1972, (1U<<31) | 1972, (1U<<31) | 1972, 
+  (1U<<31) | 1988, (1U<<31) | 1988, (1U<<31) | 1988, (1U<<31) | 2005, (1U<<31) | 2005, (1U<<31) | 2005, (1U<<31) | 1972, (1U<<31) | 1972, 
+  (1U<<31) | 1972, (1U<<31) | 1963, (1U<<31) | 1963, (1U<<31) | 1963, (1U<<31) | 1979, (1U<<31) | 1979, (1U<<31) | 1979, (1U<<31) | 1963, 
+  (1U<<31) | 1963, (1U<<31) | 1963, 0x453, 0x453, 0x453, 0x454, 0x454, 0x454, 
+  0x455, 0x455, 0x455, 0x453, 0x453, 0x453, (1U<<31) | 2262, (1U<<31) | 2262, 
+  (1U<<31) | 2262, (1U<<31) | 2276, (1U<<31) | 2276, (1U<<31) | 2276, (1U<<31) | 2300, (1U<<31) | 2300, (1U<<31) | 2300, (1U<<31) | 2262, 
+  (1U<<31) | 2262, (1U<<31) | 2262, (1U<<31) | 2254, (1U<<31) | 2254, (1U<<31) | 2254, (1U<<31) | 2268, (1U<<31) | 2268, (1U<<31) | 2268, 
+  (1U<<31) | 2254, (1U<<31) | 2254, (1U<<31) | 2254, 0x44453, 0x44453, 0x44453, 0x44454, 0x44454, 
+  0x44454, 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 0x44453, (1U<<31) | 1888, 
+  (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1906, (1U<<31) | 1906, (1U<<31) | 1906, (1U<<31) | 1925, (1U<<31) | 1925, (1U<<31) | 1925, 
+  (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1878, (1U<<31) | 1878, (1U<<31) | 1878, (1U<<31) | 1896, (1U<<31) | 1896, 
+  (1U<<31) | 1896, (1U<<31) | 1878, (1U<<31) | 1878, (1U<<31) | 1878, 0x4453, 0x4453, 0x4453, 0x4454, 
+  0x4454, 0x4454, 0x4455, 0x4455, 0x4455, 0x4453, 0x4453, 0x4453, 
+  (1U<<31) | 1972, (1U<<31) | 1972, (1U<<31) | 1972, (1U<<31) | 1988, (1U<<31) | 1988, (1U<<31) | 1988, (1U<<31) | 2005, (1U<<31) | 2005, 
+  (1U<<31) | 2005, (1U<<31) | 1972, (1U<<31) | 1972, (1U<<31) | 1972, (1U<<31) | 1963, (1U<<31) | 1963, (1U<<31) | 1963, (1U<<31) | 1979, 
+  (1U<<31) | 1979, (1U<<31) | 1979, (1U<<31) | 1963, (1U<<31) | 1963, (1U<<31) | 1963, 0x44453, 0x44453, 0x44453, 
+  0x44454, 0x44454, 0x44454, 0x44455, 0x44455, 0x44455, 0x44453, 0x44453, 
+  0x44453, (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1906, (1U<<31) | 1906, (1U<<31) | 1906, (1U<<31) | 1925, 
+  (1U<<31) | 1925, (1U<<31) | 1925, (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1888, (1U<<31) | 1878, (1U<<31) | 1878, (1U<<31) | 1878, 
+  (1U<<31) | 1896, (1U<<31) | 1896, (1U<<31) | 1896, (1U<<31) | 1878, (1U<<31) | 1878, (1U<<31) | 1878, 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) | 959, (1U<<31) | 959, 
+  (1U<<31) | 959, (1U<<31) | 1861, (1U<<31) | 1861, (1U<<31) | 1861, (1U<<31) | 959, (1U<<31) | 959, (1U<<31) | 959, 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) | 959, (1U<<31) | 959, (1U<<31) | 959, (1U<<31) | 1861, (1U<<31) | 1861, (1U<<31) | 1861, (1U<<31) | 959, (1U<<31) | 959, 
+  (1U<<31) | 959, 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) | 959, (1U<<31) | 1861, (1U<<31) | 959, 0x34450, 0x44450, 0x34450, 0x334450, 
+  0x444450, 0x334450, 0x33334450, 0x44444450, 0x33334450, 0x344450, 0x444450, 0x344450, 
+  0x3344450, 0x4444450, 0x3344450, (1U<<31) | 959, (1U<<31) | 1861, (1U<<31) | 959, 0x55, (1U<<31) | 2969, 
+  (1U<<31) | 2957, (1U<<31) | 2957, (1U<<31) | 2887, (1U<<31) | 2876, (1U<<31) | 2876, (1U<<31) | 2813, (1U<<31) | 2012, (1U<<31) | 2803, 
+  (1U<<31) | 1995, (1U<<31) | 2803, (1U<<31) | 1995, (1U<<31) | 3013, (1U<<31) | 3002, (1U<<31) | 3002, (1U<<31) | 2927, (1U<<31) | 2917, 
+  (1U<<31) | 2917, (1U<<31) | 2849, (1U<<31) | 2306, (1U<<31) | 2840, (1U<<31) | 2291, (1U<<31) | 2840, (1U<<31) | 2291, (1U<<31) | 3159, 
+  (1U<<31) | 3144, (1U<<31) | 3144, (1U<<31) | 2969, (1U<<31) | 2957, (1U<<31) | 2957, (1U<<31) | 2887, (1U<<31) | 1933, (1U<<31) | 2876, 
+  (1U<<31) | 1914, (1U<<31) | 2876, (1U<<31) | 1914, (1U<<31) | 3215, (1U<<31) | 3201, (1U<<31) | 3201, (1U<<31) | 3013, (1U<<31) | 3002, 
+  (1U<<31) | 3002, (1U<<31) | 2927, (1U<<31) | 2012, (1U<<31) | 2917, (1U<<31) | 1995, (1U<<31) | 2917, (1U<<31) | 1995, (1U<<31) | 3275, 
+  (1U<<31) | 3258, (1U<<31) | 3258, (1U<<31) | 3107, (1U<<31) | 3095, (1U<<31) | 3095, (1U<<31) | 3013, (1U<<31) | 1933, (1U<<31) | 3002, 
+  (1U<<31) | 1914, (1U<<31) | 3002, (1U<<31) | 1914, (1U<<31) | 3059, (1U<<31) | 3046, (1U<<31) | 3046, (1U<<31) | 2969, (1U<<31) | 2957, 
+  (1U<<31) | 2957, (1U<<31) | 3107, (1U<<31) | 3095, (1U<<31) | 3095, (1U<<31) | 3013, (1U<<31) | 3002, (1U<<31) | 3002, (1U<<31) | 2981, 
+  (1U<<31) | 2946, (1U<<31) | 2946, (1U<<31) | 2898, (1U<<31) | 2866, (1U<<31) | 2866, (1U<<31) | 2823, (1U<<31) | 2022, (1U<<31) | 2794, 
+  (1U<<31) | 1979, (1U<<31) | 2794, (1U<<31) | 1979, (1U<<31) | 3024, (1U<<31) | 2992, (1U<<31) | 2992, (1U<<31) | 2937, (1U<<31) | 2908, 
+  (1U<<31) | 2908, (1U<<31) | 2858, (1U<<31) | 2315, (1U<<31) | 2832, (1U<<31) | 2268, (1U<<31) | 2832, (1U<<31) | 2268, (1U<<31) | 3174, 
+  (1U<<31) | 3130, (1U<<31) | 3130, (1U<<31) | 2981, (1U<<31) | 2946, (1U<<31) | 2946, (1U<<31) | 2898, (1U<<31) | 1944, (1U<<31) | 2866, 
+  (1U<<31) | 1896, (1U<<31) | 2866, (1U<<31) | 1896, (1U<<31) | 3229, (1U<<31) | 3188, (1U<<31) | 3188, (1U<<31) | 3024, (1U<<31) | 2992, 
+  (1U<<31) | 2992, (1U<<31) | 2937, (1U<<31) | 2022, (1U<<31) | 2908, (1U<<31) | 1979, (1U<<31) | 2908, (1U<<31) | 1979, (1U<<31) | 3292, 
+  (1U<<31) | 3242, (1U<<31) | 3242, (1U<<31) | 3119, (1U<<31) | 3084, (1U<<31) | 3084, (1U<<31) | 3024, (1U<<31) | 1944, (1U<<31) | 2992, 
+  (1U<<31) | 1896, (1U<<31) | 2992, (1U<<31) | 1896, (1U<<31) | 3072, (1U<<31) | 3034, (1U<<31) | 3034, (1U<<31) | 2981, (1U<<31) | 2946, 
+  (1U<<31) | 2946, (1U<<31) | 3119, (1U<<31) | 3084, (1U<<31) | 3084, (1U<<31) | 3024, (1U<<31) | 2992, (1U<<31) | 2992, (1U<<31) | 2714, 
+  0x4F5, (1U<<31) | 2927, (1U<<31) | 2917, (1U<<31) | 2917, (1U<<31) | 2927, (1U<<31) | 2917, (1U<<31) | 2917, (1U<<31) | 2927, 
+  (1U<<31) | 2917, (1U<<31) | 2917, (1U<<31) | 2927, (1U<<31) | 2917, (1U<<31) | 2917, (1U<<31) | 2937, (1U<<31) | 2908, (1U<<31) | 2908, 
+  (1U<<31) | 2937, (1U<<31) | 2908, (1U<<31) | 2908, (1U<<31) | 2937, (1U<<31) | 2908, (1U<<31) | 2908, (1U<<31) | 2937, (1U<<31) | 2908, 
+  (1U<<31) | 2908, 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, 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) | 3590, 
+  0x4A4A4A, (1U<<31) | 3588, (1U<<31) | 3588, 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) | 3592, 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) | 3590, 0x4A4A4A, (1U<<31) | 3588, (1U<<31) | 3588, 0x2C2C2C, 0x3B3B3B, 
+  0x4A4A4A, 0x2C2C2C, 0x3B3B3B, 0x4A4A4A, 0x4A4A4A, 0x4A2C4A, 0x4A3B4A, 0x4A2C4A, 
+  0x4A4A4A, 0x3B4A, 0x2C3B, 0x3B4A, 0x4A59, 0x3B4A, 0x2C3B, 0x3B4A, 
+  0x4A59, 0x555, 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) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, 0x8A8A8A, 0x8A8A8A, 0x8A8A, 
+  0x8A8A, (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, 0x8A8A, 0x8A8A, 
+  0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, 0x8A8A, (1U<<31) | 3334, 
+  0x8A8A8A, 0x8A8A8A, 0x8A8A8A, (1U<<31) | 3334, (1U<<31) | 3334, 0x8A8A8A, 0x8A8A8A, (1U<<31) | 3334, 
+  (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, (1U<<31) | 3334, 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) | 697, 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, 
+  (1U<<31) | 877, (1U<<31) | 2541, (1U<<31) | 2785, (1U<<31) | 1082, (1U<<31) | 877, (1U<<31) | 2541, (1U<<31) | 2785, (1U<<31) | 1082, 
+  (1U<<31) | 877, (1U<<31) | 2541, (1U<<31) | 2785, (1U<<31) | 1082, 0x4A4A4A, (1U<<31) | 1591, (1U<<31) | 2063, (1U<<31) | 2343, 
+  (1U<<31) | 1710, 0x42C2C, 0x44A4A, 0x45959, 0x43B3B, 0x2C2C2C, 0x4A4A4A, 0x595959, 
+  0x3B3B3B, 0x42C2C2C, (1U<<31) | 1613, 0x44A4A4A, (1U<<31) | 2041, 0x43B3B3B, (1U<<31) | 1732, 0x42C2C2C, 
+  (1U<<31) | 1613, 0x44A4A4A, (1U<<31) | 2041, 0x43B3B3B, (1U<<31) | 1732, (1U<<31) | 3312, (1U<<31) | 3312, (1U<<31) | 3312, 
+  0x2C2C2C, (1U<<31) | 877, 0x4A4A4A, (1U<<31) | 2541, 0x3B3B3B, (1U<<31) | 1082, 0x2C2C2C, (1U<<31) | 877, 
+  0x4A4A4A, (1U<<31) | 2541, 0x3B3B3B, (1U<<31) | 1082, 0x2C2C2C, (1U<<31) | 877, 0x4A4A4A, (1U<<31) | 2541, 
+  0x3B3B3B, (1U<<31) | 1082, 0x2C2C2C, (1U<<31) | 877, 0x4A4A4A, (1U<<31) | 2541, 0x3B3B3B, (1U<<31) | 1082, 
+  0x448989, (1U<<31) | 2457, 0x3B2C2C3B, 0x594A4A59, 0x2C59592C, 0x4A3B3B4A, 0x2C2C3B, 0x4A4A59, 
+  0x59592C, 0x3B3B4A, 0x2C2C, (1U<<31) | 886, 0x4A4A, (1U<<31) | 2525, 0x3B3B, (1U<<31) | 1091, 
+  0x42E2C, 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, 0x4595959, 0x2C2C2C2C, 
+  0x4A4A3B, (1U<<31) | 2532, 0x59594A, (1U<<31) | 2776, 0x3B3B2C, (1U<<31) | 1073, 0x4A4A3B, (1U<<31) | 2532, 
+  0x59594A, (1U<<31) | 2776, 0x3B3B2C, (1U<<31) | 1073, 0x2C2C2C2C, 0x2C2C2C2C, 0x2C2C2C, 0x4A4A4A, 
+  0x595959, 0x3B3B3B, 0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x42C2C2C, 0x2C2C2C, 0x2C2C2C, 
+  0x2C2C2C, 0x2C2C2C, 0x2C2C2C, 0x2E42C0, (1U<<31) | 1591, (1U<<31) | 1601, (1U<<31) | 2063, (1U<<31) | 2051, 
+  (1U<<31) | 1710, (1U<<31) | 1720, (1U<<31) | 1591, (1U<<31) | 1601, (1U<<31) | 2063, (1U<<31) | 2051, (1U<<31) | 1710, (1U<<31) | 1720, 
+  0x2C2C4A, 0x4A4A59, 0x3B3B59, 0x3B3B4A, 0x4A4A2C, 0x59592C, 0x2C2C4, 0x2C3B, 
+  0x4A59, 0x3B4A, 0x2C3B, 0x4A59, 0x2C3B, 0x4A59, 0x3B4A, 0x3B4A, 
+  0x2C3B, 0x4A59, 0x3B4A, 0x1F, 0x1F1F, (1U<<31) | 3497, (1U<<31) | 3494, (1U<<31) | 3497, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3494, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3494, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3494, (1U<<31) | 3497, 
+  (1U<<31) | 3494, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3494, (1U<<31) | 3494, 0x2E4422, 0x2E5522, 0x2E4422, 
+  0x2E5522, 0x595959, 0x595959, 0x595959, 0x595959, 0x5959, 0x25959, 0x8A8A8A, 
+  0x7B7B7B, (1U<<31) | 3334, 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, 
+  0x28A8A8A, 0x27B7B7B, 0x24B4B4B, 0x598989, 0x5A8A8A, 0x4A7A7A, 0x4B7B7B, 0x89894, 
+  0x8A8A4, 0x7A7A4, 0x7B7B4, 0x89894, 0x8A8A4, 0x7A7A4, 0x7B7B4, 0x89894, 
+  0x8A8A4, 0x7A7A4, 0x7B7B4, 0x0, 0x0, (1U<<31) | 338, (1U<<31) | 415, (1U<<31) | 712, 
+  (1U<<31) | 777, (1U<<31) | 578, (1U<<31) | 655, (1U<<31) | 447, (1U<<31) | 502, (1U<<31) | 360, (1U<<31) | 372, (1U<<31) | 724, 
+  (1U<<31) | 789, (1U<<31) | 600, (1U<<31) | 612, (1U<<31) | 459, (1U<<31) | 514, 0x4A2E4A, 0x4B2E4B, 0x592E59, 
+  0x5A2E5A, 0x4A4A2E0, 0x4B4B2E0, 0x59592E0, 0x5A5A2E0, 0x2E5A, 0x22D2D3C, 0x2D2D, 
+  0x4B4B, 0x3C3C, 0x4B4B3C, 0x3C3C2D, 0x4B4B3C, 0x3C3C2D, 0x2D2D2D, 0x3C3C3C, 
+  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, 
+  0x25A5A5A, 0x259, 0x25A, 0x25B, 0x34A, 0x34B, 0x34C, 0x2C3, 
+  0x2D4, (1U<<31) | 940, 0x4A2, 0x4B2, 0x4C3, 0x592, 0x5A2, 0x5B2, 
+  0x458989, 0x447A7A, 0x457A7A, 0x4894, 0x4895, 0x4894, 0x4895, 0x47A4, 
+  0x47A5, 0x47A4, 0x47A5, 0x48989, 0x447A7A, 0x458989, 0x457A7A, 0x3B2, 
+  0x3C3, 0x3D4, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 1357, (1U<<31) | 1665, (1U<<31) | 1335, (1U<<31) | 1676, 
+  (1U<<31) | 1489, (1U<<31) | 1456, (1U<<31) | 1467, (1U<<31) | 1478, (1U<<31) | 1401, (1U<<31) | 1379, (1U<<31) | 1445, (1U<<31) | 1423, 
+  (1U<<31) | 1390, (1U<<31) | 1368, (1U<<31) | 1434, (1U<<31) | 1412, (1U<<31) | 1302, (1U<<31) | 1269, (1U<<31) | 1313, (1U<<31) | 1280, 
+  (1U<<31) | 1291, (1U<<31) | 1258, (1U<<31) | 1346, (1U<<31) | 1324, 0x442E4B20, 0x442E4C30, 0x442E5B20, 0x442E5B20, 
+  0x333, 0x333, 0x33, 0x333, 0x334, 0x334, 0x333, 0x555, 
+  0x444, 0x333, 0x333, (1U<<31) | 1580, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, 0x27B7A7B, 
+  0x37C7A7C, 0x27B7A7B, 0x37C7A7C, 0x37C7B7C, 0x28A898A, 0x28B898B, 0x28B8A8B, 0x24A4A4A, 
+  0x24B4A4B, 0x34C4A4C, 0x24B4A4B, 0x34C4A4C, 0x34C4B4C, 0x25A595A, 0x25B595B, 0x25B5A5B, 
+  0x342C2C3, 0x442D2D4, (1U<<31) | 2763, 0x244A4A2, 0x244B4B2, 0x344C4C3, 0x2489892, 0x248A8A2, 
+  0x4248B8B2, 0x247A7A2, 0x247B7B2, 0x4347C7C3, 0x2459592, 0x245A5A2, 0x245B5B2, 0x42489892, 
+  0x4247A7A2, 0x243B3B2, 0x343C3C3, 0x443D3D4, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C, 0x2898989, 
+  0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, 0x2595959, 0x25A5A5A, 0x25B5B5B, 
+  0x24A2E0, 0x24B2E0, 0x34C2E0, 0x2892E0, 0x28A2E0, 0x28B2E0, 0x27A2E0, 0x27B2E0, 
+  0x37C2E0, 0x2592E0, 0x25A2E0, 0x25B2E0, 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) | 1523, (1U<<31) | 1546, 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) | 208, (1U<<31) | 989, (1U<<31) | 1762, (1U<<31) | 1580, 
+  (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C, 0x24A2E4A, 0x24B2E4B, 
+  0x34C2E4C, 0x2892E89, 0x28A2E8A, 0x28B2E8B, 0x27A2E7A, 0x27B2E7B, 0x37C2E7C, 0x2592E59, 
+  0x25A2E5A, 0x25B2E5B, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, 
+  0x2595959, 0x25A5A5A, 0x25B5B5B, (1U<<31) | 284, (1U<<31) | 306, (1U<<31) | 1246, (1U<<31) | 240, (1U<<31) | 262, 
+  (1U<<31) | 1653, (1U<<31) | 1234, (1U<<31) | 1222, 0x24892, 0x248A2, 0x248B2, 0x247A2, 0x247B2, 
+  0x347C3, 0x24892, 0x247A2, 0x2898989, 0x28A8A8A, 0x428B8B8B, 0x27A7A7A, 0x27B7B7B, 
+  0x437C7C7C, (1U<<31) | 1557, (1U<<31) | 1512, 0x28948989, 0x28A48A8A, (1U<<31) | 1570, 0x27A47A7A, 0x27B47B7B, 
+  (1U<<31) | 1689, (1U<<31) | 1534, (1U<<31) | 1500, (1U<<31) | 1580, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 1580, 
+  (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 1580, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, 0x32C2C2C, 
+  0x42D2D2D, (1U<<31) | 2748, 0x24A4A4A, 0x24B4B4B, 0x34C4C4C, 0x2595959, 0x25A5A5A, 0x25B5B5B, 
+  0x23B3B3B, 0x33C3C3C, 0x43D3D3D, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 198, (1U<<31) | 979, 
+  (1U<<31) | 1752, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 198, (1U<<31) | 979, (1U<<31) | 1752, (1U<<31) | 949, 
+  (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 198, (1U<<31) | 979, (1U<<31) | 1752, 0x32C22C, 0x42D22D, (1U<<31) | 2739, 
+  0x24A44A, 0x24B44B, 0x34C44C, 0x259559, 0x25A55A, 0x25B55B, 0x25B55B, 0x23B33B, 
+  0x33C33C, 0x43D33D, (1U<<31) | 801, (1U<<31) | 842, (1U<<31) | 526, (1U<<31) | 557, (1U<<31) | 198, (1U<<31) | 979, 
+  (1U<<31) | 1752, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 667, (1U<<31) | 1053, (1U<<31) | 427, (1U<<31) | 1032, 
+  (1U<<31) | 188, (1U<<31) | 969, (1U<<31) | 1742, (1U<<31) | 328, (1U<<31) | 394, (1U<<31) | 1011, 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) | 198, (1U<<31) | 979, (1U<<31) | 1752, (1U<<31) | 198, (1U<<31) | 979, (1U<<31) | 1752, 
+  (1U<<31) | 198, (1U<<31) | 979, (1U<<31) | 1752, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, 0x24A44A4A, 0x24B44B4B, 
+  0x34C44C4C, 0x25945959, 0x25A45A5A, 0x25B45B5B, (1U<<31) | 350, (1U<<31) | 427, (1U<<31) | 1032, (1U<<31) | 471, 
+  (1U<<31) | 526, (1U<<31) | 557, 0x24A44A4A, 0x24B44B4B, 0x34C44C4C, 0x25945959, 0x25A45A5A, 0x25B45B5B, 
+  (1U<<31) | 350, (1U<<31) | 427, (1U<<31) | 1032, (1U<<31) | 471, (1U<<31) | 526, (1U<<31) | 557, (1U<<31) | 949, (1U<<31) | 1623, 
+  (1U<<31) | 2746, (1U<<31) | 198, (1U<<31) | 979, (1U<<31) | 1752, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 198, 
+  (1U<<31) | 979, (1U<<31) | 1752, (1U<<31) | 229, (1U<<31) | 251, (1U<<31) | 1000, (1U<<31) | 273, (1U<<31) | 295, (1U<<31) | 317, 
+  (1U<<31) | 701, (1U<<31) | 766, (1U<<31) | 1568, (1U<<31) | 567, (1U<<31) | 644, (1U<<31) | 1687, (1U<<31) | 1795, (1U<<31) | 1783, 
+  0x28948989, 0x28A48A8A, (1U<<31) | 1570, 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1689, (1U<<31) | 1795, (1U<<31) | 1783, 
+  0x28948989, 0x28A48A8A, (1U<<31) | 1570, 0x27A47A7A, 0x27B47B7B, (1U<<31) | 1689, (1U<<31) | 1795, (1U<<31) | 1783, 
+  (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, 
+  (1U<<31) | 1042, (1U<<31) | 644, (1U<<31) | 831, (1U<<31) | 766, (1U<<31) | 1021, (1U<<31) | 404, (1U<<31) | 546, (1U<<31) | 491, 
+  0x2898989, 0x28A8A8A, 0x428B8B8B, 0x27A7A7A, 0x27B7B7B, 0x437C7C7C, (1U<<31) | 1557, (1U<<31) | 1512, 
+  0x27A2E0, (1U<<31) | 1580, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, 0x342C2C3, 0x442D2D4, (1U<<31) | 2763, 
+  0x244A4A2, 0x244B4B2, 0x344C4C3, 0x2459592, 0x245A5A2, 0x245B5B2, 0x243B3B2, 0x343C3C3, 
+  0x443D3D4, 0x27A3B7A, 0x27B3B7B, 0x437C3C7C, 0x23B47A3B, 0x23B47B3B, 0x33C47C3C, (1U<<31) | 756, 
+  (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 756, 
+  (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, 
+  (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, 
+  (1U<<31) | 1699, (1U<<31) | 350, (1U<<31) | 427, (1U<<31) | 1032, (1U<<31) | 198, (1U<<31) | 979, (1U<<31) | 1752, (1U<<31) | 736, 
+  (1U<<31) | 801, (1U<<31) | 842, (1U<<31) | 590, (1U<<31) | 667, (1U<<31) | 1053, (1U<<31) | 471, (1U<<31) | 526, (1U<<31) | 557, 
+  (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 350, (1U<<31) | 427, (1U<<31) | 1032, (1U<<31) | 198, (1U<<31) | 979, 
+  (1U<<31) | 1752, (1U<<31) | 746, (1U<<31) | 811, (1U<<31) | 852, (1U<<31) | 624, (1U<<31) | 677, (1U<<31) | 1063, (1U<<31) | 471, 
+  (1U<<31) | 526, (1U<<31) | 557, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 471, (1U<<31) | 526, (1U<<31) | 557, 
+  (1U<<31) | 471, (1U<<31) | 526, (1U<<31) | 557, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, 
+  (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, 
+  (1U<<31) | 1699, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 1557, 
+  (1U<<31) | 1512, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 756, 
+  (1U<<31) | 821, (1U<<31) | 1580, (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 284, 
+  (1U<<31) | 306, (1U<<31) | 1246, (1U<<31) | 240, (1U<<31) | 262, (1U<<31) | 1653, (1U<<31) | 1234, (1U<<31) | 1222, (1U<<31) | 229, 
+  (1U<<31) | 251, (1U<<31) | 1000, (1U<<31) | 273, (1U<<31) | 295, (1U<<31) | 317, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, 
+  (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 756, (1U<<31) | 821, (1U<<31) | 1580, 
+  (1U<<31) | 634, (1U<<31) | 687, (1U<<31) | 1699, (1U<<31) | 350, (1U<<31) | 427, (1U<<31) | 1032, (1U<<31) | 198, (1U<<31) | 979, 
+  (1U<<31) | 1752, (1U<<31) | 746, (1U<<31) | 811, (1U<<31) | 852, (1U<<31) | 624, (1U<<31) | 677, (1U<<31) | 1063, (1U<<31) | 471, 
+  (1U<<31) | 526, (1U<<31) | 557, (1U<<31) | 949, (1U<<31) | 1623, (1U<<31) | 2746, (1U<<31) | 471, (1U<<31) | 526, (1U<<31) | 557, 
+  (1U<<31) | 471, (1U<<31) | 526, (1U<<31) | 557, 0x2E5B, 0x4C4C3D, (1U<<31) | 1098, 0x4C4C3D, (1U<<31) | 1098, 
+  0x4C4C5B, 0x4C4C5B, (1U<<31) | 933, (1U<<31) | 926, 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, 0x32C2C3, 0x42D2D4, (1U<<31) | 2756, 0x24A4A2, 0x24B4B2, 
+  0x34C4C3, 0x259592, 0x25A5A2, 0x25B5B2, 0x23B3B2, 0x33C3C3, 0x43D3D4, 0x32C2C3, 
+  0x42D2D4, (1U<<31) | 2756, 0x24A4A2, 0x24B4B2, 0x34C4C3, 0x259592, 0x25A5A2, 0x25B5B2, 
+  0x23B3B2, 0x33C3C3, 0x43D3D4, 0x2898989, 0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 
+  0x37C7C7C, (1U<<31) | 756, (1U<<31) | 634, 0x428B8B8B, 0x437C7C7C, (1U<<31) | 1557, (1U<<31) | 1512, 0x2898989, 
+  0x28A8A8A, 0x28B8B8B, 0x27A7A7A, 0x27B7B7B, 0x37C7C7C, (1U<<31) | 756, (1U<<31) | 634, 0x428B8B8B, 
+  0x437C7C7C, (1U<<31) | 1557, (1U<<31) | 1512, (1U<<31) | 2505, (1U<<31) | 2157, (1U<<31) | 2373, (1U<<31) | 2447, (1U<<31) | 2515, 
+  (1U<<31) | 2103, (1U<<31) | 2383, (1U<<31) | 2437, (1U<<31) | 2475, (1U<<31) | 2333, (1U<<31) | 2495, (1U<<31) | 2363, (1U<<31) | 2407, 
+  (1U<<31) | 2073, (1U<<31) | 2417, (1U<<31) | 2083, 0x442E4B20, 0x442E4C30, 0x442E5B20, 0x442E5B20, (1U<<31) | 2465, 
+  (1U<<31) | 2323, (1U<<31) | 2485, (1U<<31) | 2353, (1U<<31) | 2397, (1U<<31) | 2031, (1U<<31) | 2427, (1U<<31) | 2093, 0x2E8B, 
+  0x2E7C, 0x4489894, 0x447A7A4, 0x4894, 0x4895, 0x4894, 0x4895, 0x47A4, 
+  0x47A5, 0x47A4, 0x47A5, 0x5B8B8B, 0x4C7C7C, 0x444, 0x555, 0x444, 
+  0x555, 0x444, 0x555, 0x444, 0x555, 0x2E0, 0x2E0, 0x4, 
+  0x5, 0x40, 0x50, (1U<<31) | 3321, (1U<<31) | 3334, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3321, 
+  0x7A7A7A7A, (1U<<31) | 3321, (1U<<31) | 3334, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3321, (1U<<31) | 3334, 0x7A7A7A7A, 
+  0x7B7B7B7B, (1U<<31) | 3321, 0x7A7A7A7A, (1U<<31) | 3321, (1U<<31) | 3334, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3321, 
+  (1U<<31) | 3334, 0x7A7A7A7A, 0x7B7B7B7B, (1U<<31) | 3321, 0x7A7A7A7A, (1U<<31) | 3321, (1U<<31) | 3334, 0x7A7A7A7A, 
+  0x7B7B7B7B, (1U<<31) | 3321, 0x7A7A7A7A, 0x2E0, 0x2E0, 0x2E0, 0x2E0, 0x20, 
+  0x0, 0x0, (1U<<31) | 914, (1U<<31) | 3492, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 944, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 2731, (1U<<31) | 2239, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, 
+  (1U<<31) | 3497, (1U<<31) | 3479, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 2735, (1U<<31) | 2735, (1U<<31) | 2735, (1U<<31) | 3497, (1U<<31) | 3497, 
+  (1U<<31) | 2735, (1U<<31) | 2735, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 2735, (1U<<31) | 2735, (1U<<31) | 2735, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, 
+  (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, (1U<<31) | 3497, 0x442E0, 
+  0x4440, 0x2595959, 0x4, 0x5, 0x4, 0x5, 0x4, 0x45, 
+  (1U<<31) | 1773, (1U<<31) | 2250, (1U<<31) | 2393, (1U<<31) | 1773, (1U<<31) | 2250, (1U<<31) | 2393, 0x5, 0x2E5, 
+  0x2E0, 0x2E0, 0x2E2E, 0x2E2E2E, 0x4A4A4A, 0x4A4A4A, 0x4A4A4A, 0x24A4A4A, 
+  0x4A4A4A, 0x4A4A4A, 0x4A4A4A4A, 0x27A7A7A, 0x27A7A7A, 0x7A7A4, 0x7A7A4, 0x7A7A4, 
+  0x7A7A4, 0x7A7A4, 0x7A7A4, (1U<<31) | 3330, (1U<<31) | 3488, (1U<<31) | 3482, (1U<<31) | 3308, 0x47A7A, 
+  0x57A7A, 0x7A4, 0x7A5, (1U<<31) | 3330, (1U<<31) | 3308, 0x7A4, 0x7A5, 0x2E0, 
+  0x7A7A7A, 0x7A7A7A, 0x7A7A7A, 0x7A7A7A, 0x7A4, (1U<<31) | 945, 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, 0x2C2C2C, 0x3B3B3B, 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) | 3321, 0x7A7A7A7A, 0x2898989, 0x27A7A7A, 0x27A7A7A, 0x2E59, 0x22C2C3B, 0x4A4A3B, 
+  0x2C2C2C2C, 0x3B3B, 0x4A4A59, 0x59594, 0x59594, 0x59594, 0x48989, 0x47A7A, 
+  0x4898989, 0x47A7A7A, 0x344, 0x444, 0x244, 0x555, 0x242C42C4, 0x242C42C4, 
+  0x242C42C4, 0x242C42C4, 0x242C42C4, 0x242C42C4, (1U<<31) | 219, 0x22C2C4, 0x22C2C4, 0x22C2C4, 
+  0x22C2C4, 0x22C2C4, 0x22C2C4, 0x22C2C2C, 0x2C5959, 0x225959, 0x595959, 0x22595959, 
+  (1U<<31) | 3494, 0x2C2C, (1U<<31) | 3494, 0x4A4A, (1U<<31) | 3494, 0x3B3B, (1U<<31) | 3497, 0x4A4A4A, 
+  (1U<<31) | 3497, 0x3B3B3B, (1U<<31) | 3497, 0x3B3B3B, (1U<<31) | 3497, 0x4A4A4A, (1U<<31) | 3497, 0x3B3B3B, 
+  (1U<<31) | 3497, 0x3B3B3B, (1U<<31) | 3497, 0x2C2C3B, (1U<<31) | 3497, 0x3B3B3B, (1U<<31) | 3497, 0x2C2C2C, 
+  (1U<<31) | 3497, 0x2C2C2C, (1U<<31) | 3497, 0x4A4A4A, (1U<<31) | 3497, 0x3B3B3B, 0x2E4422, 0x2E5522, 
+  0x444, 0x555, 0x3B7A, 0x3B7B, 0x47A3B, 0x47B3B, 0x40, 0x50, 
+  0x40, 0x50, 0x40, 0x20, 0x4, 0x0, 0x45, 0x8989, 
+  0x8A8A, 0x7A7A, 0x7B7B, 0x8989, 0x7A7A, 0x22C2C2C, 0x24A4A4A, 0x2595959, 
+  0x22C2C2C, 0x24A4A4A, 0x2595959, 0x23B3B3B, 0x23B3B3B, (1U<<31) | 481, (1U<<31) | 536, (1U<<31) | 384, 
+  (1U<<31) | 437, 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) | 1871, 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, 2, 10, 4, 4, 4, 1, 1, 0,
+  /* 73 */ 21, 15, 2, 1, 15, 2, 15, 2, 1, 0,
+  /* 83 */ 15, 2, 15, 2, 15, 2, 15, 2, 1, 0,
+  /* 93 */ 0, 15, 3, 33, 3, 31, 3, 1, 0,
+  /* 102 */ 0, 15, 3, 34, 3, 4, 31, 3, 1, 0,
+  /* 112 */ 0, 15, 3, 15, 12, 4, 31, 3, 1, 0,
+  /* 122 */ 15, 1, 15, 12, 15, 1, 4, 4, 1, 0,
+  /* 132 */ 0, 15, 4, 15, 12, 15, 17, 4, 1, 0,
+  /* 142 */ 21, 1, 5, 1, 0,
+  /* 147 */ 21, 15, 1, 1, 15, 1, 15, 1, 0,
+  /* 156 */ 0, 19, 15, 1, 0,
+  /* 161 */ 2, 18, 1, 0,
+  /* 165 */ 15, 1, 25, 1, 0,
+  /* 170 */ 36, 1, 36, 1, 36, 1, 0,
+  /* 177 */ 37, 1, 37, 1, 37, 1, 0,
+  /* 184 */ 27, 2, 2, 0,
+  /* 188 */ 11, 3, 12, 2, 12, 2, 11, 3, 2, 0,
+  /* 198 */ 11, 3, 11, 3, 11, 3, 11, 3, 2, 0,
+  /* 208 */ 11, 3, 12, 2, 12, 2, 4, 11, 3, 2, 0,
+  /* 219 */ 12, 2, 12, 2, 4, 12, 2, 4, 2, 0,
+  /* 229 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 2, 0,
+  /* 240 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 0,
+  /* 251 */ 11, 4, 11, 4, 11, 4, 11, 4, 4, 2, 0,
+  /* 262 */ 11, 7, 11, 7, 11, 7, 11, 4, 4, 2, 0,
+  /* 273 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 2, 0,
+  /* 284 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 0,
+  /* 295 */ 10, 5, 10, 5, 10, 5, 10, 5, 4, 2, 0,
+  /* 306 */ 10, 8, 10, 8, 10, 8, 10, 5, 4, 2, 0,
+  /* 317 */ 11, 5, 11, 5, 11, 5, 11, 5, 4, 2, 0,
+  /* 328 */ 10, 4, 11, 3, 11, 3, 10, 4, 2, 0,
+  /* 338 */ 10, 4, 10, 4, 14, 2, 10, 4, 10, 4, 2, 0,
+  /* 350 */ 10, 4, 10, 4, 10, 4, 10, 4, 2, 0,
+  /* 360 */ 10, 4, 10, 4, 14, 2, 9, 5, 10, 4, 2, 0,
+  /* 372 */ 10, 4, 10, 4, 14, 2, 10, 5, 10, 4, 2, 0,
+  /* 384 */ 10, 7, 10, 7, 10, 7, 10, 4, 2, 0,
+  /* 394 */ 11, 4, 12, 3, 12, 3, 11, 4, 2, 0,
+  /* 404 */ 11, 4, 11, 4, 11, 4, 4, 11, 4, 2, 0,
+  /* 415 */ 11, 4, 11, 4, 14, 2, 11, 4, 11, 4, 2, 0,
+  /* 427 */ 11, 4, 11, 4, 11, 4, 11, 4, 2, 0,
+  /* 437 */ 11, 7, 11, 7, 11, 7, 11, 4, 2, 0,
+  /* 447 */ 9, 5, 9, 5, 14, 2, 10, 4, 9, 5, 2, 0,
+  /* 459 */ 9, 5, 9, 5, 14, 2, 9, 5, 9, 5, 2, 0,
+  /* 471 */ 9, 5, 9, 5, 9, 5, 9, 5, 2, 0,
+  /* 481 */ 9, 8, 9, 8, 9, 8, 9, 5, 2, 0,
+  /* 491 */ 10, 5, 10, 5, 10, 5, 4, 10, 5, 2, 0,
+  /* 502 */ 10, 5, 10, 5, 14, 2, 10, 4, 10, 5, 2, 0,
+  /* 514 */ 10, 5, 10, 5, 14, 2, 10, 5, 10, 5, 2, 0,
+  /* 526 */ 10, 5, 10, 5, 10, 5, 10, 5, 2, 0,
+  /* 536 */ 10, 8, 10, 8, 10, 8, 10, 5, 2, 0,
+  /* 546 */ 11, 5, 11, 5, 11, 5, 4, 11, 5, 2, 0,
+  /* 557 */ 11, 5, 11, 5, 11, 5, 11, 5, 2, 0,
+  /* 567 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 0,
+  /* 578 */ 10, 7, 10, 7, 14, 2, 10, 4, 10, 7, 2, 0,
+  /* 590 */ 10, 7, 10, 7, 10, 4, 10, 7, 2, 0,
+  /* 600 */ 10, 7, 10, 7, 14, 2, 9, 5, 10, 7, 2, 0,
+  /* 612 */ 10, 7, 10, 7, 14, 2, 10, 5, 10, 7, 2, 0,
+  /* 624 */ 10, 7, 10, 4, 10, 7, 10, 7, 2, 0,
+  /* 634 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 0,
+  /* 644 */ 11, 7, 11, 7, 11, 7, 4, 11, 7, 2, 0,
+  /* 655 */ 11, 7, 11, 7, 14, 2, 11, 4, 11, 7, 2, 0,
+  /* 667 */ 11, 7, 11, 7, 11, 4, 11, 7, 2, 0,
+  /* 677 */ 11, 7, 11, 4, 11, 7, 11, 7, 2, 0,
+  /* 687 */ 11, 7, 11, 7, 11, 7, 11, 7, 2, 0,
+  /* 697 */ 27, 7, 2, 0,
+  /* 701 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 0,
+  /* 712 */ 9, 8, 9, 8, 14, 2, 10, 4, 9, 8, 2, 0,
+  /* 724 */ 9, 8, 9, 8, 14, 2, 9, 5, 9, 8, 2, 0,
+  /* 736 */ 9, 8, 9, 8, 9, 5, 9, 8, 2, 0,
+  /* 746 */ 9, 8, 9, 5, 9, 8, 9, 8, 2, 0,
+  /* 756 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 0,
+  /* 766 */ 10, 8, 10, 8, 10, 8, 4, 10, 8, 2, 0,
+  /* 777 */ 10, 8, 10, 8, 14, 2, 10, 4, 10, 8, 2, 0,
+  /* 789 */ 10, 8, 10, 8, 14, 2, 10, 5, 10, 8, 2, 0,
+  /* 801 */ 10, 8, 10, 8, 10, 5, 10, 8, 2, 0,
+  /* 811 */ 10, 8, 10, 5, 10, 8, 10, 8, 2, 0,
+  /* 821 */ 10, 8, 10, 8, 10, 8, 10, 8, 2, 0,
+  /* 831 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 0,
+  /* 842 */ 11, 8, 11, 8, 11, 5, 11, 8, 2, 0,
+  /* 852 */ 11, 8, 11, 5, 11, 8, 11, 8, 2, 0,
+  /* 862 */ 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 11, 2, 0,
+  /* 877 */ 21, 12, 2, 4, 12, 2, 12, 2, 0,
+  /* 886 */ 21, 12, 2, 4, 12, 2, 0,
+  /* 893 */ 18, 4, 14, 2, 14, 2, 14, 2, 0,
+  /* 902 */ 21, 4, 4, 14, 2, 0,
+  /* 908 */ 21, 5, 5, 14, 2, 0,
+  /* 914 */ 0, 17, 17, 14, 2, 0,
+  /* 920 */ 14, 2, 18, 14, 2, 0,
+  /* 926 */ 16, 2, 16, 2, 16, 2, 0,
+  /* 933 */ 11, 5, 16, 2, 16, 2, 0,
+  /* 940 */ 5, 16, 2, 0,
+  /* 944 */ 17, 17, 17, 2, 0,
+  /* 949 */ 12, 2, 12, 2, 12, 2, 12, 2, 3, 0,
+  /* 959 */ 0, 5, 4, 4, 4, 3, 3, 3, 3, 0,
+  /* 969 */ 12, 3, 13, 2, 13, 2, 12, 3, 3, 0,
+  /* 979 */ 12, 3, 12, 3, 12, 3, 12, 3, 3, 0,
+  /* 989 */ 12, 3, 13, 2, 13, 2, 4, 12, 3, 3, 0,
+  /* 1000 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 3, 0,
+  /* 1011 */ 12, 4, 13, 3, 13, 3, 12, 4, 3, 0,
+  /* 1021 */ 12, 4, 12, 4, 12, 4, 4, 12, 4, 3, 0,
+  /* 1032 */ 12, 4, 12, 4, 12, 4, 12, 4, 3, 0,
+  /* 1042 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 0,
+  /* 1053 */ 12, 7, 12, 7, 12, 4, 12, 7, 3, 0,
+  /* 1063 */ 12, 7, 12, 4, 12, 7, 12, 7, 3, 0,
+  /* 1073 */ 21, 12, 2, 4, 11, 3, 11, 3, 0,
+  /* 1082 */ 21, 11, 3, 4, 11, 3, 11, 3, 0,
+  /* 1091 */ 21, 11, 3, 4, 11, 3, 0,
+  /* 1098 */ 16, 2, 13, 3, 13, 3, 0,
+  /* 1105 */ 15, 3, 33, 3, 31, 3, 1, 15, 3, 0,
+  /* 1115 */ 15, 3, 34, 3, 4, 31, 3, 1, 15, 3, 0,
+  /* 1126 */ 15, 3, 15, 12, 4, 31, 3, 1, 15, 3, 0,
+  /* 1137 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 12, 2, 15, 3, 0,
+  /* 1152 */ 15, 3, 15, 3, 12, 2, 12, 2, 12, 2, 15, 3, 0,
+  /* 1165 */ 15, 3, 15, 3, 12, 2, 12, 2, 15, 3, 0,
+  /* 1176 */ 15, 3, 25, 3, 0,
+  /* 1181 */ 15, 3, 25, 3, 25, 3, 0,
+  /* 1188 */ 15, 3, 26, 3, 0,
+  /* 1193 */ 15, 3, 26, 3, 26, 3, 0,
+  /* 1200 */ 15, 1, 25, 1, 4, 0,
+  /* 1206 */ 12, 4, 12, 4, 36, 1, 4, 0,
+  /* 1214 */ 13, 4, 13, 4, 37, 1, 4, 0,
+  /* 1222 */ 10, 7, 10, 7, 10, 7, 10, 4, 4, 2, 4, 0,
+  /* 1234 */ 9, 8, 9, 8, 9, 8, 9, 5, 4, 2, 4, 0,
+  /* 1246 */ 11, 8, 11, 8, 11, 8, 11, 5, 4, 2, 4, 0,
+  /* 1258 */ 10, 4, 10, 4, 14, 2, 10, 4, 2, 4, 0,
+  /* 1269 */ 9, 5, 9, 5, 14, 2, 10, 4, 2, 4, 0,
+  /* 1280 */ 10, 5, 10, 5, 14, 2, 10, 4, 2, 4, 0,
+  /* 1291 */ 10, 7, 10, 7, 14, 2, 10, 4, 2, 4, 0,
+  /* 1302 */ 9, 8, 9, 8, 14, 2, 10, 4, 2, 4, 0,
+  /* 1313 */ 10, 8, 10, 8, 14, 2, 10, 4, 2, 4, 0,
+  /* 1324 */ 11, 4, 11, 4, 14, 2, 11, 4, 2, 4, 0,
+  /* 1335 */ 11, 5, 11, 5, 14, 2, 11, 4, 2, 4, 0,
+  /* 1346 */ 11, 7, 11, 7, 14, 2, 11, 4, 2, 4, 0,
+  /* 1357 */ 11, 8, 11, 8, 14, 2, 11, 4, 2, 4, 0,
+  /* 1368 */ 10, 4, 10, 4, 14, 2, 9, 5, 2, 4, 0,
+  /* 1379 */ 9, 5, 9, 5, 14, 2, 9, 5, 2, 4, 0,
+  /* 1390 */ 10, 7, 10, 7, 14, 2, 9, 5, 2, 4, 0,
+  /* 1401 */ 9, 8, 9, 8, 14, 2, 9, 5, 2, 4, 0,
+  /* 1412 */ 10, 4, 10, 4, 14, 2, 10, 5, 2, 4, 0,
+  /* 1423 */ 10, 5, 10, 5, 14, 2, 10, 5, 2, 4, 0,
+  /* 1434 */ 10, 7, 10, 7, 14, 2, 10, 5, 2, 4, 0,
+  /* 1445 */ 10, 8, 10, 8, 14, 2, 10, 5, 2, 4, 0,
+  /* 1456 */ 11, 4, 11, 4, 14, 2, 11, 5, 2, 4, 0,
+  /* 1467 */ 11, 5, 11, 5, 14, 2, 11, 5, 2, 4, 0,
+  /* 1478 */ 11, 7, 11, 7, 14, 2, 11, 5, 2, 4, 0,
+  /* 1489 */ 11, 8, 11, 8, 14, 2, 11, 5, 2, 4, 0,
+  /* 1500 */ 10, 7, 10, 7, 10, 7, 4, 10, 7, 2, 4, 0,
+  /* 1512 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 0,
+  /* 1523 */ 10, 7, 10, 7, 9, 8, 10, 7, 2, 4, 0,
+  /* 1534 */ 9, 8, 9, 8, 9, 8, 4, 9, 8, 2, 4, 0,
+  /* 1546 */ 9, 8, 9, 8, 10, 7, 9, 8, 2, 4, 0,
+  /* 1557 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 0,
+  /* 1568 */ 11, 8, 11, 8, 11, 8, 4, 11, 8, 2, 4, 0,
+  /* 1580 */ 11, 8, 11, 8, 11, 8, 11, 8, 2, 4, 0,
+  /* 1591 */ 12, 2, 12, 2, 12, 2, 12, 2, 4, 0,
+  /* 1601 */ 21, 12, 2, 4, 12, 2, 12, 2, 12, 2, 4, 0,
+  /* 1613 */ 21, 12, 2, 4, 12, 2, 12, 2, 4, 0,
+  /* 1623 */ 13, 2, 13, 2, 13, 2, 13, 2, 4, 0,
+  /* 1633 */ 15, 1, 15, 1, 14, 2, 14, 2, 4, 0,
+  /* 1643 */ 15, 4, 15, 4, 14, 2, 14, 2, 4, 0,
+  /* 1653 */ 12, 7, 12, 7, 12, 7, 12, 4, 4, 3, 4, 0,
+  /* 1665 */ 12, 4, 12, 4, 14, 2, 12, 4, 3, 4, 0,
+  /* 1676 */ 12, 7, 12, 7, 14, 2, 12, 4, 3, 4, 0,
+  /* 1687 */ 12, 7, 12, 7, 12, 7, 4, 12, 7, 3, 4, 0,
+  /* 1699 */ 12, 7, 12, 7, 12, 7, 12, 7, 3, 4, 0,
+  /* 1710 */ 11, 3, 11, 3, 11, 3, 11, 3, 4, 0,
+  /* 1720 */ 21, 11, 3, 4, 11, 3, 11, 3, 11, 3, 4, 0,
+  /* 1732 */ 21, 11, 3, 4, 11, 3, 11, 3, 4, 0,
+  /* 1742 */ 13, 3, 16, 2, 16, 2, 13, 3, 4, 0,
+  /* 1752 */ 13, 3, 13, 3, 13, 3, 13, 3, 4, 0,
+  /* 1762 */ 13, 3, 16, 2, 16, 2, 4, 13, 3, 4, 0,
+  /* 1773 */ 21, 3, 4, 0,
+  /* 1777 */ 15, 3, 26, 3, 4, 0,
+  /* 1783 */ 10, 7, 10, 7, 10, 7, 10, 7, 2, 4, 4, 0,
+  /* 1795 */ 9, 8, 9, 8, 9, 8, 9, 8, 2, 4, 4, 0,
+  /* 1807 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 15, 3, 4, 4, 0,
+  /* 1829 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 15, 3, 4, 4, 0,
+  /* 1847 */ 21, 15, 3, 15, 3, 15, 12, 15, 3, 15, 3, 4, 4, 0,
+  /* 1861 */ 0, 5, 4, 4, 4, 4, 4, 4, 4, 0,
+  /* 1871 */ 21, 4, 4, 4, 4, 4, 0,
+  /* 1878 */ 23, 3, 3, 3, 3, 5, 4, 4, 4, 0,
+  /* 1888 */ 21, 3, 3, 5, 4, 4, 4, 0,
+  /* 1896 */ 23, 4, 4, 4, 4, 5, 4, 4, 4, 0,
+  /* 1906 */ 21, 4, 4, 5, 4, 4, 4, 0,
+  /* 1914 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 4, 0,
+  /* 1925 */ 21, 5, 5, 5, 4, 4, 4, 0,
+  /* 1933 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 4, 0,
+  /* 1944 */ 23, 7, 7, 7, 7, 5, 4, 4, 4, 0,
+  /* 1954 */ 16, 4, 16, 4, 16, 4, 4, 4, 0,
+  /* 1963 */ 23, 3, 3, 3, 3, 5, 4, 4, 0,
+  /* 1972 */ 21, 3, 3, 5, 4, 4, 0,
+  /* 1979 */ 23, 4, 4, 4, 4, 5, 4, 4, 0,
+  /* 1988 */ 21, 4, 4, 5, 4, 4, 0,
+  /* 1995 */ 23, 4, 4, 4, 4, 5, 5, 4, 4, 0,
+  /* 2005 */ 21, 5, 5, 5, 4, 4, 0,
+  /* 2012 */ 23, 7, 7, 7, 7, 5, 5, 4, 4, 0,
+  /* 2022 */ 23, 7, 7, 7, 7, 5, 4, 4, 0,
+  /* 2031 */ 0, 14, 2, 2, 10, 4, 10, 4, 4, 0,
+  /* 2041 */ 21, 10, 4, 4, 10, 4, 10, 4, 4, 0,
+  /* 2051 */ 21, 10, 4, 4, 10, 4, 10, 4, 10, 4, 4, 0,
+  /* 2063 */ 10, 4, 10, 4, 10, 4, 10, 4, 4, 0,
+  /* 2073 */ 0, 14, 2, 2, 9, 5, 10, 4, 4, 0,
+  /* 2083 */ 0, 14, 2, 2, 10, 5, 10, 4, 4, 0,
+  /* 2093 */ 0, 14, 2, 2, 11, 4, 11, 4, 4, 0,
+  /* 2103 */ 0, 14, 2, 2, 11, 5, 11, 4, 4, 0,
+  /* 2113 */ 0, 15, 4, 15, 11, 15, 11, 4, 4, 0,
+  /* 2123 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 4, 0,
+  /* 2135 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 4, 0,
+  /* 2149 */ 36, 1, 36, 1, 12, 4, 4, 0,
+  /* 2157 */ 0, 14, 2, 3, 12, 4, 12, 4, 4, 0,
+  /* 2167 */ 12, 4, 12, 4, 12, 4, 12, 4, 4, 0,
+  /* 2177 */ 13, 4, 13, 4, 12, 4, 12, 4, 4, 0,
+  /* 2187 */ 37, 1, 37, 1, 13, 4, 4, 0,
+  /* 2195 */ 13, 4, 13, 4, 13, 4, 13, 4, 4, 0,
+  /* 2205 */ 16, 4, 16, 4, 13, 4, 13, 4, 4, 0,
+  /* 2215 */ 16, 4, 16, 4, 13, 4, 4, 0,
+  /* 2223 */ 13, 4, 13, 4, 16, 4, 4, 0,
+  /* 2231 */ 16, 4, 16, 4, 16, 4, 4, 0,
+  /* 2239 */ 17, 17, 4, 4, 0,
+  /* 2244 */ 15, 0, 18, 4, 4, 0,
+  /* 2250 */ 21, 4, 4, 0,
+  /* 2254 */ 23, 3, 3, 3, 3, 5, 4, 0,
+  /* 2262 */ 21, 3, 3, 5, 4, 0,
+  /* 2268 */ 23, 4, 4, 4, 4, 5, 4, 0,
+  /* 2276 */ 21, 4, 4, 5, 4, 0,
+  /* 2282 */ 16, 4, 16, 4, 16, 4, 5, 4, 0,
+  /* 2291 */ 23, 4, 4, 4, 4, 5, 5, 4, 0,
+  /* 2300 */ 21, 5, 5, 5, 4, 0,
+  /* 2306 */ 23, 7, 7, 7, 7, 5, 5, 4, 0,
+  /* 2315 */ 23, 7, 7, 7, 7, 5, 4, 0,
+  /* 2323 */ 0, 14, 2, 2, 10, 4, 9, 5, 4, 0,
+  /* 2333 */ 0, 14, 2, 2, 9, 5, 9, 5, 4, 0,
+  /* 2343 */ 9, 5, 9, 5, 9, 5, 9, 5, 4, 0,
+  /* 2353 */ 0, 14, 2, 2, 10, 4, 10, 5, 4, 0,
+  /* 2363 */ 0, 14, 2, 2, 10, 5, 10, 5, 4, 0,
+  /* 2373 */ 0, 14, 2, 2, 11, 4, 11, 5, 4, 0,
+  /* 2383 */ 0, 14, 2, 2, 11, 5, 11, 5, 4, 0,
+  /* 2393 */ 21, 5, 4, 0,
+  /* 2397 */ 0, 14, 2, 2, 10, 4, 10, 7, 4, 0,
+  /* 2407 */ 0, 14, 2, 2, 9, 5, 10, 7, 4, 0,
+  /* 2417 */ 0, 14, 2, 2, 10, 5, 10, 7, 4, 0,
+  /* 2427 */ 0, 14, 2, 2, 11, 4, 11, 7, 4, 0,
+  /* 2437 */ 0, 14, 2, 2, 11, 5, 11, 7, 4, 0,
+  /* 2447 */ 0, 14, 2, 3, 12, 4, 12, 7, 4, 0,
+  /* 2457 */ 21, 9, 5, 4, 9, 8, 4, 0,
+  /* 2465 */ 0, 14, 2, 2, 10, 4, 9, 8, 4, 0,
+  /* 2475 */ 0, 14, 2, 2, 9, 5, 9, 8, 4, 0,
+  /* 2485 */ 0, 14, 2, 2, 10, 4, 10, 8, 4, 0,
+  /* 2495 */ 0, 14, 2, 2, 10, 5, 10, 8, 4, 0,
+  /* 2505 */ 0, 14, 2, 2, 11, 4, 11, 8, 4, 0,
+  /* 2515 */ 0, 14, 2, 2, 11, 5, 11, 8, 4, 0,
+  /* 2525 */ 21, 10, 4, 4, 10, 4, 0,
+  /* 2532 */ 21, 11, 3, 4, 10, 4, 10, 4, 0,
+  /* 2541 */ 21, 10, 4, 4, 10, 4, 10, 4, 0,
+  /* 2550 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 4, 0,
+  /* 2561 */ 0, 15, 4, 15, 11, 15, 11, 15, 11, 15, 11, 4, 0,
+  /* 2574 */ 12, 4, 36, 1, 12, 4, 0,
+  /* 2581 */ 0, 36, 1, 14, 2, 12, 4, 0,
+  /* 2589 */ 36, 1, 36, 1, 12, 4, 12, 4, 0,
+  /* 2598 */ 12, 4, 36, 1, 12, 4, 12, 4, 0,
+  /* 2607 */ 13, 4, 36, 1, 12, 4, 12, 4, 0,
+  /* 2616 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
+  /* 2629 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 4, 0,
+  /* 2640 */ 21, 15, 3, 15, 3, 15, 12, 4, 0,
+  /* 2649 */ 13, 4, 37, 1, 13, 4, 0,
+  /* 2656 */ 0, 37, 1, 14, 2, 13, 4, 0,
+  /* 2664 */ 37, 1, 37, 1, 13, 4, 13, 4, 0,
+  /* 2673 */ 13, 4, 37, 1, 13, 4, 13, 4, 0,
+  /* 2682 */ 16, 4, 37, 1, 13, 4, 13, 4, 0,
+  /* 2691 */ 16, 4, 16, 4, 13, 4, 13, 4, 0,
+  /* 2700 */ 16, 4, 16, 4, 13, 4, 0,
+  /* 2707 */ 0, 14, 20, 5, 15, 4, 0,
+  /* 2714 */ 5, 19, 15, 4, 0,
+  /* 2719 */ 13, 4, 16, 4, 0,
+  /* 2724 */ 16, 4, 16, 4, 16, 4, 0,
+  /* 2731 */ 4, 17, 4, 0,
+  /* 2735 */ 17, 17, 4, 0,
+  /* 2739 */ 16, 2, 2, 16, 2, 5, 0,
+  /* 2746 */ 16, 2, 16, 2, 16, 2, 16, 2, 5, 0,
+  /* 2756 */ 5, 16, 2, 16, 2, 5, 0,
+  /* 2763 */ 5, 16, 2, 16, 2, 4, 5, 0,
+  /* 2771 */ 21, 1, 5, 5, 0,
+  /* 2776 */ 21, 10, 4, 4, 9, 5, 9, 5, 0,
+  /* 2785 */ 21, 9, 5, 4, 9, 5, 9, 5, 0,
+  /* 2794 */ 23, 4, 4, 4, 4, 5, 4, 7, 0,
+  /* 2803 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 0,
+  /* 2813 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 0,
+  /* 2823 */ 23, 7, 7, 7, 7, 5, 4, 7, 0,
+  /* 2832 */ 23, 4, 4, 4, 4, 5, 7, 0,
+  /* 2840 */ 23, 4, 4, 4, 4, 5, 5, 7, 0,
+  /* 2849 */ 23, 7, 7, 7, 7, 5, 5, 7, 0,
+  /* 2858 */ 23, 7, 7, 7, 7, 5, 7, 0,
+  /* 2866 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 0,
+  /* 2876 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 0,
+  /* 2887 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 0,
+  /* 2898 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 0,
+  /* 2908 */ 23, 4, 4, 4, 4, 5, 7, 7, 0,
+  /* 2917 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 0,
+  /* 2927 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 0,
+  /* 2937 */ 23, 7, 7, 7, 7, 5, 7, 7, 0,
+  /* 2946 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 0,
+  /* 2957 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 0,
+  /* 2969 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 0,
+  /* 2981 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 0,
+  /* 2992 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 0,
+  /* 3002 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 0,
+  /* 3013 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 0,
+  /* 3024 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 0,
+  /* 3034 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 0,
+  /* 3046 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 0,
+  /* 3059 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 0,
+  /* 3072 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 0,
+  /* 3084 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 0,
+  /* 3095 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 0,
+  /* 3107 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 0,
+  /* 3119 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 0,
+  /* 3130 */ 23, 4, 4, 4, 4, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 3144 */ 23, 4, 4, 4, 4, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 3159 */ 23, 7, 7, 7, 7, 5, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 3174 */ 23, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7, 7, 7, 0,
+  /* 3188 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 3201 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 3215 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 3229 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 0,
+  /* 3242 */ 23, 4, 4, 4, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 3258 */ 23, 4, 4, 4, 4, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 3275 */ 23, 7, 7, 7, 7, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 3292 */ 23, 7, 7, 7, 7, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+  /* 3308 */ 17, 10, 7, 0,
+  /* 3312 */ 21, 9, 5, 4, 9, 8, 9, 8, 0,
+  /* 3321 */ 9, 8, 9, 8, 9, 8, 9, 8, 0,
+  /* 3330 */ 17, 9, 8, 0,
+  /* 3334 */ 10, 8, 10, 8, 10, 8, 10, 8, 0,
+  /* 3343 */ 0, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 3353 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 3365 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 3377 */ 22, 15, 3, 15, 3, 15, 3, 15, 12, 0,
+  /* 3387 */ 21, 15, 3, 15, 3, 15, 12, 0,
+  /* 3395 */ 0, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 3404 */ 0, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 3415 */ 0, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 3428 */ 23, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 3449 */ 22, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 3466 */ 21, 15, 3, 15, 3, 15, 3, 15, 3, 5, 15, 12, 0,
+  /* 3479 */ 4, 17, 0,
+  /* 3482 */ 10, 7, 10, 7, 17, 0,
+  /* 3488 */ 9, 8, 17, 0,
+  /* 3492 */ 0, 14, 17, 17, 0,
+  /* 3497 */ 17, 17, 17, 0,
+  /* 3501 */ 15, 0, 18, 0,
+  /* 3505 */ 1, 18, 0,
+  /* 3508 */ 15, 4, 18, 0,
+  /* 3512 */ 15, 1, 19, 0,
+  /* 3516 */ 1, 14, 2, 19, 0,
+  /* 3521 */ 21, 14, 2, 1, 14, 2, 4, 19, 0,
+  /* 3530 */ 15, 2, 15, 2, 15, 2, 19, 19, 0,
+  /* 3539 */ 0, 19, 5, 19, 19, 0,
+  /* 3545 */ 0, 19, 19, 19, 0,
+  /* 3550 */ 15, 0, 29, 0,
+  /* 3554 */ 0, 1, 29, 0,
+  /* 3558 */ 0, 5, 4, 14, 2, 4, 29, 0,
+  /* 3566 */ 5, 5, 4, 14, 2, 4, 29, 0,
+  /* 3574 */ 18, 5, 4, 15, 4, 4, 4, 29, 0,
+  /* 3583 */ 0, 5, 4, 29, 0,
+  /* 3588 */ 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
+    1, // llvm.bitreverse
+    1, // llvm.bswap
+    1, // llvm.canonicalize
+    1, // llvm.ceil
+    3, // llvm.clear_cache
+    1, // llvm.convert.from.fp16
+    1, // llvm.convert.to.fp16
+    1, // llvm.copysign
+    3, // llvm.coro.alloc
+    4, // llvm.coro.begin
+    5, // llvm.coro.destroy
+    6, // llvm.coro.done
+    3, // llvm.coro.end
+    1, // llvm.coro.frame
+    7, // llvm.coro.free
+    8, // llvm.coro.id
+    9, // llvm.coro.param
+    10, // llvm.coro.promise
+    5, // llvm.coro.resume
+    3, // llvm.coro.save
+    1, // llvm.coro.size
+    11, // llvm.coro.subfn.addr
+    3, // llvm.coro.suspend
+    1, // llvm.cos
+    1, // llvm.ctlz
+    1, // llvm.ctpop
+    1, // llvm.cttz
+    1, // llvm.dbg.declare
+    1, // 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
+    12, // 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
+    1, // llvm.exp
+    1, // llvm.exp2
+    1, // llvm.expect
+    13, // llvm.experimental.constrained.fadd
+    13, // llvm.experimental.constrained.fdiv
+    13, // llvm.experimental.constrained.fmul
+    13, // llvm.experimental.constrained.frem
+    13, // llvm.experimental.constrained.fsub
+    5, // llvm.experimental.deoptimize
+    14, // llvm.experimental.gc.relocate
+    14, // llvm.experimental.gc.result
+    5, // llvm.experimental.gc.statepoint
+    5, // llvm.experimental.guard
+    5, // llvm.experimental.patchpoint.i64
+    5, // llvm.experimental.patchpoint.void
+    5, // llvm.experimental.stackmap
+    1, // llvm.fabs
+    1, // llvm.floor
+    3, // llvm.flt.rounds
+    1, // llvm.fma
+    1, // llvm.fmuladd
+    1, // llvm.frameaddress
+    2, // llvm.gcread
+    3, // llvm.gcroot
+    15, // llvm.gcwrite
+    3, // llvm.get.dynamic.area.offset
+    16, // llvm.init.trampoline
+    3, // llvm.instrprof.increment
+    3, // llvm.instrprof.increment.step
+    3, // llvm.instrprof.value.profile
+    17, // llvm.invariant.end
+    1, // llvm.invariant.group.barrier
+    18, // llvm.invariant.start
+    18, // llvm.lifetime.end
+    18, // llvm.lifetime.start
+    2, // llvm.load.relative
+    1, // llvm.localaddress
+    3, // llvm.localescape
+    1, // llvm.localrecover
+    1, // llvm.log
+    1, // llvm.log10
+    1, // llvm.log2
+    12, // llvm.longjmp
+    19, // llvm.masked.compressstore
+    14, // llvm.masked.expandload
+    14, // llvm.masked.gather
+    2, // llvm.masked.load
+    3, // llvm.masked.scatter
+    19, // llvm.masked.store
+    1, // llvm.maxnum
+    20, // llvm.memcpy
+    20, // llvm.memcpy.element.atomic
+    21, // llvm.memmove
+    22, // llvm.memset
+    1, // llvm.minnum
+    1, // llvm.nearbyint
+    1, // llvm.objectsize
+    3, // llvm.pcmarker
+    1, // llvm.pow
+    1, // llvm.powi
+    23, // llvm.prefetch
+    3, // llvm.ptr.annotation
+    14, // llvm.read_register
+    3, // llvm.readcyclecounter
+    1, // llvm.returnaddress
+    1, // llvm.rint
+    1, // llvm.round
+    1, // llvm.sadd.with.overflow
+    3, // llvm.setjmp
+    12, // llvm.siglongjmp
+    3, // llvm.sigsetjmp
+    1, // llvm.sin
+    1, // llvm.smul.with.overflow
+    1, // llvm.sqrt
+    24, // llvm.ssa.copy
+    1, // llvm.ssub.with.overflow
+    3, // llvm.stackguard
+    3, // llvm.stackprotector
+    3, // llvm.stackrestore
+    3, // llvm.stacksave
+    1, // llvm.thread.pointer
+    12, // llvm.trap
+    1, // llvm.trunc
+    1, // llvm.type.checked.load
+    1, // llvm.type.test
+    1, // llvm.uadd.with.overflow
+    1, // llvm.umul.with.overflow
+    1, // llvm.usub.with.overflow
+    3, // llvm.va_copy
+    3, // llvm.va_end
+    3, // llvm.va_start
+    3, // llvm.var.annotation
+    3, // llvm.write_register
+    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
+    17, // llvm.aarch64.neon.st1x2
+    25, // llvm.aarch64.neon.st1x3
+    26, // llvm.aarch64.neon.st1x4
+    17, // llvm.aarch64.neon.st2
+    25, // llvm.aarch64.neon.st2lane
+    25, // llvm.aarch64.neon.st3
+    26, // llvm.aarch64.neon.st3lane
+    26, // llvm.aarch64.neon.st4
+    27, // 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
+    16, // llvm.amdgcn.atomic.dec
+    16, // llvm.amdgcn.atomic.inc
+    28, // 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
+    14, // llvm.amdgcn.buffer.load
+    14, // llvm.amdgcn.buffer.load.format
+    29, // llvm.amdgcn.buffer.store
+    29, // llvm.amdgcn.buffer.store.format
+    3, // llvm.amdgcn.buffer.wbinvl1
+    3, // llvm.amdgcn.buffer.wbinvl1.sc
+    3, // llvm.amdgcn.buffer.wbinvl1.vol
+    1, // llvm.amdgcn.class
+    1, // llvm.amdgcn.cos
+    1, // llvm.amdgcn.cubeid
+    1, // llvm.amdgcn.cubema
+    1, // llvm.amdgcn.cubesc
+    1, // llvm.amdgcn.cubetc
+    1, // llvm.amdgcn.cvt.pk.u8.f32
+    1, // llvm.amdgcn.cvt.pkrtz
+    1, // llvm.amdgcn.dispatch.id
+    1, // llvm.amdgcn.dispatch.ptr
+    1, // llvm.amdgcn.div.fixup
+    1, // llvm.amdgcn.div.fmas
+    1, // llvm.amdgcn.div.scale
+    28, // llvm.amdgcn.ds.bpermute
+    28, // llvm.amdgcn.ds.permute
+    28, // llvm.amdgcn.ds.swizzle
+    30, // llvm.amdgcn.else
+    28, // llvm.amdgcn.else.break
+    30, // llvm.amdgcn.end.cf
+    3, // llvm.amdgcn.exp
+    3, // llvm.amdgcn.exp.compr
+    28, // llvm.amdgcn.fcmp
+    1, // llvm.amdgcn.fdiv.fast
+    1, // llvm.amdgcn.fmed3
+    1, // llvm.amdgcn.fmul.legacy
+    1, // llvm.amdgcn.fract
+    1, // llvm.amdgcn.frexp.exp
+    1, // llvm.amdgcn.frexp.mant
+    1, // llvm.amdgcn.groupstaticsize
+    28, // llvm.amdgcn.icmp
+    30, // llvm.amdgcn.if
+    28, // 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
+    14, // llvm.amdgcn.image.gather4
+    14, // llvm.amdgcn.image.gather4.b
+    14, // llvm.amdgcn.image.gather4.b.cl
+    14, // llvm.amdgcn.image.gather4.b.cl.o
+    14, // llvm.amdgcn.image.gather4.b.o
+    14, // llvm.amdgcn.image.gather4.c
+    14, // llvm.amdgcn.image.gather4.c.b
+    14, // llvm.amdgcn.image.gather4.c.b.cl
+    14, // llvm.amdgcn.image.gather4.c.b.cl.o
+    14, // llvm.amdgcn.image.gather4.c.b.o
+    14, // llvm.amdgcn.image.gather4.c.cl
+    14, // llvm.amdgcn.image.gather4.c.cl.o
+    14, // llvm.amdgcn.image.gather4.c.l
+    14, // llvm.amdgcn.image.gather4.c.l.o
+    14, // llvm.amdgcn.image.gather4.c.lz
+    14, // llvm.amdgcn.image.gather4.c.lz.o
+    14, // llvm.amdgcn.image.gather4.c.o
+    14, // llvm.amdgcn.image.gather4.cl
+    14, // llvm.amdgcn.image.gather4.cl.o
+    14, // llvm.amdgcn.image.gather4.l
+    14, // llvm.amdgcn.image.gather4.l.o
+    14, // llvm.amdgcn.image.gather4.lz
+    14, // llvm.amdgcn.image.gather4.lz.o
+    14, // llvm.amdgcn.image.gather4.o
+    14, // llvm.amdgcn.image.getlod
+    14, // llvm.amdgcn.image.getresinfo
+    14, // llvm.amdgcn.image.load
+    14, // llvm.amdgcn.image.load.mip
+    14, // llvm.amdgcn.image.sample
+    14, // llvm.amdgcn.image.sample.b
+    14, // llvm.amdgcn.image.sample.b.cl
+    14, // llvm.amdgcn.image.sample.b.cl.o
+    14, // llvm.amdgcn.image.sample.b.o
+    14, // llvm.amdgcn.image.sample.c
+    14, // llvm.amdgcn.image.sample.c.b
+    14, // llvm.amdgcn.image.sample.c.b.cl
+    14, // llvm.amdgcn.image.sample.c.b.cl.o
+    14, // llvm.amdgcn.image.sample.c.b.o
+    14, // llvm.amdgcn.image.sample.c.cd
+    14, // llvm.amdgcn.image.sample.c.cd.cl
+    14, // llvm.amdgcn.image.sample.c.cd.cl.o
+    14, // llvm.amdgcn.image.sample.c.cd.o
+    14, // llvm.amdgcn.image.sample.c.cl
+    14, // llvm.amdgcn.image.sample.c.cl.o
+    14, // llvm.amdgcn.image.sample.c.d
+    14, // llvm.amdgcn.image.sample.c.d.cl
+    14, // llvm.amdgcn.image.sample.c.d.cl.o
+    14, // llvm.amdgcn.image.sample.c.d.o
+    14, // llvm.amdgcn.image.sample.c.l
+    14, // llvm.amdgcn.image.sample.c.l.o
+    14, // llvm.amdgcn.image.sample.c.lz
+    14, // llvm.amdgcn.image.sample.c.lz.o
+    14, // llvm.amdgcn.image.sample.c.o
+    14, // llvm.amdgcn.image.sample.cd
+    14, // llvm.amdgcn.image.sample.cd.cl
+    14, // llvm.amdgcn.image.sample.cd.cl.o
+    14, // llvm.amdgcn.image.sample.cd.o
+    14, // llvm.amdgcn.image.sample.cl
+    14, // llvm.amdgcn.image.sample.cl.o
+    14, // llvm.amdgcn.image.sample.d
+    14, // llvm.amdgcn.image.sample.d.cl
+    14, // llvm.amdgcn.image.sample.d.cl.o
+    14, // llvm.amdgcn.image.sample.d.o
+    14, // llvm.amdgcn.image.sample.l
+    14, // llvm.amdgcn.image.sample.l.o
+    14, // llvm.amdgcn.image.sample.lz
+    14, // llvm.amdgcn.image.sample.lz.o
+    14, // llvm.amdgcn.image.sample.o
+    3, // llvm.amdgcn.image.store
+    3, // llvm.amdgcn.image.store.mip
+    1, // llvm.amdgcn.implicit.buffer.ptr
+    1, // llvm.amdgcn.implicitarg.ptr
+    1, // llvm.amdgcn.interp.mov
+    1, // llvm.amdgcn.interp.p1
+    1, // llvm.amdgcn.interp.p2
+    1, // llvm.amdgcn.kernarg.segment.ptr
+    1, // llvm.amdgcn.ldexp
+    1, // llvm.amdgcn.lerp
+    1, // llvm.amdgcn.log.clamp
+    30, // llvm.amdgcn.loop
+    1, // llvm.amdgcn.mbcnt.hi
+    1, // llvm.amdgcn.mbcnt.lo
+    28, // llvm.amdgcn.mov.dpp
+    1, // llvm.amdgcn.mqsad.pk.u16.u8
+    1, // llvm.amdgcn.mqsad.u32.u8
+    1, // llvm.amdgcn.msad.u8
+    1, // llvm.amdgcn.ps.live
+    1, // llvm.amdgcn.qsad.pk.u16.u8
+    1, // llvm.amdgcn.queue.ptr
+    1, // llvm.amdgcn.rcp
+    1, // llvm.amdgcn.rcp.legacy
+    28, // llvm.amdgcn.readfirstlane
+    28, // llvm.amdgcn.readlane
+    1, // llvm.amdgcn.rsq
+    1, // llvm.amdgcn.rsq.clamp
+    1, // llvm.amdgcn.rsq.legacy
+    30, // 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
+    14, // llvm.amdgcn.s.getreg
+    3, // llvm.amdgcn.s.incperflevel
+    3, // llvm.amdgcn.s.memrealtime
+    3, // llvm.amdgcn.s.memtime
+    3, // llvm.amdgcn.s.sendmsg
+    3, // llvm.amdgcn.s.sendmsghalt
+    3, // llvm.amdgcn.s.sleep
+    3, // llvm.amdgcn.s.waitcnt
+    1, // llvm.amdgcn.sad.hi.u8
+    1, // llvm.amdgcn.sad.u16
+    1, // llvm.amdgcn.sad.u8
+    1, // llvm.amdgcn.sbfe
+    1, // llvm.amdgcn.sffbh
+    1, // llvm.amdgcn.sin
+    1, // llvm.amdgcn.trig.preop
+    1, // llvm.amdgcn.ubfe
+    30, // llvm.amdgcn.unreachable
+    30, // llvm.amdgcn.wave.barrier
+    1, // llvm.amdgcn.workgroup.id.x
+    1, // llvm.amdgcn.workgroup.id.y
+    1, // llvm.amdgcn.workgroup.id.z
+    1, // llvm.amdgcn.workitem.id.x
+    1, // llvm.amdgcn.workitem.id.y
+    1, // llvm.amdgcn.workitem.id.z
+    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
+    19, // llvm.arm.neon.vst1
+    19, // llvm.arm.neon.vst2
+    19, // llvm.arm.neon.vst2lane
+    19, // llvm.arm.neon.vst3
+    19, // llvm.arm.neon.vst3lane
+    19, // llvm.arm.neon.vst4
+    19, // 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.qsub
+    3, // llvm.arm.set.fpscr
+    3, // llvm.arm.space
+    1, // llvm.arm.ssat
+    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
+    3, // llvm.arm.undefined
+    1, // llvm.arm.usat
+    1, // llvm.arm.vcvtr
+    1, // llvm.arm.vcvtru
+    14, // llvm.bpf.load.byte
+    14, // llvm.bpf.load.half
+    14, // 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.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
+    31, // llvm.hexagon.F2.conv.uw2df
+    31, // llvm.hexagon.F2.conv.uw2sf
+    31, // llvm.hexagon.F2.conv.w2df
+    31, // llvm.hexagon.F2.conv.w2sf
+    31, // llvm.hexagon.F2.dfclass
+    31, // llvm.hexagon.F2.dfcmpeq
+    31, // llvm.hexagon.F2.dfcmpge
+    31, // llvm.hexagon.F2.dfcmpgt
+    31, // llvm.hexagon.F2.dfcmpuo
+    31, // llvm.hexagon.F2.dfimm.n
+    31, // llvm.hexagon.F2.dfimm.p
+    31, // llvm.hexagon.F2.sfadd
+    31, // llvm.hexagon.F2.sfclass
+    31, // llvm.hexagon.F2.sfcmpeq
+    31, // llvm.hexagon.F2.sfcmpge
+    31, // llvm.hexagon.F2.sfcmpgt
+    31, // llvm.hexagon.F2.sfcmpuo
+    31, // llvm.hexagon.F2.sffixupd
+    31, // llvm.hexagon.F2.sffixupn
+    1, // llvm.hexagon.F2.sffixupr
+    31, // llvm.hexagon.F2.sffma
+    31, // llvm.hexagon.F2.sffma.lib
+    31, // llvm.hexagon.F2.sffma.sc
+    31, // llvm.hexagon.F2.sffms
+    31, // llvm.hexagon.F2.sffms.lib
+    31, // llvm.hexagon.F2.sfimm.n
+    31, // llvm.hexagon.F2.sfimm.p
+    31, // llvm.hexagon.F2.sfmax
+    31, // llvm.hexagon.F2.sfmin
+    31, // llvm.hexagon.F2.sfmpy
+    31, // llvm.hexagon.F2.sfsub
+    16, // llvm.hexagon.L2.loadw.locked
+    16, // 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
+    16, // 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
+    16, // 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.SI.to.SXTHI.asrh
+    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
+    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.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.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.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.vasruwuhrndsat
+    1, // llvm.hexagon.V6.vasruwuhrndsat.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.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.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.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
+    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.vlutb
+    1, // llvm.hexagon.V6.vlutb.128B
+    1, // llvm.hexagon.V6.vlutb.acc
+    1, // llvm.hexagon.V6.vlutb.acc.128B
+    1, // llvm.hexagon.V6.vlutb.dv
+    1, // llvm.hexagon.V6.vlutb.dv.128B
+    1, // llvm.hexagon.V6.vlutb.dv.acc
+    1, // llvm.hexagon.V6.vlutb.dv.acc.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
+    19, // llvm.hexagon.V6.vmaskedstorenq
+    19, // llvm.hexagon.V6.vmaskedstorenq.128B
+    19, // llvm.hexagon.V6.vmaskedstorentnq
+    19, // llvm.hexagon.V6.vmaskedstorentnq.128B
+    19, // llvm.hexagon.V6.vmaskedstorentq
+    19, // llvm.hexagon.V6.vmaskedstorentq.128B
+    19, // llvm.hexagon.V6.vmaskedstoreq
+    19, // 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.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.vmpauhb
+    1, // llvm.hexagon.V6.vmpauhb.128B
+    1, // llvm.hexagon.V6.vmpauhb.acc
+    1, // llvm.hexagon.V6.vmpauhb.acc.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.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.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.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.vrdelta
+    1, // llvm.hexagon.V6.vrdelta.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.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
+    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.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
+    19, // llvm.hexagon.brev.ldb
+    19, // llvm.hexagon.brev.ldd
+    19, // llvm.hexagon.brev.ldh
+    19, // llvm.hexagon.brev.ldub
+    19, // llvm.hexagon.brev.lduh
+    19, // llvm.hexagon.brev.ldw
+    19, // llvm.hexagon.brev.stb
+    19, // llvm.hexagon.brev.std
+    19, // llvm.hexagon.brev.sth
+    19, // llvm.hexagon.brev.sthhi
+    19, // llvm.hexagon.brev.stw
+    19, // llvm.hexagon.circ.ldb
+    19, // llvm.hexagon.circ.ldd
+    19, // llvm.hexagon.circ.ldh
+    19, // llvm.hexagon.circ.ldub
+    19, // llvm.hexagon.circ.lduh
+    19, // llvm.hexagon.circ.ldw
+    19, // llvm.hexagon.circ.stb
+    19, // llvm.hexagon.circ.std
+    19, // llvm.hexagon.circ.sth
+    19, // llvm.hexagon.circ.sthhi
+    19, // llvm.hexagon.circ.stw
+    19, // 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
+    14, // 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
+    14, // 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
+    14, // llvm.mips.pick.ph
+    14, // 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
+    14, // 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
+    19, // llvm.mips.st.b
+    19, // llvm.mips.st.d
+    19, // llvm.mips.st.h
+    19, // 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
+    16, // llvm.nvvm.atomic.add.gen.f.cta
+    16, // llvm.nvvm.atomic.add.gen.f.sys
+    16, // llvm.nvvm.atomic.add.gen.i.cta
+    16, // llvm.nvvm.atomic.add.gen.i.sys
+    16, // llvm.nvvm.atomic.and.gen.i.cta
+    16, // llvm.nvvm.atomic.and.gen.i.sys
+    16, // llvm.nvvm.atomic.cas.gen.i.cta
+    16, // llvm.nvvm.atomic.cas.gen.i.sys
+    16, // llvm.nvvm.atomic.dec.gen.i.cta
+    16, // llvm.nvvm.atomic.dec.gen.i.sys
+    16, // llvm.nvvm.atomic.exch.gen.i.cta
+    16, // llvm.nvvm.atomic.exch.gen.i.sys
+    16, // llvm.nvvm.atomic.inc.gen.i.cta
+    16, // llvm.nvvm.atomic.inc.gen.i.sys
+    16, // llvm.nvvm.atomic.load.add.f32
+    16, // llvm.nvvm.atomic.load.dec.32
+    16, // llvm.nvvm.atomic.load.inc.32
+    16, // llvm.nvvm.atomic.max.gen.i.cta
+    16, // llvm.nvvm.atomic.max.gen.i.sys
+    16, // llvm.nvvm.atomic.min.gen.i.cta
+    16, // llvm.nvvm.atomic.min.gen.i.sys
+    16, // llvm.nvvm.atomic.or.gen.i.cta
+    16, // llvm.nvvm.atomic.or.gen.i.sys
+    16, // llvm.nvvm.atomic.xor.gen.i.cta
+    16, // llvm.nvvm.atomic.xor.gen.i.sys
+    30, // llvm.nvvm.bar.sync
+    30, // llvm.nvvm.barrier
+    30, // llvm.nvvm.barrier.n
+    30, // llvm.nvvm.barrier0
+    30, // llvm.nvvm.barrier0.and
+    30, // llvm.nvvm.barrier0.or
+    30, // 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.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
+    32, // llvm.nvvm.ldg.global.f
+    32, // llvm.nvvm.ldg.global.i
+    32, // llvm.nvvm.ldg.global.p
+    32, // llvm.nvvm.ldu.global.f
+    32, // llvm.nvvm.ldu.global.i
+    32, // 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
+    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
+    10, // 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
+    28, // llvm.nvvm.shfl.bfly.f32
+    28, // llvm.nvvm.shfl.bfly.i32
+    28, // llvm.nvvm.shfl.down.f32
+    28, // llvm.nvvm.shfl.down.i32
+    28, // llvm.nvvm.shfl.idx.f32
+    28, // llvm.nvvm.shfl.idx.i32
+    28, // llvm.nvvm.shfl.up.f32
+    28, // 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
+    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
+    14, // llvm.ppc.altivec.mfvscr
+    3, // llvm.ppc.altivec.mtvscr
+    33, // llvm.ppc.altivec.stvebx
+    33, // llvm.ppc.altivec.stvehx
+    33, // llvm.ppc.altivec.stvewx
+    33, // llvm.ppc.altivec.stvx
+    33, // 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.dcba
+    3, // llvm.ppc.dcbf
+    3, // llvm.ppc.dcbi
+    3, // llvm.ppc.dcbst
+    16, // llvm.ppc.dcbt
+    16, // 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
+    33, // llvm.ppc.qpx.qvstfcd
+    33, // llvm.ppc.qpx.qvstfcda
+    33, // llvm.ppc.qpx.qvstfcs
+    33, // llvm.ppc.qpx.qvstfcsa
+    33, // llvm.ppc.qpx.qvstfd
+    33, // llvm.ppc.qpx.qvstfda
+    33, // llvm.ppc.qpx.qvstfiw
+    33, // llvm.ppc.qpx.qvstfiwa
+    33, // llvm.ppc.qpx.qvstfs
+    33, // 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
+    33, // llvm.ppc.vsx.stxvd2x
+    33, // llvm.ppc.vsx.stxvd2x.be
+    33, // llvm.ppc.vsx.stxvl
+    33, // llvm.ppc.vsx.stxvll
+    33, // llvm.ppc.vsx.stxvw4x
+    33, // 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
+    1, // llvm.r600.cube
+    30, // llvm.r600.group.barrier
+    1, // llvm.r600.implicitarg.ptr
+    3, // llvm.r600.rat.store.typed
+    1, // llvm.r600.read.global.size.x
+    1, // llvm.r600.read.global.size.y
+    1, // llvm.r600.read.global.size.z
+    1, // llvm.r600.read.local.size.x
+    1, // llvm.r600.read.local.size.y
+    1, // llvm.r600.read.local.size.z
+    1, // llvm.r600.read.ngroups.x
+    1, // llvm.r600.read.ngroups.y
+    1, // llvm.r600.read.ngroups.z
+    1, // llvm.r600.read.tgid.x
+    1, // llvm.r600.read.tgid.y
+    1, // llvm.r600.read.tgid.z
+    1, // llvm.r600.read.tidig.x
+    1, // llvm.r600.read.tidig.y
+    1, // llvm.r600.read.tidig.z
+    1, // llvm.r600.recipsqrt.clamped
+    1, // llvm.r600.recipsqrt.ieee
+    3, // llvm.s390.efpc
+    1, // llvm.s390.etnd
+    1, // llvm.s390.lcbb
+    19, // llvm.s390.ntstg
+    3, // llvm.s390.ppa.txassist
+    3, // llvm.s390.sfpc
+    34, // llvm.s390.tabort
+    35, // llvm.s390.tbegin
+    35, // llvm.s390.tbegin.nofloat
+    35, // 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.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.vfchdbs
+    1, // llvm.s390.vfchedbs
+    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.vftcidb
+    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
+    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.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
+    19, // 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
+    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
+    14, // llvm.wasm.current.memory
+    3, // llvm.wasm.grow.memory
+    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
+    19, // llvm.x86.addcarry.u32
+    19, // llvm.x86.addcarry.u64
+    19, // llvm.x86.addcarryx.u32
+    19, // llvm.x86.addcarryx.u64
+    1, // llvm.x86.aesni.aesdec
+    1, // llvm.x86.aesni.aesdeclast
+    1, // llvm.x86.aesni.aesenc
+    1, // llvm.x86.aesni.aesenclast
+    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
+    14, // 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
+    19, // llvm.x86.avx.maskstore.pd
+    19, // llvm.x86.avx.maskstore.pd.256
+    19, // llvm.x86.avx.maskstore.ps
+    19, // 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.vperm2f128.pd.256
+    1, // llvm.x86.avx.vperm2f128.ps.256
+    1, // llvm.x86.avx.vperm2f128.si.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
+    19, // llvm.x86.avx2.maskstore.d
+    19, // llvm.x86.avx2.maskstore.d.256
+    19, // llvm.x86.avx2.maskstore.q
+    19, // llvm.x86.avx2.maskstore.q.256
+    14, // llvm.x86.avx2.movntdqa
+    1, // llvm.x86.avx2.mpsadbw
+    1, // llvm.x86.avx2.pabs.b
+    1, // llvm.x86.avx2.pabs.d
+    1, // llvm.x86.avx2.pabs.w
+    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.pavg.b
+    1, // llvm.x86.avx2.pavg.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.avx2.vperm2i128
+    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.cvtb2mask.128
+    1, // llvm.x86.avx512.cvtb2mask.256
+    1, // llvm.x86.avx512.cvtb2mask.512
+    1, // llvm.x86.avx512.cvtd2mask.128
+    1, // llvm.x86.avx512.cvtd2mask.256
+    1, // llvm.x86.avx512.cvtd2mask.512
+    1, // llvm.x86.avx512.cvtq2mask.128
+    1, // llvm.x86.avx512.cvtq2mask.256
+    1, // llvm.x86.avx512.cvtq2mask.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.cvtw2mask.128
+    1, // llvm.x86.avx512.cvtw2mask.256
+    1, // llvm.x86.avx512.cvtw2mask.512
+    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
+    19, // llvm.x86.avx512.gatherpf.dpd.512
+    19, // llvm.x86.avx512.gatherpf.dps.512
+    19, // llvm.x86.avx512.gatherpf.qpd.512
+    19, // llvm.x86.avx512.gatherpf.qps.512
+    1, // llvm.x86.avx512.kand.w
+    1, // llvm.x86.avx512.kandn.w
+    1, // llvm.x86.avx512.knot.w
+    1, // llvm.x86.avx512.kor.w
+    1, // llvm.x86.avx512.kortestc.w
+    1, // llvm.x86.avx512.kortestz.w
+    1, // llvm.x86.avx512.kunpck.bw
+    1, // llvm.x86.avx512.kunpck.dq
+    1, // llvm.x86.avx512.kunpck.wd
+    1, // llvm.x86.avx512.kxnor.w
+    1, // llvm.x86.avx512.kxor.w
+    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.broadcastf32x2.256
+    1, // llvm.x86.avx512.mask.broadcastf32x2.512
+    1, // llvm.x86.avx512.mask.broadcastf32x4.256
+    1, // llvm.x86.avx512.mask.broadcastf32x4.512
+    1, // llvm.x86.avx512.mask.broadcastf32x8.512
+    1, // llvm.x86.avx512.mask.broadcastf64x2.256
+    1, // llvm.x86.avx512.mask.broadcastf64x2.512
+    1, // llvm.x86.avx512.mask.broadcastf64x4.512
+    1, // llvm.x86.avx512.mask.broadcasti32x2.128
+    1, // llvm.x86.avx512.mask.broadcasti32x2.256
+    1, // llvm.x86.avx512.mask.broadcasti32x2.512
+    1, // llvm.x86.avx512.mask.broadcasti32x4.256
+    1, // llvm.x86.avx512.mask.broadcasti32x4.512
+    1, // llvm.x86.avx512.mask.broadcasti32x8.512
+    1, // llvm.x86.avx512.mask.broadcasti64x2.256
+    1, // llvm.x86.avx512.mask.broadcasti64x2.512
+    1, // llvm.x86.avx512.mask.broadcasti64x4.512
+    1, // llvm.x86.avx512.mask.cmp.b.128
+    1, // llvm.x86.avx512.mask.cmp.b.256
+    1, // llvm.x86.avx512.mask.cmp.b.512
+    1, // llvm.x86.avx512.mask.cmp.d.128
+    1, // llvm.x86.avx512.mask.cmp.d.256
+    1, // llvm.x86.avx512.mask.cmp.d.512
+    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.q.128
+    1, // llvm.x86.avx512.mask.cmp.q.256
+    1, // llvm.x86.avx512.mask.cmp.q.512
+    1, // llvm.x86.avx512.mask.cmp.sd
+    1, // llvm.x86.avx512.mask.cmp.ss
+    1, // llvm.x86.avx512.mask.cmp.w.128
+    1, // llvm.x86.avx512.mask.cmp.w.256
+    1, // llvm.x86.avx512.mask.cmp.w.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
+    19, // llvm.x86.avx512.mask.compress.store.d.128
+    19, // llvm.x86.avx512.mask.compress.store.d.256
+    19, // llvm.x86.avx512.mask.compress.store.d.512
+    19, // llvm.x86.avx512.mask.compress.store.pd.128
+    19, // llvm.x86.avx512.mask.compress.store.pd.256
+    19, // llvm.x86.avx512.mask.compress.store.pd.512
+    19, // llvm.x86.avx512.mask.compress.store.ps.128
+    19, // llvm.x86.avx512.mask.compress.store.ps.256
+    19, // llvm.x86.avx512.mask.compress.store.ps.512
+    19, // llvm.x86.avx512.mask.compress.store.q.128
+    19, // llvm.x86.avx512.mask.compress.store.q.256
+    19, // llvm.x86.avx512.mask.compress.store.q.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.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.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
+    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.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.pabs.b.128
+    1, // llvm.x86.avx512.mask.pabs.b.256
+    1, // llvm.x86.avx512.mask.pabs.b.512
+    1, // llvm.x86.avx512.mask.pabs.d.128
+    1, // llvm.x86.avx512.mask.pabs.d.256
+    1, // llvm.x86.avx512.mask.pabs.d.512
+    1, // llvm.x86.avx512.mask.pabs.q.128
+    1, // llvm.x86.avx512.mask.pabs.q.256
+    1, // llvm.x86.avx512.mask.pabs.q.512
+    1, // llvm.x86.avx512.mask.pabs.w.128
+    1, // llvm.x86.avx512.mask.pabs.w.256
+    1, // llvm.x86.avx512.mask.pabs.w.512
+    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.pavg.b.128
+    1, // llvm.x86.avx512.mask.pavg.b.256
+    1, // llvm.x86.avx512.mask.pavg.b.512
+    1, // llvm.x86.avx512.mask.pavg.w.128
+    1, // llvm.x86.avx512.mask.pavg.w.256
+    1, // llvm.x86.avx512.mask.pavg.w.512
+    1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.128
+    1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.256
+    1, // llvm.x86.avx512.mask.pbroadcast.b.gpr.512
+    1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.128
+    1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.256
+    1, // llvm.x86.avx512.mask.pbroadcast.d.gpr.512
+    1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.128
+    1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.256
+    1, // llvm.x86.avx512.mask.pbroadcast.q.gpr.512
+    1, // llvm.x86.avx512.mask.pbroadcast.q.mem.512
+    1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.128
+    1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.256
+    1, // llvm.x86.avx512.mask.pbroadcast.w.gpr.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
+    19, // llvm.x86.avx512.mask.pmov.db.mem.128
+    19, // llvm.x86.avx512.mask.pmov.db.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmov.dw.mem.128
+    19, // llvm.x86.avx512.mask.pmov.dw.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmov.qb.mem.128
+    19, // llvm.x86.avx512.mask.pmov.qb.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmov.qd.mem.128
+    19, // llvm.x86.avx512.mask.pmov.qd.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmov.qw.mem.128
+    19, // llvm.x86.avx512.mask.pmov.qw.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmov.wb.mem.128
+    19, // llvm.x86.avx512.mask.pmov.wb.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovs.db.mem.128
+    19, // llvm.x86.avx512.mask.pmovs.db.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovs.dw.mem.128
+    19, // llvm.x86.avx512.mask.pmovs.dw.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovs.qb.mem.128
+    19, // llvm.x86.avx512.mask.pmovs.qb.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovs.qd.mem.128
+    19, // llvm.x86.avx512.mask.pmovs.qd.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovs.qw.mem.128
+    19, // llvm.x86.avx512.mask.pmovs.qw.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovs.wb.mem.128
+    19, // llvm.x86.avx512.mask.pmovs.wb.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovus.db.mem.128
+    19, // llvm.x86.avx512.mask.pmovus.db.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovus.dw.mem.128
+    19, // llvm.x86.avx512.mask.pmovus.dw.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovus.qb.mem.128
+    19, // llvm.x86.avx512.mask.pmovus.qb.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovus.qd.mem.128
+    19, // llvm.x86.avx512.mask.pmovus.qd.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovus.qw.mem.128
+    19, // llvm.x86.avx512.mask.pmovus.qw.mem.256
+    19, // 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
+    19, // llvm.x86.avx512.mask.pmovus.wb.mem.128
+    19, // llvm.x86.avx512.mask.pmovus.wb.mem.256
+    19, // llvm.x86.avx512.mask.pmovus.wb.mem.512
+    1, // llvm.x86.avx512.mask.pmul.hr.sw.128
+    1, // llvm.x86.avx512.mask.pmul.hr.sw.256
+    1, // llvm.x86.avx512.mask.pmul.hr.sw.512
+    1, // llvm.x86.avx512.mask.pmulh.w.128
+    1, // llvm.x86.avx512.mask.pmulh.w.256
+    1, // llvm.x86.avx512.mask.pmulh.w.512
+    1, // llvm.x86.avx512.mask.pmulhu.w.128
+    1, // llvm.x86.avx512.mask.pmulhu.w.256
+    1, // llvm.x86.avx512.mask.pmulhu.w.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.shuf.f32x4
+    1, // llvm.x86.avx512.mask.shuf.f32x4.256
+    1, // llvm.x86.avx512.mask.shuf.f64x2
+    1, // llvm.x86.avx512.mask.shuf.f64x2.256
+    1, // llvm.x86.avx512.mask.shuf.i32x4
+    1, // llvm.x86.avx512.mask.shuf.i32x4.256
+    1, // llvm.x86.avx512.mask.shuf.i64x2
+    1, // llvm.x86.avx512.mask.shuf.i64x2.256
+    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
+    19, // 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.ucmp.b.128
+    1, // llvm.x86.avx512.mask.ucmp.b.256
+    1, // llvm.x86.avx512.mask.ucmp.b.512
+    1, // llvm.x86.avx512.mask.ucmp.d.128
+    1, // llvm.x86.avx512.mask.ucmp.d.256
+    1, // llvm.x86.avx512.mask.ucmp.d.512
+    1, // llvm.x86.avx512.mask.ucmp.q.128
+    1, // llvm.x86.avx512.mask.ucmp.q.256
+    1, // llvm.x86.avx512.mask.ucmp.q.512
+    1, // llvm.x86.avx512.mask.ucmp.w.128
+    1, // llvm.x86.avx512.mask.ucmp.w.256
+    1, // llvm.x86.avx512.mask.ucmp.w.512
+    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.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.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.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
+    14, // llvm.x86.avx512.movntdqa
+    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.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.ptestm.b.128
+    1, // llvm.x86.avx512.ptestm.b.256
+    1, // llvm.x86.avx512.ptestm.b.512
+    1, // llvm.x86.avx512.ptestm.d.128
+    1, // llvm.x86.avx512.ptestm.d.256
+    1, // llvm.x86.avx512.ptestm.d.512
+    1, // llvm.x86.avx512.ptestm.q.128
+    1, // llvm.x86.avx512.ptestm.q.256
+    1, // llvm.x86.avx512.ptestm.q.512
+    1, // llvm.x86.avx512.ptestm.w.128
+    1, // llvm.x86.avx512.ptestm.w.256
+    1, // llvm.x86.avx512.ptestm.w.512
+    1, // llvm.x86.avx512.ptestnm.b.128
+    1, // llvm.x86.avx512.ptestnm.b.256
+    1, // llvm.x86.avx512.ptestnm.b.512
+    1, // llvm.x86.avx512.ptestnm.d.128
+    1, // llvm.x86.avx512.ptestnm.d.256
+    1, // llvm.x86.avx512.ptestnm.d.512
+    1, // llvm.x86.avx512.ptestnm.q.128
+    1, // llvm.x86.avx512.ptestnm.q.256
+    1, // llvm.x86.avx512.ptestnm.q.512
+    1, // llvm.x86.avx512.ptestnm.w.128
+    1, // llvm.x86.avx512.ptestnm.w.256
+    1, // llvm.x86.avx512.ptestnm.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
+    19, // llvm.x86.avx512.scatter.dpd.512
+    19, // llvm.x86.avx512.scatter.dpi.512
+    19, // llvm.x86.avx512.scatter.dpq.512
+    19, // llvm.x86.avx512.scatter.dps.512
+    19, // llvm.x86.avx512.scatter.qpd.512
+    19, // llvm.x86.avx512.scatter.qpi.512
+    19, // llvm.x86.avx512.scatter.qpq.512
+    19, // llvm.x86.avx512.scatter.qps.512
+    19, // llvm.x86.avx512.scatterdiv2.df
+    19, // llvm.x86.avx512.scatterdiv2.di
+    19, // llvm.x86.avx512.scatterdiv4.df
+    19, // llvm.x86.avx512.scatterdiv4.di
+    19, // llvm.x86.avx512.scatterdiv4.sf
+    19, // llvm.x86.avx512.scatterdiv4.si
+    19, // llvm.x86.avx512.scatterdiv8.sf
+    19, // llvm.x86.avx512.scatterdiv8.si
+    19, // llvm.x86.avx512.scatterpf.dpd.512
+    19, // llvm.x86.avx512.scatterpf.dps.512
+    19, // llvm.x86.avx512.scatterpf.qpd.512
+    19, // llvm.x86.avx512.scatterpf.qps.512
+    19, // llvm.x86.avx512.scattersiv2.df
+    19, // llvm.x86.avx512.scattersiv2.di
+    19, // llvm.x86.avx512.scattersiv4.df
+    19, // llvm.x86.avx512.scattersiv4.di
+    19, // llvm.x86.avx512.scattersiv4.sf
+    19, // llvm.x86.avx512.scattersiv4.si
+    19, // llvm.x86.avx512.scattersiv8.sf
+    19, // 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.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
+    3, // llvm.x86.fxrstor
+    3, // llvm.x86.fxrstor64
+    3, // llvm.x86.fxsave
+    3, // llvm.x86.fxsave64
+    3, // llvm.x86.int
+    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
+    3, // llvm.x86.rdfsbase.32
+    3, // llvm.x86.rdfsbase.64
+    3, // llvm.x86.rdgsbase.32
+    3, // llvm.x86.rdgsbase.64
+    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.rdtsc
+    19, // llvm.x86.rdtscp
+    3, // llvm.x86.seh.ehguard
+    3, // llvm.x86.seh.ehregnode
+    1, // llvm.x86.seh.lsda
+    1, // llvm.x86.seh.recoverfp
+    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
+    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.pavg.b
+    1, // llvm.x86.sse2.pavg.w
+    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
+    14, // 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
+    14, // llvm.x86.sse41.movntdqa
+    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.b.128
+    1, // llvm.x86.ssse3.pabs.d
+    1, // llvm.x86.ssse3.pabs.d.128
+    1, // llvm.x86.ssse3.pabs.w
+    1, // llvm.x86.ssse3.pabs.w.128
+    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
+    19, // llvm.x86.subborrow.u32
+    19, // 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
+    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.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
+    36, // llvm.xcore.chkct
+    3, // llvm.xcore.clre
+    36, // llvm.xcore.clrpt
+    3, // llvm.xcore.clrsr
+    1, // llvm.xcore.crc32
+    1, // llvm.xcore.crc8
+    36, // llvm.xcore.edu
+    36, // llvm.xcore.eeu
+    36, // llvm.xcore.endin
+    36, // llvm.xcore.freer
+    3, // llvm.xcore.geted
+    3, // llvm.xcore.getet
+    1, // llvm.xcore.getid
+    3, // llvm.xcore.getps
+    3, // llvm.xcore.getr
+    36, // llvm.xcore.getst
+    36, // llvm.xcore.getts
+    36, // llvm.xcore.in
+    36, // llvm.xcore.inct
+    36, // llvm.xcore.initcp
+    36, // llvm.xcore.initdp
+    36, // llvm.xcore.initlr
+    36, // llvm.xcore.initpc
+    36, // llvm.xcore.initsp
+    36, // llvm.xcore.inshr
+    36, // llvm.xcore.int
+    36, // llvm.xcore.mjoin
+    36, // llvm.xcore.msync
+    36, // llvm.xcore.out
+    36, // llvm.xcore.outct
+    36, // llvm.xcore.outshr
+    36, // llvm.xcore.outt
+    36, // llvm.xcore.peek
+    36, // llvm.xcore.setc
+    37, // llvm.xcore.setclk
+    36, // llvm.xcore.setd
+    36, // llvm.xcore.setev
+    3, // llvm.xcore.setps
+    36, // llvm.xcore.setpsc
+    36, // llvm.xcore.setpt
+    37, // llvm.xcore.setrdy
+    3, // llvm.xcore.setsr
+    36, // llvm.xcore.settw
+    36, // llvm.xcore.setv
+    1, // llvm.xcore.sext
+    3, // llvm.xcore.ssync
+    36, // llvm.xcore.syncr
+    36, // llvm.xcore.testct
+    36, // llvm.xcore.testwct
+    14, // 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 36: {
+      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 37: {
+      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 4: {
+      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 23: {
+      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 19: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ArgMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 16: {
+      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 6: {
+      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 22: {
+      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 20: {
+      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 21: {
+      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 18: {
+      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 15: {
+      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 17: {
+      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 25: {
+      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 26: {
+      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 27: {
+      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 13: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::InaccessibleMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 29: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 33: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::WriteOnly,Attribute::ArgMemOnly};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 14: {
+      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 32: {
+      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 11: {
+      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 7: {
+      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 8: {
+      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 10: {
+      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 24: {
+      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 9: {
+      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 30: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 28: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::Convergent,Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 12: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoReturn};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 35: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::NoDuplicate};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 5: {
+      return AttributeList();
+      }
+    case 31: {
+      const Attribute::AttrKind Atts[] = {Attribute::ReadNone};
+      AS[0] = AttributeList::get(C, AttributeList::FunctionIndex, Atts);
+      NumAttrs = 1;
+      break;
+      }
+    case 34: {
+      const Attribute::AttrKind Atts[] = {Attribute::NoReturn};
+      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',
+  '_', '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', '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', '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', 's', 'u', 'b', '\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', 's', 'a', 't', '\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', '_', 'u', 's', 'a', 't', '\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', '_', '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', '_', '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', '_', 'S', 'I', '_', 't', 'o', '_', 'S', 'X', 'T', 'H', 'I',
+  '_', 'a', 's', 'r', 'h', '\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', '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',
+  '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', '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', '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', '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', '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', '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', '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', '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',
+  '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', 'b',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A',
+  'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', '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', 'b', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', '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', 'l', 'u', 't', 'b', '_', 'd', 'v', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'H', 'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6',
+  '_', 'v', 'l', 'u', 't', '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', 'l', 'u', 't', 'b', '_', 'd', 'v', '_',
+  'a', 'c', 'c', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'H',
+  'E', 'X', 'A', 'G', 'O', 'N', '_', 'V', '6', '_', 'v', 'l', 'u', 't', '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', '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', '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',
+  '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', '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', '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', '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', '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', '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', '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', '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', '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', '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', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'b', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'd', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_',
+  'l', 'd', 'h', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b',
+  'r', 'e', 'v', '_', 'l', 'd', 'u', 'b', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l', 'd', 'u', 'h', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'b', 'r', 'e', 'v', '_', 'l',
+  'd', 'w', '\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', '\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', 'w', '\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', '\000', '_', '_', 'n', 'v', 'v', 'm', '_', 'b',
+  'a', 'r', '_', 'n', '\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', '_', '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', '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', '_', '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', '_', '_', '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', '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', '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',
+  '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', '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', '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', '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', '1', '2', '8', '\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', '2', 'f',
+  '1', '2', '8', '_', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e', 'r', 'm',
+  '2', 'f', '1', '2', '8', '_', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'p', 'e',
+  'r', 'm', '2', 'f', '1', '2', '8', '_', 's', 'i', '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', 'o', 'v', 'n', 't', 'd', 'q', 'a', '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', 'b',
+  's', 'b', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '2', '5', '6', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'b', 's', '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', 'a', 'v', 'g', 'b', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'v', 'g', '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', '_', 'p', 'e', 'r', 'm',
+  't', 'i', '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', 'b', '2', 'm', 'a', 's', 'k',
+  '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'v', 't', 'b', '2', 'm', 'a', 's', 'k', '5', '1', '2', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'c', 'v', 't', 'd', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', 'd', '2', 'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'd',
+  '2', 'm', 'a', 's', 'k', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', '2', 'm',
+  'a', 's', 'k', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', '2', 'm', 'a', 's',
+  'k', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'v', 't', 'q', '2', 'm', 'a', 's', 'k', '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', '_', 'c', 'v', 't',
+  'w', '2', 'm', 'a', 's', 'k', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'w', '2',
+  'm', 'a', 's', 'k', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v', 't', 'w', '2', 'm', 'a',
+  's', 'k', '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', '_', 'k', 'a', 'n', 'd', 'h', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'a', 'n',
+  'd', 'n', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'k', 'n', 'o', 't', 'h', 'i', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'o', 'r',
+  'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'k', 'o', 'r', 't', 'e', 's', 't', 'c', 'h', 'i', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k',
+  'o', 'r', 't', 'e', 's', 't', 'z', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'u', 'n', 'p', 'c',
+  'k', 'h', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'k', 'u', 'n', 'p', 'c', 'k', 'd', 'i', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'k', 'u',
+  'n', 'p', 'c', 'k', 's', 'i', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'k', 'x', 'n', 'o', 'r', 'h', 'i', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'k', 'x', 'o', 'r', 'h', 'i', '\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', '_', 'b', 'r', 'o', 'a', 'd', 'c',
+  'a', 's', 't', 'f', '3', '2', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2',
+  'x', '2', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'f', '3', '2', 'x', '4', '_', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
+  'f', '3', '2', 'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd',
+  'c', 'a', 's', 't', 'f', '3', '2', 'x', '8', '_', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '6',
+  '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r',
+  'o', 'a', 'd', 'c', 'a', 's', 't', 'f', '6', '4', 'x', '2', '_', '5', '1',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's',
+  't', 'f', '6', '4', 'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a',
+  'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '2', '_', '1', '2', '8', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i',
+  '3', '2', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b',
+  'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x', '2', '_', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a',
+  's', 't', 'i', '3', '2', 'x', '4', '_', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '3', '2', 'x',
+  '4', '_', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
+  'i', '3', '2', 'x', '8', '_', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '6', '4', 'x', '2', '_',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c',
+  'a', 's', 't', 'i', '6', '4', 'x', '2', '_', '5', '1', '2', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'i', '6', '4',
+  'x', '4', '_', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 'd', '1', '2', '8',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 'd', '2', '5', '6', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'c', 'm', 'p', 'p', 'd', '5', '1', '2', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'c', 'm', 'p', 'p', 's', '1', '2', '8', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'c', 'm', 'p', 'p', 's', '2', '5', '6', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'c', 'm', 'p', 'p', 's', '5', '1', '2', '_', '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', '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', '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', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'c', 'v',
+  't', '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', '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', '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', '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',
+  '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',
+  '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', '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', 'p', 'd', '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', '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',
+  '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', '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', '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', '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', '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', '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', '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', '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', '_', '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', 'b', 's',
+  'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'b',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'b', '5',
+  '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'd', '5', '1', '2', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'a', 'b', 's', 'q', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'b', 's', 'q', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'a', 'b', 's', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'a', 'b', 's', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'b', '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', 's', 'b', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 's', 'b', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'a', 'd', 'd', 's', 'w', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'd', 'd', 'u', 's', 'b', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'd', 'd', 'u', 's', 'w', '2', '5', '6', '_', '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', 'a', 'v', 'g', 'b', '1', '2', '8', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'p', 'a', 'v', 'g', 'b', '2', '5', '6', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'a', 'v', 'g', 'b', '5', '1', '2', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'a', 'v', 'g', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 'a', 'v', 'g', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 'a', 'v', 'g', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'b', '1', '2', '8', '_', 'g',
+  'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
+  'a', 's', 't', 'b', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'b', '5', '1',
+  '2', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'd', '1', '2', '8', '_', 'g', 'p', 'r', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
+  'd', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'd', '5', '1', '2', '_', 'g',
+  'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
+  'a', 's', 't', 'q', '1', '2', '8', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'q', '2', '5',
+  '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 'q', '5', '1', '2', '_', 'g', 'p', 'r', '_',
+  'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't',
+  'q', '5', '1', '2', '_', 'm', 'e', 'm', '_', 'm', 'a', 's', 'k', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'w', '1', '2', '8', '_', 'g',
+  'p', 'r', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c',
+  'a', 's', 't', 'w', '2', '5', '6', '_', 'g', 'p', 'r', '_', 'm', 'a', 's',
+  'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 'b', 'r', 'o', 'a', 'd', 'c', 'a', 's', 't', 'w', '5', '1',
+  '2', '_', 'g', 'p', 'r', '_', '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', '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', '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', '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', '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', '1', '2', '8', '_', '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', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a',
+  's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 'm', 'a', 'd', 'd', 'w', 'd', '2', '5', '6', '_', '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', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w', '1', '2',
+  '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r', 's', 'w',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l', 'h', 'r',
+  's', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
+  'h', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
+  'h', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
+  'h', 'w', '5', '1', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u', 'l',
+  'h', 'u', 'w', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm', 'u',
+  'l', 'h', 'u', 'w', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'm',
+  'u', 'l', 'h', 'u', 'w', '5', '1', '2', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
+  's', 'b', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u', 'b',
+  's', 'w', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 's', 'u',
+  'b', 'u', 's', 'b', '2', '5', '6', '_', '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', '1', '2', '8', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  'p', 's', 'u', 'b', 'u', 's', 'w', '2', '5', '6', '_', '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', 'h', 'u', 'f', '_', 'f', '3', '2', 'x', '4', '_', 'm',
+  'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f', '3', '2', 'x', '4', '_',
+  '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'f',
+  '6', '4', 'x', '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_',
+  'f', '6', '4', 'x', '2', '_', '2', '5', '6', '_', 'm', 'a', 's', 'k', '\000',
+  '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_',
+  's', 'h', 'u', 'f', '_', 'i', '3', '2', 'x', '4', '_', 'm', 'a', 's', 'k',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 's', 'h', 'u', 'f', '_', 'i', '3', '2', 'x', '4', '_', '2', '5', '6',
+  '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'i', '6', '4', 'x',
+  '2', '_', 'm', 'a', 's', 'k', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 's', 'h', 'u', 'f', '_', 'i', '6', '4',
+  'x', '2', '_', '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', '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', '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', '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', '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', '_', 'm', 'o', 'v', 'n', 't', 'd', 'q', 'a', '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', 'm', 'u', 'l', 'd', 'q', '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', '_', 'p', 't', 'e', 's',
+  't', 'm', 'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'b', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'b', '5', '1', '2', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  't', 'e', 's', 't', 'm', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't',
+  'm', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'd', '5', '1',
+  '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 't', 'e', 's', 't', 'm', 'q', '1', '2', '8', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't',
+  'e', 's', 't', 'm', 'q', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l',
+  't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm',
+  'q', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'm', 'w', '1', '2', '8',
+  '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2',
+  '_', 'p', 't', 'e', 's', 't', 'm', 'w', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e',
+  's', 't', 'm', 'w', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
+  'b', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'b', '2', '5',
+  '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'b', '5', '1', '2', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  't', 'e', 's', 't', 'n', 'm', 'd', '1', '2', '8', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
+  't', 'n', 'm', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
+  'd', '5', '1', '2', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'q', '1', '2',
+  '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'q', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p',
+  't', 'e', 's', 't', 'n', 'm', 'q', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's',
+  't', 'n', 'm', 'w', '1', '2', '8', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm',
+  'w', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'p', 't', 'e', 's', 't', 'n', 'm', 'w', '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', '_', 'v', 'b', 'r', 'o', 'a',
+  'd', 'c', 'a', 's', 't', 's', 'd', '5', '1', '2', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'b', 'r', 'o',
+  'a', 'd', 'c', 'a', 's', 't', 's', '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', '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', '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', '\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', '_', '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', 's', 'u', 'b', 'p', 'd', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's',
+  'u', 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'p', 's', '2', '5', '6', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'f', 'm', 's', 'u', 'b', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't',
+  'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 's',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 'd', '\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', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'f', 'm', 's', 'u', 'b', 'a', 'd', 'd', 'p', 's', '\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', '\000', '_', '_', 'b', 'u',
+  'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm',
+  'a', 'd', 'd', 'p', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n',
+  '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 'd',
+  '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i',
+  'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 'p', 's', '\000', '_',
+  '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v',
+  'f', 'n', 'm', 'a', 'd', 'd', 'p', 's', '2', '5', '6', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
+  'm', 'a', 'd', 'd', 's', 'd', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i',
+  'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 'a', 'd', 'd', 's',
+  's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3',
+  '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 'd', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n',
+  'm', 's', 'u', 'b', 'p', 'd', '2', '5', '6', '\000', '_', '_', 'b', 'u', 'i',
+  'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's',
+  'u', 'b', 'p', 's', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_',
+  'i', 'a', '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 'p', 's', '2',
+  '5', '6', '\000', '_', '_', 'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a',
+  '3', '2', '_', 'v', 'f', 'n', 'm', 's', 'u', 'b', 's', 'd', '\000', '_', '_',
+  'b', 'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'v', 'f',
+  'n', 'm', 's', 'u', 'b', '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', '_', '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', '_', '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', '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', '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', '_', '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', '_',
+  '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', 'a', 'v', 'g', 'b', '1', '2', '8', '\000', '_', '_', 'b',
+  'u', 'i', 'l', 't', 'i', 'n', '_', 'i', 'a', '3', '2', '_', 'p', 'a', 'v',
+  'g', 'w', '1', '2', '8', '\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', 'o', 'v', 'n',
+  't', 'd', 'q', 'a', '\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', 'b', '1', '2', '8', '\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', 'd', '1', '2', '8', '\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', 'a',
+  'b', 's', 'w', '1', '2', '8', '\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', '_', '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', '_', '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_permute, 596}, // __builtin_amdgcn_ds_permute
+      {Intrinsic::amdgcn_ds_swizzle, 624}, // __builtin_amdgcn_ds_swizzle
+      {Intrinsic::amdgcn_fmed3, 652}, // __builtin_amdgcn_fmed3
+      {Intrinsic::amdgcn_fmul_legacy, 675}, // __builtin_amdgcn_fmul_legacy
+      {Intrinsic::amdgcn_groupstaticsize, 704}, // __builtin_amdgcn_groupstaticsize
+      {Intrinsic::amdgcn_implicit_buffer_ptr, 737}, // __builtin_amdgcn_implicit_buffer_ptr
+      {Intrinsic::amdgcn_implicitarg_ptr, 774}, // __builtin_amdgcn_implicitarg_ptr
+      {Intrinsic::amdgcn_interp_mov, 807}, // __builtin_amdgcn_interp_mov
+      {Intrinsic::amdgcn_interp_p1, 835}, // __builtin_amdgcn_interp_p1
+      {Intrinsic::amdgcn_interp_p2, 862}, // __builtin_amdgcn_interp_p2
+      {Intrinsic::amdgcn_kernarg_segment_ptr, 889}, // __builtin_amdgcn_kernarg_segment_ptr
+      {Intrinsic::amdgcn_lerp, 926}, // __builtin_amdgcn_lerp
+      {Intrinsic::amdgcn_mbcnt_hi, 948}, // __builtin_amdgcn_mbcnt_hi
+      {Intrinsic::amdgcn_mbcnt_lo, 974}, // __builtin_amdgcn_mbcnt_lo
+      {Intrinsic::amdgcn_mqsad_pk_u16_u8, 1000}, // __builtin_amdgcn_mqsad_pk_u16_u8
+      {Intrinsic::amdgcn_mqsad_u32_u8, 1033}, // __builtin_amdgcn_mqsad_u32_u8
+      {Intrinsic::amdgcn_msad_u8, 1063}, // __builtin_amdgcn_msad_u8
+      {Intrinsic::amdgcn_qsad_pk_u16_u8, 1088}, // __builtin_amdgcn_qsad_pk_u16_u8
+      {Intrinsic::amdgcn_queue_ptr, 1120}, // __builtin_amdgcn_queue_ptr
+      {Intrinsic::amdgcn_rcp_legacy, 1147}, // __builtin_amdgcn_rcp_legacy
+      {Intrinsic::amdgcn_readfirstlane, 1175}, // __builtin_amdgcn_readfirstlane
+      {Intrinsic::amdgcn_readlane, 1206}, // __builtin_amdgcn_readlane
+      {Intrinsic::amdgcn_rsq_legacy, 1232}, // __builtin_amdgcn_rsq_legacy
+      {Intrinsic::amdgcn_s_barrier, 1260}, // __builtin_amdgcn_s_barrier
+      {Intrinsic::amdgcn_s_dcache_inv, 1287}, // __builtin_amdgcn_s_dcache_inv
+      {Intrinsic::amdgcn_s_dcache_inv_vol, 1317}, // __builtin_amdgcn_s_dcache_inv_vol
+      {Intrinsic::amdgcn_s_dcache_wb, 1351}, // __builtin_amdgcn_s_dcache_wb
+      {Intrinsic::amdgcn_s_dcache_wb_vol, 1380}, // __builtin_amdgcn_s_dcache_wb_vol
+      {Intrinsic::amdgcn_s_decperflevel, 1413}, // __builtin_amdgcn_s_decperflevel
+      {Intrinsic::amdgcn_s_getreg, 1445}, // __builtin_amdgcn_s_getreg
+      {Intrinsic::amdgcn_s_incperflevel, 1471}, // __builtin_amdgcn_s_incperflevel
+      {Intrinsic::amdgcn_s_memrealtime, 1503}, // __builtin_amdgcn_s_memrealtime
+      {Intrinsic::amdgcn_s_memtime, 1534}, // __builtin_amdgcn_s_memtime
+      {Intrinsic::amdgcn_s_sendmsg, 1561}, // __builtin_amdgcn_s_sendmsg
+      {Intrinsic::amdgcn_s_sendmsghalt, 1588}, // __builtin_amdgcn_s_sendmsghalt
+      {Intrinsic::amdgcn_s_sleep, 1619}, // __builtin_amdgcn_s_sleep
+      {Intrinsic::amdgcn_s_waitcnt, 1644}, // __builtin_amdgcn_s_waitcnt
+      {Intrinsic::amdgcn_sad_hi_u8, 1671}, // __builtin_amdgcn_sad_hi_u8
+      {Intrinsic::amdgcn_sad_u16, 1698}, // __builtin_amdgcn_sad_u16
+      {Intrinsic::amdgcn_sad_u8, 1723}, // __builtin_amdgcn_sad_u8
+      {Intrinsic::amdgcn_wave_barrier, 1747}, // __builtin_amdgcn_wave_barrier
+      {Intrinsic::amdgcn_workgroup_id_x, 1777}, // __builtin_amdgcn_workgroup_id_x
+      {Intrinsic::amdgcn_workgroup_id_y, 1809}, // __builtin_amdgcn_workgroup_id_y
+      {Intrinsic::amdgcn_workgroup_id_z, 1841}, // __builtin_amdgcn_workgroup_id_z
+    };
+    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, 1873}, // __builtin_arm_cdp
+      {Intrinsic::arm_cdp2, 1891}, // __builtin_arm_cdp2
+      {Intrinsic::arm_dmb, 224}, // __builtin_arm_dmb
+      {Intrinsic::arm_dsb, 242}, // __builtin_arm_dsb
+      {Intrinsic::arm_get_fpscr, 1910}, // __builtin_arm_get_fpscr
+      {Intrinsic::arm_isb, 260}, // __builtin_arm_isb
+      {Intrinsic::arm_ldc, 1934}, // __builtin_arm_ldc
+      {Intrinsic::arm_ldc2, 1952}, // __builtin_arm_ldc2
+      {Intrinsic::arm_ldc2l, 1971}, // __builtin_arm_ldc2l
+      {Intrinsic::arm_ldcl, 1991}, // __builtin_arm_ldcl
+      {Intrinsic::arm_mcr, 2010}, // __builtin_arm_mcr
+      {Intrinsic::arm_mcr2, 2028}, // __builtin_arm_mcr2
+      {Intrinsic::arm_mrc, 2047}, // __builtin_arm_mrc
+      {Intrinsic::arm_mrc2, 2065}, // __builtin_arm_mrc2
+      {Intrinsic::arm_qadd, 2084}, // __builtin_arm_qadd
+      {Intrinsic::arm_qsub, 2103}, // __builtin_arm_qsub
+      {Intrinsic::arm_set_fpscr, 2122}, // __builtin_arm_set_fpscr
+      {Intrinsic::arm_ssat, 2146}, // __builtin_arm_ssat
+      {Intrinsic::arm_stc, 2165}, // __builtin_arm_stc
+      {Intrinsic::arm_stc2, 2183}, // __builtin_arm_stc2
+      {Intrinsic::arm_stc2l, 2202}, // __builtin_arm_stc2l
+      {Intrinsic::arm_stcl, 2222}, // __builtin_arm_stcl
+      {Intrinsic::arm_usat, 2241}, // __builtin_arm_usat
+    };
+    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, 2260}, // __builtin_bpf_load_byte
+      {Intrinsic::bpf_load_half, 2284}, // __builtin_bpf_load_half
+      {Intrinsic::bpf_load_word, 2308}, // __builtin_bpf_load_word
+      {Intrinsic::bpf_pseudo, 2332}, // __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, 2353}, // __builtin_HEXAGON_A2_abs
+      {Intrinsic::hexagon_A2_absp, 2378}, // __builtin_HEXAGON_A2_absp
+      {Intrinsic::hexagon_A2_abssat, 2404}, // __builtin_HEXAGON_A2_abssat
+      {Intrinsic::hexagon_A2_add, 2432}, // __builtin_HEXAGON_A2_add
+      {Intrinsic::hexagon_A2_addh_h16_hh, 2457}, // __builtin_HEXAGON_A2_addh_h16_hh
+      {Intrinsic::hexagon_A2_addh_h16_hl, 2490}, // __builtin_HEXAGON_A2_addh_h16_hl
+      {Intrinsic::hexagon_A2_addh_h16_lh, 2523}, // __builtin_HEXAGON_A2_addh_h16_lh
+      {Intrinsic::hexagon_A2_addh_h16_ll, 2556}, // __builtin_HEXAGON_A2_addh_h16_ll
+      {Intrinsic::hexagon_A2_addh_h16_sat_hh, 2589}, // __builtin_HEXAGON_A2_addh_h16_sat_hh
+      {Intrinsic::hexagon_A2_addh_h16_sat_hl, 2626}, // __builtin_HEXAGON_A2_addh_h16_sat_hl
+      {Intrinsic::hexagon_A2_addh_h16_sat_lh, 2663}, // __builtin_HEXAGON_A2_addh_h16_sat_lh
+      {Intrinsic::hexagon_A2_addh_h16_sat_ll, 2700}, // __builtin_HEXAGON_A2_addh_h16_sat_ll
+      {Intrinsic::hexagon_A2_addh_l16_hl, 2737}, // __builtin_HEXAGON_A2_addh_l16_hl
+      {Intrinsic::hexagon_A2_addh_l16_ll, 2770}, // __builtin_HEXAGON_A2_addh_l16_ll
+      {Intrinsic::hexagon_A2_addh_l16_sat_hl, 2803}, // __builtin_HEXAGON_A2_addh_l16_sat_hl
+      {Intrinsic::hexagon_A2_addh_l16_sat_ll, 2840}, // __builtin_HEXAGON_A2_addh_l16_sat_ll
+      {Intrinsic::hexagon_A2_addi, 2877}, // __builtin_HEXAGON_A2_addi
+      {Intrinsic::hexagon_A2_addp, 2903}, // __builtin_HEXAGON_A2_addp
+      {Intrinsic::hexagon_A2_addpsat, 2929}, // __builtin_HEXAGON_A2_addpsat
+      {Intrinsic::hexagon_A2_addsat, 2958}, // __builtin_HEXAGON_A2_addsat
+      {Intrinsic::hexagon_A2_addsp, 2986}, // __builtin_HEXAGON_A2_addsp
+      {Intrinsic::hexagon_A2_and, 3013}, // __builtin_HEXAGON_A2_and
+      {Intrinsic::hexagon_A2_andir, 3038}, // __builtin_HEXAGON_A2_andir
+      {Intrinsic::hexagon_A2_andp, 3065}, // __builtin_HEXAGON_A2_andp
+      {Intrinsic::hexagon_A2_aslh, 3091}, // __builtin_HEXAGON_A2_aslh
+      {Intrinsic::hexagon_A2_asrh, 3117}, // __builtin_HEXAGON_A2_asrh
+      {Intrinsic::hexagon_A2_combine_hh, 3143}, // __builtin_HEXAGON_A2_combine_hh
+      {Intrinsic::hexagon_A2_combine_hl, 3175}, // __builtin_HEXAGON_A2_combine_hl
+      {Intrinsic::hexagon_A2_combine_lh, 3207}, // __builtin_HEXAGON_A2_combine_lh
+      {Intrinsic::hexagon_A2_combine_ll, 3239}, // __builtin_HEXAGON_A2_combine_ll
+      {Intrinsic::hexagon_A2_combineii, 3271}, // __builtin_HEXAGON_A2_combineii
+      {Intrinsic::hexagon_A2_combinew, 3302}, // __builtin_HEXAGON_A2_combinew
+      {Intrinsic::hexagon_A2_max, 3332}, // __builtin_HEXAGON_A2_max
+      {Intrinsic::hexagon_A2_maxp, 3357}, // __builtin_HEXAGON_A2_maxp
+      {Intrinsic::hexagon_A2_maxu, 3383}, // __builtin_HEXAGON_A2_maxu
+      {Intrinsic::hexagon_A2_maxup, 3409}, // __builtin_HEXAGON_A2_maxup
+      {Intrinsic::hexagon_A2_min, 3436}, // __builtin_HEXAGON_A2_min
+      {Intrinsic::hexagon_A2_minp, 3461}, // __builtin_HEXAGON_A2_minp
+      {Intrinsic::hexagon_A2_minu, 3487}, // __builtin_HEXAGON_A2_minu
+      {Intrinsic::hexagon_A2_minup, 3513}, // __builtin_HEXAGON_A2_minup
+      {Intrinsic::hexagon_A2_neg, 3540}, // __builtin_HEXAGON_A2_neg
+      {Intrinsic::hexagon_A2_negp, 3565}, // __builtin_HEXAGON_A2_negp
+      {Intrinsic::hexagon_A2_negsat, 3591}, // __builtin_HEXAGON_A2_negsat
+      {Intrinsic::hexagon_A2_not, 3619}, // __builtin_HEXAGON_A2_not
+      {Intrinsic::hexagon_A2_notp, 3644}, // __builtin_HEXAGON_A2_notp
+      {Intrinsic::hexagon_A2_or, 3670}, // __builtin_HEXAGON_A2_or
+      {Intrinsic::hexagon_A2_orir, 3694}, // __builtin_HEXAGON_A2_orir
+      {Intrinsic::hexagon_A2_orp, 3720}, // __builtin_HEXAGON_A2_orp
+      {Intrinsic::hexagon_A2_roundsat, 3745}, // __builtin_HEXAGON_A2_roundsat
+      {Intrinsic::hexagon_A2_sat, 3775}, // __builtin_HEXAGON_A2_sat
+      {Intrinsic::hexagon_A2_satb, 3800}, // __builtin_HEXAGON_A2_satb
+      {Intrinsic::hexagon_A2_sath, 3826}, // __builtin_HEXAGON_A2_sath
+      {Intrinsic::hexagon_A2_satub, 3852}, // __builtin_HEXAGON_A2_satub
+      {Intrinsic::hexagon_A2_satuh, 3879}, // __builtin_HEXAGON_A2_satuh
+      {Intrinsic::hexagon_A2_sub, 3906}, // __builtin_HEXAGON_A2_sub
+      {Intrinsic::hexagon_A2_subh_h16_hh, 3931}, // __builtin_HEXAGON_A2_subh_h16_hh
+      {Intrinsic::hexagon_A2_subh_h16_hl, 3964}, // __builtin_HEXAGON_A2_subh_h16_hl
+      {Intrinsic::hexagon_A2_subh_h16_lh, 3997}, // __builtin_HEXAGON_A2_subh_h16_lh
+      {Intrinsic::hexagon_A2_subh_h16_ll, 4030}, // __builtin_HEXAGON_A2_subh_h16_ll
+      {Intrinsic::hexagon_A2_subh_h16_sat_hh, 4063}, // __builtin_HEXAGON_A2_subh_h16_sat_hh
+      {Intrinsic::hexagon_A2_subh_h16_sat_hl, 4100}, // __builtin_HEXAGON_A2_subh_h16_sat_hl
+      {Intrinsic::hexagon_A2_subh_h16_sat_lh, 4137}, // __builtin_HEXAGON_A2_subh_h16_sat_lh
+      {Intrinsic::hexagon_A2_subh_h16_sat_ll, 4174}, // __builtin_HEXAGON_A2_subh_h16_sat_ll
+      {Intrinsic::hexagon_A2_subh_l16_hl, 4211}, // __builtin_HEXAGON_A2_subh_l16_hl
+      {Intrinsic::hexagon_A2_subh_l16_ll, 4244}, // __builtin_HEXAGON_A2_subh_l16_ll
+      {Intrinsic::hexagon_A2_subh_l16_sat_hl, 4277}, // __builtin_HEXAGON_A2_subh_l16_sat_hl
+      {Intrinsic::hexagon_A2_subh_l16_sat_ll, 4314}, // __builtin_HEXAGON_A2_subh_l16_sat_ll
+      {Intrinsic::hexagon_A2_subp, 4351}, // __builtin_HEXAGON_A2_subp
+      {Intrinsic::hexagon_A2_subri, 4377}, // __builtin_HEXAGON_A2_subri
+      {Intrinsic::hexagon_A2_subsat, 4404}, // __builtin_HEXAGON_A2_subsat
+      {Intrinsic::hexagon_A2_svaddh, 4432}, // __builtin_HEXAGON_A2_svaddh
+      {Intrinsic::hexagon_A2_svaddhs, 4460}, // __builtin_HEXAGON_A2_svaddhs
+      {Intrinsic::hexagon_A2_svadduhs, 4489}, // __builtin_HEXAGON_A2_svadduhs
+      {Intrinsic::hexagon_A2_svavgh, 4519}, // __builtin_HEXAGON_A2_svavgh
+      {Intrinsic::hexagon_A2_svavghs, 4547}, // __builtin_HEXAGON_A2_svavghs
+      {Intrinsic::hexagon_A2_svnavgh, 4576}, // __builtin_HEXAGON_A2_svnavgh
+      {Intrinsic::hexagon_A2_svsubh, 4605}, // __builtin_HEXAGON_A2_svsubh
+      {Intrinsic::hexagon_A2_svsubhs, 4633}, // __builtin_HEXAGON_A2_svsubhs
+      {Intrinsic::hexagon_A2_svsubuhs, 4662}, // __builtin_HEXAGON_A2_svsubuhs
+      {Intrinsic::hexagon_A2_swiz, 4692}, // __builtin_HEXAGON_A2_swiz
+      {Intrinsic::hexagon_A2_sxtb, 4718}, // __builtin_HEXAGON_A2_sxtb
+      {Intrinsic::hexagon_A2_sxth, 4744}, // __builtin_HEXAGON_A2_sxth
+      {Intrinsic::hexagon_A2_sxtw, 4770}, // __builtin_HEXAGON_A2_sxtw
+      {Intrinsic::hexagon_A2_tfr, 4796}, // __builtin_HEXAGON_A2_tfr
+      {Intrinsic::hexagon_A2_tfrih, 4821}, // __builtin_HEXAGON_A2_tfrih
+      {Intrinsic::hexagon_A2_tfril, 4848}, // __builtin_HEXAGON_A2_tfril
+      {Intrinsic::hexagon_A2_tfrp, 4875}, // __builtin_HEXAGON_A2_tfrp
+      {Intrinsic::hexagon_A2_tfrpi, 4901}, // __builtin_HEXAGON_A2_tfrpi
+      {Intrinsic::hexagon_A2_tfrsi, 4928}, // __builtin_HEXAGON_A2_tfrsi
+      {Intrinsic::hexagon_A2_vabsh, 4955}, // __builtin_HEXAGON_A2_vabsh
+      {Intrinsic::hexagon_A2_vabshsat, 4982}, // __builtin_HEXAGON_A2_vabshsat
+      {Intrinsic::hexagon_A2_vabsw, 5012}, // __builtin_HEXAGON_A2_vabsw
+      {Intrinsic::hexagon_A2_vabswsat, 5039}, // __builtin_HEXAGON_A2_vabswsat
+      {Intrinsic::hexagon_A2_vaddb_map, 5069}, // __builtin_HEXAGON_A2_vaddb_map
+      {Intrinsic::hexagon_A2_vaddh, 5100}, // __builtin_HEXAGON_A2_vaddh
+      {Intrinsic::hexagon_A2_vaddhs, 5127}, // __builtin_HEXAGON_A2_vaddhs
+      {Intrinsic::hexagon_A2_vaddub, 5155}, // __builtin_HEXAGON_A2_vaddub
+      {Intrinsic::hexagon_A2_vaddubs, 5183}, // __builtin_HEXAGON_A2_vaddubs
+      {Intrinsic::hexagon_A2_vadduhs, 5212}, // __builtin_HEXAGON_A2_vadduhs
+      {Intrinsic::hexagon_A2_vaddw, 5241}, // __builtin_HEXAGON_A2_vaddw
+      {Intrinsic::hexagon_A2_vaddws, 5268}, // __builtin_HEXAGON_A2_vaddws
+      {Intrinsic::hexagon_A2_vavgh, 5296}, // __builtin_HEXAGON_A2_vavgh
+      {Intrinsic::hexagon_A2_vavghcr, 5323}, // __builtin_HEXAGON_A2_vavghcr
+      {Intrinsic::hexagon_A2_vavghr, 5352}, // __builtin_HEXAGON_A2_vavghr
+      {Intrinsic::hexagon_A2_vavgub, 5380}, // __builtin_HEXAGON_A2_vavgub
+      {Intrinsic::hexagon_A2_vavgubr, 5408}, // __builtin_HEXAGON_A2_vavgubr
+      {Intrinsic::hexagon_A2_vavguh, 5437}, // __builtin_HEXAGON_A2_vavguh
+      {Intrinsic::hexagon_A2_vavguhr, 5465}, // __builtin_HEXAGON_A2_vavguhr
+      {Intrinsic::hexagon_A2_vavguw, 5494}, // __builtin_HEXAGON_A2_vavguw
+      {Intrinsic::hexagon_A2_vavguwr, 5522}, // __builtin_HEXAGON_A2_vavguwr
+      {Intrinsic::hexagon_A2_vavgw, 5551}, // __builtin_HEXAGON_A2_vavgw
+      {Intrinsic::hexagon_A2_vavgwcr, 5578}, // __builtin_HEXAGON_A2_vavgwcr
+      {Intrinsic::hexagon_A2_vavgwr, 5607}, // __builtin_HEXAGON_A2_vavgwr
+      {Intrinsic::hexagon_A2_vcmpbeq, 5635}, // __builtin_HEXAGON_A2_vcmpbeq
+      {Intrinsic::hexagon_A2_vcmpbgtu, 5664}, // __builtin_HEXAGON_A2_vcmpbgtu
+      {Intrinsic::hexagon_A2_vcmpheq, 5694}, // __builtin_HEXAGON_A2_vcmpheq
+      {Intrinsic::hexagon_A2_vcmphgt, 5723}, // __builtin_HEXAGON_A2_vcmphgt
+      {Intrinsic::hexagon_A2_vcmphgtu, 5752}, // __builtin_HEXAGON_A2_vcmphgtu
+      {Intrinsic::hexagon_A2_vcmpweq, 5782}, // __builtin_HEXAGON_A2_vcmpweq
+      {Intrinsic::hexagon_A2_vcmpwgt, 5811}, // __builtin_HEXAGON_A2_vcmpwgt
+      {Intrinsic::hexagon_A2_vcmpwgtu, 5840}, // __builtin_HEXAGON_A2_vcmpwgtu
+      {Intrinsic::hexagon_A2_vconj, 5870}, // __builtin_HEXAGON_A2_vconj
+      {Intrinsic::hexagon_A2_vmaxb, 5897}, // __builtin_HEXAGON_A2_vmaxb
+      {Intrinsic::hexagon_A2_vmaxh, 5924}, // __builtin_HEXAGON_A2_vmaxh
+      {Intrinsic::hexagon_A2_vmaxub, 5951}, // __builtin_HEXAGON_A2_vmaxub
+      {Intrinsic::hexagon_A2_vmaxuh, 5979}, // __builtin_HEXAGON_A2_vmaxuh
+      {Intrinsic::hexagon_A2_vmaxuw, 6007}, // __builtin_HEXAGON_A2_vmaxuw
+      {Intrinsic::hexagon_A2_vmaxw, 6035}, // __builtin_HEXAGON_A2_vmaxw
+      {Intrinsic::hexagon_A2_vminb, 6062}, // __builtin_HEXAGON_A2_vminb
+      {Intrinsic::hexagon_A2_vminh, 6089}, // __builtin_HEXAGON_A2_vminh
+      {Intrinsic::hexagon_A2_vminub, 6116}, // __builtin_HEXAGON_A2_vminub
+      {Intrinsic::hexagon_A2_vminuh, 6144}, // __builtin_HEXAGON_A2_vminuh
+      {Intrinsic::hexagon_A2_vminuw, 6172}, // __builtin_HEXAGON_A2_vminuw
+      {Intrinsic::hexagon_A2_vminw, 6200}, // __builtin_HEXAGON_A2_vminw
+      {Intrinsic::hexagon_A2_vnavgh, 6227}, // __builtin_HEXAGON_A2_vnavgh
+      {Intrinsic::hexagon_A2_vnavghcr, 6255}, // __builtin_HEXAGON_A2_vnavghcr
+      {Intrinsic::hexagon_A2_vnavghr, 6285}, // __builtin_HEXAGON_A2_vnavghr
+      {Intrinsic::hexagon_A2_vnavgw, 6314}, // __builtin_HEXAGON_A2_vnavgw
+      {Intrinsic::hexagon_A2_vnavgwcr, 6342}, // __builtin_HEXAGON_A2_vnavgwcr
+      {Intrinsic::hexagon_A2_vnavgwr, 6372}, // __builtin_HEXAGON_A2_vnavgwr
+      {Intrinsic::hexagon_A2_vraddub, 6401}, // __builtin_HEXAGON_A2_vraddub
+      {Intrinsic::hexagon_A2_vraddub_acc, 6430}, // __builtin_HEXAGON_A2_vraddub_acc
+      {Intrinsic::hexagon_A2_vrsadub, 6463}, // __builtin_HEXAGON_A2_vrsadub
+      {Intrinsic::hexagon_A2_vrsadub_acc, 6492}, // __builtin_HEXAGON_A2_vrsadub_acc
+      {Intrinsic::hexagon_A2_vsubb_map, 6525}, // __builtin_HEXAGON_A2_vsubb_map
+      {Intrinsic::hexagon_A2_vsubh, 6556}, // __builtin_HEXAGON_A2_vsubh
+      {Intrinsic::hexagon_A2_vsubhs, 6583}, // __builtin_HEXAGON_A2_vsubhs
+      {Intrinsic::hexagon_A2_vsubub, 6611}, // __builtin_HEXAGON_A2_vsubub
+      {Intrinsic::hexagon_A2_vsububs, 6639}, // __builtin_HEXAGON_A2_vsububs
+      {Intrinsic::hexagon_A2_vsubuhs, 6668}, // __builtin_HEXAGON_A2_vsubuhs
+      {Intrinsic::hexagon_A2_vsubw, 6697}, // __builtin_HEXAGON_A2_vsubw
+      {Intrinsic::hexagon_A2_vsubws, 6724}, // __builtin_HEXAGON_A2_vsubws
+      {Intrinsic::hexagon_A2_xor, 6752}, // __builtin_HEXAGON_A2_xor
+      {Intrinsic::hexagon_A2_xorp, 6777}, // __builtin_HEXAGON_A2_xorp
+      {Intrinsic::hexagon_A2_zxtb, 6803}, // __builtin_HEXAGON_A2_zxtb
+      {Intrinsic::hexagon_A2_zxth, 6829}, // __builtin_HEXAGON_A2_zxth
+      {Intrinsic::hexagon_A4_andn, 6855}, // __builtin_HEXAGON_A4_andn
+      {Intrinsic::hexagon_A4_andnp, 6881}, // __builtin_HEXAGON_A4_andnp
+      {Intrinsic::hexagon_A4_bitsplit, 6908}, // __builtin_HEXAGON_A4_bitsplit
+      {Intrinsic::hexagon_A4_bitspliti, 6938}, // __builtin_HEXAGON_A4_bitspliti
+      {Intrinsic::hexagon_A4_boundscheck, 6969}, // __builtin_HEXAGON_A4_boundscheck
+      {Intrinsic::hexagon_A4_cmpbeq, 7002}, // __builtin_HEXAGON_A4_cmpbeq
+      {Intrinsic::hexagon_A4_cmpbeqi, 7030}, // __builtin_HEXAGON_A4_cmpbeqi
+      {Intrinsic::hexagon_A4_cmpbgt, 7059}, // __builtin_HEXAGON_A4_cmpbgt
+      {Intrinsic::hexagon_A4_cmpbgti, 7087}, // __builtin_HEXAGON_A4_cmpbgti
+      {Intrinsic::hexagon_A4_cmpbgtu, 7116}, // __builtin_HEXAGON_A4_cmpbgtu
+      {Intrinsic::hexagon_A4_cmpbgtui, 7145}, // __builtin_HEXAGON_A4_cmpbgtui
+      {Intrinsic::hexagon_A4_cmpheq, 7175}, // __builtin_HEXAGON_A4_cmpheq
+      {Intrinsic::hexagon_A4_cmpheqi, 7203}, // __builtin_HEXAGON_A4_cmpheqi
+      {Intrinsic::hexagon_A4_cmphgt, 7232}, // __builtin_HEXAGON_A4_cmphgt
+      {Intrinsic::hexagon_A4_cmphgti, 7260}, // __builtin_HEXAGON_A4_cmphgti
+      {Intrinsic::hexagon_A4_cmphgtu, 7289}, // __builtin_HEXAGON_A4_cmphgtu
+      {Intrinsic::hexagon_A4_cmphgtui, 7318}, // __builtin_HEXAGON_A4_cmphgtui
+      {Intrinsic::hexagon_A4_combineir, 7348}, // __builtin_HEXAGON_A4_combineir
+      {Intrinsic::hexagon_A4_combineri, 7379}, // __builtin_HEXAGON_A4_combineri
+      {Intrinsic::hexagon_A4_cround_ri, 7410}, // __builtin_HEXAGON_A4_cround_ri
+      {Intrinsic::hexagon_A4_cround_rr, 7441}, // __builtin_HEXAGON_A4_cround_rr
+      {Intrinsic::hexagon_A4_modwrapu, 7472}, // __builtin_HEXAGON_A4_modwrapu
+      {Intrinsic::hexagon_A4_orn, 7502}, // __builtin_HEXAGON_A4_orn
+      {Intrinsic::hexagon_A4_ornp, 7527}, // __builtin_HEXAGON_A4_ornp
+      {Intrinsic::hexagon_A4_rcmpeq, 7553}, // __builtin_HEXAGON_A4_rcmpeq
+      {Intrinsic::hexagon_A4_rcmpeqi, 7581}, // __builtin_HEXAGON_A4_rcmpeqi
+      {Intrinsic::hexagon_A4_rcmpneq, 7610}, // __builtin_HEXAGON_A4_rcmpneq
+      {Intrinsic::hexagon_A4_rcmpneqi, 7639}, // __builtin_HEXAGON_A4_rcmpneqi
+      {Intrinsic::hexagon_A4_round_ri, 7669}, // __builtin_HEXAGON_A4_round_ri
+      {Intrinsic::hexagon_A4_round_ri_sat, 7699}, // __builtin_HEXAGON_A4_round_ri_sat
+      {Intrinsic::hexagon_A4_round_rr, 7733}, // __builtin_HEXAGON_A4_round_rr
+      {Intrinsic::hexagon_A4_round_rr_sat, 7763}, // __builtin_HEXAGON_A4_round_rr_sat
+      {Intrinsic::hexagon_A4_tlbmatch, 7797}, // __builtin_HEXAGON_A4_tlbmatch
+      {Intrinsic::hexagon_A4_vcmpbeq_any, 7827}, // __builtin_HEXAGON_A4_vcmpbeq_any
+      {Intrinsic::hexagon_A4_vcmpbeqi, 7860}, // __builtin_HEXAGON_A4_vcmpbeqi
+      {Intrinsic::hexagon_A4_vcmpbgt, 7890}, // __builtin_HEXAGON_A4_vcmpbgt
+      {Intrinsic::hexagon_A4_vcmpbgti, 7919}, // __builtin_HEXAGON_A4_vcmpbgti
+      {Intrinsic::hexagon_A4_vcmpbgtui, 7949}, // __builtin_HEXAGON_A4_vcmpbgtui
+      {Intrinsic::hexagon_A4_vcmpheqi, 7980}, // __builtin_HEXAGON_A4_vcmpheqi
+      {Intrinsic::hexagon_A4_vcmphgti, 8010}, // __builtin_HEXAGON_A4_vcmphgti
+      {Intrinsic::hexagon_A4_vcmphgtui, 8040}, // __builtin_HEXAGON_A4_vcmphgtui
+      {Intrinsic::hexagon_A4_vcmpweqi, 8071}, // __builtin_HEXAGON_A4_vcmpweqi
+      {Intrinsic::hexagon_A4_vcmpwgti, 8101}, // __builtin_HEXAGON_A4_vcmpwgti
+      {Intrinsic::hexagon_A4_vcmpwgtui, 8131}, // __builtin_HEXAGON_A4_vcmpwgtui
+      {Intrinsic::hexagon_A4_vrmaxh, 8162}, // __builtin_HEXAGON_A4_vrmaxh
+      {Intrinsic::hexagon_A4_vrmaxuh, 8190}, // __builtin_HEXAGON_A4_vrmaxuh
+      {Intrinsic::hexagon_A4_vrmaxuw, 8219}, // __builtin_HEXAGON_A4_vrmaxuw
+      {Intrinsic::hexagon_A4_vrmaxw, 8248}, // __builtin_HEXAGON_A4_vrmaxw
+      {Intrinsic::hexagon_A4_vrminh, 8276}, // __builtin_HEXAGON_A4_vrminh
+      {Intrinsic::hexagon_A4_vrminuh, 8304}, // __builtin_HEXAGON_A4_vrminuh
+      {Intrinsic::hexagon_A4_vrminuw, 8333}, // __builtin_HEXAGON_A4_vrminuw
+      {Intrinsic::hexagon_A4_vrminw, 8362}, // __builtin_HEXAGON_A4_vrminw
+      {Intrinsic::hexagon_A5_vaddhubs, 8390}, // __builtin_HEXAGON_A5_vaddhubs
+      {Intrinsic::hexagon_C2_all8, 8420}, // __builtin_HEXAGON_C2_all8
+      {Intrinsic::hexagon_C2_and, 8446}, // __builtin_HEXAGON_C2_and
+      {Intrinsic::hexagon_C2_andn, 8471}, // __builtin_HEXAGON_C2_andn
+      {Intrinsic::hexagon_C2_any8, 8497}, // __builtin_HEXAGON_C2_any8
+      {Intrinsic::hexagon_C2_bitsclr, 8523}, // __builtin_HEXAGON_C2_bitsclr
+      {Intrinsic::hexagon_C2_bitsclri, 8552}, // __builtin_HEXAGON_C2_bitsclri
+      {Intrinsic::hexagon_C2_bitsset, 8582}, // __builtin_HEXAGON_C2_bitsset
+      {Intrinsic::hexagon_C2_cmpeq, 8611}, // __builtin_HEXAGON_C2_cmpeq
+      {Intrinsic::hexagon_C2_cmpeqi, 8638}, // __builtin_HEXAGON_C2_cmpeqi
+      {Intrinsic::hexagon_C2_cmpeqp, 8666}, // __builtin_HEXAGON_C2_cmpeqp
+      {Intrinsic::hexagon_C2_cmpgei, 8694}, // __builtin_HEXAGON_C2_cmpgei
+      {Intrinsic::hexagon_C2_cmpgeui, 8722}, // __builtin_HEXAGON_C2_cmpgeui
+      {Intrinsic::hexagon_C2_cmpgt, 8751}, // __builtin_HEXAGON_C2_cmpgt
+      {Intrinsic::hexagon_C2_cmpgti, 8778}, // __builtin_HEXAGON_C2_cmpgti
+      {Intrinsic::hexagon_C2_cmpgtp, 8806}, // __builtin_HEXAGON_C2_cmpgtp
+      {Intrinsic::hexagon_C2_cmpgtu, 8834}, // __builtin_HEXAGON_C2_cmpgtu
+      {Intrinsic::hexagon_C2_cmpgtui, 8862}, // __builtin_HEXAGON_C2_cmpgtui
+      {Intrinsic::hexagon_C2_cmpgtup, 8891}, // __builtin_HEXAGON_C2_cmpgtup
+      {Intrinsic::hexagon_C2_cmplt, 8920}, // __builtin_HEXAGON_C2_cmplt
+      {Intrinsic::hexagon_C2_cmpltu, 8947}, // __builtin_HEXAGON_C2_cmpltu
+      {Intrinsic::hexagon_C2_mask, 8975}, // __builtin_HEXAGON_C2_mask
+      {Intrinsic::hexagon_C2_mux, 9001}, // __builtin_HEXAGON_C2_mux
+      {Intrinsic::hexagon_C2_muxii, 9026}, // __builtin_HEXAGON_C2_muxii
+      {Intrinsic::hexagon_C2_muxir, 9053}, // __builtin_HEXAGON_C2_muxir
+      {Intrinsic::hexagon_C2_muxri, 9080}, // __builtin_HEXAGON_C2_muxri
+      {Intrinsic::hexagon_C2_not, 9107}, // __builtin_HEXAGON_C2_not
+      {Intrinsic::hexagon_C2_or, 9132}, // __builtin_HEXAGON_C2_or
+      {Intrinsic::hexagon_C2_orn, 9156}, // __builtin_HEXAGON_C2_orn
+      {Intrinsic::hexagon_C2_pxfer_map, 9181}, // __builtin_HEXAGON_C2_pxfer_map
+      {Intrinsic::hexagon_C2_tfrpr, 9212}, // __builtin_HEXAGON_C2_tfrpr
+      {Intrinsic::hexagon_C2_tfrrp, 9239}, // __builtin_HEXAGON_C2_tfrrp
+      {Intrinsic::hexagon_C2_vitpack, 9266}, // __builtin_HEXAGON_C2_vitpack
+      {Intrinsic::hexagon_C2_vmux, 9295}, // __builtin_HEXAGON_C2_vmux
+      {Intrinsic::hexagon_C2_xor, 9321}, // __builtin_HEXAGON_C2_xor
+      {Intrinsic::hexagon_C4_and_and, 9346}, // __builtin_HEXAGON_C4_and_and
+      {Intrinsic::hexagon_C4_and_andn, 9375}, // __builtin_HEXAGON_C4_and_andn
+      {Intrinsic::hexagon_C4_and_or, 9405}, // __builtin_HEXAGON_C4_and_or
+      {Intrinsic::hexagon_C4_and_orn, 9433}, // __builtin_HEXAGON_C4_and_orn
+      {Intrinsic::hexagon_C4_cmplte, 9462}, // __builtin_HEXAGON_C4_cmplte
+      {Intrinsic::hexagon_C4_cmpltei, 9490}, // __builtin_HEXAGON_C4_cmpltei
+      {Intrinsic::hexagon_C4_cmplteu, 9519}, // __builtin_HEXAGON_C4_cmplteu
+      {Intrinsic::hexagon_C4_cmplteui, 9548}, // __builtin_HEXAGON_C4_cmplteui
+      {Intrinsic::hexagon_C4_cmpneq, 9578}, // __builtin_HEXAGON_C4_cmpneq
+      {Intrinsic::hexagon_C4_cmpneqi, 9606}, // __builtin_HEXAGON_C4_cmpneqi
+      {Intrinsic::hexagon_C4_fastcorner9, 9635}, // __builtin_HEXAGON_C4_fastcorner9
+      {Intrinsic::hexagon_C4_fastcorner9_not, 9668}, // __builtin_HEXAGON_C4_fastcorner9_not
+      {Intrinsic::hexagon_C4_nbitsclr, 9705}, // __builtin_HEXAGON_C4_nbitsclr
+      {Intrinsic::hexagon_C4_nbitsclri, 9735}, // __builtin_HEXAGON_C4_nbitsclri
+      {Intrinsic::hexagon_C4_nbitsset, 9766}, // __builtin_HEXAGON_C4_nbitsset
+      {Intrinsic::hexagon_C4_or_and, 9796}, // __builtin_HEXAGON_C4_or_and
+      {Intrinsic::hexagon_C4_or_andn, 9824}, // __builtin_HEXAGON_C4_or_andn
+      {Intrinsic::hexagon_C4_or_or, 9853}, // __builtin_HEXAGON_C4_or_or
+      {Intrinsic::hexagon_C4_or_orn, 9880}, // __builtin_HEXAGON_C4_or_orn
+      {Intrinsic::hexagon_F2_conv_d2df, 9908}, // __builtin_HEXAGON_F2_conv_d2df
+      {Intrinsic::hexagon_F2_conv_d2sf, 9939}, // __builtin_HEXAGON_F2_conv_d2sf
+      {Intrinsic::hexagon_F2_conv_df2d, 9970}, // __builtin_HEXAGON_F2_conv_df2d
+      {Intrinsic::hexagon_F2_conv_df2d_chop, 10001}, // __builtin_HEXAGON_F2_conv_df2d_chop
+      {Intrinsic::hexagon_F2_conv_df2sf, 10037}, // __builtin_HEXAGON_F2_conv_df2sf
+      {Intrinsic::hexagon_F2_conv_df2ud, 10069}, // __builtin_HEXAGON_F2_conv_df2ud
+      {Intrinsic::hexagon_F2_conv_df2ud_chop, 10101}, // __builtin_HEXAGON_F2_conv_df2ud_chop
+      {Intrinsic::hexagon_F2_conv_df2uw, 10138}, // __builtin_HEXAGON_F2_conv_df2uw
+      {Intrinsic::hexagon_F2_conv_df2uw_chop, 10170}, // __builtin_HEXAGON_F2_conv_df2uw_chop
+      {Intrinsic::hexagon_F2_conv_df2w, 10207}, // __builtin_HEXAGON_F2_conv_df2w
+      {Intrinsic::hexagon_F2_conv_df2w_chop, 10238}, // __builtin_HEXAGON_F2_conv_df2w_chop
+      {Intrinsic::hexagon_F2_conv_sf2d, 10274}, // __builtin_HEXAGON_F2_conv_sf2d
+      {Intrinsic::hexagon_F2_conv_sf2d_chop, 10305}, // __builtin_HEXAGON_F2_conv_sf2d_chop
+      {Intrinsic::hexagon_F2_conv_sf2df, 10341}, // __builtin_HEXAGON_F2_conv_sf2df
+      {Intrinsic::hexagon_F2_conv_sf2ud, 10373}, // __builtin_HEXAGON_F2_conv_sf2ud
+      {Intrinsic::hexagon_F2_conv_sf2ud_chop, 10405}, // __builtin_HEXAGON_F2_conv_sf2ud_chop
+      {Intrinsic::hexagon_F2_conv_sf2uw, 10442}, // __builtin_HEXAGON_F2_conv_sf2uw
+      {Intrinsic::hexagon_F2_conv_sf2uw_chop, 10474}, // __builtin_HEXAGON_F2_conv_sf2uw_chop
+      {Intrinsic::hexagon_F2_conv_sf2w, 10511}, // __builtin_HEXAGON_F2_conv_sf2w
+      {Intrinsic::hexagon_F2_conv_sf2w_chop, 10542}, // __builtin_HEXAGON_F2_conv_sf2w_chop
+      {Intrinsic::hexagon_F2_conv_ud2df, 10578}, // __builtin_HEXAGON_F2_conv_ud2df
+      {Intrinsic::hexagon_F2_conv_ud2sf, 10610}, // __builtin_HEXAGON_F2_conv_ud2sf
+      {Intrinsic::hexagon_F2_conv_uw2df, 10642}, // __builtin_HEXAGON_F2_conv_uw2df
+      {Intrinsic::hexagon_F2_conv_uw2sf, 10674}, // __builtin_HEXAGON_F2_conv_uw2sf
+      {Intrinsic::hexagon_F2_conv_w2df, 10706}, // __builtin_HEXAGON_F2_conv_w2df
+      {Intrinsic::hexagon_F2_conv_w2sf, 10737}, // __builtin_HEXAGON_F2_conv_w2sf
+      {Intrinsic::hexagon_F2_dfclass, 10768}, // __builtin_HEXAGON_F2_dfclass
+      {Intrinsic::hexagon_F2_dfcmpeq, 10797}, // __builtin_HEXAGON_F2_dfcmpeq
+      {Intrinsic::hexagon_F2_dfcmpge, 10826}, // __builtin_HEXAGON_F2_dfcmpge
+      {Intrinsic::hexagon_F2_dfcmpgt, 10855}, // __builtin_HEXAGON_F2_dfcmpgt
+      {Intrinsic::hexagon_F2_dfcmpuo, 10884}, // __builtin_HEXAGON_F2_dfcmpuo
+      {Intrinsic::hexagon_F2_dfimm_n, 10913}, // __builtin_HEXAGON_F2_dfimm_n
+      {Intrinsic::hexagon_F2_dfimm_p, 10942}, // __builtin_HEXAGON_F2_dfimm_p
+      {Intrinsic::hexagon_F2_sfadd, 10971}, // __builtin_HEXAGON_F2_sfadd
+      {Intrinsic::hexagon_F2_sfclass, 10998}, // __builtin_HEXAGON_F2_sfclass
+      {Intrinsic::hexagon_F2_sfcmpeq, 11027}, // __builtin_HEXAGON_F2_sfcmpeq
+      {Intrinsic::hexagon_F2_sfcmpge, 11056}, // __builtin_HEXAGON_F2_sfcmpge
+      {Intrinsic::hexagon_F2_sfcmpgt, 11085}, // __builtin_HEXAGON_F2_sfcmpgt
+      {Intrinsic::hexagon_F2_sfcmpuo, 11114}, // __builtin_HEXAGON_F2_sfcmpuo
+      {Intrinsic::hexagon_F2_sffixupd, 11143}, // __builtin_HEXAGON_F2_sffixupd
+      {Intrinsic::hexagon_F2_sffixupn, 11173}, // __builtin_HEXAGON_F2_sffixupn
+      {Intrinsic::hexagon_F2_sffixupr, 11203}, // __builtin_HEXAGON_F2_sffixupr
+      {Intrinsic::hexagon_F2_sffma, 11233}, // __builtin_HEXAGON_F2_sffma
+      {Intrinsic::hexagon_F2_sffma_lib, 11260}, // __builtin_HEXAGON_F2_sffma_lib
+      {Intrinsic::hexagon_F2_sffma_sc, 11291}, // __builtin_HEXAGON_F2_sffma_sc
+      {Intrinsic::hexagon_F2_sffms, 11321}, // __builtin_HEXAGON_F2_sffms
+      {Intrinsic::hexagon_F2_sffms_lib, 11348}, // __builtin_HEXAGON_F2_sffms_lib
+      {Intrinsic::hexagon_F2_sfimm_n, 11379}, // __builtin_HEXAGON_F2_sfimm_n
+      {Intrinsic::hexagon_F2_sfimm_p, 11408}, // __builtin_HEXAGON_F2_sfimm_p
+      {Intrinsic::hexagon_F2_sfmax, 11437}, // __builtin_HEXAGON_F2_sfmax
+      {Intrinsic::hexagon_F2_sfmin, 11464}, // __builtin_HEXAGON_F2_sfmin
+      {Intrinsic::hexagon_F2_sfmpy, 11491}, // __builtin_HEXAGON_F2_sfmpy
+      {Intrinsic::hexagon_F2_sfsub, 11518}, // __builtin_HEXAGON_F2_sfsub
+      {Intrinsic::hexagon_L2_loadw_locked, 11545}, // __builtin_HEXAGON_L2_loadw_locked
+      {Intrinsic::hexagon_L4_loadd_locked, 11579}, // __builtin_HEXAGON_L4_loadd_locked
+      {Intrinsic::hexagon_M2_acci, 11613}, // __builtin_HEXAGON_M2_acci
+      {Intrinsic::hexagon_M2_accii, 11639}, // __builtin_HEXAGON_M2_accii
+      {Intrinsic::hexagon_M2_cmaci_s0, 11666}, // __builtin_HEXAGON_M2_cmaci_s0
+      {Intrinsic::hexagon_M2_cmacr_s0, 11696}, // __builtin_HEXAGON_M2_cmacr_s0
+      {Intrinsic::hexagon_M2_cmacs_s0, 11726}, // __builtin_HEXAGON_M2_cmacs_s0
+      {Intrinsic::hexagon_M2_cmacs_s1, 11756}, // __builtin_HEXAGON_M2_cmacs_s1
+      {Intrinsic::hexagon_M2_cmacsc_s0, 11786}, // __builtin_HEXAGON_M2_cmacsc_s0
+      {Intrinsic::hexagon_M2_cmacsc_s1, 11817}, // __builtin_HEXAGON_M2_cmacsc_s1
+      {Intrinsic::hexagon_M2_cmpyi_s0, 11848}, // __builtin_HEXAGON_M2_cmpyi_s0
+      {Intrinsic::hexagon_M2_cmpyr_s0, 11878}, // __builtin_HEXAGON_M2_cmpyr_s0
+      {Intrinsic::hexagon_M2_cmpyrs_s0, 11908}, // __builtin_HEXAGON_M2_cmpyrs_s0
+      {Intrinsic::hexagon_M2_cmpyrs_s1, 11939}, // __builtin_HEXAGON_M2_cmpyrs_s1
+      {Intrinsic::hexagon_M2_cmpyrsc_s0, 11970}, // __builtin_HEXAGON_M2_cmpyrsc_s0
+      {Intrinsic::hexagon_M2_cmpyrsc_s1, 12002}, // __builtin_HEXAGON_M2_cmpyrsc_s1
+      {Intrinsic::hexagon_M2_cmpys_s0, 12034}, // __builtin_HEXAGON_M2_cmpys_s0
+      {Intrinsic::hexagon_M2_cmpys_s1, 12064}, // __builtin_HEXAGON_M2_cmpys_s1
+      {Intrinsic::hexagon_M2_cmpysc_s0, 12094}, // __builtin_HEXAGON_M2_cmpysc_s0
+      {Intrinsic::hexagon_M2_cmpysc_s1, 12125}, // __builtin_HEXAGON_M2_cmpysc_s1
+      {Intrinsic::hexagon_M2_cnacs_s0, 12156}, // __builtin_HEXAGON_M2_cnacs_s0
+      {Intrinsic::hexagon_M2_cnacs_s1, 12186}, // __builtin_HEXAGON_M2_cnacs_s1
+      {Intrinsic::hexagon_M2_cnacsc_s0, 12216}, // __builtin_HEXAGON_M2_cnacsc_s0
+      {Intrinsic::hexagon_M2_cnacsc_s1, 12247}, // __builtin_HEXAGON_M2_cnacsc_s1
+      {Intrinsic::hexagon_M2_dpmpyss_acc_s0, 12278}, // __builtin_HEXAGON_M2_dpmpyss_acc_s0
+      {Intrinsic::hexagon_M2_dpmpyss_nac_s0, 12314}, // __builtin_HEXAGON_M2_dpmpyss_nac_s0
+      {Intrinsic::hexagon_M2_dpmpyss_rnd_s0, 12350}, // __builtin_HEXAGON_M2_dpmpyss_rnd_s0
+      {Intrinsic::hexagon_M2_dpmpyss_s0, 12386}, // __builtin_HEXAGON_M2_dpmpyss_s0
+      {Intrinsic::hexagon_M2_dpmpyuu_acc_s0, 12418}, // __builtin_HEXAGON_M2_dpmpyuu_acc_s0
+      {Intrinsic::hexagon_M2_dpmpyuu_nac_s0, 12454}, // __builtin_HEXAGON_M2_dpmpyuu_nac_s0
+      {Intrinsic::hexagon_M2_dpmpyuu_s0, 12490}, // __builtin_HEXAGON_M2_dpmpyuu_s0
+      {Intrinsic::hexagon_M2_hmmpyh_rs1, 12522}, // __builtin_HEXAGON_M2_hmmpyh_rs1
+      {Intrinsic::hexagon_M2_hmmpyh_s1, 12554}, // __builtin_HEXAGON_M2_hmmpyh_s1
+      {Intrinsic::hexagon_M2_hmmpyl_rs1, 12585}, // __builtin_HEXAGON_M2_hmmpyl_rs1
+      {Intrinsic::hexagon_M2_hmmpyl_s1, 12617}, // __builtin_HEXAGON_M2_hmmpyl_s1
+      {Intrinsic::hexagon_M2_maci, 12648}, // __builtin_HEXAGON_M2_maci
+      {Intrinsic::hexagon_M2_macsin, 12674}, // __builtin_HEXAGON_M2_macsin
+      {Intrinsic::hexagon_M2_macsip, 12702}, // __builtin_HEXAGON_M2_macsip
+      {Intrinsic::hexagon_M2_mmachs_rs0, 12730}, // __builtin_HEXAGON_M2_mmachs_rs0
+      {Intrinsic::hexagon_M2_mmachs_rs1, 12762}, // __builtin_HEXAGON_M2_mmachs_rs1
+      {Intrinsic::hexagon_M2_mmachs_s0, 12794}, // __builtin_HEXAGON_M2_mmachs_s0
+      {Intrinsic::hexagon_M2_mmachs_s1, 12825}, // __builtin_HEXAGON_M2_mmachs_s1
+      {Intrinsic::hexagon_M2_mmacls_rs0, 12856}, // __builtin_HEXAGON_M2_mmacls_rs0
+      {Intrinsic::hexagon_M2_mmacls_rs1, 12888}, // __builtin_HEXAGON_M2_mmacls_rs1
+      {Intrinsic::hexagon_M2_mmacls_s0, 12920}, // __builtin_HEXAGON_M2_mmacls_s0
+      {Intrinsic::hexagon_M2_mmacls_s1, 12951}, // __builtin_HEXAGON_M2_mmacls_s1
+      {Intrinsic::hexagon_M2_mmacuhs_rs0, 12982}, // __builtin_HEXAGON_M2_mmacuhs_rs0
+      {Intrinsic::hexagon_M2_mmacuhs_rs1, 13015}, // __builtin_HEXAGON_M2_mmacuhs_rs1
+      {Intrinsic::hexagon_M2_mmacuhs_s0, 13048}, // __builtin_HEXAGON_M2_mmacuhs_s0
+      {Intrinsic::hexagon_M2_mmacuhs_s1, 13080}, // __builtin_HEXAGON_M2_mmacuhs_s1
+      {Intrinsic::hexagon_M2_mmaculs_rs0, 13112}, // __builtin_HEXAGON_M2_mmaculs_rs0
+      {Intrinsic::hexagon_M2_mmaculs_rs1, 13145}, // __builtin_HEXAGON_M2_mmaculs_rs1
+      {Intrinsic::hexagon_M2_mmaculs_s0, 13178}, // __builtin_HEXAGON_M2_mmaculs_s0
+      {Intrinsic::hexagon_M2_mmaculs_s1, 13210}, // __builtin_HEXAGON_M2_mmaculs_s1
+      {Intrinsic::hexagon_M2_mmpyh_rs0, 13242}, // __builtin_HEXAGON_M2_mmpyh_rs0
+      {Intrinsic::hexagon_M2_mmpyh_rs1, 13273}, // __builtin_HEXAGON_M2_mmpyh_rs1
+      {Intrinsic::hexagon_M2_mmpyh_s0, 13304}, // __builtin_HEXAGON_M2_mmpyh_s0
+      {Intrinsic::hexagon_M2_mmpyh_s1, 13334}, // __builtin_HEXAGON_M2_mmpyh_s1
+      {Intrinsic::hexagon_M2_mmpyl_rs0, 13364}, // __builtin_HEXAGON_M2_mmpyl_rs0
+      {Intrinsic::hexagon_M2_mmpyl_rs1, 13395}, // __builtin_HEXAGON_M2_mmpyl_rs1
+      {Intrinsic::hexagon_M2_mmpyl_s0, 13426}, // __builtin_HEXAGON_M2_mmpyl_s0
+      {Intrinsic::hexagon_M2_mmpyl_s1, 13456}, // __builtin_HEXAGON_M2_mmpyl_s1
+      {Intrinsic::hexagon_M2_mmpyuh_rs0, 13486}, // __builtin_HEXAGON_M2_mmpyuh_rs0
+      {Intrinsic::hexagon_M2_mmpyuh_rs1, 13518}, // __builtin_HEXAGON_M2_mmpyuh_rs1
+      {Intrinsic::hexagon_M2_mmpyuh_s0, 13550}, // __builtin_HEXAGON_M2_mmpyuh_s0
+      {Intrinsic::hexagon_M2_mmpyuh_s1, 13581}, // __builtin_HEXAGON_M2_mmpyuh_s1
+      {Intrinsic::hexagon_M2_mmpyul_rs0, 13612}, // __builtin_HEXAGON_M2_mmpyul_rs0
+      {Intrinsic::hexagon_M2_mmpyul_rs1, 13644}, // __builtin_HEXAGON_M2_mmpyul_rs1
+      {Intrinsic::hexagon_M2_mmpyul_s0, 13676}, // __builtin_HEXAGON_M2_mmpyul_s0
+      {Intrinsic::hexagon_M2_mmpyul_s1, 13707}, // __builtin_HEXAGON_M2_mmpyul_s1
+      {Intrinsic::hexagon_M2_mpy_acc_hh_s0, 13738}, // __builtin_HEXAGON_M2_mpy_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_hh_s1, 13773}, // __builtin_HEXAGON_M2_mpy_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_hl_s0, 13808}, // __builtin_HEXAGON_M2_mpy_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpy_acc_hl_s1, 13843}, // __builtin_HEXAGON_M2_mpy_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpy_acc_lh_s0, 13878}, // __builtin_HEXAGON_M2_mpy_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_lh_s1, 13913}, // __builtin_HEXAGON_M2_mpy_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_ll_s0, 13948}, // __builtin_HEXAGON_M2_mpy_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpy_acc_ll_s1, 13983}, // __builtin_HEXAGON_M2_mpy_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s0, 14018}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hh_s1, 14057}, // __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s0, 14096}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_hl_s1, 14135}, // __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s0, 14174}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_lh_s1, 14213}, // __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1
+      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s0, 14252}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0
+      {Intrinsic::hexagon_M2_mpy_acc_sat_ll_s1, 14291}, // __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1
+      {Intrinsic::hexagon_M2_mpy_hh_s0, 14330}, // __builtin_HEXAGON_M2_mpy_hh_s0
+      {Intrinsic::hexagon_M2_mpy_hh_s1, 14361}, // __builtin_HEXAGON_M2_mpy_hh_s1
+      {Intrinsic::hexagon_M2_mpy_hl_s0, 14392}, // __builtin_HEXAGON_M2_mpy_hl_s0
+      {Intrinsic::hexagon_M2_mpy_hl_s1, 14423}, // __builtin_HEXAGON_M2_mpy_hl_s1
+      {Intrinsic::hexagon_M2_mpy_lh_s0, 14454}, // __builtin_HEXAGON_M2_mpy_lh_s0
+      {Intrinsic::hexagon_M2_mpy_lh_s1, 14485}, // __builtin_HEXAGON_M2_mpy_lh_s1
+      {Intrinsic::hexagon_M2_mpy_ll_s0, 14516}, // __builtin_HEXAGON_M2_mpy_ll_s0
+      {Intrinsic::hexagon_M2_mpy_ll_s1, 14547}, // __builtin_HEXAGON_M2_mpy_ll_s1
+      {Intrinsic::hexagon_M2_mpy_nac_hh_s0, 14578}, // __builtin_HEXAGON_M2_mpy_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_hh_s1, 14613}, // __builtin_HEXAGON_M2_mpy_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_hl_s0, 14648}, // __builtin_HEXAGON_M2_mpy_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpy_nac_hl_s1, 14683}, // __builtin_HEXAGON_M2_mpy_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpy_nac_lh_s0, 14718}, // __builtin_HEXAGON_M2_mpy_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_lh_s1, 14753}, // __builtin_HEXAGON_M2_mpy_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_ll_s0, 14788}, // __builtin_HEXAGON_M2_mpy_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpy_nac_ll_s1, 14823}, // __builtin_HEXAGON_M2_mpy_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s0, 14858}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hh_s1, 14897}, // __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s0, 14936}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_hl_s1, 14975}, // __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s0, 15014}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_lh_s1, 15053}, // __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1
+      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s0, 15092}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0
+      {Intrinsic::hexagon_M2_mpy_nac_sat_ll_s1, 15131}, // __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_hh_s0, 15170}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_hh_s1, 15205}, // __builtin_HEXAGON_M2_mpy_rnd_hh_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_hl_s0, 15240}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_hl_s1, 15275}, // __builtin_HEXAGON_M2_mpy_rnd_hl_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_lh_s0, 15310}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_lh_s1, 15345}, // __builtin_HEXAGON_M2_mpy_rnd_lh_s1
+      {Intrinsic::hexagon_M2_mpy_rnd_ll_s0, 15380}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s0
+      {Intrinsic::hexagon_M2_mpy_rnd_ll_s1, 15415}, // __builtin_HEXAGON_M2_mpy_rnd_ll_s1
+      {Intrinsic::hexagon_M2_mpy_sat_hh_s0, 15450}, // __builtin_HEXAGON_M2_mpy_sat_hh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_hh_s1, 15485}, // __builtin_HEXAGON_M2_mpy_sat_hh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_hl_s0, 15520}, // __builtin_HEXAGON_M2_mpy_sat_hl_s0
+      {Intrinsic::hexagon_M2_mpy_sat_hl_s1, 15555}, // __builtin_HEXAGON_M2_mpy_sat_hl_s1
+      {Intrinsic::hexagon_M2_mpy_sat_lh_s0, 15590}, // __builtin_HEXAGON_M2_mpy_sat_lh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_lh_s1, 15625}, // __builtin_HEXAGON_M2_mpy_sat_lh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_ll_s0, 15660}, // __builtin_HEXAGON_M2_mpy_sat_ll_s0
+      {Intrinsic::hexagon_M2_mpy_sat_ll_s1, 15695}, // __builtin_HEXAGON_M2_mpy_sat_ll_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s0, 15730}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hh_s1, 15769}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s0, 15808}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_hl_s1, 15847}, // __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s0, 15886}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_lh_s1, 15925}, // __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s0, 15964}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0
+      {Intrinsic::hexagon_M2_mpy_sat_rnd_ll_s1, 16003}, // __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1
+      {Intrinsic::hexagon_M2_mpy_up, 16042}, // __builtin_HEXAGON_M2_mpy_up
+      {Intrinsic::hexagon_M2_mpy_up_s1, 16070}, // __builtin_HEXAGON_M2_mpy_up_s1
+      {Intrinsic::hexagon_M2_mpy_up_s1_sat, 16101}, // __builtin_HEXAGON_M2_mpy_up_s1_sat
+      {Intrinsic::hexagon_M2_mpyd_acc_hh_s0, 16136}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_hh_s1, 16172}, // __builtin_HEXAGON_M2_mpyd_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_acc_hl_s0, 16208}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_hl_s1, 16244}, // __builtin_HEXAGON_M2_mpyd_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_acc_lh_s0, 16280}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_lh_s1, 16316}, // __builtin_HEXAGON_M2_mpyd_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_acc_ll_s0, 16352}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_acc_ll_s1, 16388}, // __builtin_HEXAGON_M2_mpyd_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpyd_hh_s0, 16424}, // __builtin_HEXAGON_M2_mpyd_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_hh_s1, 16456}, // __builtin_HEXAGON_M2_mpyd_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_hl_s0, 16488}, // __builtin_HEXAGON_M2_mpyd_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_hl_s1, 16520}, // __builtin_HEXAGON_M2_mpyd_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_lh_s0, 16552}, // __builtin_HEXAGON_M2_mpyd_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_lh_s1, 16584}, // __builtin_HEXAGON_M2_mpyd_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_ll_s0, 16616}, // __builtin_HEXAGON_M2_mpyd_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_ll_s1, 16648}, // __builtin_HEXAGON_M2_mpyd_ll_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_hh_s0, 16680}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_hh_s1, 16716}, // __builtin_HEXAGON_M2_mpyd_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_hl_s0, 16752}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_hl_s1, 16788}, // __builtin_HEXAGON_M2_mpyd_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_lh_s0, 16824}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_lh_s1, 16860}, // __builtin_HEXAGON_M2_mpyd_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_nac_ll_s0, 16896}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_nac_ll_s1, 16932}, // __builtin_HEXAGON_M2_mpyd_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s0, 16968}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_hh_s1, 17004}, // __builtin_HEXAGON_M2_mpyd_rnd_hh_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s0, 17040}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_hl_s1, 17076}, // __builtin_HEXAGON_M2_mpyd_rnd_hl_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s0, 17112}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_lh_s1, 17148}, // __builtin_HEXAGON_M2_mpyd_rnd_lh_s1
+      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s0, 17184}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s0
+      {Intrinsic::hexagon_M2_mpyd_rnd_ll_s1, 17220}, // __builtin_HEXAGON_M2_mpyd_rnd_ll_s1
+      {Intrinsic::hexagon_M2_mpyi, 17256}, // __builtin_HEXAGON_M2_mpyi
+      {Intrinsic::hexagon_M2_mpysmi, 17282}, // __builtin_HEXAGON_M2_mpysmi
+      {Intrinsic::hexagon_M2_mpysu_up, 17310}, // __builtin_HEXAGON_M2_mpysu_up
+      {Intrinsic::hexagon_M2_mpyu_acc_hh_s0, 17340}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_hh_s1, 17376}, // __builtin_HEXAGON_M2_mpyu_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpyu_acc_hl_s0, 17412}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_hl_s1, 17448}, // __builtin_HEXAGON_M2_mpyu_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpyu_acc_lh_s0, 17484}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_lh_s1, 17520}, // __builtin_HEXAGON_M2_mpyu_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpyu_acc_ll_s0, 17556}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpyu_acc_ll_s1, 17592}, // __builtin_HEXAGON_M2_mpyu_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpyu_hh_s0, 17628}, // __builtin_HEXAGON_M2_mpyu_hh_s0
+      {Intrinsic::hexagon_M2_mpyu_hh_s1, 17660}, // __builtin_HEXAGON_M2_mpyu_hh_s1
+      {Intrinsic::hexagon_M2_mpyu_hl_s0, 17692}, // __builtin_HEXAGON_M2_mpyu_hl_s0
+      {Intrinsic::hexagon_M2_mpyu_hl_s1, 17724}, // __builtin_HEXAGON_M2_mpyu_hl_s1
+      {Intrinsic::hexagon_M2_mpyu_lh_s0, 17756}, // __builtin_HEXAGON_M2_mpyu_lh_s0
+      {Intrinsic::hexagon_M2_mpyu_lh_s1, 17788}, // __builtin_HEXAGON_M2_mpyu_lh_s1
+      {Intrinsic::hexagon_M2_mpyu_ll_s0, 17820}, // __builtin_HEXAGON_M2_mpyu_ll_s0
+      {Intrinsic::hexagon_M2_mpyu_ll_s1, 17852}, // __builtin_HEXAGON_M2_mpyu_ll_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_hh_s0, 17884}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_hh_s1, 17920}, // __builtin_HEXAGON_M2_mpyu_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_hl_s0, 17956}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_hl_s1, 17992}, // __builtin_HEXAGON_M2_mpyu_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_lh_s0, 18028}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_lh_s1, 18064}, // __builtin_HEXAGON_M2_mpyu_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpyu_nac_ll_s0, 18100}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpyu_nac_ll_s1, 18136}, // __builtin_HEXAGON_M2_mpyu_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpyu_up, 18172}, // __builtin_HEXAGON_M2_mpyu_up
+      {Intrinsic::hexagon_M2_mpyud_acc_hh_s0, 18201}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_hh_s1, 18238}, // __builtin_HEXAGON_M2_mpyud_acc_hh_s1
+      {Intrinsic::hexagon_M2_mpyud_acc_hl_s0, 18275}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_hl_s1, 18312}, // __builtin_HEXAGON_M2_mpyud_acc_hl_s1
+      {Intrinsic::hexagon_M2_mpyud_acc_lh_s0, 18349}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_lh_s1, 18386}, // __builtin_HEXAGON_M2_mpyud_acc_lh_s1
+      {Intrinsic::hexagon_M2_mpyud_acc_ll_s0, 18423}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s0
+      {Intrinsic::hexagon_M2_mpyud_acc_ll_s1, 18460}, // __builtin_HEXAGON_M2_mpyud_acc_ll_s1
+      {Intrinsic::hexagon_M2_mpyud_hh_s0, 18497}, // __builtin_HEXAGON_M2_mpyud_hh_s0
+      {Intrinsic::hexagon_M2_mpyud_hh_s1, 18530}, // __builtin_HEXAGON_M2_mpyud_hh_s1
+      {Intrinsic::hexagon_M2_mpyud_hl_s0, 18563}, // __builtin_HEXAGON_M2_mpyud_hl_s0
+      {Intrinsic::hexagon_M2_mpyud_hl_s1, 18596}, // __builtin_HEXAGON_M2_mpyud_hl_s1
+      {Intrinsic::hexagon_M2_mpyud_lh_s0, 18629}, // __builtin_HEXAGON_M2_mpyud_lh_s0
+      {Intrinsic::hexagon_M2_mpyud_lh_s1, 18662}, // __builtin_HEXAGON_M2_mpyud_lh_s1
+      {Intrinsic::hexagon_M2_mpyud_ll_s0, 18695}, // __builtin_HEXAGON_M2_mpyud_ll_s0
+      {Intrinsic::hexagon_M2_mpyud_ll_s1, 18728}, // __builtin_HEXAGON_M2_mpyud_ll_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_hh_s0, 18761}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_hh_s1, 18798}, // __builtin_HEXAGON_M2_mpyud_nac_hh_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_hl_s0, 18835}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_hl_s1, 18872}, // __builtin_HEXAGON_M2_mpyud_nac_hl_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_lh_s0, 18909}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_lh_s1, 18946}, // __builtin_HEXAGON_M2_mpyud_nac_lh_s1
+      {Intrinsic::hexagon_M2_mpyud_nac_ll_s0, 18983}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s0
+      {Intrinsic::hexagon_M2_mpyud_nac_ll_s1, 19020}, // __builtin_HEXAGON_M2_mpyud_nac_ll_s1
+      {Intrinsic::hexagon_M2_mpyui, 19057}, // __builtin_HEXAGON_M2_mpyui
+      {Intrinsic::hexagon_M2_nacci, 19084}, // __builtin_HEXAGON_M2_nacci
+      {Intrinsic::hexagon_M2_naccii, 19111}, // __builtin_HEXAGON_M2_naccii
+      {Intrinsic::hexagon_M2_subacc, 19139}, // __builtin_HEXAGON_M2_subacc
+      {Intrinsic::hexagon_M2_vabsdiffh, 19167}, // __builtin_HEXAGON_M2_vabsdiffh
+      {Intrinsic::hexagon_M2_vabsdiffw, 19198}, // __builtin_HEXAGON_M2_vabsdiffw
+      {Intrinsic::hexagon_M2_vcmac_s0_sat_i, 19229}, // __builtin_HEXAGON_M2_vcmac_s0_sat_i
+      {Intrinsic::hexagon_M2_vcmac_s0_sat_r, 19265}, // __builtin_HEXAGON_M2_vcmac_s0_sat_r
+      {Intrinsic::hexagon_M2_vcmpy_s0_sat_i, 19301}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_i
+      {Intrinsic::hexagon_M2_vcmpy_s0_sat_r, 19337}, // __builtin_HEXAGON_M2_vcmpy_s0_sat_r
+      {Intrinsic::hexagon_M2_vcmpy_s1_sat_i, 19373}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_i
+      {Intrinsic::hexagon_M2_vcmpy_s1_sat_r, 19409}, // __builtin_HEXAGON_M2_vcmpy_s1_sat_r
+      {Intrinsic::hexagon_M2_vdmacs_s0, 19445}, // __builtin_HEXAGON_M2_vdmacs_s0
+      {Intrinsic::hexagon_M2_vdmacs_s1, 19476}, // __builtin_HEXAGON_M2_vdmacs_s1
+      {Intrinsic::hexagon_M2_vdmpyrs_s0, 19507}, // __builtin_HEXAGON_M2_vdmpyrs_s0
+      {Intrinsic::hexagon_M2_vdmpyrs_s1, 19539}, // __builtin_HEXAGON_M2_vdmpyrs_s1
+      {Intrinsic::hexagon_M2_vdmpys_s0, 19571}, // __builtin_HEXAGON_M2_vdmpys_s0
+      {Intrinsic::hexagon_M2_vdmpys_s1, 19602}, // __builtin_HEXAGON_M2_vdmpys_s1
+      {Intrinsic::hexagon_M2_vmac2, 19633}, // __builtin_HEXAGON_M2_vmac2
+      {Intrinsic::hexagon_M2_vmac2es, 19660}, // __builtin_HEXAGON_M2_vmac2es
+      {Intrinsic::hexagon_M2_vmac2es_s0, 19689}, // __builtin_HEXAGON_M2_vmac2es_s0
+      {Intrinsic::hexagon_M2_vmac2es_s1, 19721}, // __builtin_HEXAGON_M2_vmac2es_s1
+      {Intrinsic::hexagon_M2_vmac2s_s0, 19753}, // __builtin_HEXAGON_M2_vmac2s_s0
+      {Intrinsic::hexagon_M2_vmac2s_s1, 19784}, // __builtin_HEXAGON_M2_vmac2s_s1
+      {Intrinsic::hexagon_M2_vmac2su_s0, 19815}, // __builtin_HEXAGON_M2_vmac2su_s0
+      {Intrinsic::hexagon_M2_vmac2su_s1, 19847}, // __builtin_HEXAGON_M2_vmac2su_s1
+      {Intrinsic::hexagon_M2_vmpy2es_s0, 19879}, // __builtin_HEXAGON_M2_vmpy2es_s0
+      {Intrinsic::hexagon_M2_vmpy2es_s1, 19911}, // __builtin_HEXAGON_M2_vmpy2es_s1
+      {Intrinsic::hexagon_M2_vmpy2s_s0, 19943}, // __builtin_HEXAGON_M2_vmpy2s_s0
+      {Intrinsic::hexagon_M2_vmpy2s_s0pack, 19974}, // __builtin_HEXAGON_M2_vmpy2s_s0pack
+      {Intrinsic::hexagon_M2_vmpy2s_s1, 20009}, // __builtin_HEXAGON_M2_vmpy2s_s1
+      {Intrinsic::hexagon_M2_vmpy2s_s1pack, 20040}, // __builtin_HEXAGON_M2_vmpy2s_s1pack
+      {Intrinsic::hexagon_M2_vmpy2su_s0, 20075}, // __builtin_HEXAGON_M2_vmpy2su_s0
+      {Intrinsic::hexagon_M2_vmpy2su_s1, 20107}, // __builtin_HEXAGON_M2_vmpy2su_s1
+      {Intrinsic::hexagon_M2_vraddh, 20139}, // __builtin_HEXAGON_M2_vraddh
+      {Intrinsic::hexagon_M2_vradduh, 20167}, // __builtin_HEXAGON_M2_vradduh
+      {Intrinsic::hexagon_M2_vrcmaci_s0, 20196}, // __builtin_HEXAGON_M2_vrcmaci_s0
+      {Intrinsic::hexagon_M2_vrcmaci_s0c, 20228}, // __builtin_HEXAGON_M2_vrcmaci_s0c
+      {Intrinsic::hexagon_M2_vrcmacr_s0, 20261}, // __builtin_HEXAGON_M2_vrcmacr_s0
+      {Intrinsic::hexagon_M2_vrcmacr_s0c, 20293}, // __builtin_HEXAGON_M2_vrcmacr_s0c
+      {Intrinsic::hexagon_M2_vrcmpyi_s0, 20326}, // __builtin_HEXAGON_M2_vrcmpyi_s0
+      {Intrinsic::hexagon_M2_vrcmpyi_s0c, 20358}, // __builtin_HEXAGON_M2_vrcmpyi_s0c
+      {Intrinsic::hexagon_M2_vrcmpyr_s0, 20391}, // __builtin_HEXAGON_M2_vrcmpyr_s0
+      {Intrinsic::hexagon_M2_vrcmpyr_s0c, 20423}, // __builtin_HEXAGON_M2_vrcmpyr_s0c
+      {Intrinsic::hexagon_M2_vrcmpys_acc_s1, 20456}, // __builtin_HEXAGON_M2_vrcmpys_acc_s1
+      {Intrinsic::hexagon_M2_vrcmpys_s1, 20492}, // __builtin_HEXAGON_M2_vrcmpys_s1
+      {Intrinsic::hexagon_M2_vrcmpys_s1rp, 20524}, // __builtin_HEXAGON_M2_vrcmpys_s1rp
+      {Intrinsic::hexagon_M2_vrmac_s0, 20558}, // __builtin_HEXAGON_M2_vrmac_s0
+      {Intrinsic::hexagon_M2_vrmpy_s0, 20588}, // __builtin_HEXAGON_M2_vrmpy_s0
+      {Intrinsic::hexagon_M2_xor_xacc, 20618}, // __builtin_HEXAGON_M2_xor_xacc
+      {Intrinsic::hexagon_M4_and_and, 20648}, // __builtin_HEXAGON_M4_and_and
+      {Intrinsic::hexagon_M4_and_andn, 20677}, // __builtin_HEXAGON_M4_and_andn
+      {Intrinsic::hexagon_M4_and_or, 20707}, // __builtin_HEXAGON_M4_and_or
+      {Intrinsic::hexagon_M4_and_xor, 20735}, // __builtin_HEXAGON_M4_and_xor
+      {Intrinsic::hexagon_M4_cmpyi_wh, 20764}, // __builtin_HEXAGON_M4_cmpyi_wh
+      {Intrinsic::hexagon_M4_cmpyi_whc, 20794}, // __builtin_HEXAGON_M4_cmpyi_whc
+      {Intrinsic::hexagon_M4_cmpyr_wh, 20825}, // __builtin_HEXAGON_M4_cmpyr_wh
+      {Intrinsic::hexagon_M4_cmpyr_whc, 20855}, // __builtin_HEXAGON_M4_cmpyr_whc
+      {Intrinsic::hexagon_M4_mac_up_s1_sat, 20886}, // __builtin_HEXAGON_M4_mac_up_s1_sat
+      {Intrinsic::hexagon_M4_mpyri_addi, 20921}, // __builtin_HEXAGON_M4_mpyri_addi
+      {Intrinsic::hexagon_M4_mpyri_addr, 20953}, // __builtin_HEXAGON_M4_mpyri_addr
+      {Intrinsic::hexagon_M4_mpyri_addr_u2, 20985}, // __builtin_HEXAGON_M4_mpyri_addr_u2
+      {Intrinsic::hexagon_M4_mpyrr_addi, 21020}, // __builtin_HEXAGON_M4_mpyrr_addi
+      {Intrinsic::hexagon_M4_mpyrr_addr, 21052}, // __builtin_HEXAGON_M4_mpyrr_addr
+      {Intrinsic::hexagon_M4_nac_up_s1_sat, 21084}, // __builtin_HEXAGON_M4_nac_up_s1_sat
+      {Intrinsic::hexagon_M4_or_and, 21119}, // __builtin_HEXAGON_M4_or_and
+      {Intrinsic::hexagon_M4_or_andn, 21147}, // __builtin_HEXAGON_M4_or_andn
+      {Intrinsic::hexagon_M4_or_or, 21176}, // __builtin_HEXAGON_M4_or_or
+      {Intrinsic::hexagon_M4_or_xor, 21203}, // __builtin_HEXAGON_M4_or_xor
+      {Intrinsic::hexagon_M4_pmpyw, 21231}, // __builtin_HEXAGON_M4_pmpyw
+      {Intrinsic::hexagon_M4_pmpyw_acc, 21258}, // __builtin_HEXAGON_M4_pmpyw_acc
+      {Intrinsic::hexagon_M4_vpmpyh, 21289}, // __builtin_HEXAGON_M4_vpmpyh
+      {Intrinsic::hexagon_M4_vpmpyh_acc, 21317}, // __builtin_HEXAGON_M4_vpmpyh_acc
+      {Intrinsic::hexagon_M4_vrmpyeh_acc_s0, 21349}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s0
+      {Intrinsic::hexagon_M4_vrmpyeh_acc_s1, 21385}, // __builtin_HEXAGON_M4_vrmpyeh_acc_s1
+      {Intrinsic::hexagon_M4_vrmpyeh_s0, 21421}, // __builtin_HEXAGON_M4_vrmpyeh_s0
+      {Intrinsic::hexagon_M4_vrmpyeh_s1, 21453}, // __builtin_HEXAGON_M4_vrmpyeh_s1
+      {Intrinsic::hexagon_M4_vrmpyoh_acc_s0, 21485}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s0
+      {Intrinsic::hexagon_M4_vrmpyoh_acc_s1, 21521}, // __builtin_HEXAGON_M4_vrmpyoh_acc_s1
+      {Intrinsic::hexagon_M4_vrmpyoh_s0, 21557}, // __builtin_HEXAGON_M4_vrmpyoh_s0
+      {Intrinsic::hexagon_M4_vrmpyoh_s1, 21589}, // __builtin_HEXAGON_M4_vrmpyoh_s1
+      {Intrinsic::hexagon_M4_xor_and, 21621}, // __builtin_HEXAGON_M4_xor_and
+      {Intrinsic::hexagon_M4_xor_andn, 21650}, // __builtin_HEXAGON_M4_xor_andn
+      {Intrinsic::hexagon_M4_xor_or, 21680}, // __builtin_HEXAGON_M4_xor_or
+      {Intrinsic::hexagon_M4_xor_xacc, 21708}, // __builtin_HEXAGON_M4_xor_xacc
+      {Intrinsic::hexagon_M5_vdmacbsu, 21738}, // __builtin_HEXAGON_M5_vdmacbsu
+      {Intrinsic::hexagon_M5_vdmpybsu, 21768}, // __builtin_HEXAGON_M5_vdmpybsu
+      {Intrinsic::hexagon_M5_vmacbsu, 21798}, // __builtin_HEXAGON_M5_vmacbsu
+      {Intrinsic::hexagon_M5_vmacbuu, 21827}, // __builtin_HEXAGON_M5_vmacbuu
+      {Intrinsic::hexagon_M5_vmpybsu, 21856}, // __builtin_HEXAGON_M5_vmpybsu
+      {Intrinsic::hexagon_M5_vmpybuu, 21885}, // __builtin_HEXAGON_M5_vmpybuu
+      {Intrinsic::hexagon_M5_vrmacbsu, 21914}, // __builtin_HEXAGON_M5_vrmacbsu
+      {Intrinsic::hexagon_M5_vrmacbuu, 21944}, // __builtin_HEXAGON_M5_vrmacbuu
+      {Intrinsic::hexagon_M5_vrmpybsu, 21974}, // __builtin_HEXAGON_M5_vrmpybsu
+      {Intrinsic::hexagon_M5_vrmpybuu, 22004}, // __builtin_HEXAGON_M5_vrmpybuu
+      {Intrinsic::hexagon_M6_vabsdiffb, 22034}, // __builtin_HEXAGON_M6_vabsdiffb
+      {Intrinsic::hexagon_M6_vabsdiffub, 22065}, // __builtin_HEXAGON_M6_vabsdiffub
+      {Intrinsic::hexagon_S2_addasl_rrri, 22097}, // __builtin_HEXAGON_S2_addasl_rrri
+      {Intrinsic::hexagon_S2_asl_i_p, 22130}, // __builtin_HEXAGON_S2_asl_i_p
+      {Intrinsic::hexagon_S2_asl_i_p_acc, 22159}, // __builtin_HEXAGON_S2_asl_i_p_acc
+      {Intrinsic::hexagon_S2_asl_i_p_and, 22192}, // __builtin_HEXAGON_S2_asl_i_p_and
+      {Intrinsic::hexagon_S2_asl_i_p_nac, 22225}, // __builtin_HEXAGON_S2_asl_i_p_nac
+      {Intrinsic::hexagon_S2_asl_i_p_or, 22258}, // __builtin_HEXAGON_S2_asl_i_p_or
+      {Intrinsic::hexagon_S2_asl_i_p_xacc, 22290}, // __builtin_HEXAGON_S2_asl_i_p_xacc
+      {Intrinsic::hexagon_S2_asl_i_r, 22324}, // __builtin_HEXAGON_S2_asl_i_r
+      {Intrinsic::hexagon_S2_asl_i_r_acc, 22353}, // __builtin_HEXAGON_S2_asl_i_r_acc
+      {Intrinsic::hexagon_S2_asl_i_r_and, 22386}, // __builtin_HEXAGON_S2_asl_i_r_and
+      {Intrinsic::hexagon_S2_asl_i_r_nac, 22419}, // __builtin_HEXAGON_S2_asl_i_r_nac
+      {Intrinsic::hexagon_S2_asl_i_r_or, 22452}, // __builtin_HEXAGON_S2_asl_i_r_or
+      {Intrinsic::hexagon_S2_asl_i_r_sat, 22484}, // __builtin_HEXAGON_S2_asl_i_r_sat
+      {Intrinsic::hexagon_S2_asl_i_r_xacc, 22517}, // __builtin_HEXAGON_S2_asl_i_r_xacc
+      {Intrinsic::hexagon_S2_asl_i_vh, 22551}, // __builtin_HEXAGON_S2_asl_i_vh
+      {Intrinsic::hexagon_S2_asl_i_vw, 22581}, // __builtin_HEXAGON_S2_asl_i_vw
+      {Intrinsic::hexagon_S2_asl_r_p, 22611}, // __builtin_HEXAGON_S2_asl_r_p
+      {Intrinsic::hexagon_S2_asl_r_p_acc, 22640}, // __builtin_HEXAGON_S2_asl_r_p_acc
+      {Intrinsic::hexagon_S2_asl_r_p_and, 22673}, // __builtin_HEXAGON_S2_asl_r_p_and
+      {Intrinsic::hexagon_S2_asl_r_p_nac, 22706}, // __builtin_HEXAGON_S2_asl_r_p_nac
+      {Intrinsic::hexagon_S2_asl_r_p_or, 22739}, // __builtin_HEXAGON_S2_asl_r_p_or
+      {Intrinsic::hexagon_S2_asl_r_p_xor, 22771}, // __builtin_HEXAGON_S2_asl_r_p_xor
+      {Intrinsic::hexagon_S2_asl_r_r, 22804}, // __builtin_HEXAGON_S2_asl_r_r
+      {Intrinsic::hexagon_S2_asl_r_r_acc, 22833}, // __builtin_HEXAGON_S2_asl_r_r_acc
+      {Intrinsic::hexagon_S2_asl_r_r_and, 22866}, // __builtin_HEXAGON_S2_asl_r_r_and
+      {Intrinsic::hexagon_S2_asl_r_r_nac, 22899}, // __builtin_HEXAGON_S2_asl_r_r_nac
+      {Intrinsic::hexagon_S2_asl_r_r_or, 22932}, // __builtin_HEXAGON_S2_asl_r_r_or
+      {Intrinsic::hexagon_S2_asl_r_r_sat, 22964}, // __builtin_HEXAGON_S2_asl_r_r_sat
+      {Intrinsic::hexagon_S2_asl_r_vh, 22997}, // __builtin_HEXAGON_S2_asl_r_vh
+      {Intrinsic::hexagon_S2_asl_r_vw, 23027}, // __builtin_HEXAGON_S2_asl_r_vw
+      {Intrinsic::hexagon_S2_asr_i_p, 23057}, // __builtin_HEXAGON_S2_asr_i_p
+      {Intrinsic::hexagon_S2_asr_i_p_acc, 23086}, // __builtin_HEXAGON_S2_asr_i_p_acc
+      {Intrinsic::hexagon_S2_asr_i_p_and, 23119}, // __builtin_HEXAGON_S2_asr_i_p_and
+      {Intrinsic::hexagon_S2_asr_i_p_nac, 23152}, // __builtin_HEXAGON_S2_asr_i_p_nac
+      {Intrinsic::hexagon_S2_asr_i_p_or, 23185}, // __builtin_HEXAGON_S2_asr_i_p_or
+      {Intrinsic::hexagon_S2_asr_i_p_rnd, 23217}, // __builtin_HEXAGON_S2_asr_i_p_rnd
+      {Intrinsic::hexagon_S2_asr_i_p_rnd_goodsyntax, 23250}, // __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax
+      {Intrinsic::hexagon_S2_asr_i_r, 23294}, // __builtin_HEXAGON_S2_asr_i_r
+      {Intrinsic::hexagon_S2_asr_i_r_acc, 23323}, // __builtin_HEXAGON_S2_asr_i_r_acc
+      {Intrinsic::hexagon_S2_asr_i_r_and, 23356}, // __builtin_HEXAGON_S2_asr_i_r_and
+      {Intrinsic::hexagon_S2_asr_i_r_nac, 23389}, // __builtin_HEXAGON_S2_asr_i_r_nac
+      {Intrinsic::hexagon_S2_asr_i_r_or, 23422}, // __builtin_HEXAGON_S2_asr_i_r_or
+      {Intrinsic::hexagon_S2_asr_i_r_rnd, 23454}, // __builtin_HEXAGON_S2_asr_i_r_rnd
+      {Intrinsic::hexagon_S2_asr_i_r_rnd_goodsyntax, 23487}, // __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax
+      {Intrinsic::hexagon_S2_asr_i_svw_trun, 23531}, // __builtin_HEXAGON_S2_asr_i_svw_trun
+      {Intrinsic::hexagon_S2_asr_i_vh, 23567}, // __builtin_HEXAGON_S2_asr_i_vh
+      {Intrinsic::hexagon_S2_asr_i_vw, 23597}, // __builtin_HEXAGON_S2_asr_i_vw
+      {Intrinsic::hexagon_S2_asr_r_p, 23627}, // __builtin_HEXAGON_S2_asr_r_p
+      {Intrinsic::hexagon_S2_asr_r_p_acc, 23656}, // __builtin_HEXAGON_S2_asr_r_p_acc
+      {Intrinsic::hexagon_S2_asr_r_p_and, 23689}, // __builtin_HEXAGON_S2_asr_r_p_and
+      {Intrinsic::hexagon_S2_asr_r_p_nac, 23722}, // __builtin_HEXAGON_S2_asr_r_p_nac
+      {Intrinsic::hexagon_S2_asr_r_p_or, 23755}, // __builtin_HEXAGON_S2_asr_r_p_or
+      {Intrinsic::hexagon_S2_asr_r_p_xor, 23787}, // __builtin_HEXAGON_S2_asr_r_p_xor
+      {Intrinsic::hexagon_S2_asr_r_r, 23820}, // __builtin_HEXAGON_S2_asr_r_r
+      {Intrinsic::hexagon_S2_asr_r_r_acc, 23849}, // __builtin_HEXAGON_S2_asr_r_r_acc
+      {Intrinsic::hexagon_S2_asr_r_r_and, 23882}, // __builtin_HEXAGON_S2_asr_r_r_and
+      {Intrinsic::hexagon_S2_asr_r_r_nac, 23915}, // __builtin_HEXAGON_S2_asr_r_r_nac
+      {Intrinsic::hexagon_S2_asr_r_r_or, 23948}, // __builtin_HEXAGON_S2_asr_r_r_or
+      {Intrinsic::hexagon_S2_asr_r_r_sat, 23980}, // __builtin_HEXAGON_S2_asr_r_r_sat
+      {Intrinsic::hexagon_S2_asr_r_svw_trun, 24013}, // __builtin_HEXAGON_S2_asr_r_svw_trun
+      {Intrinsic::hexagon_S2_asr_r_vh, 24049}, // __builtin_HEXAGON_S2_asr_r_vh
+      {Intrinsic::hexagon_S2_asr_r_vw, 24079}, // __builtin_HEXAGON_S2_asr_r_vw
+      {Intrinsic::hexagon_S2_brev, 24109}, // __builtin_HEXAGON_S2_brev
+      {Intrinsic::hexagon_S2_brevp, 24135}, // __builtin_HEXAGON_S2_brevp
+      {Intrinsic::hexagon_S2_cabacencbin, 24162}, // __builtin_HEXAGON_S2_cabacencbin
+      {Intrinsic::hexagon_S2_cl0, 24195}, // __builtin_HEXAGON_S2_cl0
+      {Intrinsic::hexagon_S2_cl0p, 24220}, // __builtin_HEXAGON_S2_cl0p
+      {Intrinsic::hexagon_S2_cl1, 24246}, // __builtin_HEXAGON_S2_cl1
+      {Intrinsic::hexagon_S2_cl1p, 24271}, // __builtin_HEXAGON_S2_cl1p
+      {Intrinsic::hexagon_S2_clb, 24297}, // __builtin_HEXAGON_S2_clb
+      {Intrinsic::hexagon_S2_clbnorm, 24322}, // __builtin_HEXAGON_S2_clbnorm
+      {Intrinsic::hexagon_S2_clbp, 24351}, // __builtin_HEXAGON_S2_clbp
+      {Intrinsic::hexagon_S2_clrbit_i, 24377}, // __builtin_HEXAGON_S2_clrbit_i
+      {Intrinsic::hexagon_S2_clrbit_r, 24407}, // __builtin_HEXAGON_S2_clrbit_r
+      {Intrinsic::hexagon_S2_ct0, 24437}, // __builtin_HEXAGON_S2_ct0
+      {Intrinsic::hexagon_S2_ct0p, 24462}, // __builtin_HEXAGON_S2_ct0p
+      {Intrinsic::hexagon_S2_ct1, 24488}, // __builtin_HEXAGON_S2_ct1
+      {Intrinsic::hexagon_S2_ct1p, 24513}, // __builtin_HEXAGON_S2_ct1p
+      {Intrinsic::hexagon_S2_deinterleave, 24539}, // __builtin_HEXAGON_S2_deinterleave
+      {Intrinsic::hexagon_S2_extractu, 24573}, // __builtin_HEXAGON_S2_extractu
+      {Intrinsic::hexagon_S2_extractu_rp, 24603}, // __builtin_HEXAGON_S2_extractu_rp
+      {Intrinsic::hexagon_S2_extractup, 24636}, // __builtin_HEXAGON_S2_extractup
+      {Intrinsic::hexagon_S2_extractup_rp, 24667}, // __builtin_HEXAGON_S2_extractup_rp
+      {Intrinsic::hexagon_S2_insert, 24701}, // __builtin_HEXAGON_S2_insert
+      {Intrinsic::hexagon_S2_insert_rp, 24729}, // __builtin_HEXAGON_S2_insert_rp
+      {Intrinsic::hexagon_S2_insertp, 24760}, // __builtin_HEXAGON_S2_insertp
+      {Intrinsic::hexagon_S2_insertp_rp, 24789}, // __builtin_HEXAGON_S2_insertp_rp
+      {Intrinsic::hexagon_S2_interleave, 24821}, // __builtin_HEXAGON_S2_interleave
+      {Intrinsic::hexagon_S2_lfsp, 24853}, // __builtin_HEXAGON_S2_lfsp
+      {Intrinsic::hexagon_S2_lsl_r_p, 24879}, // __builtin_HEXAGON_S2_lsl_r_p
+      {Intrinsic::hexagon_S2_lsl_r_p_acc, 24908}, // __builtin_HEXAGON_S2_lsl_r_p_acc
+      {Intrinsic::hexagon_S2_lsl_r_p_and, 24941}, // __builtin_HEXAGON_S2_lsl_r_p_and
+      {Intrinsic::hexagon_S2_lsl_r_p_nac, 24974}, // __builtin_HEXAGON_S2_lsl_r_p_nac
+      {Intrinsic::hexagon_S2_lsl_r_p_or, 25007}, // __builtin_HEXAGON_S2_lsl_r_p_or
+      {Intrinsic::hexagon_S2_lsl_r_p_xor, 25039}, // __builtin_HEXAGON_S2_lsl_r_p_xor
+      {Intrinsic::hexagon_S2_lsl_r_r, 25072}, // __builtin_HEXAGON_S2_lsl_r_r
+      {Intrinsic::hexagon_S2_lsl_r_r_acc, 25101}, // __builtin_HEXAGON_S2_lsl_r_r_acc
+      {Intrinsic::hexagon_S2_lsl_r_r_and, 25134}, // __builtin_HEXAGON_S2_lsl_r_r_and
+      {Intrinsic::hexagon_S2_lsl_r_r_nac, 25167}, // __builtin_HEXAGON_S2_lsl_r_r_nac
+      {Intrinsic::hexagon_S2_lsl_r_r_or, 25200}, // __builtin_HEXAGON_S2_lsl_r_r_or
+      {Intrinsic::hexagon_S2_lsl_r_vh, 25232}, // __builtin_HEXAGON_S2_lsl_r_vh
+      {Intrinsic::hexagon_S2_lsl_r_vw, 25262}, // __builtin_HEXAGON_S2_lsl_r_vw
+      {Intrinsic::hexagon_S2_lsr_i_p, 25292}, // __builtin_HEXAGON_S2_lsr_i_p
+      {Intrinsic::hexagon_S2_lsr_i_p_acc, 25321}, // __builtin_HEXAGON_S2_lsr_i_p_acc
+      {Intrinsic::hexagon_S2_lsr_i_p_and, 25354}, // __builtin_HEXAGON_S2_lsr_i_p_and
+      {Intrinsic::hexagon_S2_lsr_i_p_nac, 25387}, // __builtin_HEXAGON_S2_lsr_i_p_nac
+      {Intrinsic::hexagon_S2_lsr_i_p_or, 25420}, // __builtin_HEXAGON_S2_lsr_i_p_or
+      {Intrinsic::hexagon_S2_lsr_i_p_xacc, 25452}, // __builtin_HEXAGON_S2_lsr_i_p_xacc
+      {Intrinsic::hexagon_S2_lsr_i_r, 25486}, // __builtin_HEXAGON_S2_lsr_i_r
+      {Intrinsic::hexagon_S2_lsr_i_r_acc, 25515}, // __builtin_HEXAGON_S2_lsr_i_r_acc
+      {Intrinsic::hexagon_S2_lsr_i_r_and, 25548}, // __builtin_HEXAGON_S2_lsr_i_r_and
+      {Intrinsic::hexagon_S2_lsr_i_r_nac, 25581}, // __builtin_HEXAGON_S2_lsr_i_r_nac
+      {Intrinsic::hexagon_S2_lsr_i_r_or, 25614}, // __builtin_HEXAGON_S2_lsr_i_r_or
+      {Intrinsic::hexagon_S2_lsr_i_r_xacc, 25646}, // __builtin_HEXAGON_S2_lsr_i_r_xacc
+      {Intrinsic::hexagon_S2_lsr_i_vh, 25680}, // __builtin_HEXAGON_S2_lsr_i_vh
+      {Intrinsic::hexagon_S2_lsr_i_vw, 25710}, // __builtin_HEXAGON_S2_lsr_i_vw
+      {Intrinsic::hexagon_S2_lsr_r_p, 25740}, // __builtin_HEXAGON_S2_lsr_r_p
+      {Intrinsic::hexagon_S2_lsr_r_p_acc, 25769}, // __builtin_HEXAGON_S2_lsr_r_p_acc
+      {Intrinsic::hexagon_S2_lsr_r_p_and, 25802}, // __builtin_HEXAGON_S2_lsr_r_p_and
+      {Intrinsic::hexagon_S2_lsr_r_p_nac, 25835}, // __builtin_HEXAGON_S2_lsr_r_p_nac
+      {Intrinsic::hexagon_S2_lsr_r_p_or, 25868}, // __builtin_HEXAGON_S2_lsr_r_p_or
+      {Intrinsic::hexagon_S2_lsr_r_p_xor, 25900}, // __builtin_HEXAGON_S2_lsr_r_p_xor
+      {Intrinsic::hexagon_S2_lsr_r_r, 25933}, // __builtin_HEXAGON_S2_lsr_r_r
+      {Intrinsic::hexagon_S2_lsr_r_r_acc, 25962}, // __builtin_HEXAGON_S2_lsr_r_r_acc
+      {Intrinsic::hexagon_S2_lsr_r_r_and, 25995}, // __builtin_HEXAGON_S2_lsr_r_r_and
+      {Intrinsic::hexagon_S2_lsr_r_r_nac, 26028}, // __builtin_HEXAGON_S2_lsr_r_r_nac
+      {Intrinsic::hexagon_S2_lsr_r_r_or, 26061}, // __builtin_HEXAGON_S2_lsr_r_r_or
+      {Intrinsic::hexagon_S2_lsr_r_vh, 26093}, // __builtin_HEXAGON_S2_lsr_r_vh
+      {Intrinsic::hexagon_S2_lsr_r_vw, 26123}, // __builtin_HEXAGON_S2_lsr_r_vw
+      {Intrinsic::hexagon_S2_packhl, 26153}, // __builtin_HEXAGON_S2_packhl
+      {Intrinsic::hexagon_S2_parityp, 26181}, // __builtin_HEXAGON_S2_parityp
+      {Intrinsic::hexagon_S2_setbit_i, 26210}, // __builtin_HEXAGON_S2_setbit_i
+      {Intrinsic::hexagon_S2_setbit_r, 26240}, // __builtin_HEXAGON_S2_setbit_r
+      {Intrinsic::hexagon_S2_shuffeb, 26270}, // __builtin_HEXAGON_S2_shuffeb
+      {Intrinsic::hexagon_S2_shuffeh, 26299}, // __builtin_HEXAGON_S2_shuffeh
+      {Intrinsic::hexagon_S2_shuffob, 26328}, // __builtin_HEXAGON_S2_shuffob
+      {Intrinsic::hexagon_S2_shuffoh, 26357}, // __builtin_HEXAGON_S2_shuffoh
+      {Intrinsic::hexagon_S2_storew_locked, 26386}, // __builtin_HEXAGON_S2_storew_locked
+      {Intrinsic::hexagon_S2_svsathb, 26421}, // __builtin_HEXAGON_S2_svsathb
+      {Intrinsic::hexagon_S2_svsathub, 26450}, // __builtin_HEXAGON_S2_svsathub
+      {Intrinsic::hexagon_S2_tableidxb_goodsyntax, 26480}, // __builtin_HEXAGON_S2_tableidxb_goodsyntax
+      {Intrinsic::hexagon_S2_tableidxd_goodsyntax, 26522}, // __builtin_HEXAGON_S2_tableidxd_goodsyntax
+      {Intrinsic::hexagon_S2_tableidxh_goodsyntax, 26564}, // __builtin_HEXAGON_S2_tableidxh_goodsyntax
+      {Intrinsic::hexagon_S2_tableidxw_goodsyntax, 26606}, // __builtin_HEXAGON_S2_tableidxw_goodsyntax
+      {Intrinsic::hexagon_S2_togglebit_i, 26648}, // __builtin_HEXAGON_S2_togglebit_i
+      {Intrinsic::hexagon_S2_togglebit_r, 26681}, // __builtin_HEXAGON_S2_togglebit_r
+      {Intrinsic::hexagon_S2_tstbit_i, 26714}, // __builtin_HEXAGON_S2_tstbit_i
+      {Intrinsic::hexagon_S2_tstbit_r, 26744}, // __builtin_HEXAGON_S2_tstbit_r
+      {Intrinsic::hexagon_S2_valignib, 26774}, // __builtin_HEXAGON_S2_valignib
+      {Intrinsic::hexagon_S2_valignrb, 26804}, // __builtin_HEXAGON_S2_valignrb
+      {Intrinsic::hexagon_S2_vcnegh, 26834}, // __builtin_HEXAGON_S2_vcnegh
+      {Intrinsic::hexagon_S2_vcrotate, 26862}, // __builtin_HEXAGON_S2_vcrotate
+      {Intrinsic::hexagon_S2_vrcnegh, 26892}, // __builtin_HEXAGON_S2_vrcnegh
+      {Intrinsic::hexagon_S2_vrndpackwh, 26921}, // __builtin_HEXAGON_S2_vrndpackwh
+      {Intrinsic::hexagon_S2_vrndpackwhs, 26953}, // __builtin_HEXAGON_S2_vrndpackwhs
+      {Intrinsic::hexagon_S2_vsathb, 26986}, // __builtin_HEXAGON_S2_vsathb
+      {Intrinsic::hexagon_S2_vsathb_nopack, 27014}, // __builtin_HEXAGON_S2_vsathb_nopack
+      {Intrinsic::hexagon_S2_vsathub, 27049}, // __builtin_HEXAGON_S2_vsathub
+      {Intrinsic::hexagon_S2_vsathub_nopack, 27078}, // __builtin_HEXAGON_S2_vsathub_nopack
+      {Intrinsic::hexagon_S2_vsatwh, 27114}, // __builtin_HEXAGON_S2_vsatwh
+      {Intrinsic::hexagon_S2_vsatwh_nopack, 27142}, // __builtin_HEXAGON_S2_vsatwh_nopack
+      {Intrinsic::hexagon_S2_vsatwuh, 27177}, // __builtin_HEXAGON_S2_vsatwuh
+      {Intrinsic::hexagon_S2_vsatwuh_nopack, 27206}, // __builtin_HEXAGON_S2_vsatwuh_nopack
+      {Intrinsic::hexagon_S2_vsplatrb, 27242}, // __builtin_HEXAGON_S2_vsplatrb
+      {Intrinsic::hexagon_S2_vsplatrh, 27272}, // __builtin_HEXAGON_S2_vsplatrh
+      {Intrinsic::hexagon_S2_vspliceib, 27302}, // __builtin_HEXAGON_S2_vspliceib
+      {Intrinsic::hexagon_S2_vsplicerb, 27333}, // __builtin_HEXAGON_S2_vsplicerb
+      {Intrinsic::hexagon_S2_vsxtbh, 27364}, // __builtin_HEXAGON_S2_vsxtbh
+      {Intrinsic::hexagon_S2_vsxthw, 27392}, // __builtin_HEXAGON_S2_vsxthw
+      {Intrinsic::hexagon_S2_vtrunehb, 27420}, // __builtin_HEXAGON_S2_vtrunehb
+      {Intrinsic::hexagon_S2_vtrunewh, 27450}, // __builtin_HEXAGON_S2_vtrunewh
+      {Intrinsic::hexagon_S2_vtrunohb, 27480}, // __builtin_HEXAGON_S2_vtrunohb
+      {Intrinsic::hexagon_S2_vtrunowh, 27510}, // __builtin_HEXAGON_S2_vtrunowh
+      {Intrinsic::hexagon_S2_vzxtbh, 27540}, // __builtin_HEXAGON_S2_vzxtbh
+      {Intrinsic::hexagon_S2_vzxthw, 27568}, // __builtin_HEXAGON_S2_vzxthw
+      {Intrinsic::hexagon_S4_addaddi, 27596}, // __builtin_HEXAGON_S4_addaddi
+      {Intrinsic::hexagon_S4_addi_asl_ri, 27625}, // __builtin_HEXAGON_S4_addi_asl_ri
+      {Intrinsic::hexagon_S4_addi_lsr_ri, 27658}, // __builtin_HEXAGON_S4_addi_lsr_ri
+      {Intrinsic::hexagon_S4_andi_asl_ri, 27691}, // __builtin_HEXAGON_S4_andi_asl_ri
+      {Intrinsic::hexagon_S4_andi_lsr_ri, 27724}, // __builtin_HEXAGON_S4_andi_lsr_ri
+      {Intrinsic::hexagon_S4_clbaddi, 27757}, // __builtin_HEXAGON_S4_clbaddi
+      {Intrinsic::hexagon_S4_clbpaddi, 27786}, // __builtin_HEXAGON_S4_clbpaddi
+      {Intrinsic::hexagon_S4_clbpnorm, 27816}, // __builtin_HEXAGON_S4_clbpnorm
+      {Intrinsic::hexagon_S4_extract, 27846}, // __builtin_HEXAGON_S4_extract
+      {Intrinsic::hexagon_S4_extract_rp, 27875}, // __builtin_HEXAGON_S4_extract_rp
+      {Intrinsic::hexagon_S4_extractp, 27907}, // __builtin_HEXAGON_S4_extractp
+      {Intrinsic::hexagon_S4_extractp_rp, 27937}, // __builtin_HEXAGON_S4_extractp_rp
+      {Intrinsic::hexagon_S4_lsli, 27970}, // __builtin_HEXAGON_S4_lsli
+      {Intrinsic::hexagon_S4_ntstbit_i, 27996}, // __builtin_HEXAGON_S4_ntstbit_i
+      {Intrinsic::hexagon_S4_ntstbit_r, 28027}, // __builtin_HEXAGON_S4_ntstbit_r
+      {Intrinsic::hexagon_S4_or_andi, 28058}, // __builtin_HEXAGON_S4_or_andi
+      {Intrinsic::hexagon_S4_or_andix, 28087}, // __builtin_HEXAGON_S4_or_andix
+      {Intrinsic::hexagon_S4_or_ori, 28117}, // __builtin_HEXAGON_S4_or_ori
+      {Intrinsic::hexagon_S4_ori_asl_ri, 28145}, // __builtin_HEXAGON_S4_ori_asl_ri
+      {Intrinsic::hexagon_S4_ori_lsr_ri, 28177}, // __builtin_HEXAGON_S4_ori_lsr_ri
+      {Intrinsic::hexagon_S4_parity, 28209}, // __builtin_HEXAGON_S4_parity
+      {Intrinsic::hexagon_S4_stored_locked, 28237}, // __builtin_HEXAGON_S4_stored_locked
+      {Intrinsic::hexagon_S4_subaddi, 28272}, // __builtin_HEXAGON_S4_subaddi
+      {Intrinsic::hexagon_S4_subi_asl_ri, 28301}, // __builtin_HEXAGON_S4_subi_asl_ri
+      {Intrinsic::hexagon_S4_subi_lsr_ri, 28334}, // __builtin_HEXAGON_S4_subi_lsr_ri
+      {Intrinsic::hexagon_S4_vrcrotate, 28367}, // __builtin_HEXAGON_S4_vrcrotate
+      {Intrinsic::hexagon_S4_vrcrotate_acc, 28398}, // __builtin_HEXAGON_S4_vrcrotate_acc
+      {Intrinsic::hexagon_S4_vxaddsubh, 28433}, // __builtin_HEXAGON_S4_vxaddsubh
+      {Intrinsic::hexagon_S4_vxaddsubhr, 28464}, // __builtin_HEXAGON_S4_vxaddsubhr
+      {Intrinsic::hexagon_S4_vxaddsubw, 28496}, // __builtin_HEXAGON_S4_vxaddsubw
+      {Intrinsic::hexagon_S4_vxsubaddh, 28527}, // __builtin_HEXAGON_S4_vxsubaddh
+      {Intrinsic::hexagon_S4_vxsubaddhr, 28558}, // __builtin_HEXAGON_S4_vxsubaddhr
+      {Intrinsic::hexagon_S4_vxsubaddw, 28590}, // __builtin_HEXAGON_S4_vxsubaddw
+      {Intrinsic::hexagon_S5_asrhub_rnd_sat_goodsyntax, 28621}, // __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax
+      {Intrinsic::hexagon_S5_asrhub_sat, 28668}, // __builtin_HEXAGON_S5_asrhub_sat
+      {Intrinsic::hexagon_S5_popcountp, 28700}, // __builtin_HEXAGON_S5_popcountp
+      {Intrinsic::hexagon_S5_vasrhrnd_goodsyntax, 28731}, // __builtin_HEXAGON_S5_vasrhrnd_goodsyntax
+      {Intrinsic::hexagon_S6_rol_i_p, 28772}, // __builtin_HEXAGON_S6_rol_i_p
+      {Intrinsic::hexagon_S6_rol_i_p_acc, 28801}, // __builtin_HEXAGON_S6_rol_i_p_acc
+      {Intrinsic::hexagon_S6_rol_i_p_and, 28834}, // __builtin_HEXAGON_S6_rol_i_p_and
+      {Intrinsic::hexagon_S6_rol_i_p_nac, 28867}, // __builtin_HEXAGON_S6_rol_i_p_nac
+      {Intrinsic::hexagon_S6_rol_i_p_or, 28900}, // __builtin_HEXAGON_S6_rol_i_p_or
+      {Intrinsic::hexagon_S6_rol_i_p_xacc, 28932}, // __builtin_HEXAGON_S6_rol_i_p_xacc
+      {Intrinsic::hexagon_S6_rol_i_r, 28966}, // __builtin_HEXAGON_S6_rol_i_r
+      {Intrinsic::hexagon_S6_rol_i_r_acc, 28995}, // __builtin_HEXAGON_S6_rol_i_r_acc
+      {Intrinsic::hexagon_S6_rol_i_r_and, 29028}, // __builtin_HEXAGON_S6_rol_i_r_and
+      {Intrinsic::hexagon_S6_rol_i_r_nac, 29061}, // __builtin_HEXAGON_S6_rol_i_r_nac
+      {Intrinsic::hexagon_S6_rol_i_r_or, 29094}, // __builtin_HEXAGON_S6_rol_i_r_or
+      {Intrinsic::hexagon_S6_rol_i_r_xacc, 29126}, // __builtin_HEXAGON_S6_rol_i_r_xacc
+      {Intrinsic::hexagon_S6_vsplatrbp, 29160}, // __builtin_HEXAGON_S6_vsplatrbp
+      {Intrinsic::hexagon_S6_vtrunehb_ppp, 29191}, // __builtin_HEXAGON_S6_vtrunehb_ppp
+      {Intrinsic::hexagon_S6_vtrunohb_ppp, 29225}, // __builtin_HEXAGON_S6_vtrunohb_ppp
+      {Intrinsic::hexagon_V6_extractw, 29286}, // __builtin_HEXAGON_V6_extractw
+      {Intrinsic::hexagon_V6_extractw_128B, 29316}, // __builtin_HEXAGON_V6_extractw_128B
+      {Intrinsic::hexagon_V6_hi, 29351}, // __builtin_HEXAGON_V6_hi
+      {Intrinsic::hexagon_V6_hi_128B, 29375}, // __builtin_HEXAGON_V6_hi_128B
+      {Intrinsic::hexagon_V6_lo, 29404}, // __builtin_HEXAGON_V6_lo
+      {Intrinsic::hexagon_V6_lo_128B, 29428}, // __builtin_HEXAGON_V6_lo_128B
+      {Intrinsic::hexagon_V6_lvsplatb, 29457}, // __builtin_HEXAGON_V6_lvsplatb
+      {Intrinsic::hexagon_V6_lvsplatb_128B, 29487}, // __builtin_HEXAGON_V6_lvsplatb_128B
+      {Intrinsic::hexagon_V6_lvsplath, 29522}, // __builtin_HEXAGON_V6_lvsplath
+      {Intrinsic::hexagon_V6_lvsplath_128B, 29552}, // __builtin_HEXAGON_V6_lvsplath_128B
+      {Intrinsic::hexagon_V6_lvsplatw, 29587}, // __builtin_HEXAGON_V6_lvsplatw
+      {Intrinsic::hexagon_V6_lvsplatw_128B, 29617}, // __builtin_HEXAGON_V6_lvsplatw_128B
+      {Intrinsic::hexagon_V6_pred_and, 29652}, // __builtin_HEXAGON_V6_pred_and
+      {Intrinsic::hexagon_V6_pred_and_128B, 29682}, // __builtin_HEXAGON_V6_pred_and_128B
+      {Intrinsic::hexagon_V6_pred_and_n, 29717}, // __builtin_HEXAGON_V6_pred_and_n
+      {Intrinsic::hexagon_V6_pred_and_n_128B, 29749}, // __builtin_HEXAGON_V6_pred_and_n_128B
+      {Intrinsic::hexagon_V6_pred_not, 29786}, // __builtin_HEXAGON_V6_pred_not
+      {Intrinsic::hexagon_V6_pred_not_128B, 29816}, // __builtin_HEXAGON_V6_pred_not_128B
+      {Intrinsic::hexagon_V6_pred_or, 29851}, // __builtin_HEXAGON_V6_pred_or
+      {Intrinsic::hexagon_V6_pred_or_128B, 29880}, // __builtin_HEXAGON_V6_pred_or_128B
+      {Intrinsic::hexagon_V6_pred_or_n, 29914}, // __builtin_HEXAGON_V6_pred_or_n
+      {Intrinsic::hexagon_V6_pred_or_n_128B, 29945}, // __builtin_HEXAGON_V6_pred_or_n_128B
+      {Intrinsic::hexagon_V6_pred_scalar2, 29981}, // __builtin_HEXAGON_V6_pred_scalar2
+      {Intrinsic::hexagon_V6_pred_scalar2_128B, 30015}, // __builtin_HEXAGON_V6_pred_scalar2_128B
+      {Intrinsic::hexagon_V6_pred_scalar2v2, 30054}, // __builtin_HEXAGON_V6_pred_scalar2v2
+      {Intrinsic::hexagon_V6_pred_scalar2v2_128B, 30090}, // __builtin_HEXAGON_V6_pred_scalar2v2_128B
+      {Intrinsic::hexagon_V6_pred_xor, 30131}, // __builtin_HEXAGON_V6_pred_xor
+      {Intrinsic::hexagon_V6_pred_xor_128B, 30161}, // __builtin_HEXAGON_V6_pred_xor_128B
+      {Intrinsic::hexagon_V6_shuffeqh, 30196}, // __builtin_HEXAGON_V6_shuffeqh
+      {Intrinsic::hexagon_V6_shuffeqh_128B, 30226}, // __builtin_HEXAGON_V6_shuffeqh_128B
+      {Intrinsic::hexagon_V6_shuffeqw, 30261}, // __builtin_HEXAGON_V6_shuffeqw
+      {Intrinsic::hexagon_V6_shuffeqw_128B, 30291}, // __builtin_HEXAGON_V6_shuffeqw_128B
+      {Intrinsic::hexagon_V6_vabsdiffh, 30326}, // __builtin_HEXAGON_V6_vabsdiffh
+      {Intrinsic::hexagon_V6_vabsdiffh_128B, 30357}, // __builtin_HEXAGON_V6_vabsdiffh_128B
+      {Intrinsic::hexagon_V6_vabsdiffub, 30393}, // __builtin_HEXAGON_V6_vabsdiffub
+      {Intrinsic::hexagon_V6_vabsdiffub_128B, 30425}, // __builtin_HEXAGON_V6_vabsdiffub_128B
+      {Intrinsic::hexagon_V6_vabsdiffuh, 30462}, // __builtin_HEXAGON_V6_vabsdiffuh
+      {Intrinsic::hexagon_V6_vabsdiffuh_128B, 30494}, // __builtin_HEXAGON_V6_vabsdiffuh_128B
+      {Intrinsic::hexagon_V6_vabsdiffw, 30531}, // __builtin_HEXAGON_V6_vabsdiffw
+      {Intrinsic::hexagon_V6_vabsdiffw_128B, 30562}, // __builtin_HEXAGON_V6_vabsdiffw_128B
+      {Intrinsic::hexagon_V6_vabsh, 30598}, // __builtin_HEXAGON_V6_vabsh
+      {Intrinsic::hexagon_V6_vabsh_128B, 30625}, // __builtin_HEXAGON_V6_vabsh_128B
+      {Intrinsic::hexagon_V6_vabsh_sat, 30657}, // __builtin_HEXAGON_V6_vabsh_sat
+      {Intrinsic::hexagon_V6_vabsh_sat_128B, 30688}, // __builtin_HEXAGON_V6_vabsh_sat_128B
+      {Intrinsic::hexagon_V6_vabsw, 30724}, // __builtin_HEXAGON_V6_vabsw
+      {Intrinsic::hexagon_V6_vabsw_128B, 30751}, // __builtin_HEXAGON_V6_vabsw_128B
+      {Intrinsic::hexagon_V6_vabsw_sat, 30783}, // __builtin_HEXAGON_V6_vabsw_sat
+      {Intrinsic::hexagon_V6_vabsw_sat_128B, 30814}, // __builtin_HEXAGON_V6_vabsw_sat_128B
+      {Intrinsic::hexagon_V6_vaddb, 30850}, // __builtin_HEXAGON_V6_vaddb
+      {Intrinsic::hexagon_V6_vaddb_128B, 30877}, // __builtin_HEXAGON_V6_vaddb_128B
+      {Intrinsic::hexagon_V6_vaddb_dv, 30909}, // __builtin_HEXAGON_V6_vaddb_dv
+      {Intrinsic::hexagon_V6_vaddb_dv_128B, 30939}, // __builtin_HEXAGON_V6_vaddb_dv_128B
+      {Intrinsic::hexagon_V6_vaddbnq, 30974}, // __builtin_HEXAGON_V6_vaddbnq
+      {Intrinsic::hexagon_V6_vaddbnq_128B, 31003}, // __builtin_HEXAGON_V6_vaddbnq_128B
+      {Intrinsic::hexagon_V6_vaddbq, 31037}, // __builtin_HEXAGON_V6_vaddbq
+      {Intrinsic::hexagon_V6_vaddbq_128B, 31065}, // __builtin_HEXAGON_V6_vaddbq_128B
+      {Intrinsic::hexagon_V6_vaddbsat, 31098}, // __builtin_HEXAGON_V6_vaddbsat
+      {Intrinsic::hexagon_V6_vaddbsat_128B, 31128}, // __builtin_HEXAGON_V6_vaddbsat_128B
+      {Intrinsic::hexagon_V6_vaddbsat_dv, 31163}, // __builtin_HEXAGON_V6_vaddbsat_dv
+      {Intrinsic::hexagon_V6_vaddbsat_dv_128B, 31196}, // __builtin_HEXAGON_V6_vaddbsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddclbh, 31234}, // __builtin_HEXAGON_V6_vaddclbh
+      {Intrinsic::hexagon_V6_vaddclbh_128B, 31264}, // __builtin_HEXAGON_V6_vaddclbh_128B
+      {Intrinsic::hexagon_V6_vaddclbw, 31299}, // __builtin_HEXAGON_V6_vaddclbw
+      {Intrinsic::hexagon_V6_vaddclbw_128B, 31329}, // __builtin_HEXAGON_V6_vaddclbw_128B
+      {Intrinsic::hexagon_V6_vaddh, 31364}, // __builtin_HEXAGON_V6_vaddh
+      {Intrinsic::hexagon_V6_vaddh_128B, 31391}, // __builtin_HEXAGON_V6_vaddh_128B
+      {Intrinsic::hexagon_V6_vaddh_dv, 31423}, // __builtin_HEXAGON_V6_vaddh_dv
+      {Intrinsic::hexagon_V6_vaddh_dv_128B, 31453}, // __builtin_HEXAGON_V6_vaddh_dv_128B
+      {Intrinsic::hexagon_V6_vaddhnq, 31488}, // __builtin_HEXAGON_V6_vaddhnq
+      {Intrinsic::hexagon_V6_vaddhnq_128B, 31517}, // __builtin_HEXAGON_V6_vaddhnq_128B
+      {Intrinsic::hexagon_V6_vaddhq, 31551}, // __builtin_HEXAGON_V6_vaddhq
+      {Intrinsic::hexagon_V6_vaddhq_128B, 31579}, // __builtin_HEXAGON_V6_vaddhq_128B
+      {Intrinsic::hexagon_V6_vaddhsat, 31612}, // __builtin_HEXAGON_V6_vaddhsat
+      {Intrinsic::hexagon_V6_vaddhsat_128B, 31642}, // __builtin_HEXAGON_V6_vaddhsat_128B
+      {Intrinsic::hexagon_V6_vaddhsat_dv, 31677}, // __builtin_HEXAGON_V6_vaddhsat_dv
+      {Intrinsic::hexagon_V6_vaddhsat_dv_128B, 31710}, // __builtin_HEXAGON_V6_vaddhsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddhw, 31748}, // __builtin_HEXAGON_V6_vaddhw
+      {Intrinsic::hexagon_V6_vaddhw_128B, 31776}, // __builtin_HEXAGON_V6_vaddhw_128B
+      {Intrinsic::hexagon_V6_vaddhw_acc, 31809}, // __builtin_HEXAGON_V6_vaddhw_acc
+      {Intrinsic::hexagon_V6_vaddhw_acc_128B, 31841}, // __builtin_HEXAGON_V6_vaddhw_acc_128B
+      {Intrinsic::hexagon_V6_vaddubh, 31878}, // __builtin_HEXAGON_V6_vaddubh
+      {Intrinsic::hexagon_V6_vaddubh_128B, 31907}, // __builtin_HEXAGON_V6_vaddubh_128B
+      {Intrinsic::hexagon_V6_vaddubh_acc, 31941}, // __builtin_HEXAGON_V6_vaddubh_acc
+      {Intrinsic::hexagon_V6_vaddubh_acc_128B, 31974}, // __builtin_HEXAGON_V6_vaddubh_acc_128B
+      {Intrinsic::hexagon_V6_vaddubsat, 32012}, // __builtin_HEXAGON_V6_vaddubsat
+      {Intrinsic::hexagon_V6_vaddubsat_128B, 32043}, // __builtin_HEXAGON_V6_vaddubsat_128B
+      {Intrinsic::hexagon_V6_vaddubsat_dv, 32079}, // __builtin_HEXAGON_V6_vaddubsat_dv
+      {Intrinsic::hexagon_V6_vaddubsat_dv_128B, 32113}, // __builtin_HEXAGON_V6_vaddubsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddububb_sat, 32152}, // __builtin_HEXAGON_V6_vaddububb_sat
+      {Intrinsic::hexagon_V6_vaddububb_sat_128B, 32187}, // __builtin_HEXAGON_V6_vaddububb_sat_128B
+      {Intrinsic::hexagon_V6_vadduhsat, 32227}, // __builtin_HEXAGON_V6_vadduhsat
+      {Intrinsic::hexagon_V6_vadduhsat_128B, 32258}, // __builtin_HEXAGON_V6_vadduhsat_128B
+      {Intrinsic::hexagon_V6_vadduhsat_dv, 32294}, // __builtin_HEXAGON_V6_vadduhsat_dv
+      {Intrinsic::hexagon_V6_vadduhsat_dv_128B, 32328}, // __builtin_HEXAGON_V6_vadduhsat_dv_128B
+      {Intrinsic::hexagon_V6_vadduhw, 32367}, // __builtin_HEXAGON_V6_vadduhw
+      {Intrinsic::hexagon_V6_vadduhw_128B, 32396}, // __builtin_HEXAGON_V6_vadduhw_128B
+      {Intrinsic::hexagon_V6_vadduhw_acc, 32430}, // __builtin_HEXAGON_V6_vadduhw_acc
+      {Intrinsic::hexagon_V6_vadduhw_acc_128B, 32463}, // __builtin_HEXAGON_V6_vadduhw_acc_128B
+      {Intrinsic::hexagon_V6_vadduwsat, 32501}, // __builtin_HEXAGON_V6_vadduwsat
+      {Intrinsic::hexagon_V6_vadduwsat_128B, 32532}, // __builtin_HEXAGON_V6_vadduwsat_128B
+      {Intrinsic::hexagon_V6_vadduwsat_dv, 32568}, // __builtin_HEXAGON_V6_vadduwsat_dv
+      {Intrinsic::hexagon_V6_vadduwsat_dv_128B, 32602}, // __builtin_HEXAGON_V6_vadduwsat_dv_128B
+      {Intrinsic::hexagon_V6_vaddw, 32641}, // __builtin_HEXAGON_V6_vaddw
+      {Intrinsic::hexagon_V6_vaddw_128B, 32668}, // __builtin_HEXAGON_V6_vaddw_128B
+      {Intrinsic::hexagon_V6_vaddw_dv, 32700}, // __builtin_HEXAGON_V6_vaddw_dv
+      {Intrinsic::hexagon_V6_vaddw_dv_128B, 32730}, // __builtin_HEXAGON_V6_vaddw_dv_128B
+      {Intrinsic::hexagon_V6_vaddwnq, 32765}, // __builtin_HEXAGON_V6_vaddwnq
+      {Intrinsic::hexagon_V6_vaddwnq_128B, 32794}, // __builtin_HEXAGON_V6_vaddwnq_128B
+      {Intrinsic::hexagon_V6_vaddwq, 32828}, // __builtin_HEXAGON_V6_vaddwq
+      {Intrinsic::hexagon_V6_vaddwq_128B, 32856}, // __builtin_HEXAGON_V6_vaddwq_128B
+      {Intrinsic::hexagon_V6_vaddwsat, 32889}, // __builtin_HEXAGON_V6_vaddwsat
+      {Intrinsic::hexagon_V6_vaddwsat_128B, 32919}, // __builtin_HEXAGON_V6_vaddwsat_128B
+      {Intrinsic::hexagon_V6_vaddwsat_dv, 32954}, // __builtin_HEXAGON_V6_vaddwsat_dv
+      {Intrinsic::hexagon_V6_vaddwsat_dv_128B, 32987}, // __builtin_HEXAGON_V6_vaddwsat_dv_128B
+      {Intrinsic::hexagon_V6_valignb, 33025}, // __builtin_HEXAGON_V6_valignb
+      {Intrinsic::hexagon_V6_valignb_128B, 33054}, // __builtin_HEXAGON_V6_valignb_128B
+      {Intrinsic::hexagon_V6_valignbi, 33088}, // __builtin_HEXAGON_V6_valignbi
+      {Intrinsic::hexagon_V6_valignbi_128B, 33118}, // __builtin_HEXAGON_V6_valignbi_128B
+      {Intrinsic::hexagon_V6_vand, 33153}, // __builtin_HEXAGON_V6_vand
+      {Intrinsic::hexagon_V6_vand_128B, 33179}, // __builtin_HEXAGON_V6_vand_128B
+      {Intrinsic::hexagon_V6_vandnqrt, 33210}, // __builtin_HEXAGON_V6_vandnqrt
+      {Intrinsic::hexagon_V6_vandnqrt_128B, 33240}, // __builtin_HEXAGON_V6_vandnqrt_128B
+      {Intrinsic::hexagon_V6_vandnqrt_acc, 33275}, // __builtin_HEXAGON_V6_vandnqrt_acc
+      {Intrinsic::hexagon_V6_vandnqrt_acc_128B, 33309}, // __builtin_HEXAGON_V6_vandnqrt_acc_128B
+      {Intrinsic::hexagon_V6_vandqrt, 33348}, // __builtin_HEXAGON_V6_vandqrt
+      {Intrinsic::hexagon_V6_vandqrt_128B, 33377}, // __builtin_HEXAGON_V6_vandqrt_128B
+      {Intrinsic::hexagon_V6_vandqrt_acc, 33411}, // __builtin_HEXAGON_V6_vandqrt_acc
+      {Intrinsic::hexagon_V6_vandqrt_acc_128B, 33444}, // __builtin_HEXAGON_V6_vandqrt_acc_128B
+      {Intrinsic::hexagon_V6_vandvnqv, 33482}, // __builtin_HEXAGON_V6_vandvnqv
+      {Intrinsic::hexagon_V6_vandvnqv_128B, 33512}, // __builtin_HEXAGON_V6_vandvnqv_128B
+      {Intrinsic::hexagon_V6_vandvqv, 33547}, // __builtin_HEXAGON_V6_vandvqv
+      {Intrinsic::hexagon_V6_vandvqv_128B, 33576}, // __builtin_HEXAGON_V6_vandvqv_128B
+      {Intrinsic::hexagon_V6_vandvrt, 33610}, // __builtin_HEXAGON_V6_vandvrt
+      {Intrinsic::hexagon_V6_vandvrt_128B, 33639}, // __builtin_HEXAGON_V6_vandvrt_128B
+      {Intrinsic::hexagon_V6_vandvrt_acc, 33673}, // __builtin_HEXAGON_V6_vandvrt_acc
+      {Intrinsic::hexagon_V6_vandvrt_acc_128B, 33706}, // __builtin_HEXAGON_V6_vandvrt_acc_128B
+      {Intrinsic::hexagon_V6_vaslh, 33744}, // __builtin_HEXAGON_V6_vaslh
+      {Intrinsic::hexagon_V6_vaslh_128B, 33771}, // __builtin_HEXAGON_V6_vaslh_128B
+      {Intrinsic::hexagon_V6_vaslhv, 33803}, // __builtin_HEXAGON_V6_vaslhv
+      {Intrinsic::hexagon_V6_vaslhv_128B, 33831}, // __builtin_HEXAGON_V6_vaslhv_128B
+      {Intrinsic::hexagon_V6_vaslw, 33864}, // __builtin_HEXAGON_V6_vaslw
+      {Intrinsic::hexagon_V6_vaslw_128B, 33891}, // __builtin_HEXAGON_V6_vaslw_128B
+      {Intrinsic::hexagon_V6_vaslw_acc, 33923}, // __builtin_HEXAGON_V6_vaslw_acc
+      {Intrinsic::hexagon_V6_vaslw_acc_128B, 33954}, // __builtin_HEXAGON_V6_vaslw_acc_128B
+      {Intrinsic::hexagon_V6_vaslwv, 33990}, // __builtin_HEXAGON_V6_vaslwv
+      {Intrinsic::hexagon_V6_vaslwv_128B, 34018}, // __builtin_HEXAGON_V6_vaslwv_128B
+      {Intrinsic::hexagon_V6_vasrh, 34051}, // __builtin_HEXAGON_V6_vasrh
+      {Intrinsic::hexagon_V6_vasrh_128B, 34078}, // __builtin_HEXAGON_V6_vasrh_128B
+      {Intrinsic::hexagon_V6_vasrhbrndsat, 34110}, // __builtin_HEXAGON_V6_vasrhbrndsat
+      {Intrinsic::hexagon_V6_vasrhbrndsat_128B, 34144}, // __builtin_HEXAGON_V6_vasrhbrndsat_128B
+      {Intrinsic::hexagon_V6_vasrhbsat, 34183}, // __builtin_HEXAGON_V6_vasrhbsat
+      {Intrinsic::hexagon_V6_vasrhbsat_128B, 34214}, // __builtin_HEXAGON_V6_vasrhbsat_128B
+      {Intrinsic::hexagon_V6_vasrhubrndsat, 34250}, // __builtin_HEXAGON_V6_vasrhubrndsat
+      {Intrinsic::hexagon_V6_vasrhubrndsat_128B, 34285}, // __builtin_HEXAGON_V6_vasrhubrndsat_128B
+      {Intrinsic::hexagon_V6_vasrhubsat, 34325}, // __builtin_HEXAGON_V6_vasrhubsat
+      {Intrinsic::hexagon_V6_vasrhubsat_128B, 34357}, // __builtin_HEXAGON_V6_vasrhubsat_128B
+      {Intrinsic::hexagon_V6_vasrhv, 34394}, // __builtin_HEXAGON_V6_vasrhv
+      {Intrinsic::hexagon_V6_vasrhv_128B, 34422}, // __builtin_HEXAGON_V6_vasrhv_128B
+      {Intrinsic::hexagon_V6_vasruwuhrndsat, 34455}, // __builtin_HEXAGON_V6_vasruwuhrndsat
+      {Intrinsic::hexagon_V6_vasruwuhrndsat_128B, 34491}, // __builtin_HEXAGON_V6_vasruwuhrndsat_128B
+      {Intrinsic::hexagon_V6_vasrw, 34532}, // __builtin_HEXAGON_V6_vasrw
+      {Intrinsic::hexagon_V6_vasrw_128B, 34559}, // __builtin_HEXAGON_V6_vasrw_128B
+      {Intrinsic::hexagon_V6_vasrw_acc, 34591}, // __builtin_HEXAGON_V6_vasrw_acc
+      {Intrinsic::hexagon_V6_vasrw_acc_128B, 34622}, // __builtin_HEXAGON_V6_vasrw_acc_128B
+      {Intrinsic::hexagon_V6_vasrwh, 34658}, // __builtin_HEXAGON_V6_vasrwh
+      {Intrinsic::hexagon_V6_vasrwh_128B, 34686}, // __builtin_HEXAGON_V6_vasrwh_128B
+      {Intrinsic::hexagon_V6_vasrwhrndsat, 34719}, // __builtin_HEXAGON_V6_vasrwhrndsat
+      {Intrinsic::hexagon_V6_vasrwhrndsat_128B, 34753}, // __builtin_HEXAGON_V6_vasrwhrndsat_128B
+      {Intrinsic::hexagon_V6_vasrwhsat, 34792}, // __builtin_HEXAGON_V6_vasrwhsat
+      {Intrinsic::hexagon_V6_vasrwhsat_128B, 34823}, // __builtin_HEXAGON_V6_vasrwhsat_128B
+      {Intrinsic::hexagon_V6_vasrwuhrndsat, 34859}, // __builtin_HEXAGON_V6_vasrwuhrndsat
+      {Intrinsic::hexagon_V6_vasrwuhrndsat_128B, 34894}, // __builtin_HEXAGON_V6_vasrwuhrndsat_128B
+      {Intrinsic::hexagon_V6_vasrwuhsat, 34934}, // __builtin_HEXAGON_V6_vasrwuhsat
+      {Intrinsic::hexagon_V6_vasrwuhsat_128B, 34966}, // __builtin_HEXAGON_V6_vasrwuhsat_128B
+      {Intrinsic::hexagon_V6_vasrwv, 35003}, // __builtin_HEXAGON_V6_vasrwv
+      {Intrinsic::hexagon_V6_vasrwv_128B, 35031}, // __builtin_HEXAGON_V6_vasrwv_128B
+      {Intrinsic::hexagon_V6_vassign, 35064}, // __builtin_HEXAGON_V6_vassign
+      {Intrinsic::hexagon_V6_vassign_128B, 35093}, // __builtin_HEXAGON_V6_vassign_128B
+      {Intrinsic::hexagon_V6_vassignp, 35127}, // __builtin_HEXAGON_V6_vassignp
+      {Intrinsic::hexagon_V6_vassignp_128B, 35157}, // __builtin_HEXAGON_V6_vassignp_128B
+      {Intrinsic::hexagon_V6_vavgh, 35192}, // __builtin_HEXAGON_V6_vavgh
+      {Intrinsic::hexagon_V6_vavgh_128B, 35219}, // __builtin_HEXAGON_V6_vavgh_128B
+      {Intrinsic::hexagon_V6_vavghrnd, 35251}, // __builtin_HEXAGON_V6_vavghrnd
+      {Intrinsic::hexagon_V6_vavghrnd_128B, 35281}, // __builtin_HEXAGON_V6_vavghrnd_128B
+      {Intrinsic::hexagon_V6_vavgub, 35316}, // __builtin_HEXAGON_V6_vavgub
+      {Intrinsic::hexagon_V6_vavgub_128B, 35344}, // __builtin_HEXAGON_V6_vavgub_128B
+      {Intrinsic::hexagon_V6_vavgubrnd, 35377}, // __builtin_HEXAGON_V6_vavgubrnd
+      {Intrinsic::hexagon_V6_vavgubrnd_128B, 35408}, // __builtin_HEXAGON_V6_vavgubrnd_128B
+      {Intrinsic::hexagon_V6_vavguh, 35444}, // __builtin_HEXAGON_V6_vavguh
+      {Intrinsic::hexagon_V6_vavguh_128B, 35472}, // __builtin_HEXAGON_V6_vavguh_128B
+      {Intrinsic::hexagon_V6_vavguhrnd, 35505}, // __builtin_HEXAGON_V6_vavguhrnd
+      {Intrinsic::hexagon_V6_vavguhrnd_128B, 35536}, // __builtin_HEXAGON_V6_vavguhrnd_128B
+      {Intrinsic::hexagon_V6_vavgw, 35572}, // __builtin_HEXAGON_V6_vavgw
+      {Intrinsic::hexagon_V6_vavgw_128B, 35599}, // __builtin_HEXAGON_V6_vavgw_128B
+      {Intrinsic::hexagon_V6_vavgwrnd, 35631}, // __builtin_HEXAGON_V6_vavgwrnd
+      {Intrinsic::hexagon_V6_vavgwrnd_128B, 35661}, // __builtin_HEXAGON_V6_vavgwrnd_128B
+      {Intrinsic::hexagon_V6_vcl0h, 35696}, // __builtin_HEXAGON_V6_vcl0h
+      {Intrinsic::hexagon_V6_vcl0h_128B, 35723}, // __builtin_HEXAGON_V6_vcl0h_128B
+      {Intrinsic::hexagon_V6_vcl0w, 35755}, // __builtin_HEXAGON_V6_vcl0w
+      {Intrinsic::hexagon_V6_vcl0w_128B, 35782}, // __builtin_HEXAGON_V6_vcl0w_128B
+      {Intrinsic::hexagon_V6_vcombine, 35814}, // __builtin_HEXAGON_V6_vcombine
+      {Intrinsic::hexagon_V6_vcombine_128B, 35844}, // __builtin_HEXAGON_V6_vcombine_128B
+      {Intrinsic::hexagon_V6_vd0, 35879}, // __builtin_HEXAGON_V6_vd0
+      {Intrinsic::hexagon_V6_vd0_128B, 35904}, // __builtin_HEXAGON_V6_vd0_128B
+      {Intrinsic::hexagon_V6_vdealb, 35934}, // __builtin_HEXAGON_V6_vdealb
+      {Intrinsic::hexagon_V6_vdealb4w, 35995}, // __builtin_HEXAGON_V6_vdealb4w
+      {Intrinsic::hexagon_V6_vdealb4w_128B, 36025}, // __builtin_HEXAGON_V6_vdealb4w_128B
+      {Intrinsic::hexagon_V6_vdealb_128B, 35962}, // __builtin_HEXAGON_V6_vdealb_128B
+      {Intrinsic::hexagon_V6_vdealh, 36060}, // __builtin_HEXAGON_V6_vdealh
+      {Intrinsic::hexagon_V6_vdealh_128B, 36088}, // __builtin_HEXAGON_V6_vdealh_128B
+      {Intrinsic::hexagon_V6_vdealvdd, 36121}, // __builtin_HEXAGON_V6_vdealvdd
+      {Intrinsic::hexagon_V6_vdealvdd_128B, 36151}, // __builtin_HEXAGON_V6_vdealvdd_128B
+      {Intrinsic::hexagon_V6_vdelta, 36186}, // __builtin_HEXAGON_V6_vdelta
+      {Intrinsic::hexagon_V6_vdelta_128B, 36214}, // __builtin_HEXAGON_V6_vdelta_128B
+      {Intrinsic::hexagon_V6_vdmpybus, 36247}, // __builtin_HEXAGON_V6_vdmpybus
+      {Intrinsic::hexagon_V6_vdmpybus_128B, 36277}, // __builtin_HEXAGON_V6_vdmpybus_128B
+      {Intrinsic::hexagon_V6_vdmpybus_acc, 36312}, // __builtin_HEXAGON_V6_vdmpybus_acc
+      {Intrinsic::hexagon_V6_vdmpybus_acc_128B, 36346}, // __builtin_HEXAGON_V6_vdmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vdmpybus_dv, 36385}, // __builtin_HEXAGON_V6_vdmpybus_dv
+      {Intrinsic::hexagon_V6_vdmpybus_dv_128B, 36418}, // __builtin_HEXAGON_V6_vdmpybus_dv_128B
+      {Intrinsic::hexagon_V6_vdmpybus_dv_acc, 36456}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc
+      {Intrinsic::hexagon_V6_vdmpybus_dv_acc_128B, 36493}, // __builtin_HEXAGON_V6_vdmpybus_dv_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhb, 36535}, // __builtin_HEXAGON_V6_vdmpyhb
+      {Intrinsic::hexagon_V6_vdmpyhb_128B, 36564}, // __builtin_HEXAGON_V6_vdmpyhb_128B
+      {Intrinsic::hexagon_V6_vdmpyhb_acc, 36598}, // __builtin_HEXAGON_V6_vdmpyhb_acc
+      {Intrinsic::hexagon_V6_vdmpyhb_acc_128B, 36631}, // __builtin_HEXAGON_V6_vdmpyhb_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhb_dv, 36669}, // __builtin_HEXAGON_V6_vdmpyhb_dv
+      {Intrinsic::hexagon_V6_vdmpyhb_dv_128B, 36701}, // __builtin_HEXAGON_V6_vdmpyhb_dv_128B
+      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc, 36738}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc
+      {Intrinsic::hexagon_V6_vdmpyhb_dv_acc_128B, 36774}, // __builtin_HEXAGON_V6_vdmpyhb_dv_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhisat, 36815}, // __builtin_HEXAGON_V6_vdmpyhisat
+      {Intrinsic::hexagon_V6_vdmpyhisat_128B, 36847}, // __builtin_HEXAGON_V6_vdmpyhisat_128B
+      {Intrinsic::hexagon_V6_vdmpyhisat_acc, 36884}, // __builtin_HEXAGON_V6_vdmpyhisat_acc
+      {Intrinsic::hexagon_V6_vdmpyhisat_acc_128B, 36920}, // __builtin_HEXAGON_V6_vdmpyhisat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhsat, 36961}, // __builtin_HEXAGON_V6_vdmpyhsat
+      {Intrinsic::hexagon_V6_vdmpyhsat_128B, 36992}, // __builtin_HEXAGON_V6_vdmpyhsat_128B
+      {Intrinsic::hexagon_V6_vdmpyhsat_acc, 37028}, // __builtin_HEXAGON_V6_vdmpyhsat_acc
+      {Intrinsic::hexagon_V6_vdmpyhsat_acc_128B, 37063}, // __builtin_HEXAGON_V6_vdmpyhsat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhsuisat, 37103}, // __builtin_HEXAGON_V6_vdmpyhsuisat
+      {Intrinsic::hexagon_V6_vdmpyhsuisat_128B, 37137}, // __builtin_HEXAGON_V6_vdmpyhsuisat_128B
+      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc, 37176}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc
+      {Intrinsic::hexagon_V6_vdmpyhsuisat_acc_128B, 37214}, // __builtin_HEXAGON_V6_vdmpyhsuisat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhsusat, 37257}, // __builtin_HEXAGON_V6_vdmpyhsusat
+      {Intrinsic::hexagon_V6_vdmpyhsusat_128B, 37290}, // __builtin_HEXAGON_V6_vdmpyhsusat_128B
+      {Intrinsic::hexagon_V6_vdmpyhsusat_acc, 37328}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc
+      {Intrinsic::hexagon_V6_vdmpyhsusat_acc_128B, 37365}, // __builtin_HEXAGON_V6_vdmpyhsusat_acc_128B
+      {Intrinsic::hexagon_V6_vdmpyhvsat, 37407}, // __builtin_HEXAGON_V6_vdmpyhvsat
+      {Intrinsic::hexagon_V6_vdmpyhvsat_128B, 37439}, // __builtin_HEXAGON_V6_vdmpyhvsat_128B
+      {Intrinsic::hexagon_V6_vdmpyhvsat_acc, 37476}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc
+      {Intrinsic::hexagon_V6_vdmpyhvsat_acc_128B, 37512}, // __builtin_HEXAGON_V6_vdmpyhvsat_acc_128B
+      {Intrinsic::hexagon_V6_vdsaduh, 37553}, // __builtin_HEXAGON_V6_vdsaduh
+      {Intrinsic::hexagon_V6_vdsaduh_128B, 37582}, // __builtin_HEXAGON_V6_vdsaduh_128B
+      {Intrinsic::hexagon_V6_vdsaduh_acc, 37616}, // __builtin_HEXAGON_V6_vdsaduh_acc
+      {Intrinsic::hexagon_V6_vdsaduh_acc_128B, 37649}, // __builtin_HEXAGON_V6_vdsaduh_acc_128B
+      {Intrinsic::hexagon_V6_veqb, 37687}, // __builtin_HEXAGON_V6_veqb
+      {Intrinsic::hexagon_V6_veqb_128B, 37713}, // __builtin_HEXAGON_V6_veqb_128B
+      {Intrinsic::hexagon_V6_veqb_and, 37744}, // __builtin_HEXAGON_V6_veqb_and
+      {Intrinsic::hexagon_V6_veqb_and_128B, 37774}, // __builtin_HEXAGON_V6_veqb_and_128B
+      {Intrinsic::hexagon_V6_veqb_or, 37809}, // __builtin_HEXAGON_V6_veqb_or
+      {Intrinsic::hexagon_V6_veqb_or_128B, 37838}, // __builtin_HEXAGON_V6_veqb_or_128B
+      {Intrinsic::hexagon_V6_veqb_xor, 37872}, // __builtin_HEXAGON_V6_veqb_xor
+      {Intrinsic::hexagon_V6_veqb_xor_128B, 37902}, // __builtin_HEXAGON_V6_veqb_xor_128B
+      {Intrinsic::hexagon_V6_veqh, 37937}, // __builtin_HEXAGON_V6_veqh
+      {Intrinsic::hexagon_V6_veqh_128B, 37963}, // __builtin_HEXAGON_V6_veqh_128B
+      {Intrinsic::hexagon_V6_veqh_and, 37994}, // __builtin_HEXAGON_V6_veqh_and
+      {Intrinsic::hexagon_V6_veqh_and_128B, 38024}, // __builtin_HEXAGON_V6_veqh_and_128B
+      {Intrinsic::hexagon_V6_veqh_or, 38059}, // __builtin_HEXAGON_V6_veqh_or
+      {Intrinsic::hexagon_V6_veqh_or_128B, 38088}, // __builtin_HEXAGON_V6_veqh_or_128B
+      {Intrinsic::hexagon_V6_veqh_xor, 38122}, // __builtin_HEXAGON_V6_veqh_xor
+      {Intrinsic::hexagon_V6_veqh_xor_128B, 38152}, // __builtin_HEXAGON_V6_veqh_xor_128B
+      {Intrinsic::hexagon_V6_veqw, 38187}, // __builtin_HEXAGON_V6_veqw
+      {Intrinsic::hexagon_V6_veqw_128B, 38213}, // __builtin_HEXAGON_V6_veqw_128B
+      {Intrinsic::hexagon_V6_veqw_and, 38244}, // __builtin_HEXAGON_V6_veqw_and
+      {Intrinsic::hexagon_V6_veqw_and_128B, 38274}, // __builtin_HEXAGON_V6_veqw_and_128B
+      {Intrinsic::hexagon_V6_veqw_or, 38309}, // __builtin_HEXAGON_V6_veqw_or
+      {Intrinsic::hexagon_V6_veqw_or_128B, 38338}, // __builtin_HEXAGON_V6_veqw_or_128B
+      {Intrinsic::hexagon_V6_veqw_xor, 38372}, // __builtin_HEXAGON_V6_veqw_xor
+      {Intrinsic::hexagon_V6_veqw_xor_128B, 38402}, // __builtin_HEXAGON_V6_veqw_xor_128B
+      {Intrinsic::hexagon_V6_vgtb, 38437}, // __builtin_HEXAGON_V6_vgtb
+      {Intrinsic::hexagon_V6_vgtb_128B, 38463}, // __builtin_HEXAGON_V6_vgtb_128B
+      {Intrinsic::hexagon_V6_vgtb_and, 38494}, // __builtin_HEXAGON_V6_vgtb_and
+      {Intrinsic::hexagon_V6_vgtb_and_128B, 38524}, // __builtin_HEXAGON_V6_vgtb_and_128B
+      {Intrinsic::hexagon_V6_vgtb_or, 38559}, // __builtin_HEXAGON_V6_vgtb_or
+      {Intrinsic::hexagon_V6_vgtb_or_128B, 38588}, // __builtin_HEXAGON_V6_vgtb_or_128B
+      {Intrinsic::hexagon_V6_vgtb_xor, 38622}, // __builtin_HEXAGON_V6_vgtb_xor
+      {Intrinsic::hexagon_V6_vgtb_xor_128B, 38652}, // __builtin_HEXAGON_V6_vgtb_xor_128B
+      {Intrinsic::hexagon_V6_vgth, 38687}, // __builtin_HEXAGON_V6_vgth
+      {Intrinsic::hexagon_V6_vgth_128B, 38713}, // __builtin_HEXAGON_V6_vgth_128B
+      {Intrinsic::hexagon_V6_vgth_and, 38744}, // __builtin_HEXAGON_V6_vgth_and
+      {Intrinsic::hexagon_V6_vgth_and_128B, 38774}, // __builtin_HEXAGON_V6_vgth_and_128B
+      {Intrinsic::hexagon_V6_vgth_or, 38809}, // __builtin_HEXAGON_V6_vgth_or
+      {Intrinsic::hexagon_V6_vgth_or_128B, 38838}, // __builtin_HEXAGON_V6_vgth_or_128B
+      {Intrinsic::hexagon_V6_vgth_xor, 38872}, // __builtin_HEXAGON_V6_vgth_xor
+      {Intrinsic::hexagon_V6_vgth_xor_128B, 38902}, // __builtin_HEXAGON_V6_vgth_xor_128B
+      {Intrinsic::hexagon_V6_vgtub, 38937}, // __builtin_HEXAGON_V6_vgtub
+      {Intrinsic::hexagon_V6_vgtub_128B, 38964}, // __builtin_HEXAGON_V6_vgtub_128B
+      {Intrinsic::hexagon_V6_vgtub_and, 38996}, // __builtin_HEXAGON_V6_vgtub_and
+      {Intrinsic::hexagon_V6_vgtub_and_128B, 39027}, // __builtin_HEXAGON_V6_vgtub_and_128B
+      {Intrinsic::hexagon_V6_vgtub_or, 39063}, // __builtin_HEXAGON_V6_vgtub_or
+      {Intrinsic::hexagon_V6_vgtub_or_128B, 39093}, // __builtin_HEXAGON_V6_vgtub_or_128B
+      {Intrinsic::hexagon_V6_vgtub_xor, 39128}, // __builtin_HEXAGON_V6_vgtub_xor
+      {Intrinsic::hexagon_V6_vgtub_xor_128B, 39159}, // __builtin_HEXAGON_V6_vgtub_xor_128B
+      {Intrinsic::hexagon_V6_vgtuh, 39195}, // __builtin_HEXAGON_V6_vgtuh
+      {Intrinsic::hexagon_V6_vgtuh_128B, 39222}, // __builtin_HEXAGON_V6_vgtuh_128B
+      {Intrinsic::hexagon_V6_vgtuh_and, 39254}, // __builtin_HEXAGON_V6_vgtuh_and
+      {Intrinsic::hexagon_V6_vgtuh_and_128B, 39285}, // __builtin_HEXAGON_V6_vgtuh_and_128B
+      {Intrinsic::hexagon_V6_vgtuh_or, 39321}, // __builtin_HEXAGON_V6_vgtuh_or
+      {Intrinsic::hexagon_V6_vgtuh_or_128B, 39351}, // __builtin_HEXAGON_V6_vgtuh_or_128B
+      {Intrinsic::hexagon_V6_vgtuh_xor, 39386}, // __builtin_HEXAGON_V6_vgtuh_xor
+      {Intrinsic::hexagon_V6_vgtuh_xor_128B, 39417}, // __builtin_HEXAGON_V6_vgtuh_xor_128B
+      {Intrinsic::hexagon_V6_vgtuw, 39453}, // __builtin_HEXAGON_V6_vgtuw
+      {Intrinsic::hexagon_V6_vgtuw_128B, 39480}, // __builtin_HEXAGON_V6_vgtuw_128B
+      {Intrinsic::hexagon_V6_vgtuw_and, 39512}, // __builtin_HEXAGON_V6_vgtuw_and
+      {Intrinsic::hexagon_V6_vgtuw_and_128B, 39543}, // __builtin_HEXAGON_V6_vgtuw_and_128B
+      {Intrinsic::hexagon_V6_vgtuw_or, 39579}, // __builtin_HEXAGON_V6_vgtuw_or
+      {Intrinsic::hexagon_V6_vgtuw_or_128B, 39609}, // __builtin_HEXAGON_V6_vgtuw_or_128B
+      {Intrinsic::hexagon_V6_vgtuw_xor, 39644}, // __builtin_HEXAGON_V6_vgtuw_xor
+      {Intrinsic::hexagon_V6_vgtuw_xor_128B, 39675}, // __builtin_HEXAGON_V6_vgtuw_xor_128B
+      {Intrinsic::hexagon_V6_vgtw, 39711}, // __builtin_HEXAGON_V6_vgtw
+      {Intrinsic::hexagon_V6_vgtw_128B, 39737}, // __builtin_HEXAGON_V6_vgtw_128B
+      {Intrinsic::hexagon_V6_vgtw_and, 39768}, // __builtin_HEXAGON_V6_vgtw_and
+      {Intrinsic::hexagon_V6_vgtw_and_128B, 39798}, // __builtin_HEXAGON_V6_vgtw_and_128B
+      {Intrinsic::hexagon_V6_vgtw_or, 39833}, // __builtin_HEXAGON_V6_vgtw_or
+      {Intrinsic::hexagon_V6_vgtw_or_128B, 39862}, // __builtin_HEXAGON_V6_vgtw_or_128B
+      {Intrinsic::hexagon_V6_vgtw_xor, 39896}, // __builtin_HEXAGON_V6_vgtw_xor
+      {Intrinsic::hexagon_V6_vgtw_xor_128B, 39926}, // __builtin_HEXAGON_V6_vgtw_xor_128B
+      {Intrinsic::hexagon_V6_vinsertwr, 39961}, // __builtin_HEXAGON_V6_vinsertwr
+      {Intrinsic::hexagon_V6_vinsertwr_128B, 39992}, // __builtin_HEXAGON_V6_vinsertwr_128B
+      {Intrinsic::hexagon_V6_vlalignb, 40028}, // __builtin_HEXAGON_V6_vlalignb
+      {Intrinsic::hexagon_V6_vlalignb_128B, 40058}, // __builtin_HEXAGON_V6_vlalignb_128B
+      {Intrinsic::hexagon_V6_vlalignbi, 40093}, // __builtin_HEXAGON_V6_vlalignbi
+      {Intrinsic::hexagon_V6_vlalignbi_128B, 40124}, // __builtin_HEXAGON_V6_vlalignbi_128B
+      {Intrinsic::hexagon_V6_vlsrb, 40160}, // __builtin_HEXAGON_V6_vlsrb
+      {Intrinsic::hexagon_V6_vlsrb_128B, 40187}, // __builtin_HEXAGON_V6_vlsrb_128B
+      {Intrinsic::hexagon_V6_vlsrh, 40219}, // __builtin_HEXAGON_V6_vlsrh
+      {Intrinsic::hexagon_V6_vlsrh_128B, 40246}, // __builtin_HEXAGON_V6_vlsrh_128B
+      {Intrinsic::hexagon_V6_vlsrhv, 40278}, // __builtin_HEXAGON_V6_vlsrhv
+      {Intrinsic::hexagon_V6_vlsrhv_128B, 40306}, // __builtin_HEXAGON_V6_vlsrhv_128B
+      {Intrinsic::hexagon_V6_vlsrw, 40339}, // __builtin_HEXAGON_V6_vlsrw
+      {Intrinsic::hexagon_V6_vlsrw_128B, 40366}, // __builtin_HEXAGON_V6_vlsrw_128B
+      {Intrinsic::hexagon_V6_vlsrwv, 40398}, // __builtin_HEXAGON_V6_vlsrwv
+      {Intrinsic::hexagon_V6_vlsrwv_128B, 40426}, // __builtin_HEXAGON_V6_vlsrwv_128B
+      {Intrinsic::hexagon_V6_vlutb, 40459}, // __builtin_HEXAGON_V6_vlutb
+      {Intrinsic::hexagon_V6_vlutb_128B, 40486}, // __builtin_HEXAGON_V6_vlutb_128B
+      {Intrinsic::hexagon_V6_vlutb_acc, 40518}, // __builtin_HEXAGON_V6_vlutb_acc
+      {Intrinsic::hexagon_V6_vlutb_acc_128B, 40549}, // __builtin_HEXAGON_V6_vlutb_acc_128B
+      {Intrinsic::hexagon_V6_vlutb_dv, 40585}, // __builtin_HEXAGON_V6_vlutb_dv
+      {Intrinsic::hexagon_V6_vlutb_dv_128B, 40615}, // __builtin_HEXAGON_V6_vlutb_dv_128B
+      {Intrinsic::hexagon_V6_vlutb_dv_acc, 40650}, // __builtin_HEXAGON_V6_vlutb_dv_acc
+      {Intrinsic::hexagon_V6_vlutb_dv_acc_128B, 40684}, // __builtin_HEXAGON_V6_vlutb_dv_acc_128B
+      {Intrinsic::hexagon_V6_vlutvvb, 40723}, // __builtin_HEXAGON_V6_vlutvvb
+      {Intrinsic::hexagon_V6_vlutvvb_128B, 40752}, // __builtin_HEXAGON_V6_vlutvvb_128B
+      {Intrinsic::hexagon_V6_vlutvvb_nm, 40786}, // __builtin_HEXAGON_V6_vlutvvb_nm
+      {Intrinsic::hexagon_V6_vlutvvb_nm_128B, 40818}, // __builtin_HEXAGON_V6_vlutvvb_nm_128B
+      {Intrinsic::hexagon_V6_vlutvvb_oracc, 40855}, // __builtin_HEXAGON_V6_vlutvvb_oracc
+      {Intrinsic::hexagon_V6_vlutvvb_oracc_128B, 40890}, // __builtin_HEXAGON_V6_vlutvvb_oracc_128B
+      {Intrinsic::hexagon_V6_vlutvvb_oracci, 40930}, // __builtin_HEXAGON_V6_vlutvvb_oracci
+      {Intrinsic::hexagon_V6_vlutvvb_oracci_128B, 40966}, // __builtin_HEXAGON_V6_vlutvvb_oracci_128B
+      {Intrinsic::hexagon_V6_vlutvvbi, 41007}, // __builtin_HEXAGON_V6_vlutvvbi
+      {Intrinsic::hexagon_V6_vlutvvbi_128B, 41037}, // __builtin_HEXAGON_V6_vlutvvbi_128B
+      {Intrinsic::hexagon_V6_vlutvwh, 41072}, // __builtin_HEXAGON_V6_vlutvwh
+      {Intrinsic::hexagon_V6_vlutvwh_128B, 41101}, // __builtin_HEXAGON_V6_vlutvwh_128B
+      {Intrinsic::hexagon_V6_vlutvwh_nm, 41135}, // __builtin_HEXAGON_V6_vlutvwh_nm
+      {Intrinsic::hexagon_V6_vlutvwh_nm_128B, 41167}, // __builtin_HEXAGON_V6_vlutvwh_nm_128B
+      {Intrinsic::hexagon_V6_vlutvwh_oracc, 41204}, // __builtin_HEXAGON_V6_vlutvwh_oracc
+      {Intrinsic::hexagon_V6_vlutvwh_oracc_128B, 41239}, // __builtin_HEXAGON_V6_vlutvwh_oracc_128B
+      {Intrinsic::hexagon_V6_vlutvwh_oracci, 41279}, // __builtin_HEXAGON_V6_vlutvwh_oracci
+      {Intrinsic::hexagon_V6_vlutvwh_oracci_128B, 41315}, // __builtin_HEXAGON_V6_vlutvwh_oracci_128B
+      {Intrinsic::hexagon_V6_vlutvwhi, 41356}, // __builtin_HEXAGON_V6_vlutvwhi
+      {Intrinsic::hexagon_V6_vlutvwhi_128B, 41386}, // __builtin_HEXAGON_V6_vlutvwhi_128B
+      {Intrinsic::hexagon_V6_vmaskedstorenq, 41421}, // __builtin_HEXAGON_V6_vmaskedstorenq
+      {Intrinsic::hexagon_V6_vmaskedstorenq_128B, 41457}, // __builtin_HEXAGON_V6_vmaskedstorenq_128B
+      {Intrinsic::hexagon_V6_vmaskedstorentnq, 41498}, // __builtin_HEXAGON_V6_vmaskedstorentnq
+      {Intrinsic::hexagon_V6_vmaskedstorentnq_128B, 41536}, // __builtin_HEXAGON_V6_vmaskedstorentnq_128B
+      {Intrinsic::hexagon_V6_vmaskedstorentq, 41579}, // __builtin_HEXAGON_V6_vmaskedstorentq
+      {Intrinsic::hexagon_V6_vmaskedstorentq_128B, 41616}, // __builtin_HEXAGON_V6_vmaskedstorentq_128B
+      {Intrinsic::hexagon_V6_vmaskedstoreq, 41658}, // __builtin_HEXAGON_V6_vmaskedstoreq
+      {Intrinsic::hexagon_V6_vmaskedstoreq_128B, 41693}, // __builtin_HEXAGON_V6_vmaskedstoreq_128B
+      {Intrinsic::hexagon_V6_vmaxb, 41733}, // __builtin_HEXAGON_V6_vmaxb
+      {Intrinsic::hexagon_V6_vmaxb_128B, 41760}, // __builtin_HEXAGON_V6_vmaxb_128B
+      {Intrinsic::hexagon_V6_vmaxh, 41792}, // __builtin_HEXAGON_V6_vmaxh
+      {Intrinsic::hexagon_V6_vmaxh_128B, 41819}, // __builtin_HEXAGON_V6_vmaxh_128B
+      {Intrinsic::hexagon_V6_vmaxub, 41851}, // __builtin_HEXAGON_V6_vmaxub
+      {Intrinsic::hexagon_V6_vmaxub_128B, 41879}, // __builtin_HEXAGON_V6_vmaxub_128B
+      {Intrinsic::hexagon_V6_vmaxuh, 41912}, // __builtin_HEXAGON_V6_vmaxuh
+      {Intrinsic::hexagon_V6_vmaxuh_128B, 41940}, // __builtin_HEXAGON_V6_vmaxuh_128B
+      {Intrinsic::hexagon_V6_vmaxw, 41973}, // __builtin_HEXAGON_V6_vmaxw
+      {Intrinsic::hexagon_V6_vmaxw_128B, 42000}, // __builtin_HEXAGON_V6_vmaxw_128B
+      {Intrinsic::hexagon_V6_vminb, 42032}, // __builtin_HEXAGON_V6_vminb
+      {Intrinsic::hexagon_V6_vminb_128B, 42059}, // __builtin_HEXAGON_V6_vminb_128B
+      {Intrinsic::hexagon_V6_vminh, 42091}, // __builtin_HEXAGON_V6_vminh
+      {Intrinsic::hexagon_V6_vminh_128B, 42118}, // __builtin_HEXAGON_V6_vminh_128B
+      {Intrinsic::hexagon_V6_vminub, 42150}, // __builtin_HEXAGON_V6_vminub
+      {Intrinsic::hexagon_V6_vminub_128B, 42178}, // __builtin_HEXAGON_V6_vminub_128B
+      {Intrinsic::hexagon_V6_vminuh, 42211}, // __builtin_HEXAGON_V6_vminuh
+      {Intrinsic::hexagon_V6_vminuh_128B, 42239}, // __builtin_HEXAGON_V6_vminuh_128B
+      {Intrinsic::hexagon_V6_vminw, 42272}, // __builtin_HEXAGON_V6_vminw
+      {Intrinsic::hexagon_V6_vminw_128B, 42299}, // __builtin_HEXAGON_V6_vminw_128B
+      {Intrinsic::hexagon_V6_vmpabus, 42331}, // __builtin_HEXAGON_V6_vmpabus
+      {Intrinsic::hexagon_V6_vmpabus_128B, 42360}, // __builtin_HEXAGON_V6_vmpabus_128B
+      {Intrinsic::hexagon_V6_vmpabus_acc, 42394}, // __builtin_HEXAGON_V6_vmpabus_acc
+      {Intrinsic::hexagon_V6_vmpabus_acc_128B, 42427}, // __builtin_HEXAGON_V6_vmpabus_acc_128B
+      {Intrinsic::hexagon_V6_vmpabusv, 42465}, // __builtin_HEXAGON_V6_vmpabusv
+      {Intrinsic::hexagon_V6_vmpabusv_128B, 42495}, // __builtin_HEXAGON_V6_vmpabusv_128B
+      {Intrinsic::hexagon_V6_vmpabuuv, 42530}, // __builtin_HEXAGON_V6_vmpabuuv
+      {Intrinsic::hexagon_V6_vmpabuuv_128B, 42560}, // __builtin_HEXAGON_V6_vmpabuuv_128B
+      {Intrinsic::hexagon_V6_vmpahb, 42595}, // __builtin_HEXAGON_V6_vmpahb
+      {Intrinsic::hexagon_V6_vmpahb_128B, 42623}, // __builtin_HEXAGON_V6_vmpahb_128B
+      {Intrinsic::hexagon_V6_vmpahb_acc, 42656}, // __builtin_HEXAGON_V6_vmpahb_acc
+      {Intrinsic::hexagon_V6_vmpahb_acc_128B, 42688}, // __builtin_HEXAGON_V6_vmpahb_acc_128B
+      {Intrinsic::hexagon_V6_vmpauhb, 42725}, // __builtin_HEXAGON_V6_vmpauhb
+      {Intrinsic::hexagon_V6_vmpauhb_128B, 42754}, // __builtin_HEXAGON_V6_vmpauhb_128B
+      {Intrinsic::hexagon_V6_vmpauhb_acc, 42788}, // __builtin_HEXAGON_V6_vmpauhb_acc
+      {Intrinsic::hexagon_V6_vmpauhb_acc_128B, 42821}, // __builtin_HEXAGON_V6_vmpauhb_acc_128B
+      {Intrinsic::hexagon_V6_vmpybus, 42859}, // __builtin_HEXAGON_V6_vmpybus
+      {Intrinsic::hexagon_V6_vmpybus_128B, 42888}, // __builtin_HEXAGON_V6_vmpybus_128B
+      {Intrinsic::hexagon_V6_vmpybus_acc, 42922}, // __builtin_HEXAGON_V6_vmpybus_acc
+      {Intrinsic::hexagon_V6_vmpybus_acc_128B, 42955}, // __builtin_HEXAGON_V6_vmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vmpybusv, 42993}, // __builtin_HEXAGON_V6_vmpybusv
+      {Intrinsic::hexagon_V6_vmpybusv_128B, 43023}, // __builtin_HEXAGON_V6_vmpybusv_128B
+      {Intrinsic::hexagon_V6_vmpybusv_acc, 43058}, // __builtin_HEXAGON_V6_vmpybusv_acc
+      {Intrinsic::hexagon_V6_vmpybusv_acc_128B, 43092}, // __builtin_HEXAGON_V6_vmpybusv_acc_128B
+      {Intrinsic::hexagon_V6_vmpybv, 43131}, // __builtin_HEXAGON_V6_vmpybv
+      {Intrinsic::hexagon_V6_vmpybv_128B, 43159}, // __builtin_HEXAGON_V6_vmpybv_128B
+      {Intrinsic::hexagon_V6_vmpybv_acc, 43192}, // __builtin_HEXAGON_V6_vmpybv_acc
+      {Intrinsic::hexagon_V6_vmpybv_acc_128B, 43224}, // __builtin_HEXAGON_V6_vmpybv_acc_128B
+      {Intrinsic::hexagon_V6_vmpyewuh, 43261}, // __builtin_HEXAGON_V6_vmpyewuh
+      {Intrinsic::hexagon_V6_vmpyewuh_128B, 43291}, // __builtin_HEXAGON_V6_vmpyewuh_128B
+      {Intrinsic::hexagon_V6_vmpyewuh_64, 43326}, // __builtin_HEXAGON_V6_vmpyewuh_64
+      {Intrinsic::hexagon_V6_vmpyewuh_64_128B, 43359}, // __builtin_HEXAGON_V6_vmpyewuh_64_128B
+      {Intrinsic::hexagon_V6_vmpyh, 43397}, // __builtin_HEXAGON_V6_vmpyh
+      {Intrinsic::hexagon_V6_vmpyh_128B, 43424}, // __builtin_HEXAGON_V6_vmpyh_128B
+      {Intrinsic::hexagon_V6_vmpyhsat_acc, 43456}, // __builtin_HEXAGON_V6_vmpyhsat_acc
+      {Intrinsic::hexagon_V6_vmpyhsat_acc_128B, 43490}, // __builtin_HEXAGON_V6_vmpyhsat_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhsrs, 43529}, // __builtin_HEXAGON_V6_vmpyhsrs
+      {Intrinsic::hexagon_V6_vmpyhsrs_128B, 43559}, // __builtin_HEXAGON_V6_vmpyhsrs_128B
+      {Intrinsic::hexagon_V6_vmpyhss, 43594}, // __builtin_HEXAGON_V6_vmpyhss
+      {Intrinsic::hexagon_V6_vmpyhss_128B, 43623}, // __builtin_HEXAGON_V6_vmpyhss_128B
+      {Intrinsic::hexagon_V6_vmpyhus, 43657}, // __builtin_HEXAGON_V6_vmpyhus
+      {Intrinsic::hexagon_V6_vmpyhus_128B, 43686}, // __builtin_HEXAGON_V6_vmpyhus_128B
+      {Intrinsic::hexagon_V6_vmpyhus_acc, 43720}, // __builtin_HEXAGON_V6_vmpyhus_acc
+      {Intrinsic::hexagon_V6_vmpyhus_acc_128B, 43753}, // __builtin_HEXAGON_V6_vmpyhus_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhv, 43791}, // __builtin_HEXAGON_V6_vmpyhv
+      {Intrinsic::hexagon_V6_vmpyhv_128B, 43819}, // __builtin_HEXAGON_V6_vmpyhv_128B
+      {Intrinsic::hexagon_V6_vmpyhv_acc, 43852}, // __builtin_HEXAGON_V6_vmpyhv_acc
+      {Intrinsic::hexagon_V6_vmpyhv_acc_128B, 43884}, // __builtin_HEXAGON_V6_vmpyhv_acc_128B
+      {Intrinsic::hexagon_V6_vmpyhvsrs, 43921}, // __builtin_HEXAGON_V6_vmpyhvsrs
+      {Intrinsic::hexagon_V6_vmpyhvsrs_128B, 43952}, // __builtin_HEXAGON_V6_vmpyhvsrs_128B
+      {Intrinsic::hexagon_V6_vmpyieoh, 43988}, // __builtin_HEXAGON_V6_vmpyieoh
+      {Intrinsic::hexagon_V6_vmpyieoh_128B, 44018}, // __builtin_HEXAGON_V6_vmpyieoh_128B
+      {Intrinsic::hexagon_V6_vmpyiewh_acc, 44053}, // __builtin_HEXAGON_V6_vmpyiewh_acc
+      {Intrinsic::hexagon_V6_vmpyiewh_acc_128B, 44087}, // __builtin_HEXAGON_V6_vmpyiewh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiewuh, 44126}, // __builtin_HEXAGON_V6_vmpyiewuh
+      {Intrinsic::hexagon_V6_vmpyiewuh_128B, 44157}, // __builtin_HEXAGON_V6_vmpyiewuh_128B
+      {Intrinsic::hexagon_V6_vmpyiewuh_acc, 44193}, // __builtin_HEXAGON_V6_vmpyiewuh_acc
+      {Intrinsic::hexagon_V6_vmpyiewuh_acc_128B, 44228}, // __builtin_HEXAGON_V6_vmpyiewuh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyih, 44268}, // __builtin_HEXAGON_V6_vmpyih
+      {Intrinsic::hexagon_V6_vmpyih_128B, 44296}, // __builtin_HEXAGON_V6_vmpyih_128B
+      {Intrinsic::hexagon_V6_vmpyih_acc, 44329}, // __builtin_HEXAGON_V6_vmpyih_acc
+      {Intrinsic::hexagon_V6_vmpyih_acc_128B, 44361}, // __builtin_HEXAGON_V6_vmpyih_acc_128B
+      {Intrinsic::hexagon_V6_vmpyihb, 44398}, // __builtin_HEXAGON_V6_vmpyihb
+      {Intrinsic::hexagon_V6_vmpyihb_128B, 44427}, // __builtin_HEXAGON_V6_vmpyihb_128B
+      {Intrinsic::hexagon_V6_vmpyihb_acc, 44461}, // __builtin_HEXAGON_V6_vmpyihb_acc
+      {Intrinsic::hexagon_V6_vmpyihb_acc_128B, 44494}, // __builtin_HEXAGON_V6_vmpyihb_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiowh, 44532}, // __builtin_HEXAGON_V6_vmpyiowh
+      {Intrinsic::hexagon_V6_vmpyiowh_128B, 44562}, // __builtin_HEXAGON_V6_vmpyiowh_128B
+      {Intrinsic::hexagon_V6_vmpyiwb, 44597}, // __builtin_HEXAGON_V6_vmpyiwb
+      {Intrinsic::hexagon_V6_vmpyiwb_128B, 44626}, // __builtin_HEXAGON_V6_vmpyiwb_128B
+      {Intrinsic::hexagon_V6_vmpyiwb_acc, 44660}, // __builtin_HEXAGON_V6_vmpyiwb_acc
+      {Intrinsic::hexagon_V6_vmpyiwb_acc_128B, 44693}, // __builtin_HEXAGON_V6_vmpyiwb_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiwh, 44731}, // __builtin_HEXAGON_V6_vmpyiwh
+      {Intrinsic::hexagon_V6_vmpyiwh_128B, 44760}, // __builtin_HEXAGON_V6_vmpyiwh_128B
+      {Intrinsic::hexagon_V6_vmpyiwh_acc, 44794}, // __builtin_HEXAGON_V6_vmpyiwh_acc
+      {Intrinsic::hexagon_V6_vmpyiwh_acc_128B, 44827}, // __builtin_HEXAGON_V6_vmpyiwh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyiwub, 44865}, // __builtin_HEXAGON_V6_vmpyiwub
+      {Intrinsic::hexagon_V6_vmpyiwub_128B, 44895}, // __builtin_HEXAGON_V6_vmpyiwub_128B
+      {Intrinsic::hexagon_V6_vmpyiwub_acc, 44930}, // __builtin_HEXAGON_V6_vmpyiwub_acc
+      {Intrinsic::hexagon_V6_vmpyiwub_acc_128B, 44964}, // __builtin_HEXAGON_V6_vmpyiwub_acc_128B
+      {Intrinsic::hexagon_V6_vmpyowh, 45003}, // __builtin_HEXAGON_V6_vmpyowh
+      {Intrinsic::hexagon_V6_vmpyowh_128B, 45032}, // __builtin_HEXAGON_V6_vmpyowh_128B
+      {Intrinsic::hexagon_V6_vmpyowh_64_acc, 45066}, // __builtin_HEXAGON_V6_vmpyowh_64_acc
+      {Intrinsic::hexagon_V6_vmpyowh_64_acc_128B, 45102}, // __builtin_HEXAGON_V6_vmpyowh_64_acc_128B
+      {Intrinsic::hexagon_V6_vmpyowh_rnd, 45143}, // __builtin_HEXAGON_V6_vmpyowh_rnd
+      {Intrinsic::hexagon_V6_vmpyowh_rnd_128B, 45176}, // __builtin_HEXAGON_V6_vmpyowh_rnd_128B
+      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc, 45214}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc
+      {Intrinsic::hexagon_V6_vmpyowh_rnd_sacc_128B, 45252}, // __builtin_HEXAGON_V6_vmpyowh_rnd_sacc_128B
+      {Intrinsic::hexagon_V6_vmpyowh_sacc, 45295}, // __builtin_HEXAGON_V6_vmpyowh_sacc
+      {Intrinsic::hexagon_V6_vmpyowh_sacc_128B, 45329}, // __builtin_HEXAGON_V6_vmpyowh_sacc_128B
+      {Intrinsic::hexagon_V6_vmpyub, 45368}, // __builtin_HEXAGON_V6_vmpyub
+      {Intrinsic::hexagon_V6_vmpyub_128B, 45396}, // __builtin_HEXAGON_V6_vmpyub_128B
+      {Intrinsic::hexagon_V6_vmpyub_acc, 45429}, // __builtin_HEXAGON_V6_vmpyub_acc
+      {Intrinsic::hexagon_V6_vmpyub_acc_128B, 45461}, // __builtin_HEXAGON_V6_vmpyub_acc_128B
+      {Intrinsic::hexagon_V6_vmpyubv, 45498}, // __builtin_HEXAGON_V6_vmpyubv
+      {Intrinsic::hexagon_V6_vmpyubv_128B, 45527}, // __builtin_HEXAGON_V6_vmpyubv_128B
+      {Intrinsic::hexagon_V6_vmpyubv_acc, 45561}, // __builtin_HEXAGON_V6_vmpyubv_acc
+      {Intrinsic::hexagon_V6_vmpyubv_acc_128B, 45594}, // __builtin_HEXAGON_V6_vmpyubv_acc_128B
+      {Intrinsic::hexagon_V6_vmpyuh, 45632}, // __builtin_HEXAGON_V6_vmpyuh
+      {Intrinsic::hexagon_V6_vmpyuh_128B, 45660}, // __builtin_HEXAGON_V6_vmpyuh_128B
+      {Intrinsic::hexagon_V6_vmpyuh_acc, 45693}, // __builtin_HEXAGON_V6_vmpyuh_acc
+      {Intrinsic::hexagon_V6_vmpyuh_acc_128B, 45725}, // __builtin_HEXAGON_V6_vmpyuh_acc_128B
+      {Intrinsic::hexagon_V6_vmpyuhv, 45762}, // __builtin_HEXAGON_V6_vmpyuhv
+      {Intrinsic::hexagon_V6_vmpyuhv_128B, 45791}, // __builtin_HEXAGON_V6_vmpyuhv_128B
+      {Intrinsic::hexagon_V6_vmpyuhv_acc, 45825}, // __builtin_HEXAGON_V6_vmpyuhv_acc
+      {Intrinsic::hexagon_V6_vmpyuhv_acc_128B, 45858}, // __builtin_HEXAGON_V6_vmpyuhv_acc_128B
+      {Intrinsic::hexagon_V6_vmux, 45896}, // __builtin_HEXAGON_V6_vmux
+      {Intrinsic::hexagon_V6_vmux_128B, 45922}, // __builtin_HEXAGON_V6_vmux_128B
+      {Intrinsic::hexagon_V6_vnavgh, 45953}, // __builtin_HEXAGON_V6_vnavgh
+      {Intrinsic::hexagon_V6_vnavgh_128B, 45981}, // __builtin_HEXAGON_V6_vnavgh_128B
+      {Intrinsic::hexagon_V6_vnavgub, 46014}, // __builtin_HEXAGON_V6_vnavgub
+      {Intrinsic::hexagon_V6_vnavgub_128B, 46043}, // __builtin_HEXAGON_V6_vnavgub_128B
+      {Intrinsic::hexagon_V6_vnavgw, 46077}, // __builtin_HEXAGON_V6_vnavgw
+      {Intrinsic::hexagon_V6_vnavgw_128B, 46105}, // __builtin_HEXAGON_V6_vnavgw_128B
+      {Intrinsic::hexagon_V6_vnormamth, 46138}, // __builtin_HEXAGON_V6_vnormamth
+      {Intrinsic::hexagon_V6_vnormamth_128B, 46169}, // __builtin_HEXAGON_V6_vnormamth_128B
+      {Intrinsic::hexagon_V6_vnormamtw, 46205}, // __builtin_HEXAGON_V6_vnormamtw
+      {Intrinsic::hexagon_V6_vnormamtw_128B, 46236}, // __builtin_HEXAGON_V6_vnormamtw_128B
+      {Intrinsic::hexagon_V6_vnot, 46272}, // __builtin_HEXAGON_V6_vnot
+      {Intrinsic::hexagon_V6_vnot_128B, 46298}, // __builtin_HEXAGON_V6_vnot_128B
+      {Intrinsic::hexagon_V6_vor, 46329}, // __builtin_HEXAGON_V6_vor
+      {Intrinsic::hexagon_V6_vor_128B, 46354}, // __builtin_HEXAGON_V6_vor_128B
+      {Intrinsic::hexagon_V6_vpackeb, 46384}, // __builtin_HEXAGON_V6_vpackeb
+      {Intrinsic::hexagon_V6_vpackeb_128B, 46413}, // __builtin_HEXAGON_V6_vpackeb_128B
+      {Intrinsic::hexagon_V6_vpackeh, 46447}, // __builtin_HEXAGON_V6_vpackeh
+      {Intrinsic::hexagon_V6_vpackeh_128B, 46476}, // __builtin_HEXAGON_V6_vpackeh_128B
+      {Intrinsic::hexagon_V6_vpackhb_sat, 46510}, // __builtin_HEXAGON_V6_vpackhb_sat
+      {Intrinsic::hexagon_V6_vpackhb_sat_128B, 46543}, // __builtin_HEXAGON_V6_vpackhb_sat_128B
+      {Intrinsic::hexagon_V6_vpackhub_sat, 46581}, // __builtin_HEXAGON_V6_vpackhub_sat
+      {Intrinsic::hexagon_V6_vpackhub_sat_128B, 46615}, // __builtin_HEXAGON_V6_vpackhub_sat_128B
+      {Intrinsic::hexagon_V6_vpackob, 46654}, // __builtin_HEXAGON_V6_vpackob
+      {Intrinsic::hexagon_V6_vpackob_128B, 46683}, // __builtin_HEXAGON_V6_vpackob_128B
+      {Intrinsic::hexagon_V6_vpackoh, 46717}, // __builtin_HEXAGON_V6_vpackoh
+      {Intrinsic::hexagon_V6_vpackoh_128B, 46746}, // __builtin_HEXAGON_V6_vpackoh_128B
+      {Intrinsic::hexagon_V6_vpackwh_sat, 46780}, // __builtin_HEXAGON_V6_vpackwh_sat
+      {Intrinsic::hexagon_V6_vpackwh_sat_128B, 46813}, // __builtin_HEXAGON_V6_vpackwh_sat_128B
+      {Intrinsic::hexagon_V6_vpackwuh_sat, 46851}, // __builtin_HEXAGON_V6_vpackwuh_sat
+      {Intrinsic::hexagon_V6_vpackwuh_sat_128B, 46885}, // __builtin_HEXAGON_V6_vpackwuh_sat_128B
+      {Intrinsic::hexagon_V6_vpopcounth, 46924}, // __builtin_HEXAGON_V6_vpopcounth
+      {Intrinsic::hexagon_V6_vpopcounth_128B, 46956}, // __builtin_HEXAGON_V6_vpopcounth_128B
+      {Intrinsic::hexagon_V6_vrdelta, 46993}, // __builtin_HEXAGON_V6_vrdelta
+      {Intrinsic::hexagon_V6_vrdelta_128B, 47022}, // __builtin_HEXAGON_V6_vrdelta_128B
+      {Intrinsic::hexagon_V6_vrmpybus, 47056}, // __builtin_HEXAGON_V6_vrmpybus
+      {Intrinsic::hexagon_V6_vrmpybus_128B, 47086}, // __builtin_HEXAGON_V6_vrmpybus_128B
+      {Intrinsic::hexagon_V6_vrmpybus_acc, 47121}, // __builtin_HEXAGON_V6_vrmpybus_acc
+      {Intrinsic::hexagon_V6_vrmpybus_acc_128B, 47155}, // __builtin_HEXAGON_V6_vrmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybusi, 47194}, // __builtin_HEXAGON_V6_vrmpybusi
+      {Intrinsic::hexagon_V6_vrmpybusi_128B, 47225}, // __builtin_HEXAGON_V6_vrmpybusi_128B
+      {Intrinsic::hexagon_V6_vrmpybusi_acc, 47261}, // __builtin_HEXAGON_V6_vrmpybusi_acc
+      {Intrinsic::hexagon_V6_vrmpybusi_acc_128B, 47296}, // __builtin_HEXAGON_V6_vrmpybusi_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybusv, 47336}, // __builtin_HEXAGON_V6_vrmpybusv
+      {Intrinsic::hexagon_V6_vrmpybusv_128B, 47367}, // __builtin_HEXAGON_V6_vrmpybusv_128B
+      {Intrinsic::hexagon_V6_vrmpybusv_acc, 47403}, // __builtin_HEXAGON_V6_vrmpybusv_acc
+      {Intrinsic::hexagon_V6_vrmpybusv_acc_128B, 47438}, // __builtin_HEXAGON_V6_vrmpybusv_acc_128B
+      {Intrinsic::hexagon_V6_vrmpybv, 47478}, // __builtin_HEXAGON_V6_vrmpybv
+      {Intrinsic::hexagon_V6_vrmpybv_128B, 47507}, // __builtin_HEXAGON_V6_vrmpybv_128B
+      {Intrinsic::hexagon_V6_vrmpybv_acc, 47541}, // __builtin_HEXAGON_V6_vrmpybv_acc
+      {Intrinsic::hexagon_V6_vrmpybv_acc_128B, 47574}, // __builtin_HEXAGON_V6_vrmpybv_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyub, 47612}, // __builtin_HEXAGON_V6_vrmpyub
+      {Intrinsic::hexagon_V6_vrmpyub_128B, 47641}, // __builtin_HEXAGON_V6_vrmpyub_128B
+      {Intrinsic::hexagon_V6_vrmpyub_acc, 47675}, // __builtin_HEXAGON_V6_vrmpyub_acc
+      {Intrinsic::hexagon_V6_vrmpyub_acc_128B, 47708}, // __builtin_HEXAGON_V6_vrmpyub_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyubi, 47746}, // __builtin_HEXAGON_V6_vrmpyubi
+      {Intrinsic::hexagon_V6_vrmpyubi_128B, 47776}, // __builtin_HEXAGON_V6_vrmpyubi_128B
+      {Intrinsic::hexagon_V6_vrmpyubi_acc, 47811}, // __builtin_HEXAGON_V6_vrmpyubi_acc
+      {Intrinsic::hexagon_V6_vrmpyubi_acc_128B, 47845}, // __builtin_HEXAGON_V6_vrmpyubi_acc_128B
+      {Intrinsic::hexagon_V6_vrmpyubv, 47884}, // __builtin_HEXAGON_V6_vrmpyubv
+      {Intrinsic::hexagon_V6_vrmpyubv_128B, 47914}, // __builtin_HEXAGON_V6_vrmpyubv_128B
+      {Intrinsic::hexagon_V6_vrmpyubv_acc, 47949}, // __builtin_HEXAGON_V6_vrmpyubv_acc
+      {Intrinsic::hexagon_V6_vrmpyubv_acc_128B, 47983}, // __builtin_HEXAGON_V6_vrmpyubv_acc_128B
+      {Intrinsic::hexagon_V6_vror, 48022}, // __builtin_HEXAGON_V6_vror
+      {Intrinsic::hexagon_V6_vror_128B, 48048}, // __builtin_HEXAGON_V6_vror_128B
+      {Intrinsic::hexagon_V6_vroundhb, 48079}, // __builtin_HEXAGON_V6_vroundhb
+      {Intrinsic::hexagon_V6_vroundhb_128B, 48109}, // __builtin_HEXAGON_V6_vroundhb_128B
+      {Intrinsic::hexagon_V6_vroundhub, 48144}, // __builtin_HEXAGON_V6_vroundhub
+      {Intrinsic::hexagon_V6_vroundhub_128B, 48175}, // __builtin_HEXAGON_V6_vroundhub_128B
+      {Intrinsic::hexagon_V6_vrounduhub, 48211}, // __builtin_HEXAGON_V6_vrounduhub
+      {Intrinsic::hexagon_V6_vrounduhub_128B, 48243}, // __builtin_HEXAGON_V6_vrounduhub_128B
+      {Intrinsic::hexagon_V6_vrounduwuh, 48280}, // __builtin_HEXAGON_V6_vrounduwuh
+      {Intrinsic::hexagon_V6_vrounduwuh_128B, 48312}, // __builtin_HEXAGON_V6_vrounduwuh_128B
+      {Intrinsic::hexagon_V6_vroundwh, 48349}, // __builtin_HEXAGON_V6_vroundwh
+      {Intrinsic::hexagon_V6_vroundwh_128B, 48379}, // __builtin_HEXAGON_V6_vroundwh_128B
+      {Intrinsic::hexagon_V6_vroundwuh, 48414}, // __builtin_HEXAGON_V6_vroundwuh
+      {Intrinsic::hexagon_V6_vroundwuh_128B, 48445}, // __builtin_HEXAGON_V6_vroundwuh_128B
+      {Intrinsic::hexagon_V6_vrsadubi, 48481}, // __builtin_HEXAGON_V6_vrsadubi
+      {Intrinsic::hexagon_V6_vrsadubi_128B, 48511}, // __builtin_HEXAGON_V6_vrsadubi_128B
+      {Intrinsic::hexagon_V6_vrsadubi_acc, 48546}, // __builtin_HEXAGON_V6_vrsadubi_acc
+      {Intrinsic::hexagon_V6_vrsadubi_acc_128B, 48580}, // __builtin_HEXAGON_V6_vrsadubi_acc_128B
+      {Intrinsic::hexagon_V6_vsathub, 48619}, // __builtin_HEXAGON_V6_vsathub
+      {Intrinsic::hexagon_V6_vsathub_128B, 48648}, // __builtin_HEXAGON_V6_vsathub_128B
+      {Intrinsic::hexagon_V6_vsatuwuh, 48682}, // __builtin_HEXAGON_V6_vsatuwuh
+      {Intrinsic::hexagon_V6_vsatuwuh_128B, 48712}, // __builtin_HEXAGON_V6_vsatuwuh_128B
+      {Intrinsic::hexagon_V6_vsatwh, 48747}, // __builtin_HEXAGON_V6_vsatwh
+      {Intrinsic::hexagon_V6_vsatwh_128B, 48775}, // __builtin_HEXAGON_V6_vsatwh_128B
+      {Intrinsic::hexagon_V6_vsb, 48808}, // __builtin_HEXAGON_V6_vsb
+      {Intrinsic::hexagon_V6_vsb_128B, 48833}, // __builtin_HEXAGON_V6_vsb_128B
+      {Intrinsic::hexagon_V6_vsh, 48863}, // __builtin_HEXAGON_V6_vsh
+      {Intrinsic::hexagon_V6_vsh_128B, 48888}, // __builtin_HEXAGON_V6_vsh_128B
+      {Intrinsic::hexagon_V6_vshufeh, 48918}, // __builtin_HEXAGON_V6_vshufeh
+      {Intrinsic::hexagon_V6_vshufeh_128B, 48947}, // __builtin_HEXAGON_V6_vshufeh_128B
+      {Intrinsic::hexagon_V6_vshuffb, 48981}, // __builtin_HEXAGON_V6_vshuffb
+      {Intrinsic::hexagon_V6_vshuffb_128B, 49010}, // __builtin_HEXAGON_V6_vshuffb_128B
+      {Intrinsic::hexagon_V6_vshuffeb, 49044}, // __builtin_HEXAGON_V6_vshuffeb
+      {Intrinsic::hexagon_V6_vshuffeb_128B, 49074}, // __builtin_HEXAGON_V6_vshuffeb_128B
+      {Intrinsic::hexagon_V6_vshuffh, 49109}, // __builtin_HEXAGON_V6_vshuffh
+      {Intrinsic::hexagon_V6_vshuffh_128B, 49138}, // __builtin_HEXAGON_V6_vshuffh_128B
+      {Intrinsic::hexagon_V6_vshuffob, 49172}, // __builtin_HEXAGON_V6_vshuffob
+      {Intrinsic::hexagon_V6_vshuffob_128B, 49202}, // __builtin_HEXAGON_V6_vshuffob_128B
+      {Intrinsic::hexagon_V6_vshuffvdd, 49237}, // __builtin_HEXAGON_V6_vshuffvdd
+      {Intrinsic::hexagon_V6_vshuffvdd_128B, 49268}, // __builtin_HEXAGON_V6_vshuffvdd_128B
+      {Intrinsic::hexagon_V6_vshufoeb, 49304}, // __builtin_HEXAGON_V6_vshufoeb
+      {Intrinsic::hexagon_V6_vshufoeb_128B, 49334}, // __builtin_HEXAGON_V6_vshufoeb_128B
+      {Intrinsic::hexagon_V6_vshufoeh, 49369}, // __builtin_HEXAGON_V6_vshufoeh
+      {Intrinsic::hexagon_V6_vshufoeh_128B, 49399}, // __builtin_HEXAGON_V6_vshufoeh_128B
+      {Intrinsic::hexagon_V6_vshufoh, 49434}, // __builtin_HEXAGON_V6_vshufoh
+      {Intrinsic::hexagon_V6_vshufoh_128B, 49463}, // __builtin_HEXAGON_V6_vshufoh_128B
+      {Intrinsic::hexagon_V6_vsubb, 49497}, // __builtin_HEXAGON_V6_vsubb
+      {Intrinsic::hexagon_V6_vsubb_128B, 49524}, // __builtin_HEXAGON_V6_vsubb_128B
+      {Intrinsic::hexagon_V6_vsubb_dv, 49556}, // __builtin_HEXAGON_V6_vsubb_dv
+      {Intrinsic::hexagon_V6_vsubb_dv_128B, 49586}, // __builtin_HEXAGON_V6_vsubb_dv_128B
+      {Intrinsic::hexagon_V6_vsubbnq, 49621}, // __builtin_HEXAGON_V6_vsubbnq
+      {Intrinsic::hexagon_V6_vsubbnq_128B, 49650}, // __builtin_HEXAGON_V6_vsubbnq_128B
+      {Intrinsic::hexagon_V6_vsubbq, 49684}, // __builtin_HEXAGON_V6_vsubbq
+      {Intrinsic::hexagon_V6_vsubbq_128B, 49712}, // __builtin_HEXAGON_V6_vsubbq_128B
+      {Intrinsic::hexagon_V6_vsubbsat, 49745}, // __builtin_HEXAGON_V6_vsubbsat
+      {Intrinsic::hexagon_V6_vsubbsat_128B, 49775}, // __builtin_HEXAGON_V6_vsubbsat_128B
+      {Intrinsic::hexagon_V6_vsubbsat_dv, 49810}, // __builtin_HEXAGON_V6_vsubbsat_dv
+      {Intrinsic::hexagon_V6_vsubbsat_dv_128B, 49843}, // __builtin_HEXAGON_V6_vsubbsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubh, 49881}, // __builtin_HEXAGON_V6_vsubh
+      {Intrinsic::hexagon_V6_vsubh_128B, 49908}, // __builtin_HEXAGON_V6_vsubh_128B
+      {Intrinsic::hexagon_V6_vsubh_dv, 49940}, // __builtin_HEXAGON_V6_vsubh_dv
+      {Intrinsic::hexagon_V6_vsubh_dv_128B, 49970}, // __builtin_HEXAGON_V6_vsubh_dv_128B
+      {Intrinsic::hexagon_V6_vsubhnq, 50005}, // __builtin_HEXAGON_V6_vsubhnq
+      {Intrinsic::hexagon_V6_vsubhnq_128B, 50034}, // __builtin_HEXAGON_V6_vsubhnq_128B
+      {Intrinsic::hexagon_V6_vsubhq, 50068}, // __builtin_HEXAGON_V6_vsubhq
+      {Intrinsic::hexagon_V6_vsubhq_128B, 50096}, // __builtin_HEXAGON_V6_vsubhq_128B
+      {Intrinsic::hexagon_V6_vsubhsat, 50129}, // __builtin_HEXAGON_V6_vsubhsat
+      {Intrinsic::hexagon_V6_vsubhsat_128B, 50159}, // __builtin_HEXAGON_V6_vsubhsat_128B
+      {Intrinsic::hexagon_V6_vsubhsat_dv, 50194}, // __builtin_HEXAGON_V6_vsubhsat_dv
+      {Intrinsic::hexagon_V6_vsubhsat_dv_128B, 50227}, // __builtin_HEXAGON_V6_vsubhsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubhw, 50265}, // __builtin_HEXAGON_V6_vsubhw
+      {Intrinsic::hexagon_V6_vsubhw_128B, 50293}, // __builtin_HEXAGON_V6_vsubhw_128B
+      {Intrinsic::hexagon_V6_vsububh, 50326}, // __builtin_HEXAGON_V6_vsububh
+      {Intrinsic::hexagon_V6_vsububh_128B, 50355}, // __builtin_HEXAGON_V6_vsububh_128B
+      {Intrinsic::hexagon_V6_vsububsat, 50389}, // __builtin_HEXAGON_V6_vsububsat
+      {Intrinsic::hexagon_V6_vsububsat_128B, 50420}, // __builtin_HEXAGON_V6_vsububsat_128B
+      {Intrinsic::hexagon_V6_vsububsat_dv, 50456}, // __builtin_HEXAGON_V6_vsububsat_dv
+      {Intrinsic::hexagon_V6_vsububsat_dv_128B, 50490}, // __builtin_HEXAGON_V6_vsububsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubububb_sat, 50529}, // __builtin_HEXAGON_V6_vsubububb_sat
+      {Intrinsic::hexagon_V6_vsubububb_sat_128B, 50564}, // __builtin_HEXAGON_V6_vsubububb_sat_128B
+      {Intrinsic::hexagon_V6_vsubuhsat, 50604}, // __builtin_HEXAGON_V6_vsubuhsat
+      {Intrinsic::hexagon_V6_vsubuhsat_128B, 50635}, // __builtin_HEXAGON_V6_vsubuhsat_128B
+      {Intrinsic::hexagon_V6_vsubuhsat_dv, 50671}, // __builtin_HEXAGON_V6_vsubuhsat_dv
+      {Intrinsic::hexagon_V6_vsubuhsat_dv_128B, 50705}, // __builtin_HEXAGON_V6_vsubuhsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubuhw, 50744}, // __builtin_HEXAGON_V6_vsubuhw
+      {Intrinsic::hexagon_V6_vsubuhw_128B, 50773}, // __builtin_HEXAGON_V6_vsubuhw_128B
+      {Intrinsic::hexagon_V6_vsubuwsat, 50807}, // __builtin_HEXAGON_V6_vsubuwsat
+      {Intrinsic::hexagon_V6_vsubuwsat_128B, 50838}, // __builtin_HEXAGON_V6_vsubuwsat_128B
+      {Intrinsic::hexagon_V6_vsubuwsat_dv, 50874}, // __builtin_HEXAGON_V6_vsubuwsat_dv
+      {Intrinsic::hexagon_V6_vsubuwsat_dv_128B, 50908}, // __builtin_HEXAGON_V6_vsubuwsat_dv_128B
+      {Intrinsic::hexagon_V6_vsubw, 50947}, // __builtin_HEXAGON_V6_vsubw
+      {Intrinsic::hexagon_V6_vsubw_128B, 50974}, // __builtin_HEXAGON_V6_vsubw_128B
+      {Intrinsic::hexagon_V6_vsubw_dv, 51006}, // __builtin_HEXAGON_V6_vsubw_dv
+      {Intrinsic::hexagon_V6_vsubw_dv_128B, 51036}, // __builtin_HEXAGON_V6_vsubw_dv_128B
+      {Intrinsic::hexagon_V6_vsubwnq, 51071}, // __builtin_HEXAGON_V6_vsubwnq
+      {Intrinsic::hexagon_V6_vsubwnq_128B, 51100}, // __builtin_HEXAGON_V6_vsubwnq_128B
+      {Intrinsic::hexagon_V6_vsubwq, 51134}, // __builtin_HEXAGON_V6_vsubwq
+      {Intrinsic::hexagon_V6_vsubwq_128B, 51162}, // __builtin_HEXAGON_V6_vsubwq_128B
+      {Intrinsic::hexagon_V6_vsubwsat, 51195}, // __builtin_HEXAGON_V6_vsubwsat
+      {Intrinsic::hexagon_V6_vsubwsat_128B, 51225}, // __builtin_HEXAGON_V6_vsubwsat_128B
+      {Intrinsic::hexagon_V6_vsubwsat_dv, 51260}, // __builtin_HEXAGON_V6_vsubwsat_dv
+      {Intrinsic::hexagon_V6_vsubwsat_dv_128B, 51293}, // __builtin_HEXAGON_V6_vsubwsat_dv_128B
+      {Intrinsic::hexagon_V6_vswap, 51331}, // __builtin_HEXAGON_V6_vswap
+      {Intrinsic::hexagon_V6_vswap_128B, 51358}, // __builtin_HEXAGON_V6_vswap_128B
+      {Intrinsic::hexagon_V6_vtmpyb, 51390}, // __builtin_HEXAGON_V6_vtmpyb
+      {Intrinsic::hexagon_V6_vtmpyb_128B, 51418}, // __builtin_HEXAGON_V6_vtmpyb_128B
+      {Intrinsic::hexagon_V6_vtmpyb_acc, 51451}, // __builtin_HEXAGON_V6_vtmpyb_acc
+      {Intrinsic::hexagon_V6_vtmpyb_acc_128B, 51483}, // __builtin_HEXAGON_V6_vtmpyb_acc_128B
+      {Intrinsic::hexagon_V6_vtmpybus, 51520}, // __builtin_HEXAGON_V6_vtmpybus
+      {Intrinsic::hexagon_V6_vtmpybus_128B, 51550}, // __builtin_HEXAGON_V6_vtmpybus_128B
+      {Intrinsic::hexagon_V6_vtmpybus_acc, 51585}, // __builtin_HEXAGON_V6_vtmpybus_acc
+      {Intrinsic::hexagon_V6_vtmpybus_acc_128B, 51619}, // __builtin_HEXAGON_V6_vtmpybus_acc_128B
+      {Intrinsic::hexagon_V6_vtmpyhb, 51658}, // __builtin_HEXAGON_V6_vtmpyhb
+      {Intrinsic::hexagon_V6_vtmpyhb_128B, 51687}, // __builtin_HEXAGON_V6_vtmpyhb_128B
+      {Intrinsic::hexagon_V6_vtmpyhb_acc, 51721}, // __builtin_HEXAGON_V6_vtmpyhb_acc
+      {Intrinsic::hexagon_V6_vtmpyhb_acc_128B, 51754}, // __builtin_HEXAGON_V6_vtmpyhb_acc_128B
+      {Intrinsic::hexagon_V6_vunpackb, 51792}, // __builtin_HEXAGON_V6_vunpackb
+      {Intrinsic::hexagon_V6_vunpackb_128B, 51822}, // __builtin_HEXAGON_V6_vunpackb_128B
+      {Intrinsic::hexagon_V6_vunpackh, 51857}, // __builtin_HEXAGON_V6_vunpackh
+      {Intrinsic::hexagon_V6_vunpackh_128B, 51887}, // __builtin_HEXAGON_V6_vunpackh_128B
+      {Intrinsic::hexagon_V6_vunpackob, 51922}, // __builtin_HEXAGON_V6_vunpackob
+      {Intrinsic::hexagon_V6_vunpackob_128B, 51953}, // __builtin_HEXAGON_V6_vunpackob_128B
+      {Intrinsic::hexagon_V6_vunpackoh, 51989}, // __builtin_HEXAGON_V6_vunpackoh
+      {Intrinsic::hexagon_V6_vunpackoh_128B, 52020}, // __builtin_HEXAGON_V6_vunpackoh_128B
+      {Intrinsic::hexagon_V6_vunpackub, 52056}, // __builtin_HEXAGON_V6_vunpackub
+      {Intrinsic::hexagon_V6_vunpackub_128B, 52087}, // __builtin_HEXAGON_V6_vunpackub_128B
+      {Intrinsic::hexagon_V6_vunpackuh, 52123}, // __builtin_HEXAGON_V6_vunpackuh
+      {Intrinsic::hexagon_V6_vunpackuh_128B, 52154}, // __builtin_HEXAGON_V6_vunpackuh_128B
+      {Intrinsic::hexagon_V6_vxor, 52190}, // __builtin_HEXAGON_V6_vxor
+      {Intrinsic::hexagon_V6_vxor_128B, 52216}, // __builtin_HEXAGON_V6_vxor_128B
+      {Intrinsic::hexagon_V6_vzb, 52247}, // __builtin_HEXAGON_V6_vzb
+      {Intrinsic::hexagon_V6_vzb_128B, 52272}, // __builtin_HEXAGON_V6_vzb_128B
+      {Intrinsic::hexagon_V6_vzh, 52302}, // __builtin_HEXAGON_V6_vzh
+      {Intrinsic::hexagon_V6_vzh_128B, 52327}, // __builtin_HEXAGON_V6_vzh_128B
+      {Intrinsic::hexagon_prefetch, 52807}, // __builtin_HEXAGON_prefetch
+      {Intrinsic::hexagon_SI_to_SXTHI_asrh, 29259}, // __builtin_SI_to_SXTHI_asrh
+      {Intrinsic::hexagon_mm256i_vaddw, 52783}, // __builtin__mm256i_vaddw
+      {Intrinsic::hexagon_brev_ldb, 52357}, // __builtin_brev_ldb
+      {Intrinsic::hexagon_brev_ldd, 52376}, // __builtin_brev_ldd
+      {Intrinsic::hexagon_brev_ldh, 52395}, // __builtin_brev_ldh
+      {Intrinsic::hexagon_brev_ldub, 52414}, // __builtin_brev_ldub
+      {Intrinsic::hexagon_brev_lduh, 52434}, // __builtin_brev_lduh
+      {Intrinsic::hexagon_brev_ldw, 52454}, // __builtin_brev_ldw
+      {Intrinsic::hexagon_brev_stb, 52473}, // __builtin_brev_stb
+      {Intrinsic::hexagon_brev_std, 52492}, // __builtin_brev_std
+      {Intrinsic::hexagon_brev_sth, 52511}, // __builtin_brev_sth
+      {Intrinsic::hexagon_brev_sthhi, 52530}, // __builtin_brev_sthhi
+      {Intrinsic::hexagon_brev_stw, 52551}, // __builtin_brev_stw
+      {Intrinsic::hexagon_circ_ldb, 52570}, // __builtin_circ_ldb
+      {Intrinsic::hexagon_circ_ldd, 52589}, // __builtin_circ_ldd
+      {Intrinsic::hexagon_circ_ldh, 52608}, // __builtin_circ_ldh
+      {Intrinsic::hexagon_circ_ldub, 52627}, // __builtin_circ_ldub
+      {Intrinsic::hexagon_circ_lduh, 52647}, // __builtin_circ_lduh
+      {Intrinsic::hexagon_circ_ldw, 52667}, // __builtin_circ_ldw
+      {Intrinsic::hexagon_circ_stb, 52686}, // __builtin_circ_stb
+      {Intrinsic::hexagon_circ_std, 52705}, // __builtin_circ_std
+      {Intrinsic::hexagon_circ_sth, 52724}, // __builtin_circ_sth
+      {Intrinsic::hexagon_circ_sthhi, 52743}, // __builtin_circ_sthhi
+      {Intrinsic::hexagon_circ_stw, 52764}, // __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, 52834}, // __builtin_mips_absq_s_ph
+      {Intrinsic::mips_absq_s_qb, 52859}, // __builtin_mips_absq_s_qb
+      {Intrinsic::mips_absq_s_w, 52884}, // __builtin_mips_absq_s_w
+      {Intrinsic::mips_addq_ph, 52996}, // __builtin_mips_addq_ph
+      {Intrinsic::mips_addq_s_ph, 53019}, // __builtin_mips_addq_s_ph
+      {Intrinsic::mips_addq_s_w, 53044}, // __builtin_mips_addq_s_w
+      {Intrinsic::mips_addqh_ph, 53068}, // __builtin_mips_addqh_ph
+      {Intrinsic::mips_addqh_r_ph, 53092}, // __builtin_mips_addqh_r_ph
+      {Intrinsic::mips_addqh_r_w, 53118}, // __builtin_mips_addqh_r_w
+      {Intrinsic::mips_addqh_w, 53143}, // __builtin_mips_addqh_w
+      {Intrinsic::mips_addsc, 53442}, // __builtin_mips_addsc
+      {Intrinsic::mips_addu_ph, 53463}, // __builtin_mips_addu_ph
+      {Intrinsic::mips_addu_qb, 53486}, // __builtin_mips_addu_qb
+      {Intrinsic::mips_addu_s_ph, 53509}, // __builtin_mips_addu_s_ph
+      {Intrinsic::mips_addu_s_qb, 53534}, // __builtin_mips_addu_s_qb
+      {Intrinsic::mips_adduh_qb, 53559}, // __builtin_mips_adduh_qb
+      {Intrinsic::mips_adduh_r_qb, 53583}, // __builtin_mips_adduh_r_qb
+      {Intrinsic::mips_addwc, 53781}, // __builtin_mips_addwc
+      {Intrinsic::mips_append, 53843}, // __builtin_mips_append
+      {Intrinsic::mips_balign, 54409}, // __builtin_mips_balign
+      {Intrinsic::mips_bitrev, 54963}, // __builtin_mips_bitrev
+      {Intrinsic::mips_bposge32, 55341}, // __builtin_mips_bposge32
+      {Intrinsic::mips_cmp_eq_ph, 56580}, // __builtin_mips_cmp_eq_ph
+      {Intrinsic::mips_cmp_le_ph, 56605}, // __builtin_mips_cmp_le_ph
+      {Intrinsic::mips_cmp_lt_ph, 56630}, // __builtin_mips_cmp_lt_ph
+      {Intrinsic::mips_cmpgdu_eq_qb, 56655}, // __builtin_mips_cmpgdu_eq_qb
+      {Intrinsic::mips_cmpgdu_le_qb, 56683}, // __builtin_mips_cmpgdu_le_qb
+      {Intrinsic::mips_cmpgdu_lt_qb, 56711}, // __builtin_mips_cmpgdu_lt_qb
+      {Intrinsic::mips_cmpgu_eq_qb, 56739}, // __builtin_mips_cmpgu_eq_qb
+      {Intrinsic::mips_cmpgu_le_qb, 56766}, // __builtin_mips_cmpgu_le_qb
+      {Intrinsic::mips_cmpgu_lt_qb, 56793}, // __builtin_mips_cmpgu_lt_qb
+      {Intrinsic::mips_cmpu_eq_qb, 56820}, // __builtin_mips_cmpu_eq_qb
+      {Intrinsic::mips_cmpu_le_qb, 56846}, // __builtin_mips_cmpu_le_qb
+      {Intrinsic::mips_cmpu_lt_qb, 56872}, // __builtin_mips_cmpu_lt_qb
+      {Intrinsic::mips_dlsa, 57279}, // __builtin_mips_dlsa
+      {Intrinsic::mips_dpa_w_ph, 57437}, // __builtin_mips_dpa_w_ph
+      {Intrinsic::mips_dpaq_s_w_ph, 57605}, // __builtin_mips_dpaq_s_w_ph
+      {Intrinsic::mips_dpaq_sa_l_w, 57632}, // __builtin_mips_dpaq_sa_l_w
+      {Intrinsic::mips_dpaqx_s_w_ph, 57659}, // __builtin_mips_dpaqx_s_w_ph
+      {Intrinsic::mips_dpaqx_sa_w_ph, 57687}, // __builtin_mips_dpaqx_sa_w_ph
+      {Intrinsic::mips_dpau_h_qbl, 57716}, // __builtin_mips_dpau_h_qbl
+      {Intrinsic::mips_dpau_h_qbr, 57742}, // __builtin_mips_dpau_h_qbr
+      {Intrinsic::mips_dpax_w_ph, 57768}, // __builtin_mips_dpax_w_ph
+      {Intrinsic::mips_dps_w_ph, 57793}, // __builtin_mips_dps_w_ph
+      {Intrinsic::mips_dpsq_s_w_ph, 57817}, // __builtin_mips_dpsq_s_w_ph
+      {Intrinsic::mips_dpsq_sa_l_w, 57844}, // __builtin_mips_dpsq_sa_l_w
+      {Intrinsic::mips_dpsqx_s_w_ph, 57871}, // __builtin_mips_dpsqx_s_w_ph
+      {Intrinsic::mips_dpsqx_sa_w_ph, 57899}, // __builtin_mips_dpsqx_sa_w_ph
+      {Intrinsic::mips_dpsu_h_qbl, 57928}, // __builtin_mips_dpsu_h_qbl
+      {Intrinsic::mips_dpsu_h_qbr, 57954}, // __builtin_mips_dpsu_h_qbr
+      {Intrinsic::mips_dpsx_w_ph, 58124}, // __builtin_mips_dpsx_w_ph
+      {Intrinsic::mips_extp, 58149}, // __builtin_mips_extp
+      {Intrinsic::mips_extpdp, 58169}, // __builtin_mips_extpdp
+      {Intrinsic::mips_extr_r_w, 58191}, // __builtin_mips_extr_r_w
+      {Intrinsic::mips_extr_rs_w, 58215}, // __builtin_mips_extr_rs_w
+      {Intrinsic::mips_extr_s_h, 58240}, // __builtin_mips_extr_s_h
+      {Intrinsic::mips_extr_w, 58264}, // __builtin_mips_extr_w
+      {Intrinsic::mips_insv, 61316}, // __builtin_mips_insv
+      {Intrinsic::mips_lbux, 61424}, // __builtin_mips_lbux
+      {Intrinsic::mips_lhx, 61600}, // __builtin_mips_lhx
+      {Intrinsic::mips_lsa, 61619}, // __builtin_mips_lsa
+      {Intrinsic::mips_lwx, 61638}, // __builtin_mips_lwx
+      {Intrinsic::mips_madd, 61657}, // __builtin_mips_madd
+      {Intrinsic::mips_maddu, 61771}, // __builtin_mips_maddu
+      {Intrinsic::mips_maq_s_w_phl, 61880}, // __builtin_mips_maq_s_w_phl
+      {Intrinsic::mips_maq_s_w_phr, 61907}, // __builtin_mips_maq_s_w_phr
+      {Intrinsic::mips_maq_sa_w_phl, 61934}, // __builtin_mips_maq_sa_w_phl
+      {Intrinsic::mips_maq_sa_w_phr, 61962}, // __builtin_mips_maq_sa_w_phr
+      {Intrinsic::mips_modsub, 63062}, // __builtin_mips_modsub
+      {Intrinsic::mips_msub, 63105}, // __builtin_mips_msub
+      {Intrinsic::mips_msubu, 63219}, // __builtin_mips_msubu
+      {Intrinsic::mips_mthlip, 63328}, // __builtin_mips_mthlip
+      {Intrinsic::mips_mul_ph, 63350}, // __builtin_mips_mul_ph
+      {Intrinsic::mips_mul_s_ph, 63416}, // __builtin_mips_mul_s_ph
+      {Intrinsic::mips_muleq_s_w_phl, 63440}, // __builtin_mips_muleq_s_w_phl
+      {Intrinsic::mips_muleq_s_w_phr, 63469}, // __builtin_mips_muleq_s_w_phr
+      {Intrinsic::mips_muleu_s_ph_qbl, 63498}, // __builtin_mips_muleu_s_ph_qbl
+      {Intrinsic::mips_muleu_s_ph_qbr, 63528}, // __builtin_mips_muleu_s_ph_qbr
+      {Intrinsic::mips_mulq_rs_ph, 63558}, // __builtin_mips_mulq_rs_ph
+      {Intrinsic::mips_mulq_rs_w, 63584}, // __builtin_mips_mulq_rs_w
+      {Intrinsic::mips_mulq_s_ph, 63609}, // __builtin_mips_mulq_s_ph
+      {Intrinsic::mips_mulq_s_w, 63634}, // __builtin_mips_mulq_s_w
+      {Intrinsic::mips_mulsa_w_ph, 63704}, // __builtin_mips_mulsa_w_ph
+      {Intrinsic::mips_mulsaq_s_w_ph, 63730}, // __builtin_mips_mulsaq_s_w_ph
+      {Intrinsic::mips_mult, 63759}, // __builtin_mips_mult
+      {Intrinsic::mips_multu, 63779}, // __builtin_mips_multu
+      {Intrinsic::mips_packrl_ph, 64132}, // __builtin_mips_packrl_ph
+      {Intrinsic::mips_pick_ph, 64417}, // __builtin_mips_pick_ph
+      {Intrinsic::mips_pick_qb, 64440}, // __builtin_mips_pick_qb
+      {Intrinsic::mips_preceq_w_phl, 64463}, // __builtin_mips_preceq_w_phl
+      {Intrinsic::mips_preceq_w_phr, 64491}, // __builtin_mips_preceq_w_phr
+      {Intrinsic::mips_precequ_ph_qbl, 64519}, // __builtin_mips_precequ_ph_qbl
+      {Intrinsic::mips_precequ_ph_qbla, 64549}, // __builtin_mips_precequ_ph_qbla
+      {Intrinsic::mips_precequ_ph_qbr, 64580}, // __builtin_mips_precequ_ph_qbr
+      {Intrinsic::mips_precequ_ph_qbra, 64610}, // __builtin_mips_precequ_ph_qbra
+      {Intrinsic::mips_preceu_ph_qbl, 64641}, // __builtin_mips_preceu_ph_qbl
+      {Intrinsic::mips_preceu_ph_qbla, 64670}, // __builtin_mips_preceu_ph_qbla
+      {Intrinsic::mips_preceu_ph_qbr, 64700}, // __builtin_mips_preceu_ph_qbr
+      {Intrinsic::mips_preceu_ph_qbra, 64729}, // __builtin_mips_preceu_ph_qbra
+      {Intrinsic::mips_precr_qb_ph, 64759}, // __builtin_mips_precr_qb_ph
+      {Intrinsic::mips_precr_sra_ph_w, 64786}, // __builtin_mips_precr_sra_ph_w
+      {Intrinsic::mips_precr_sra_r_ph_w, 64816}, // __builtin_mips_precr_sra_r_ph_w
+      {Intrinsic::mips_precrq_ph_w, 64848}, // __builtin_mips_precrq_ph_w
+      {Intrinsic::mips_precrq_qb_ph, 64875}, // __builtin_mips_precrq_qb_ph
+      {Intrinsic::mips_precrq_rs_ph_w, 64903}, // __builtin_mips_precrq_rs_ph_w
+      {Intrinsic::mips_precrqu_s_qb_ph, 64933}, // __builtin_mips_precrqu_s_qb_ph
+      {Intrinsic::mips_prepend, 64964}, // __builtin_mips_prepend
+      {Intrinsic::mips_raddu_w_qb, 64987}, // __builtin_mips_raddu_w_qb
+      {Intrinsic::mips_rddsp, 65013}, // __builtin_mips_rddsp
+      {Intrinsic::mips_repl_ph, 65034}, // __builtin_mips_repl_ph
+      {Intrinsic::mips_repl_qb, 65057}, // __builtin_mips_repl_qb
+      {Intrinsic::mips_shilo, 65316}, // __builtin_mips_shilo
+      {Intrinsic::mips_shll_ph, 65337}, // __builtin_mips_shll_ph
+      {Intrinsic::mips_shll_qb, 65360}, // __builtin_mips_shll_qb
+      {Intrinsic::mips_shll_s_ph, 65383}, // __builtin_mips_shll_s_ph
+      {Intrinsic::mips_shll_s_w, 65408}, // __builtin_mips_shll_s_w
+      {Intrinsic::mips_shra_ph, 65432}, // __builtin_mips_shra_ph
+      {Intrinsic::mips_shra_qb, 65455}, // __builtin_mips_shra_qb
+      {Intrinsic::mips_shra_r_ph, 65478}, // __builtin_mips_shra_r_ph
+      {Intrinsic::mips_shra_r_qb, 65503}, // __builtin_mips_shra_r_qb
+      {Intrinsic::mips_shra_r_w, 65528}, // __builtin_mips_shra_r_w
+      {Intrinsic::mips_shrl_ph, 65552}, // __builtin_mips_shrl_ph
+      {Intrinsic::mips_shrl_qb, 65575}, // __builtin_mips_shrl_qb
+      {Intrinsic::mips_subq_ph, 66854}, // __builtin_mips_subq_ph
+      {Intrinsic::mips_subq_s_ph, 66877}, // __builtin_mips_subq_s_ph
+      {Intrinsic::mips_subq_s_w, 66902}, // __builtin_mips_subq_s_w
+      {Intrinsic::mips_subqh_ph, 66926}, // __builtin_mips_subqh_ph
+      {Intrinsic::mips_subqh_r_ph, 66950}, // __builtin_mips_subqh_r_ph
+      {Intrinsic::mips_subqh_r_w, 66976}, // __builtin_mips_subqh_r_w
+      {Intrinsic::mips_subqh_w, 67001}, // __builtin_mips_subqh_w
+      {Intrinsic::mips_subu_ph, 67408}, // __builtin_mips_subu_ph
+      {Intrinsic::mips_subu_qb, 67431}, // __builtin_mips_subu_qb
+      {Intrinsic::mips_subu_s_ph, 67454}, // __builtin_mips_subu_s_ph
+      {Intrinsic::mips_subu_s_qb, 67479}, // __builtin_mips_subu_s_qb
+      {Intrinsic::mips_subuh_qb, 67504}, // __builtin_mips_subuh_qb
+      {Intrinsic::mips_subuh_r_qb, 67528}, // __builtin_mips_subuh_r_qb
+      {Intrinsic::mips_wrdsp, 67810}, // __builtin_mips_wrdsp
+      {Intrinsic::mips_add_a_b, 52908}, // __builtin_msa_add_a_b
+      {Intrinsic::mips_add_a_d, 52930}, // __builtin_msa_add_a_d
+      {Intrinsic::mips_add_a_h, 52952}, // __builtin_msa_add_a_h
+      {Intrinsic::mips_add_a_w, 52974}, // __builtin_msa_add_a_w
+      {Intrinsic::mips_adds_a_b, 53166}, // __builtin_msa_adds_a_b
+      {Intrinsic::mips_adds_a_d, 53189}, // __builtin_msa_adds_a_d
+      {Intrinsic::mips_adds_a_h, 53212}, // __builtin_msa_adds_a_h
+      {Intrinsic::mips_adds_a_w, 53235}, // __builtin_msa_adds_a_w
+      {Intrinsic::mips_adds_s_b, 53258}, // __builtin_msa_adds_s_b
+      {Intrinsic::mips_adds_s_d, 53281}, // __builtin_msa_adds_s_d
+      {Intrinsic::mips_adds_s_h, 53304}, // __builtin_msa_adds_s_h
+      {Intrinsic::mips_adds_s_w, 53327}, // __builtin_msa_adds_s_w
+      {Intrinsic::mips_adds_u_b, 53350}, // __builtin_msa_adds_u_b
+      {Intrinsic::mips_adds_u_d, 53373}, // __builtin_msa_adds_u_d
+      {Intrinsic::mips_adds_u_h, 53396}, // __builtin_msa_adds_u_h
+      {Intrinsic::mips_adds_u_w, 53419}, // __builtin_msa_adds_u_w
+      {Intrinsic::mips_addv_b, 53609}, // __builtin_msa_addv_b
+      {Intrinsic::mips_addv_d, 53630}, // __builtin_msa_addv_d
+      {Intrinsic::mips_addv_h, 53651}, // __builtin_msa_addv_h
+      {Intrinsic::mips_addv_w, 53672}, // __builtin_msa_addv_w
+      {Intrinsic::mips_addvi_b, 53693}, // __builtin_msa_addvi_b
+      {Intrinsic::mips_addvi_d, 53715}, // __builtin_msa_addvi_d
+      {Intrinsic::mips_addvi_h, 53737}, // __builtin_msa_addvi_h
+      {Intrinsic::mips_addvi_w, 53759}, // __builtin_msa_addvi_w
+      {Intrinsic::mips_and_v, 53802}, // __builtin_msa_and_v
+      {Intrinsic::mips_andi_b, 53822}, // __builtin_msa_andi_b
+      {Intrinsic::mips_asub_s_b, 53865}, // __builtin_msa_asub_s_b
+      {Intrinsic::mips_asub_s_d, 53888}, // __builtin_msa_asub_s_d
+      {Intrinsic::mips_asub_s_h, 53911}, // __builtin_msa_asub_s_h
+      {Intrinsic::mips_asub_s_w, 53934}, // __builtin_msa_asub_s_w
+      {Intrinsic::mips_asub_u_b, 53957}, // __builtin_msa_asub_u_b
+      {Intrinsic::mips_asub_u_d, 53980}, // __builtin_msa_asub_u_d
+      {Intrinsic::mips_asub_u_h, 54003}, // __builtin_msa_asub_u_h
+      {Intrinsic::mips_asub_u_w, 54026}, // __builtin_msa_asub_u_w
+      {Intrinsic::mips_ave_s_b, 54049}, // __builtin_msa_ave_s_b
+      {Intrinsic::mips_ave_s_d, 54071}, // __builtin_msa_ave_s_d
+      {Intrinsic::mips_ave_s_h, 54093}, // __builtin_msa_ave_s_h
+      {Intrinsic::mips_ave_s_w, 54115}, // __builtin_msa_ave_s_w
+      {Intrinsic::mips_ave_u_b, 54137}, // __builtin_msa_ave_u_b
+      {Intrinsic::mips_ave_u_d, 54159}, // __builtin_msa_ave_u_d
+      {Intrinsic::mips_ave_u_h, 54181}, // __builtin_msa_ave_u_h
+      {Intrinsic::mips_ave_u_w, 54203}, // __builtin_msa_ave_u_w
+      {Intrinsic::mips_aver_s_b, 54225}, // __builtin_msa_aver_s_b
+      {Intrinsic::mips_aver_s_d, 54248}, // __builtin_msa_aver_s_d
+      {Intrinsic::mips_aver_s_h, 54271}, // __builtin_msa_aver_s_h
+      {Intrinsic::mips_aver_s_w, 54294}, // __builtin_msa_aver_s_w
+      {Intrinsic::mips_aver_u_b, 54317}, // __builtin_msa_aver_u_b
+      {Intrinsic::mips_aver_u_d, 54340}, // __builtin_msa_aver_u_d
+      {Intrinsic::mips_aver_u_h, 54363}, // __builtin_msa_aver_u_h
+      {Intrinsic::mips_aver_u_w, 54386}, // __builtin_msa_aver_u_w
+      {Intrinsic::mips_bclr_b, 54431}, // __builtin_msa_bclr_b
+      {Intrinsic::mips_bclr_d, 54452}, // __builtin_msa_bclr_d
+      {Intrinsic::mips_bclr_h, 54473}, // __builtin_msa_bclr_h
+      {Intrinsic::mips_bclr_w, 54494}, // __builtin_msa_bclr_w
+      {Intrinsic::mips_bclri_b, 54515}, // __builtin_msa_bclri_b
+      {Intrinsic::mips_bclri_d, 54537}, // __builtin_msa_bclri_d
+      {Intrinsic::mips_bclri_h, 54559}, // __builtin_msa_bclri_h
+      {Intrinsic::mips_bclri_w, 54581}, // __builtin_msa_bclri_w
+      {Intrinsic::mips_binsl_b, 54603}, // __builtin_msa_binsl_b
+      {Intrinsic::mips_binsl_d, 54625}, // __builtin_msa_binsl_d
+      {Intrinsic::mips_binsl_h, 54647}, // __builtin_msa_binsl_h
+      {Intrinsic::mips_binsl_w, 54669}, // __builtin_msa_binsl_w
+      {Intrinsic::mips_binsli_b, 54691}, // __builtin_msa_binsli_b
+      {Intrinsic::mips_binsli_d, 54714}, // __builtin_msa_binsli_d
+      {Intrinsic::mips_binsli_h, 54737}, // __builtin_msa_binsli_h
+      {Intrinsic::mips_binsli_w, 54760}, // __builtin_msa_binsli_w
+      {Intrinsic::mips_binsr_b, 54783}, // __builtin_msa_binsr_b
+      {Intrinsic::mips_binsr_d, 54805}, // __builtin_msa_binsr_d
+      {Intrinsic::mips_binsr_h, 54827}, // __builtin_msa_binsr_h
+      {Intrinsic::mips_binsr_w, 54849}, // __builtin_msa_binsr_w
+      {Intrinsic::mips_binsri_b, 54871}, // __builtin_msa_binsri_b
+      {Intrinsic::mips_binsri_d, 54894}, // __builtin_msa_binsri_d
+      {Intrinsic::mips_binsri_h, 54917}, // __builtin_msa_binsri_h
+      {Intrinsic::mips_binsri_w, 54940}, // __builtin_msa_binsri_w
+      {Intrinsic::mips_bmnz_v, 54985}, // __builtin_msa_bmnz_v
+      {Intrinsic::mips_bmnzi_b, 55006}, // __builtin_msa_bmnzi_b
+      {Intrinsic::mips_bmz_v, 55028}, // __builtin_msa_bmz_v
+      {Intrinsic::mips_bmzi_b, 55048}, // __builtin_msa_bmzi_b
+      {Intrinsic::mips_bneg_b, 55069}, // __builtin_msa_bneg_b
+      {Intrinsic::mips_bneg_d, 55090}, // __builtin_msa_bneg_d
+      {Intrinsic::mips_bneg_h, 55111}, // __builtin_msa_bneg_h
+      {Intrinsic::mips_bneg_w, 55132}, // __builtin_msa_bneg_w
+      {Intrinsic::mips_bnegi_b, 55153}, // __builtin_msa_bnegi_b
+      {Intrinsic::mips_bnegi_d, 55175}, // __builtin_msa_bnegi_d
+      {Intrinsic::mips_bnegi_h, 55197}, // __builtin_msa_bnegi_h
+      {Intrinsic::mips_bnegi_w, 55219}, // __builtin_msa_bnegi_w
+      {Intrinsic::mips_bnz_b, 55241}, // __builtin_msa_bnz_b
+      {Intrinsic::mips_bnz_d, 55261}, // __builtin_msa_bnz_d
+      {Intrinsic::mips_bnz_h, 55281}, // __builtin_msa_bnz_h
+      {Intrinsic::mips_bnz_v, 55301}, // __builtin_msa_bnz_v
+      {Intrinsic::mips_bnz_w, 55321}, // __builtin_msa_bnz_w
+      {Intrinsic::mips_bsel_v, 55365}, // __builtin_msa_bsel_v
+      {Intrinsic::mips_bseli_b, 55386}, // __builtin_msa_bseli_b
+      {Intrinsic::mips_bset_b, 55408}, // __builtin_msa_bset_b
+      {Intrinsic::mips_bset_d, 55429}, // __builtin_msa_bset_d
+      {Intrinsic::mips_bset_h, 55450}, // __builtin_msa_bset_h
+      {Intrinsic::mips_bset_w, 55471}, // __builtin_msa_bset_w
+      {Intrinsic::mips_bseti_b, 55492}, // __builtin_msa_bseti_b
+      {Intrinsic::mips_bseti_d, 55514}, // __builtin_msa_bseti_d
+      {Intrinsic::mips_bseti_h, 55536}, // __builtin_msa_bseti_h
+      {Intrinsic::mips_bseti_w, 55558}, // __builtin_msa_bseti_w
+      {Intrinsic::mips_bz_b, 55580}, // __builtin_msa_bz_b
+      {Intrinsic::mips_bz_d, 55599}, // __builtin_msa_bz_d
+      {Intrinsic::mips_bz_h, 55618}, // __builtin_msa_bz_h
+      {Intrinsic::mips_bz_v, 55637}, // __builtin_msa_bz_v
+      {Intrinsic::mips_bz_w, 55656}, // __builtin_msa_bz_w
+      {Intrinsic::mips_ceq_b, 55675}, // __builtin_msa_ceq_b
+      {Intrinsic::mips_ceq_d, 55695}, // __builtin_msa_ceq_d
+      {Intrinsic::mips_ceq_h, 55715}, // __builtin_msa_ceq_h
+      {Intrinsic::mips_ceq_w, 55735}, // __builtin_msa_ceq_w
+      {Intrinsic::mips_ceqi_b, 55755}, // __builtin_msa_ceqi_b
+      {Intrinsic::mips_ceqi_d, 55776}, // __builtin_msa_ceqi_d
+      {Intrinsic::mips_ceqi_h, 55797}, // __builtin_msa_ceqi_h
+      {Intrinsic::mips_ceqi_w, 55818}, // __builtin_msa_ceqi_w
+      {Intrinsic::mips_cfcmsa, 55839}, // __builtin_msa_cfcmsa
+      {Intrinsic::mips_cle_s_b, 55860}, // __builtin_msa_cle_s_b
+      {Intrinsic::mips_cle_s_d, 55882}, // __builtin_msa_cle_s_d
+      {Intrinsic::mips_cle_s_h, 55904}, // __builtin_msa_cle_s_h
+      {Intrinsic::mips_cle_s_w, 55926}, // __builtin_msa_cle_s_w
+      {Intrinsic::mips_cle_u_b, 55948}, // __builtin_msa_cle_u_b
+      {Intrinsic::mips_cle_u_d, 55970}, // __builtin_msa_cle_u_d
+      {Intrinsic::mips_cle_u_h, 55992}, // __builtin_msa_cle_u_h
+      {Intrinsic::mips_cle_u_w, 56014}, // __builtin_msa_cle_u_w
+      {Intrinsic::mips_clei_s_b, 56036}, // __builtin_msa_clei_s_b
+      {Intrinsic::mips_clei_s_d, 56059}, // __builtin_msa_clei_s_d
+      {Intrinsic::mips_clei_s_h, 56082}, // __builtin_msa_clei_s_h
+      {Intrinsic::mips_clei_s_w, 56105}, // __builtin_msa_clei_s_w
+      {Intrinsic::mips_clei_u_b, 56128}, // __builtin_msa_clei_u_b
+      {Intrinsic::mips_clei_u_d, 56151}, // __builtin_msa_clei_u_d
+      {Intrinsic::mips_clei_u_h, 56174}, // __builtin_msa_clei_u_h
+      {Intrinsic::mips_clei_u_w, 56197}, // __builtin_msa_clei_u_w
+      {Intrinsic::mips_clt_s_b, 56220}, // __builtin_msa_clt_s_b
+      {Intrinsic::mips_clt_s_d, 56242}, // __builtin_msa_clt_s_d
+      {Intrinsic::mips_clt_s_h, 56264}, // __builtin_msa_clt_s_h
+      {Intrinsic::mips_clt_s_w, 56286}, // __builtin_msa_clt_s_w
+      {Intrinsic::mips_clt_u_b, 56308}, // __builtin_msa_clt_u_b
+      {Intrinsic::mips_clt_u_d, 56330}, // __builtin_msa_clt_u_d
+      {Intrinsic::mips_clt_u_h, 56352}, // __builtin_msa_clt_u_h
+      {Intrinsic::mips_clt_u_w, 56374}, // __builtin_msa_clt_u_w
+      {Intrinsic::mips_clti_s_b, 56396}, // __builtin_msa_clti_s_b
+      {Intrinsic::mips_clti_s_d, 56419}, // __builtin_msa_clti_s_d
+      {Intrinsic::mips_clti_s_h, 56442}, // __builtin_msa_clti_s_h
+      {Intrinsic::mips_clti_s_w, 56465}, // __builtin_msa_clti_s_w
+      {Intrinsic::mips_clti_u_b, 56488}, // __builtin_msa_clti_u_b
+      {Intrinsic::mips_clti_u_d, 56511}, // __builtin_msa_clti_u_d
+      {Intrinsic::mips_clti_u_h, 56534}, // __builtin_msa_clti_u_h
+      {Intrinsic::mips_clti_u_w, 56557}, // __builtin_msa_clti_u_w
+      {Intrinsic::mips_copy_s_b, 56898}, // __builtin_msa_copy_s_b
+      {Intrinsic::mips_copy_s_d, 56921}, // __builtin_msa_copy_s_d
+      {Intrinsic::mips_copy_s_h, 56944}, // __builtin_msa_copy_s_h
+      {Intrinsic::mips_copy_s_w, 56967}, // __builtin_msa_copy_s_w
+      {Intrinsic::mips_copy_u_b, 56990}, // __builtin_msa_copy_u_b
+      {Intrinsic::mips_copy_u_d, 57013}, // __builtin_msa_copy_u_d
+      {Intrinsic::mips_copy_u_h, 57036}, // __builtin_msa_copy_u_h
+      {Intrinsic::mips_copy_u_w, 57059}, // __builtin_msa_copy_u_w
+      {Intrinsic::mips_ctcmsa, 57082}, // __builtin_msa_ctcmsa
+      {Intrinsic::mips_div_s_b, 57103}, // __builtin_msa_div_s_b
+      {Intrinsic::mips_div_s_d, 57125}, // __builtin_msa_div_s_d
+      {Intrinsic::mips_div_s_h, 57147}, // __builtin_msa_div_s_h
+      {Intrinsic::mips_div_s_w, 57169}, // __builtin_msa_div_s_w
+      {Intrinsic::mips_div_u_b, 57191}, // __builtin_msa_div_u_b
+      {Intrinsic::mips_div_u_d, 57213}, // __builtin_msa_div_u_d
+      {Intrinsic::mips_div_u_h, 57235}, // __builtin_msa_div_u_h
+      {Intrinsic::mips_div_u_w, 57257}, // __builtin_msa_div_u_w
+      {Intrinsic::mips_dotp_s_d, 57299}, // __builtin_msa_dotp_s_d
+      {Intrinsic::mips_dotp_s_h, 57322}, // __builtin_msa_dotp_s_h
+      {Intrinsic::mips_dotp_s_w, 57345}, // __builtin_msa_dotp_s_w
+      {Intrinsic::mips_dotp_u_d, 57368}, // __builtin_msa_dotp_u_d
+      {Intrinsic::mips_dotp_u_h, 57391}, // __builtin_msa_dotp_u_h
+      {Intrinsic::mips_dotp_u_w, 57414}, // __builtin_msa_dotp_u_w
+      {Intrinsic::mips_dpadd_s_d, 57461}, // __builtin_msa_dpadd_s_d
+      {Intrinsic::mips_dpadd_s_h, 57485}, // __builtin_msa_dpadd_s_h
+      {Intrinsic::mips_dpadd_s_w, 57509}, // __builtin_msa_dpadd_s_w
+      {Intrinsic::mips_dpadd_u_d, 57533}, // __builtin_msa_dpadd_u_d
+      {Intrinsic::mips_dpadd_u_h, 57557}, // __builtin_msa_dpadd_u_h
+      {Intrinsic::mips_dpadd_u_w, 57581}, // __builtin_msa_dpadd_u_w
+      {Intrinsic::mips_dpsub_s_d, 57980}, // __builtin_msa_dpsub_s_d
+      {Intrinsic::mips_dpsub_s_h, 58004}, // __builtin_msa_dpsub_s_h
+      {Intrinsic::mips_dpsub_s_w, 58028}, // __builtin_msa_dpsub_s_w
+      {Intrinsic::mips_dpsub_u_d, 58052}, // __builtin_msa_dpsub_u_d
+      {Intrinsic::mips_dpsub_u_h, 58076}, // __builtin_msa_dpsub_u_h
+      {Intrinsic::mips_dpsub_u_w, 58100}, // __builtin_msa_dpsub_u_w
+      {Intrinsic::mips_fadd_d, 58286}, // __builtin_msa_fadd_d
+      {Intrinsic::mips_fadd_w, 58307}, // __builtin_msa_fadd_w
+      {Intrinsic::mips_fcaf_d, 58328}, // __builtin_msa_fcaf_d
+      {Intrinsic::mips_fcaf_w, 58349}, // __builtin_msa_fcaf_w
+      {Intrinsic::mips_fceq_d, 58370}, // __builtin_msa_fceq_d
+      {Intrinsic::mips_fceq_w, 58391}, // __builtin_msa_fceq_w
+      {Intrinsic::mips_fclass_d, 58412}, // __builtin_msa_fclass_d
+      {Intrinsic::mips_fclass_w, 58435}, // __builtin_msa_fclass_w
+      {Intrinsic::mips_fcle_d, 58458}, // __builtin_msa_fcle_d
+      {Intrinsic::mips_fcle_w, 58479}, // __builtin_msa_fcle_w
+      {Intrinsic::mips_fclt_d, 58500}, // __builtin_msa_fclt_d
+      {Intrinsic::mips_fclt_w, 58521}, // __builtin_msa_fclt_w
+      {Intrinsic::mips_fcne_d, 58542}, // __builtin_msa_fcne_d
+      {Intrinsic::mips_fcne_w, 58563}, // __builtin_msa_fcne_w
+      {Intrinsic::mips_fcor_d, 58584}, // __builtin_msa_fcor_d
+      {Intrinsic::mips_fcor_w, 58605}, // __builtin_msa_fcor_w
+      {Intrinsic::mips_fcueq_d, 58626}, // __builtin_msa_fcueq_d
+      {Intrinsic::mips_fcueq_w, 58648}, // __builtin_msa_fcueq_w
+      {Intrinsic::mips_fcule_d, 58670}, // __builtin_msa_fcule_d
+      {Intrinsic::mips_fcule_w, 58692}, // __builtin_msa_fcule_w
+      {Intrinsic::mips_fcult_d, 58714}, // __builtin_msa_fcult_d
+      {Intrinsic::mips_fcult_w, 58736}, // __builtin_msa_fcult_w
+      {Intrinsic::mips_fcun_d, 58758}, // __builtin_msa_fcun_d
+      {Intrinsic::mips_fcun_w, 58779}, // __builtin_msa_fcun_w
+      {Intrinsic::mips_fcune_d, 58800}, // __builtin_msa_fcune_d
+      {Intrinsic::mips_fcune_w, 58822}, // __builtin_msa_fcune_w
+      {Intrinsic::mips_fdiv_d, 58844}, // __builtin_msa_fdiv_d
+      {Intrinsic::mips_fdiv_w, 58865}, // __builtin_msa_fdiv_w
+      {Intrinsic::mips_fexdo_h, 58886}, // __builtin_msa_fexdo_h
+      {Intrinsic::mips_fexdo_w, 58908}, // __builtin_msa_fexdo_w
+      {Intrinsic::mips_fexp2_d, 58930}, // __builtin_msa_fexp2_d
+      {Intrinsic::mips_fexp2_w, 58952}, // __builtin_msa_fexp2_w
+      {Intrinsic::mips_fexupl_d, 58974}, // __builtin_msa_fexupl_d
+      {Intrinsic::mips_fexupl_w, 58997}, // __builtin_msa_fexupl_w
+      {Intrinsic::mips_fexupr_d, 59020}, // __builtin_msa_fexupr_d
+      {Intrinsic::mips_fexupr_w, 59043}, // __builtin_msa_fexupr_w
+      {Intrinsic::mips_ffint_s_d, 59066}, // __builtin_msa_ffint_s_d
+      {Intrinsic::mips_ffint_s_w, 59090}, // __builtin_msa_ffint_s_w
+      {Intrinsic::mips_ffint_u_d, 59114}, // __builtin_msa_ffint_u_d
+      {Intrinsic::mips_ffint_u_w, 59138}, // __builtin_msa_ffint_u_w
+      {Intrinsic::mips_ffql_d, 59162}, // __builtin_msa_ffql_d
+      {Intrinsic::mips_ffql_w, 59183}, // __builtin_msa_ffql_w
+      {Intrinsic::mips_ffqr_d, 59204}, // __builtin_msa_ffqr_d
+      {Intrinsic::mips_ffqr_w, 59225}, // __builtin_msa_ffqr_w
+      {Intrinsic::mips_fill_b, 59246}, // __builtin_msa_fill_b
+      {Intrinsic::mips_fill_d, 59267}, // __builtin_msa_fill_d
+      {Intrinsic::mips_fill_h, 59288}, // __builtin_msa_fill_h
+      {Intrinsic::mips_fill_w, 59309}, // __builtin_msa_fill_w
+      {Intrinsic::mips_flog2_d, 59330}, // __builtin_msa_flog2_d
+      {Intrinsic::mips_flog2_w, 59352}, // __builtin_msa_flog2_w
+      {Intrinsic::mips_fmadd_d, 59374}, // __builtin_msa_fmadd_d
+      {Intrinsic::mips_fmadd_w, 59396}, // __builtin_msa_fmadd_w
+      {Intrinsic::mips_fmax_a_d, 59418}, // __builtin_msa_fmax_a_d
+      {Intrinsic::mips_fmax_a_w, 59441}, // __builtin_msa_fmax_a_w
+      {Intrinsic::mips_fmax_d, 59464}, // __builtin_msa_fmax_d
+      {Intrinsic::mips_fmax_w, 59485}, // __builtin_msa_fmax_w
+      {Intrinsic::mips_fmin_a_d, 59506}, // __builtin_msa_fmin_a_d
+      {Intrinsic::mips_fmin_a_w, 59529}, // __builtin_msa_fmin_a_w
+      {Intrinsic::mips_fmin_d, 59552}, // __builtin_msa_fmin_d
+      {Intrinsic::mips_fmin_w, 59573}, // __builtin_msa_fmin_w
+      {Intrinsic::mips_fmsub_d, 59594}, // __builtin_msa_fmsub_d
+      {Intrinsic::mips_fmsub_w, 59616}, // __builtin_msa_fmsub_w
+      {Intrinsic::mips_fmul_d, 59638}, // __builtin_msa_fmul_d
+      {Intrinsic::mips_fmul_w, 59659}, // __builtin_msa_fmul_w
+      {Intrinsic::mips_frcp_d, 59680}, // __builtin_msa_frcp_d
+      {Intrinsic::mips_frcp_w, 59701}, // __builtin_msa_frcp_w
+      {Intrinsic::mips_frint_d, 59722}, // __builtin_msa_frint_d
+      {Intrinsic::mips_frint_w, 59744}, // __builtin_msa_frint_w
+      {Intrinsic::mips_frsqrt_d, 59766}, // __builtin_msa_frsqrt_d
+      {Intrinsic::mips_frsqrt_w, 59789}, // __builtin_msa_frsqrt_w
+      {Intrinsic::mips_fsaf_d, 59812}, // __builtin_msa_fsaf_d
+      {Intrinsic::mips_fsaf_w, 59833}, // __builtin_msa_fsaf_w
+      {Intrinsic::mips_fseq_d, 59854}, // __builtin_msa_fseq_d
+      {Intrinsic::mips_fseq_w, 59875}, // __builtin_msa_fseq_w
+      {Intrinsic::mips_fsle_d, 59896}, // __builtin_msa_fsle_d
+      {Intrinsic::mips_fsle_w, 59917}, // __builtin_msa_fsle_w
+      {Intrinsic::mips_fslt_d, 59938}, // __builtin_msa_fslt_d
+      {Intrinsic::mips_fslt_w, 59959}, // __builtin_msa_fslt_w
+      {Intrinsic::mips_fsne_d, 59980}, // __builtin_msa_fsne_d
+      {Intrinsic::mips_fsne_w, 60001}, // __builtin_msa_fsne_w
+      {Intrinsic::mips_fsor_d, 60022}, // __builtin_msa_fsor_d
+      {Intrinsic::mips_fsor_w, 60043}, // __builtin_msa_fsor_w
+      {Intrinsic::mips_fsqrt_d, 60064}, // __builtin_msa_fsqrt_d
+      {Intrinsic::mips_fsqrt_w, 60086}, // __builtin_msa_fsqrt_w
+      {Intrinsic::mips_fsub_d, 60108}, // __builtin_msa_fsub_d
+      {Intrinsic::mips_fsub_w, 60129}, // __builtin_msa_fsub_w
+      {Intrinsic::mips_fsueq_d, 60150}, // __builtin_msa_fsueq_d
+      {Intrinsic::mips_fsueq_w, 60172}, // __builtin_msa_fsueq_w
+      {Intrinsic::mips_fsule_d, 60194}, // __builtin_msa_fsule_d
+      {Intrinsic::mips_fsule_w, 60216}, // __builtin_msa_fsule_w
+      {Intrinsic::mips_fsult_d, 60238}, // __builtin_msa_fsult_d
+      {Intrinsic::mips_fsult_w, 60260}, // __builtin_msa_fsult_w
+      {Intrinsic::mips_fsun_d, 60282}, // __builtin_msa_fsun_d
+      {Intrinsic::mips_fsun_w, 60303}, // __builtin_msa_fsun_w
+      {Intrinsic::mips_fsune_d, 60324}, // __builtin_msa_fsune_d
+      {Intrinsic::mips_fsune_w, 60346}, // __builtin_msa_fsune_w
+      {Intrinsic::mips_ftint_s_d, 60368}, // __builtin_msa_ftint_s_d
+      {Intrinsic::mips_ftint_s_w, 60392}, // __builtin_msa_ftint_s_w
+      {Intrinsic::mips_ftint_u_d, 60416}, // __builtin_msa_ftint_u_d
+      {Intrinsic::mips_ftint_u_w, 60440}, // __builtin_msa_ftint_u_w
+      {Intrinsic::mips_ftq_h, 60464}, // __builtin_msa_ftq_h
+      {Intrinsic::mips_ftq_w, 60484}, // __builtin_msa_ftq_w
+      {Intrinsic::mips_ftrunc_s_d, 60504}, // __builtin_msa_ftrunc_s_d
+      {Intrinsic::mips_ftrunc_s_w, 60529}, // __builtin_msa_ftrunc_s_w
+      {Intrinsic::mips_ftrunc_u_d, 60554}, // __builtin_msa_ftrunc_u_d
+      {Intrinsic::mips_ftrunc_u_w, 60579}, // __builtin_msa_ftrunc_u_w
+      {Intrinsic::mips_hadd_s_d, 60604}, // __builtin_msa_hadd_s_d
+      {Intrinsic::mips_hadd_s_h, 60627}, // __builtin_msa_hadd_s_h
+      {Intrinsic::mips_hadd_s_w, 60650}, // __builtin_msa_hadd_s_w
+      {Intrinsic::mips_hadd_u_d, 60673}, // __builtin_msa_hadd_u_d
+      {Intrinsic::mips_hadd_u_h, 60696}, // __builtin_msa_hadd_u_h
+      {Intrinsic::mips_hadd_u_w, 60719}, // __builtin_msa_hadd_u_w
+      {Intrinsic::mips_hsub_s_d, 60742}, // __builtin_msa_hsub_s_d
+      {Intrinsic::mips_hsub_s_h, 60765}, // __builtin_msa_hsub_s_h
+      {Intrinsic::mips_hsub_s_w, 60788}, // __builtin_msa_hsub_s_w
+      {Intrinsic::mips_hsub_u_d, 60811}, // __builtin_msa_hsub_u_d
+      {Intrinsic::mips_hsub_u_h, 60834}, // __builtin_msa_hsub_u_h
+      {Intrinsic::mips_hsub_u_w, 60857}, // __builtin_msa_hsub_u_w
+      {Intrinsic::mips_ilvev_b, 60880}, // __builtin_msa_ilvev_b
+      {Intrinsic::mips_ilvev_d, 60902}, // __builtin_msa_ilvev_d
+      {Intrinsic::mips_ilvev_h, 60924}, // __builtin_msa_ilvev_h
+      {Intrinsic::mips_ilvev_w, 60946}, // __builtin_msa_ilvev_w
+      {Intrinsic::mips_ilvl_b, 60968}, // __builtin_msa_ilvl_b
+      {Intrinsic::mips_ilvl_d, 60989}, // __builtin_msa_ilvl_d
+      {Intrinsic::mips_ilvl_h, 61010}, // __builtin_msa_ilvl_h
+      {Intrinsic::mips_ilvl_w, 61031}, // __builtin_msa_ilvl_w
+      {Intrinsic::mips_ilvod_b, 61052}, // __builtin_msa_ilvod_b
+      {Intrinsic::mips_ilvod_d, 61074}, // __builtin_msa_ilvod_d
+      {Intrinsic::mips_ilvod_h, 61096}, // __builtin_msa_ilvod_h
+      {Intrinsic::mips_ilvod_w, 61118}, // __builtin_msa_ilvod_w
+      {Intrinsic::mips_ilvr_b, 61140}, // __builtin_msa_ilvr_b
+      {Intrinsic::mips_ilvr_d, 61161}, // __builtin_msa_ilvr_d
+      {Intrinsic::mips_ilvr_h, 61182}, // __builtin_msa_ilvr_h
+      {Intrinsic::mips_ilvr_w, 61203}, // __builtin_msa_ilvr_w
+      {Intrinsic::mips_insert_b, 61224}, // __builtin_msa_insert_b
+      {Intrinsic::mips_insert_d, 61247}, // __builtin_msa_insert_d
+      {Intrinsic::mips_insert_h, 61270}, // __builtin_msa_insert_h
+      {Intrinsic::mips_insert_w, 61293}, // __builtin_msa_insert_w
+      {Intrinsic::mips_insve_b, 61336}, // __builtin_msa_insve_b
+      {Intrinsic::mips_insve_d, 61358}, // __builtin_msa_insve_d
+      {Intrinsic::mips_insve_h, 61380}, // __builtin_msa_insve_h
+      {Intrinsic::mips_insve_w, 61402}, // __builtin_msa_insve_w
+      {Intrinsic::mips_ld_b, 61444}, // __builtin_msa_ld_b
+      {Intrinsic::mips_ld_d, 61463}, // __builtin_msa_ld_d
+      {Intrinsic::mips_ld_h, 61482}, // __builtin_msa_ld_h
+      {Intrinsic::mips_ld_w, 61501}, // __builtin_msa_ld_w
+      {Intrinsic::mips_ldi_b, 61520}, // __builtin_msa_ldi_b
+      {Intrinsic::mips_ldi_d, 61540}, // __builtin_msa_ldi_d
+      {Intrinsic::mips_ldi_h, 61560}, // __builtin_msa_ldi_h
+      {Intrinsic::mips_ldi_w, 61580}, // __builtin_msa_ldi_w
+      {Intrinsic::mips_madd_q_h, 61677}, // __builtin_msa_madd_q_h
+      {Intrinsic::mips_madd_q_w, 61700}, // __builtin_msa_madd_q_w
+      {Intrinsic::mips_maddr_q_h, 61723}, // __builtin_msa_maddr_q_h
+      {Intrinsic::mips_maddr_q_w, 61747}, // __builtin_msa_maddr_q_w
+      {Intrinsic::mips_maddv_b, 61792}, // __builtin_msa_maddv_b
+      {Intrinsic::mips_maddv_d, 61814}, // __builtin_msa_maddv_d
+      {Intrinsic::mips_maddv_h, 61836}, // __builtin_msa_maddv_h
+      {Intrinsic::mips_maddv_w, 61858}, // __builtin_msa_maddv_w
+      {Intrinsic::mips_max_a_b, 61990}, // __builtin_msa_max_a_b
+      {Intrinsic::mips_max_a_d, 62012}, // __builtin_msa_max_a_d
+      {Intrinsic::mips_max_a_h, 62034}, // __builtin_msa_max_a_h
+      {Intrinsic::mips_max_a_w, 62056}, // __builtin_msa_max_a_w
+      {Intrinsic::mips_max_s_b, 62078}, // __builtin_msa_max_s_b
+      {Intrinsic::mips_max_s_d, 62100}, // __builtin_msa_max_s_d
+      {Intrinsic::mips_max_s_h, 62122}, // __builtin_msa_max_s_h
+      {Intrinsic::mips_max_s_w, 62144}, // __builtin_msa_max_s_w
+      {Intrinsic::mips_max_u_b, 62166}, // __builtin_msa_max_u_b
+      {Intrinsic::mips_max_u_d, 62188}, // __builtin_msa_max_u_d
+      {Intrinsic::mips_max_u_h, 62210}, // __builtin_msa_max_u_h
+      {Intrinsic::mips_max_u_w, 62232}, // __builtin_msa_max_u_w
+      {Intrinsic::mips_maxi_s_b, 62254}, // __builtin_msa_maxi_s_b
+      {Intrinsic::mips_maxi_s_d, 62277}, // __builtin_msa_maxi_s_d
+      {Intrinsic::mips_maxi_s_h, 62300}, // __builtin_msa_maxi_s_h
+      {Intrinsic::mips_maxi_s_w, 62323}, // __builtin_msa_maxi_s_w
+      {Intrinsic::mips_maxi_u_b, 62346}, // __builtin_msa_maxi_u_b
+      {Intrinsic::mips_maxi_u_d, 62369}, // __builtin_msa_maxi_u_d
+      {Intrinsic::mips_maxi_u_h, 62392}, // __builtin_msa_maxi_u_h
+      {Intrinsic::mips_maxi_u_w, 62415}, // __builtin_msa_maxi_u_w
+      {Intrinsic::mips_min_a_b, 62438}, // __builtin_msa_min_a_b
+      {Intrinsic::mips_min_a_d, 62460}, // __builtin_msa_min_a_d
+      {Intrinsic::mips_min_a_h, 62482}, // __builtin_msa_min_a_h
+      {Intrinsic::mips_min_a_w, 62504}, // __builtin_msa_min_a_w
+      {Intrinsic::mips_min_s_b, 62526}, // __builtin_msa_min_s_b
+      {Intrinsic::mips_min_s_d, 62548}, // __builtin_msa_min_s_d
+      {Intrinsic::mips_min_s_h, 62570}, // __builtin_msa_min_s_h
+      {Intrinsic::mips_min_s_w, 62592}, // __builtin_msa_min_s_w
+      {Intrinsic::mips_min_u_b, 62614}, // __builtin_msa_min_u_b
+      {Intrinsic::mips_min_u_d, 62636}, // __builtin_msa_min_u_d
+      {Intrinsic::mips_min_u_h, 62658}, // __builtin_msa_min_u_h
+      {Intrinsic::mips_min_u_w, 62680}, // __builtin_msa_min_u_w
+      {Intrinsic::mips_mini_s_b, 62702}, // __builtin_msa_mini_s_b
+      {Intrinsic::mips_mini_s_d, 62725}, // __builtin_msa_mini_s_d
+      {Intrinsic::mips_mini_s_h, 62748}, // __builtin_msa_mini_s_h
+      {Intrinsic::mips_mini_s_w, 62771}, // __builtin_msa_mini_s_w
+      {Intrinsic::mips_mini_u_b, 62794}, // __builtin_msa_mini_u_b
+      {Intrinsic::mips_mini_u_d, 62817}, // __builtin_msa_mini_u_d
+      {Intrinsic::mips_mini_u_h, 62840}, // __builtin_msa_mini_u_h
+      {Intrinsic::mips_mini_u_w, 62863}, // __builtin_msa_mini_u_w
+      {Intrinsic::mips_mod_s_b, 62886}, // __builtin_msa_mod_s_b
+      {Intrinsic::mips_mod_s_d, 62908}, // __builtin_msa_mod_s_d
+      {Intrinsic::mips_mod_s_h, 62930}, // __builtin_msa_mod_s_h
+      {Intrinsic::mips_mod_s_w, 62952}, // __builtin_msa_mod_s_w
+      {Intrinsic::mips_mod_u_b, 62974}, // __builtin_msa_mod_u_b
+      {Intrinsic::mips_mod_u_d, 62996}, // __builtin_msa_mod_u_d
+      {Intrinsic::mips_mod_u_h, 63018}, // __builtin_msa_mod_u_h
+      {Intrinsic::mips_mod_u_w, 63040}, // __builtin_msa_mod_u_w
+      {Intrinsic::mips_move_v, 63084}, // __builtin_msa_move_v
+      {Intrinsic::mips_msub_q_h, 63125}, // __builtin_msa_msub_q_h
+      {Intrinsic::mips_msub_q_w, 63148}, // __builtin_msa_msub_q_w
+      {Intrinsic::mips_msubr_q_h, 63171}, // __builtin_msa_msubr_q_h
+      {Intrinsic::mips_msubr_q_w, 63195}, // __builtin_msa_msubr_q_w
+      {Intrinsic::mips_msubv_b, 63240}, // __builtin_msa_msubv_b
+      {Intrinsic::mips_msubv_d, 63262}, // __builtin_msa_msubv_d
+      {Intrinsic::mips_msubv_h, 63284}, // __builtin_msa_msubv_h
+      {Intrinsic::mips_msubv_w, 63306}, // __builtin_msa_msubv_w
+      {Intrinsic::mips_mul_q_h, 63372}, // __builtin_msa_mul_q_h
+      {Intrinsic::mips_mul_q_w, 63394}, // __builtin_msa_mul_q_w
+      {Intrinsic::mips_mulr_q_h, 63658}, // __builtin_msa_mulr_q_h
+      {Intrinsic::mips_mulr_q_w, 63681}, // __builtin_msa_mulr_q_w
+      {Intrinsic::mips_mulv_b, 63800}, // __builtin_msa_mulv_b
+      {Intrinsic::mips_mulv_d, 63821}, // __builtin_msa_mulv_d
+      {Intrinsic::mips_mulv_h, 63842}, // __builtin_msa_mulv_h
+      {Intrinsic::mips_mulv_w, 63863}, // __builtin_msa_mulv_w
+      {Intrinsic::mips_nloc_b, 63884}, // __builtin_msa_nloc_b
+      {Intrinsic::mips_nloc_d, 63905}, // __builtin_msa_nloc_d
+      {Intrinsic::mips_nloc_h, 63926}, // __builtin_msa_nloc_h
+      {Intrinsic::mips_nloc_w, 63947}, // __builtin_msa_nloc_w
+      {Intrinsic::mips_nlzc_b, 63968}, // __builtin_msa_nlzc_b
+      {Intrinsic::mips_nlzc_d, 63989}, // __builtin_msa_nlzc_d
+      {Intrinsic::mips_nlzc_h, 64010}, // __builtin_msa_nlzc_h
+      {Intrinsic::mips_nlzc_w, 64031}, // __builtin_msa_nlzc_w
+      {Intrinsic::mips_nor_v, 64052}, // __builtin_msa_nor_v
+      {Intrinsic::mips_nori_b, 64072}, // __builtin_msa_nori_b
+      {Intrinsic::mips_or_v, 64093}, // __builtin_msa_or_v
+      {Intrinsic::mips_ori_b, 64112}, // __builtin_msa_ori_b
+      {Intrinsic::mips_pckev_b, 64157}, // __builtin_msa_pckev_b
+      {Intrinsic::mips_pckev_d, 64179}, // __builtin_msa_pckev_d
+      {Intrinsic::mips_pckev_h, 64201}, // __builtin_msa_pckev_h
+      {Intrinsic::mips_pckev_w, 64223}, // __builtin_msa_pckev_w
+      {Intrinsic::mips_pckod_b, 64245}, // __builtin_msa_pckod_b
+      {Intrinsic::mips_pckod_d, 64267}, // __builtin_msa_pckod_d
+      {Intrinsic::mips_pckod_h, 64289}, // __builtin_msa_pckod_h
+      {Intrinsic::mips_pckod_w, 64311}, // __builtin_msa_pckod_w
+      {Intrinsic::mips_pcnt_b, 64333}, // __builtin_msa_pcnt_b
+      {Intrinsic::mips_pcnt_d, 64354}, // __builtin_msa_pcnt_d
+      {Intrinsic::mips_pcnt_h, 64375}, // __builtin_msa_pcnt_h
+      {Intrinsic::mips_pcnt_w, 64396}, // __builtin_msa_pcnt_w
+      {Intrinsic::mips_sat_s_b, 65080}, // __builtin_msa_sat_s_b
+      {Intrinsic::mips_sat_s_d, 65102}, // __builtin_msa_sat_s_d
+      {Intrinsic::mips_sat_s_h, 65124}, // __builtin_msa_sat_s_h
+      {Intrinsic::mips_sat_s_w, 65146}, // __builtin_msa_sat_s_w
+      {Intrinsic::mips_sat_u_b, 65168}, // __builtin_msa_sat_u_b
+      {Intrinsic::mips_sat_u_d, 65190}, // __builtin_msa_sat_u_d
+      {Intrinsic::mips_sat_u_h, 65212}, // __builtin_msa_sat_u_h
+      {Intrinsic::mips_sat_u_w, 65234}, // __builtin_msa_sat_u_w
+      {Intrinsic::mips_shf_b, 65256}, // __builtin_msa_shf_b
+      {Intrinsic::mips_shf_h, 65276}, // __builtin_msa_shf_h
+      {Intrinsic::mips_shf_w, 65296}, // __builtin_msa_shf_w
+      {Intrinsic::mips_sld_b, 65598}, // __builtin_msa_sld_b
+      {Intrinsic::mips_sld_d, 65618}, // __builtin_msa_sld_d
+      {Intrinsic::mips_sld_h, 65638}, // __builtin_msa_sld_h
+      {Intrinsic::mips_sld_w, 65658}, // __builtin_msa_sld_w
+      {Intrinsic::mips_sldi_b, 65678}, // __builtin_msa_sldi_b
+      {Intrinsic::mips_sldi_d, 65699}, // __builtin_msa_sldi_d
+      {Intrinsic::mips_sldi_h, 65720}, // __builtin_msa_sldi_h
+      {Intrinsic::mips_sldi_w, 65741}, // __builtin_msa_sldi_w
+      {Intrinsic::mips_sll_b, 65762}, // __builtin_msa_sll_b
+      {Intrinsic::mips_sll_d, 65782}, // __builtin_msa_sll_d
+      {Intrinsic::mips_sll_h, 65802}, // __builtin_msa_sll_h
+      {Intrinsic::mips_sll_w, 65822}, // __builtin_msa_sll_w
+      {Intrinsic::mips_slli_b, 65842}, // __builtin_msa_slli_b
+      {Intrinsic::mips_slli_d, 65863}, // __builtin_msa_slli_d
+      {Intrinsic::mips_slli_h, 65884}, // __builtin_msa_slli_h
+      {Intrinsic::mips_slli_w, 65905}, // __builtin_msa_slli_w
+      {Intrinsic::mips_splat_b, 65926}, // __builtin_msa_splat_b
+      {Intrinsic::mips_splat_d, 65948}, // __builtin_msa_splat_d
+      {Intrinsic::mips_splat_h, 65970}, // __builtin_msa_splat_h
+      {Intrinsic::mips_splat_w, 65992}, // __builtin_msa_splat_w
+      {Intrinsic::mips_splati_b, 66014}, // __builtin_msa_splati_b
+      {Intrinsic::mips_splati_d, 66037}, // __builtin_msa_splati_d
+      {Intrinsic::mips_splati_h, 66060}, // __builtin_msa_splati_h
+      {Intrinsic::mips_splati_w, 66083}, // __builtin_msa_splati_w
+      {Intrinsic::mips_sra_b, 66106}, // __builtin_msa_sra_b
+      {Intrinsic::mips_sra_d, 66126}, // __builtin_msa_sra_d
+      {Intrinsic::mips_sra_h, 66146}, // __builtin_msa_sra_h
+      {Intrinsic::mips_sra_w, 66166}, // __builtin_msa_sra_w
+      {Intrinsic::mips_srai_b, 66186}, // __builtin_msa_srai_b
+      {Intrinsic::mips_srai_d, 66207}, // __builtin_msa_srai_d
+      {Intrinsic::mips_srai_h, 66228}, // __builtin_msa_srai_h
+      {Intrinsic::mips_srai_w, 66249}, // __builtin_msa_srai_w
+      {Intrinsic::mips_srar_b, 66270}, // __builtin_msa_srar_b
+      {Intrinsic::mips_srar_d, 66291}, // __builtin_msa_srar_d
+      {Intrinsic::mips_srar_h, 66312}, // __builtin_msa_srar_h
+      {Intrinsic::mips_srar_w, 66333}, // __builtin_msa_srar_w
+      {Intrinsic::mips_srari_b, 66354}, // __builtin_msa_srari_b
+      {Intrinsic::mips_srari_d, 66376}, // __builtin_msa_srari_d
+      {Intrinsic::mips_srari_h, 66398}, // __builtin_msa_srari_h
+      {Intrinsic::mips_srari_w, 66420}, // __builtin_msa_srari_w
+      {Intrinsic::mips_srl_b, 66442}, // __builtin_msa_srl_b
+      {Intrinsic::mips_srl_d, 66462}, // __builtin_msa_srl_d
+      {Intrinsic::mips_srl_h, 66482}, // __builtin_msa_srl_h
+      {Intrinsic::mips_srl_w, 66502}, // __builtin_msa_srl_w
+      {Intrinsic::mips_srli_b, 66522}, // __builtin_msa_srli_b
+      {Intrinsic::mips_srli_d, 66543}, // __builtin_msa_srli_d
+      {Intrinsic::mips_srli_h, 66564}, // __builtin_msa_srli_h
+      {Intrinsic::mips_srli_w, 66585}, // __builtin_msa_srli_w
+      {Intrinsic::mips_srlr_b, 66606}, // __builtin_msa_srlr_b
+      {Intrinsic::mips_srlr_d, 66627}, // __builtin_msa_srlr_d
+      {Intrinsic::mips_srlr_h, 66648}, // __builtin_msa_srlr_h
+      {Intrinsic::mips_srlr_w, 66669}, // __builtin_msa_srlr_w
+      {Intrinsic::mips_srlri_b, 66690}, // __builtin_msa_srlri_b
+      {Intrinsic::mips_srlri_d, 66712}, // __builtin_msa_srlri_d
+      {Intrinsic::mips_srlri_h, 66734}, // __builtin_msa_srlri_h
+      {Intrinsic::mips_srlri_w, 66756}, // __builtin_msa_srlri_w
+      {Intrinsic::mips_st_b, 66778}, // __builtin_msa_st_b
+      {Intrinsic::mips_st_d, 66797}, // __builtin_msa_st_d
+      {Intrinsic::mips_st_h, 66816}, // __builtin_msa_st_h
+      {Intrinsic::mips_st_w, 66835}, // __builtin_msa_st_w
+      {Intrinsic::mips_subs_s_b, 67024}, // __builtin_msa_subs_s_b
+      {Intrinsic::mips_subs_s_d, 67047}, // __builtin_msa_subs_s_d
+      {Intrinsic::mips_subs_s_h, 67070}, // __builtin_msa_subs_s_h
+      {Intrinsic::mips_subs_s_w, 67093}, // __builtin_msa_subs_s_w
+      {Intrinsic::mips_subs_u_b, 67116}, // __builtin_msa_subs_u_b
+      {Intrinsic::mips_subs_u_d, 67139}, // __builtin_msa_subs_u_d
+      {Intrinsic::mips_subs_u_h, 67162}, // __builtin_msa_subs_u_h
+      {Intrinsic::mips_subs_u_w, 67185}, // __builtin_msa_subs_u_w
+      {Intrinsic::mips_subsus_u_b, 67208}, // __builtin_msa_subsus_u_b
+      {Intrinsic::mips_subsus_u_d, 67233}, // __builtin_msa_subsus_u_d
+      {Intrinsic::mips_subsus_u_h, 67258}, // __builtin_msa_subsus_u_h
+      {Intrinsic::mips_subsus_u_w, 67283}, // __builtin_msa_subsus_u_w
+      {Intrinsic::mips_subsuu_s_b, 67308}, // __builtin_msa_subsuu_s_b
+      {Intrinsic::mips_subsuu_s_d, 67333}, // __builtin_msa_subsuu_s_d
+      {Intrinsic::mips_subsuu_s_h, 67358}, // __builtin_msa_subsuu_s_h
+      {Intrinsic::mips_subsuu_s_w, 67383}, // __builtin_msa_subsuu_s_w
+      {Intrinsic::mips_subv_b, 67554}, // __builtin_msa_subv_b
+      {Intrinsic::mips_subv_d, 67575}, // __builtin_msa_subv_d
+      {Intrinsic::mips_subv_h, 67596}, // __builtin_msa_subv_h
+      {Intrinsic::mips_subv_w, 67617}, // __builtin_msa_subv_w
+      {Intrinsic::mips_subvi_b, 67638}, // __builtin_msa_subvi_b
+      {Intrinsic::mips_subvi_d, 67660}, // __builtin_msa_subvi_d
+      {Intrinsic::mips_subvi_h, 67682}, // __builtin_msa_subvi_h
+      {Intrinsic::mips_subvi_w, 67704}, // __builtin_msa_subvi_w
+      {Intrinsic::mips_vshf_b, 67726}, // __builtin_msa_vshf_b
+      {Intrinsic::mips_vshf_d, 67747}, // __builtin_msa_vshf_d
+      {Intrinsic::mips_vshf_h, 67768}, // __builtin_msa_vshf_h
+      {Intrinsic::mips_vshf_w, 67789}, // __builtin_msa_vshf_w
+      {Intrinsic::mips_xor_v, 67831}, // __builtin_msa_xor_v
+      {Intrinsic::mips_xori_b, 67851}, // __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, 67872}, // __nvvm_add_rm_d
+      {Intrinsic::nvvm_add_rm_f, 67888}, // __nvvm_add_rm_f
+      {Intrinsic::nvvm_add_rm_ftz_f, 67904}, // __nvvm_add_rm_ftz_f
+      {Intrinsic::nvvm_add_rn_d, 67924}, // __nvvm_add_rn_d
+      {Intrinsic::nvvm_add_rn_f, 67940}, // __nvvm_add_rn_f
+      {Intrinsic::nvvm_add_rn_ftz_f, 67956}, // __nvvm_add_rn_ftz_f
+      {Intrinsic::nvvm_add_rp_d, 67976}, // __nvvm_add_rp_d
+      {Intrinsic::nvvm_add_rp_f, 67992}, // __nvvm_add_rp_f
+      {Intrinsic::nvvm_add_rp_ftz_f, 68008}, // __nvvm_add_rp_ftz_f
+      {Intrinsic::nvvm_add_rz_d, 68028}, // __nvvm_add_rz_d
+      {Intrinsic::nvvm_add_rz_f, 68044}, // __nvvm_add_rz_f
+      {Intrinsic::nvvm_add_rz_ftz_f, 68060}, // __nvvm_add_rz_ftz_f
+      {Intrinsic::nvvm_barrier, 68096}, // __nvvm_bar
+      {Intrinsic::nvvm_barrier0_and, 68134}, // __nvvm_bar0_and
+      {Intrinsic::nvvm_barrier0_or, 68150}, // __nvvm_bar0_or
+      {Intrinsic::nvvm_barrier0_popc, 68165}, // __nvvm_bar0_popc
+      {Intrinsic::nvvm_barrier_n, 68107}, // __nvvm_bar_n
+      {Intrinsic::nvvm_bar_sync, 68080}, // __nvvm_bar_sync
+      {Intrinsic::nvvm_bitcast_d2ll, 68182}, // __nvvm_bitcast_d2ll
+      {Intrinsic::nvvm_bitcast_f2i, 68202}, // __nvvm_bitcast_f2i
+      {Intrinsic::nvvm_bitcast_i2f, 68221}, // __nvvm_bitcast_i2f
+      {Intrinsic::nvvm_bitcast_ll2d, 68240}, // __nvvm_bitcast_ll2d
+      {Intrinsic::nvvm_ceil_d, 68260}, // __nvvm_ceil_d
+      {Intrinsic::nvvm_ceil_f, 68274}, // __nvvm_ceil_f
+      {Intrinsic::nvvm_ceil_ftz_f, 68288}, // __nvvm_ceil_ftz_f
+      {Intrinsic::nvvm_cos_approx_f, 68306}, // __nvvm_cos_approx_f
+      {Intrinsic::nvvm_cos_approx_ftz_f, 68326}, // __nvvm_cos_approx_ftz_f
+      {Intrinsic::nvvm_d2f_rm, 68350}, // __nvvm_d2f_rm
+      {Intrinsic::nvvm_d2f_rm_ftz, 68364}, // __nvvm_d2f_rm_ftz
+      {Intrinsic::nvvm_d2f_rn, 68382}, // __nvvm_d2f_rn
+      {Intrinsic::nvvm_d2f_rn_ftz, 68396}, // __nvvm_d2f_rn_ftz
+      {Intrinsic::nvvm_d2f_rp, 68414}, // __nvvm_d2f_rp
+      {Intrinsic::nvvm_d2f_rp_ftz, 68428}, // __nvvm_d2f_rp_ftz
+      {Intrinsic::nvvm_d2f_rz, 68446}, // __nvvm_d2f_rz
+      {Intrinsic::nvvm_d2f_rz_ftz, 68460}, // __nvvm_d2f_rz_ftz
+      {Intrinsic::nvvm_d2i_hi, 68478}, // __nvvm_d2i_hi
+      {Intrinsic::nvvm_d2i_lo, 68492}, // __nvvm_d2i_lo
+      {Intrinsic::nvvm_d2i_rm, 68506}, // __nvvm_d2i_rm
+      {Intrinsic::nvvm_d2i_rn, 68520}, // __nvvm_d2i_rn
+      {Intrinsic::nvvm_d2i_rp, 68534}, // __nvvm_d2i_rp
+      {Intrinsic::nvvm_d2i_rz, 68548}, // __nvvm_d2i_rz
+      {Intrinsic::nvvm_d2ll_rm, 68562}, // __nvvm_d2ll_rm
+      {Intrinsic::nvvm_d2ll_rn, 68577}, // __nvvm_d2ll_rn
+      {Intrinsic::nvvm_d2ll_rp, 68592}, // __nvvm_d2ll_rp
+      {Intrinsic::nvvm_d2ll_rz, 68607}, // __nvvm_d2ll_rz
+      {Intrinsic::nvvm_d2ui_rm, 68622}, // __nvvm_d2ui_rm
+      {Intrinsic::nvvm_d2ui_rn, 68637}, // __nvvm_d2ui_rn
+      {Intrinsic::nvvm_d2ui_rp, 68652}, // __nvvm_d2ui_rp
+      {Intrinsic::nvvm_d2ui_rz, 68667}, // __nvvm_d2ui_rz
+      {Intrinsic::nvvm_d2ull_rm, 68682}, // __nvvm_d2ull_rm
+      {Intrinsic::nvvm_d2ull_rn, 68698}, // __nvvm_d2ull_rn
+      {Intrinsic::nvvm_d2ull_rp, 68714}, // __nvvm_d2ull_rp
+      {Intrinsic::nvvm_d2ull_rz, 68730}, // __nvvm_d2ull_rz
+      {Intrinsic::nvvm_div_approx_f, 68746}, // __nvvm_div_approx_f
+      {Intrinsic::nvvm_div_approx_ftz_f, 68766}, // __nvvm_div_approx_ftz_f
+      {Intrinsic::nvvm_div_rm_d, 68790}, // __nvvm_div_rm_d
+      {Intrinsic::nvvm_div_rm_f, 68806}, // __nvvm_div_rm_f
+      {Intrinsic::nvvm_div_rm_ftz_f, 68822}, // __nvvm_div_rm_ftz_f
+      {Intrinsic::nvvm_div_rn_d, 68842}, // __nvvm_div_rn_d
+      {Intrinsic::nvvm_div_rn_f, 68858}, // __nvvm_div_rn_f
+      {Intrinsic::nvvm_div_rn_ftz_f, 68874}, // __nvvm_div_rn_ftz_f
+      {Intrinsic::nvvm_div_rp_d, 68894}, // __nvvm_div_rp_d
+      {Intrinsic::nvvm_div_rp_f, 68910}, // __nvvm_div_rp_f
+      {Intrinsic::nvvm_div_rp_ftz_f, 68926}, // __nvvm_div_rp_ftz_f
+      {Intrinsic::nvvm_div_rz_d, 68946}, // __nvvm_div_rz_d
+      {Intrinsic::nvvm_div_rz_f, 68962}, // __nvvm_div_rz_f
+      {Intrinsic::nvvm_div_rz_ftz_f, 68978}, // __nvvm_div_rz_ftz_f
+      {Intrinsic::nvvm_ex2_approx_d, 68998}, // __nvvm_ex2_approx_d
+      {Intrinsic::nvvm_ex2_approx_f, 69018}, // __nvvm_ex2_approx_f
+      {Intrinsic::nvvm_ex2_approx_ftz_f, 69038}, // __nvvm_ex2_approx_ftz_f
+      {Intrinsic::nvvm_f2h_rn, 69062}, // __nvvm_f2h_rn
+      {Intrinsic::nvvm_f2h_rn_ftz, 69076}, // __nvvm_f2h_rn_ftz
+      {Intrinsic::nvvm_f2i_rm, 69094}, // __nvvm_f2i_rm
+      {Intrinsic::nvvm_f2i_rm_ftz, 69108}, // __nvvm_f2i_rm_ftz
+      {Intrinsic::nvvm_f2i_rn, 69126}, // __nvvm_f2i_rn
+      {Intrinsic::nvvm_f2i_rn_ftz, 69140}, // __nvvm_f2i_rn_ftz
+      {Intrinsic::nvvm_f2i_rp, 69158}, // __nvvm_f2i_rp
+      {Intrinsic::nvvm_f2i_rp_ftz, 69172}, // __nvvm_f2i_rp_ftz
+      {Intrinsic::nvvm_f2i_rz, 69190}, // __nvvm_f2i_rz
+      {Intrinsic::nvvm_f2i_rz_ftz, 69204}, // __nvvm_f2i_rz_ftz
+      {Intrinsic::nvvm_f2ll_rm, 69222}, // __nvvm_f2ll_rm
+      {Intrinsic::nvvm_f2ll_rm_ftz, 69237}, // __nvvm_f2ll_rm_ftz
+      {Intrinsic::nvvm_f2ll_rn, 69256}, // __nvvm_f2ll_rn
+      {Intrinsic::nvvm_f2ll_rn_ftz, 69271}, // __nvvm_f2ll_rn_ftz
+      {Intrinsic::nvvm_f2ll_rp, 69290}, // __nvvm_f2ll_rp
+      {Intrinsic::nvvm_f2ll_rp_ftz, 69305}, // __nvvm_f2ll_rp_ftz
+      {Intrinsic::nvvm_f2ll_rz, 69324}, // __nvvm_f2ll_rz
+      {Intrinsic::nvvm_f2ll_rz_ftz, 69339}, // __nvvm_f2ll_rz_ftz
+      {Intrinsic::nvvm_f2ui_rm, 69358}, // __nvvm_f2ui_rm
+      {Intrinsic::nvvm_f2ui_rm_ftz, 69373}, // __nvvm_f2ui_rm_ftz
+      {Intrinsic::nvvm_f2ui_rn, 69392}, // __nvvm_f2ui_rn
+      {Intrinsic::nvvm_f2ui_rn_ftz, 69407}, // __nvvm_f2ui_rn_ftz
+      {Intrinsic::nvvm_f2ui_rp, 69426}, // __nvvm_f2ui_rp
+      {Intrinsic::nvvm_f2ui_rp_ftz, 69441}, // __nvvm_f2ui_rp_ftz
+      {Intrinsic::nvvm_f2ui_rz, 69460}, // __nvvm_f2ui_rz
+      {Intrinsic::nvvm_f2ui_rz_ftz, 69475}, // __nvvm_f2ui_rz_ftz
+      {Intrinsic::nvvm_f2ull_rm, 69494}, // __nvvm_f2ull_rm
+      {Intrinsic::nvvm_f2ull_rm_ftz, 69510}, // __nvvm_f2ull_rm_ftz
+      {Intrinsic::nvvm_f2ull_rn, 69530}, // __nvvm_f2ull_rn
+      {Intrinsic::nvvm_f2ull_rn_ftz, 69546}, // __nvvm_f2ull_rn_ftz
+      {Intrinsic::nvvm_f2ull_rp, 69566}, // __nvvm_f2ull_rp
+      {Intrinsic::nvvm_f2ull_rp_ftz, 69582}, // __nvvm_f2ull_rp_ftz
+      {Intrinsic::nvvm_f2ull_rz, 69602}, // __nvvm_f2ull_rz
+      {Intrinsic::nvvm_f2ull_rz_ftz, 69618}, // __nvvm_f2ull_rz_ftz
+      {Intrinsic::nvvm_fabs_d, 69638}, // __nvvm_fabs_d
+      {Intrinsic::nvvm_fabs_f, 69652}, // __nvvm_fabs_f
+      {Intrinsic::nvvm_fabs_ftz_f, 69666}, // __nvvm_fabs_ftz_f
+      {Intrinsic::nvvm_floor_d, 69684}, // __nvvm_floor_d
+      {Intrinsic::nvvm_floor_f, 69699}, // __nvvm_floor_f
+      {Intrinsic::nvvm_floor_ftz_f, 69714}, // __nvvm_floor_ftz_f
+      {Intrinsic::nvvm_fma_rm_d, 69733}, // __nvvm_fma_rm_d
+      {Intrinsic::nvvm_fma_rm_f, 69749}, // __nvvm_fma_rm_f
+      {Intrinsic::nvvm_fma_rm_ftz_f, 69765}, // __nvvm_fma_rm_ftz_f
+      {Intrinsic::nvvm_fma_rn_d, 69785}, // __nvvm_fma_rn_d
+      {Intrinsic::nvvm_fma_rn_f, 69801}, // __nvvm_fma_rn_f
+      {Intrinsic::nvvm_fma_rn_ftz_f, 69817}, // __nvvm_fma_rn_ftz_f
+      {Intrinsic::nvvm_fma_rp_d, 69837}, // __nvvm_fma_rp_d
+      {Intrinsic::nvvm_fma_rp_f, 69853}, // __nvvm_fma_rp_f
+      {Intrinsic::nvvm_fma_rp_ftz_f, 69869}, // __nvvm_fma_rp_ftz_f
+      {Intrinsic::nvvm_fma_rz_d, 69889}, // __nvvm_fma_rz_d
+      {Intrinsic::nvvm_fma_rz_f, 69905}, // __nvvm_fma_rz_f
+      {Intrinsic::nvvm_fma_rz_ftz_f, 69921}, // __nvvm_fma_rz_ftz_f
+      {Intrinsic::nvvm_fmax_d, 69941}, // __nvvm_fmax_d
+      {Intrinsic::nvvm_fmax_f, 69955}, // __nvvm_fmax_f
+      {Intrinsic::nvvm_fmax_ftz_f, 69969}, // __nvvm_fmax_ftz_f
+      {Intrinsic::nvvm_fmin_d, 69987}, // __nvvm_fmin_d
+      {Intrinsic::nvvm_fmin_f, 70001}, // __nvvm_fmin_f
+      {Intrinsic::nvvm_fmin_ftz_f, 70015}, // __nvvm_fmin_ftz_f
+      {Intrinsic::nvvm_i2d_rm, 70033}, // __nvvm_i2d_rm
+      {Intrinsic::nvvm_i2d_rn, 70047}, // __nvvm_i2d_rn
+      {Intrinsic::nvvm_i2d_rp, 70061}, // __nvvm_i2d_rp
+      {Intrinsic::nvvm_i2d_rz, 70075}, // __nvvm_i2d_rz
+      {Intrinsic::nvvm_i2f_rm, 70089}, // __nvvm_i2f_rm
+      {Intrinsic::nvvm_i2f_rn, 70103}, // __nvvm_i2f_rn
+      {Intrinsic::nvvm_i2f_rp, 70117}, // __nvvm_i2f_rp
+      {Intrinsic::nvvm_i2f_rz, 70131}, // __nvvm_i2f_rz
+      {Intrinsic::nvvm_isspacep_const, 70145}, // __nvvm_isspacep_const
+      {Intrinsic::nvvm_isspacep_global, 70167}, // __nvvm_isspacep_global
+      {Intrinsic::nvvm_isspacep_local, 70190}, // __nvvm_isspacep_local
+      {Intrinsic::nvvm_isspacep_shared, 70212}, // __nvvm_isspacep_shared
+      {Intrinsic::nvvm_istypep_sampler, 70235}, // __nvvm_istypep_sampler
+      {Intrinsic::nvvm_istypep_surface, 70258}, // __nvvm_istypep_surface
+      {Intrinsic::nvvm_istypep_texture, 70281}, // __nvvm_istypep_texture
+      {Intrinsic::nvvm_lg2_approx_d, 70304}, // __nvvm_lg2_approx_d
+      {Intrinsic::nvvm_lg2_approx_f, 70324}, // __nvvm_lg2_approx_f
+      {Intrinsic::nvvm_lg2_approx_ftz_f, 70344}, // __nvvm_lg2_approx_ftz_f
+      {Intrinsic::nvvm_ll2d_rm, 70368}, // __nvvm_ll2d_rm
+      {Intrinsic::nvvm_ll2d_rn, 70383}, // __nvvm_ll2d_rn
+      {Intrinsic::nvvm_ll2d_rp, 70398}, // __nvvm_ll2d_rp
+      {Intrinsic::nvvm_ll2d_rz, 70413}, // __nvvm_ll2d_rz
+      {Intrinsic::nvvm_ll2f_rm, 70428}, // __nvvm_ll2f_rm
+      {Intrinsic::nvvm_ll2f_rn, 70443}, // __nvvm_ll2f_rn
+      {Intrinsic::nvvm_ll2f_rp, 70458}, // __nvvm_ll2f_rp
+      {Intrinsic::nvvm_ll2f_rz, 70473}, // __nvvm_ll2f_rz
+      {Intrinsic::nvvm_lohi_i2d, 70488}, // __nvvm_lohi_i2d
+      {Intrinsic::nvvm_membar_cta, 70504}, // __nvvm_membar_cta
+      {Intrinsic::nvvm_membar_gl, 70522}, // __nvvm_membar_gl
+      {Intrinsic::nvvm_membar_sys, 70539}, // __nvvm_membar_sys
+      {Intrinsic::nvvm_mul24_i, 70765}, // __nvvm_mul24_i
+      {Intrinsic::nvvm_mul24_ui, 70780}, // __nvvm_mul24_ui
+      {Intrinsic::nvvm_mul_rm_d, 70557}, // __nvvm_mul_rm_d
+      {Intrinsic::nvvm_mul_rm_f, 70573}, // __nvvm_mul_rm_f
+      {Intrinsic::nvvm_mul_rm_ftz_f, 70589}, // __nvvm_mul_rm_ftz_f
+      {Intrinsic::nvvm_mul_rn_d, 70609}, // __nvvm_mul_rn_d
+      {Intrinsic::nvvm_mul_rn_f, 70625}, // __nvvm_mul_rn_f
+      {Intrinsic::nvvm_mul_rn_ftz_f, 70641}, // __nvvm_mul_rn_ftz_f
+      {Intrinsic::nvvm_mul_rp_d, 70661}, // __nvvm_mul_rp_d
+      {Intrinsic::nvvm_mul_rp_f, 70677}, // __nvvm_mul_rp_f
+      {Intrinsic::nvvm_mul_rp_ftz_f, 70693}, // __nvvm_mul_rp_ftz_f
+      {Intrinsic::nvvm_mul_rz_d, 70713}, // __nvvm_mul_rz_d
+      {Intrinsic::nvvm_mul_rz_f, 70729}, // __nvvm_mul_rz_f
+      {Intrinsic::nvvm_mul_rz_ftz_f, 70745}, // __nvvm_mul_rz_ftz_f
+      {Intrinsic::nvvm_mulhi_i, 70796}, // __nvvm_mulhi_i
+      {Intrinsic::nvvm_mulhi_ll, 70811}, // __nvvm_mulhi_ll
+      {Intrinsic::nvvm_mulhi_ui, 70827}, // __nvvm_mulhi_ui
+      {Intrinsic::nvvm_mulhi_ull, 70843}, // __nvvm_mulhi_ull
+      {Intrinsic::nvvm_prmt, 70860}, // __nvvm_prmt
+      {Intrinsic::nvvm_rcp_approx_ftz_d, 70872}, // __nvvm_rcp_approx_ftz_d
+      {Intrinsic::nvvm_rcp_rm_d, 70896}, // __nvvm_rcp_rm_d
+      {Intrinsic::nvvm_rcp_rm_f, 70912}, // __nvvm_rcp_rm_f
+      {Intrinsic::nvvm_rcp_rm_ftz_f, 70928}, // __nvvm_rcp_rm_ftz_f
+      {Intrinsic::nvvm_rcp_rn_d, 70948}, // __nvvm_rcp_rn_d
+      {Intrinsic::nvvm_rcp_rn_f, 70964}, // __nvvm_rcp_rn_f
+      {Intrinsic::nvvm_rcp_rn_ftz_f, 70980}, // __nvvm_rcp_rn_ftz_f
+      {Intrinsic::nvvm_rcp_rp_d, 71000}, // __nvvm_rcp_rp_d
+      {Intrinsic::nvvm_rcp_rp_f, 71016}, // __nvvm_rcp_rp_f
+      {Intrinsic::nvvm_rcp_rp_ftz_f, 71032}, // __nvvm_rcp_rp_ftz_f
+      {Intrinsic::nvvm_rcp_rz_d, 71052}, // __nvvm_rcp_rz_d
+      {Intrinsic::nvvm_rcp_rz_f, 71068}, // __nvvm_rcp_rz_f
+      {Intrinsic::nvvm_rcp_rz_ftz_f, 71084}, // __nvvm_rcp_rz_ftz_f
+      {Intrinsic::nvvm_read_ptx_sreg_clock, 71104}, // __nvvm_read_ptx_sreg_clock
+      {Intrinsic::nvvm_read_ptx_sreg_clock64, 71131}, // __nvvm_read_ptx_sreg_clock64
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_w, 71160}, // __nvvm_read_ptx_sreg_ctaid_w
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_x, 71189}, // __nvvm_read_ptx_sreg_ctaid_x
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_y, 71218}, // __nvvm_read_ptx_sreg_ctaid_y
+      {Intrinsic::nvvm_read_ptx_sreg_ctaid_z, 71247}, // __nvvm_read_ptx_sreg_ctaid_z
+      {Intrinsic::nvvm_read_ptx_sreg_envreg0, 71276}, // __nvvm_read_ptx_sreg_envreg0
+      {Intrinsic::nvvm_read_ptx_sreg_envreg1, 71305}, // __nvvm_read_ptx_sreg_envreg1
+      {Intrinsic::nvvm_read_ptx_sreg_envreg10, 71334}, // __nvvm_read_ptx_sreg_envreg10
+      {Intrinsic::nvvm_read_ptx_sreg_envreg11, 71364}, // __nvvm_read_ptx_sreg_envreg11
+      {Intrinsic::nvvm_read_ptx_sreg_envreg12, 71394}, // __nvvm_read_ptx_sreg_envreg12
+      {Intrinsic::nvvm_read_ptx_sreg_envreg13, 71424}, // __nvvm_read_ptx_sreg_envreg13
+      {Intrinsic::nvvm_read_ptx_sreg_envreg14, 71454}, // __nvvm_read_ptx_sreg_envreg14
+      {Intrinsic::nvvm_read_ptx_sreg_envreg15, 71484}, // __nvvm_read_ptx_sreg_envreg15
+      {Intrinsic::nvvm_read_ptx_sreg_envreg16, 71514}, // __nvvm_read_ptx_sreg_envreg16
+      {Intrinsic::nvvm_read_ptx_sreg_envreg17, 71544}, // __nvvm_read_ptx_sreg_envreg17
+      {Intrinsic::nvvm_read_ptx_sreg_envreg18, 71574}, // __nvvm_read_ptx_sreg_envreg18
+      {Intrinsic::nvvm_read_ptx_sreg_envreg19, 71604}, // __nvvm_read_ptx_sreg_envreg19
+      {Intrinsic::nvvm_read_ptx_sreg_envreg2, 71634}, // __nvvm_read_ptx_sreg_envreg2
+      {Intrinsic::nvvm_read_ptx_sreg_envreg20, 71663}, // __nvvm_read_ptx_sreg_envreg20
+      {Intrinsic::nvvm_read_ptx_sreg_envreg21, 71693}, // __nvvm_read_ptx_sreg_envreg21
+      {Intrinsic::nvvm_read_ptx_sreg_envreg22, 71723}, // __nvvm_read_ptx_sreg_envreg22
+      {Intrinsic::nvvm_read_ptx_sreg_envreg23, 71753}, // __nvvm_read_ptx_sreg_envreg23
+      {Intrinsic::nvvm_read_ptx_sreg_envreg24, 71783}, // __nvvm_read_ptx_sreg_envreg24
+      {Intrinsic::nvvm_read_ptx_sreg_envreg25, 71813}, // __nvvm_read_ptx_sreg_envreg25
+      {Intrinsic::nvvm_read_ptx_sreg_envreg26, 71843}, // __nvvm_read_ptx_sreg_envreg26
+      {Intrinsic::nvvm_read_ptx_sreg_envreg27, 71873}, // __nvvm_read_ptx_sreg_envreg27
+      {Intrinsic::nvvm_read_ptx_sreg_envreg28, 71903}, // __nvvm_read_ptx_sreg_envreg28
+      {Intrinsic::nvvm_read_ptx_sreg_envreg29, 71933}, // __nvvm_read_ptx_sreg_envreg29
+      {Intrinsic::nvvm_read_ptx_sreg_envreg3, 71963}, // __nvvm_read_ptx_sreg_envreg3
+      {Intrinsic::nvvm_read_ptx_sreg_envreg30, 71992}, // __nvvm_read_ptx_sreg_envreg30
+      {Intrinsic::nvvm_read_ptx_sreg_envreg31, 72022}, // __nvvm_read_ptx_sreg_envreg31
+      {Intrinsic::nvvm_read_ptx_sreg_envreg4, 72052}, // __nvvm_read_ptx_sreg_envreg4
+      {Intrinsic::nvvm_read_ptx_sreg_envreg5, 72081}, // __nvvm_read_ptx_sreg_envreg5
+      {Intrinsic::nvvm_read_ptx_sreg_envreg6, 72110}, // __nvvm_read_ptx_sreg_envreg6
+      {Intrinsic::nvvm_read_ptx_sreg_envreg7, 72139}, // __nvvm_read_ptx_sreg_envreg7
+      {Intrinsic::nvvm_read_ptx_sreg_envreg8, 72168}, // __nvvm_read_ptx_sreg_envreg8
+      {Intrinsic::nvvm_read_ptx_sreg_envreg9, 72197}, // __nvvm_read_ptx_sreg_envreg9
+      {Intrinsic::nvvm_read_ptx_sreg_gridid, 72226}, // __nvvm_read_ptx_sreg_gridid
+      {Intrinsic::nvvm_read_ptx_sreg_laneid, 72254}, // __nvvm_read_ptx_sreg_laneid
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_eq, 72282}, // __nvvm_read_ptx_sreg_lanemask_eq
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_ge, 72315}, // __nvvm_read_ptx_sreg_lanemask_ge
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_gt, 72348}, // __nvvm_read_ptx_sreg_lanemask_gt
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_le, 72381}, // __nvvm_read_ptx_sreg_lanemask_le
+      {Intrinsic::nvvm_read_ptx_sreg_lanemask_lt, 72414}, // __nvvm_read_ptx_sreg_lanemask_lt
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_w, 72447}, // __nvvm_read_ptx_sreg_nctaid_w
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_x, 72477}, // __nvvm_read_ptx_sreg_nctaid_x
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_y, 72507}, // __nvvm_read_ptx_sreg_nctaid_y
+      {Intrinsic::nvvm_read_ptx_sreg_nctaid_z, 72537}, // __nvvm_read_ptx_sreg_nctaid_z
+      {Intrinsic::nvvm_read_ptx_sreg_nsmid, 72567}, // __nvvm_read_ptx_sreg_nsmid
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_w, 72594}, // __nvvm_read_ptx_sreg_ntid_w
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_x, 72622}, // __nvvm_read_ptx_sreg_ntid_x
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_y, 72650}, // __nvvm_read_ptx_sreg_ntid_y
+      {Intrinsic::nvvm_read_ptx_sreg_ntid_z, 72678}, // __nvvm_read_ptx_sreg_ntid_z
+      {Intrinsic::nvvm_read_ptx_sreg_nwarpid, 72706}, // __nvvm_read_ptx_sreg_nwarpid
+      {Intrinsic::nvvm_read_ptx_sreg_pm0, 72735}, // __nvvm_read_ptx_sreg_pm0
+      {Intrinsic::nvvm_read_ptx_sreg_pm1, 72760}, // __nvvm_read_ptx_sreg_pm1
+      {Intrinsic::nvvm_read_ptx_sreg_pm2, 72785}, // __nvvm_read_ptx_sreg_pm2
+      {Intrinsic::nvvm_read_ptx_sreg_pm3, 72810}, // __nvvm_read_ptx_sreg_pm3
+      {Intrinsic::nvvm_read_ptx_sreg_smid, 72835}, // __nvvm_read_ptx_sreg_smid
+      {Intrinsic::nvvm_read_ptx_sreg_tid_w, 72861}, // __nvvm_read_ptx_sreg_tid_w
+      {Intrinsic::nvvm_read_ptx_sreg_tid_x, 72888}, // __nvvm_read_ptx_sreg_tid_x
+      {Intrinsic::nvvm_read_ptx_sreg_tid_y, 72915}, // __nvvm_read_ptx_sreg_tid_y
+      {Intrinsic::nvvm_read_ptx_sreg_tid_z, 72942}, // __nvvm_read_ptx_sreg_tid_z
+      {Intrinsic::nvvm_read_ptx_sreg_warpid, 72969}, // __nvvm_read_ptx_sreg_warpid
+      {Intrinsic::nvvm_read_ptx_sreg_warpsize, 72997}, // __nvvm_read_ptx_sreg_warpsize
+      {Intrinsic::nvvm_rotate_b32, 73027}, // __nvvm_rotate_b32
+      {Intrinsic::nvvm_rotate_b64, 73045}, // __nvvm_rotate_b64
+      {Intrinsic::nvvm_rotate_right_b64, 73063}, // __nvvm_rotate_right_b64
+      {Intrinsic::nvvm_round_d, 73087}, // __nvvm_round_d
+      {Intrinsic::nvvm_round_f, 73102}, // __nvvm_round_f
+      {Intrinsic::nvvm_round_ftz_f, 73117}, // __nvvm_round_ftz_f
+      {Intrinsic::nvvm_rsqrt_approx_d, 73136}, // __nvvm_rsqrt_approx_d
+      {Intrinsic::nvvm_rsqrt_approx_f, 73158}, // __nvvm_rsqrt_approx_f
+      {Intrinsic::nvvm_rsqrt_approx_ftz_f, 73180}, // __nvvm_rsqrt_approx_ftz_f
+      {Intrinsic::nvvm_sad_i, 73206}, // __nvvm_sad_i
+      {Intrinsic::nvvm_sad_ui, 73219}, // __nvvm_sad_ui
+      {Intrinsic::nvvm_saturate_d, 73233}, // __nvvm_saturate_d
+      {Intrinsic::nvvm_saturate_f, 73251}, // __nvvm_saturate_f
+      {Intrinsic::nvvm_saturate_ftz_f, 73269}, // __nvvm_saturate_ftz_f
+      {Intrinsic::nvvm_shfl_bfly_f32, 73291}, // __nvvm_shfl_bfly_f32
+      {Intrinsic::nvvm_shfl_bfly_i32, 73312}, // __nvvm_shfl_bfly_i32
+      {Intrinsic::nvvm_shfl_down_f32, 73333}, // __nvvm_shfl_down_f32
+      {Intrinsic::nvvm_shfl_down_i32, 73354}, // __nvvm_shfl_down_i32
+      {Intrinsic::nvvm_shfl_idx_f32, 73375}, // __nvvm_shfl_idx_f32
+      {Intrinsic::nvvm_shfl_idx_i32, 73395}, // __nvvm_shfl_idx_i32
+      {Intrinsic::nvvm_shfl_up_f32, 73415}, // __nvvm_shfl_up_f32
+      {Intrinsic::nvvm_shfl_up_i32, 73434}, // __nvvm_shfl_up_i32
+      {Intrinsic::nvvm_sin_approx_f, 73453}, // __nvvm_sin_approx_f
+      {Intrinsic::nvvm_sin_approx_ftz_f, 73473}, // __nvvm_sin_approx_ftz_f
+      {Intrinsic::nvvm_sqrt_approx_f, 73497}, // __nvvm_sqrt_approx_f
+      {Intrinsic::nvvm_sqrt_approx_ftz_f, 73518}, // __nvvm_sqrt_approx_ftz_f
+      {Intrinsic::nvvm_sqrt_f, 73543}, // __nvvm_sqrt_f
+      {Intrinsic::nvvm_sqrt_rm_d, 73557}, // __nvvm_sqrt_rm_d
+      {Intrinsic::nvvm_sqrt_rm_f, 73574}, // __nvvm_sqrt_rm_f
+      {Intrinsic::nvvm_sqrt_rm_ftz_f, 73591}, // __nvvm_sqrt_rm_ftz_f
+      {Intrinsic::nvvm_sqrt_rn_d, 73612}, // __nvvm_sqrt_rn_d
+      {Intrinsic::nvvm_sqrt_rn_f, 73629}, // __nvvm_sqrt_rn_f
+      {Intrinsic::nvvm_sqrt_rn_ftz_f, 73646}, // __nvvm_sqrt_rn_ftz_f
+      {Intrinsic::nvvm_sqrt_rp_d, 73667}, // __nvvm_sqrt_rp_d
+      {Intrinsic::nvvm_sqrt_rp_f, 73684}, // __nvvm_sqrt_rp_f
+      {Intrinsic::nvvm_sqrt_rp_ftz_f, 73701}, // __nvvm_sqrt_rp_ftz_f
+      {Intrinsic::nvvm_sqrt_rz_d, 73722}, // __nvvm_sqrt_rz_d
+      {Intrinsic::nvvm_sqrt_rz_f, 73739}, // __nvvm_sqrt_rz_f
+      {Intrinsic::nvvm_sqrt_rz_ftz_f, 73756}, // __nvvm_sqrt_rz_ftz_f
+      {Intrinsic::nvvm_suq_array_size, 73777}, // __nvvm_suq_array_size
+      {Intrinsic::nvvm_suq_channel_data_type, 73799}, // __nvvm_suq_channel_data_type
+      {Intrinsic::nvvm_suq_channel_order, 73828}, // __nvvm_suq_channel_order
+      {Intrinsic::nvvm_suq_depth, 73853}, // __nvvm_suq_depth
+      {Intrinsic::nvvm_suq_height, 73870}, // __nvvm_suq_height
+      {Intrinsic::nvvm_suq_width, 73888}, // __nvvm_suq_width
+      {Intrinsic::nvvm_sust_b_1d_array_i16_clamp, 73905}, // __nvvm_sust_b_1d_array_i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i16_trap, 73938}, // __nvvm_sust_b_1d_array_i16_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i16_zero, 73970}, // __nvvm_sust_b_1d_array_i16_zero
+      {Intrinsic::nvvm_sust_b_1d_array_i32_clamp, 74002}, // __nvvm_sust_b_1d_array_i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i32_trap, 74035}, // __nvvm_sust_b_1d_array_i32_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i32_zero, 74067}, // __nvvm_sust_b_1d_array_i32_zero
+      {Intrinsic::nvvm_sust_b_1d_array_i64_clamp, 74099}, // __nvvm_sust_b_1d_array_i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i64_trap, 74132}, // __nvvm_sust_b_1d_array_i64_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i64_zero, 74164}, // __nvvm_sust_b_1d_array_i64_zero
+      {Intrinsic::nvvm_sust_b_1d_array_i8_clamp, 74196}, // __nvvm_sust_b_1d_array_i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_i8_trap, 74228}, // __nvvm_sust_b_1d_array_i8_trap
+      {Intrinsic::nvvm_sust_b_1d_array_i8_zero, 74259}, // __nvvm_sust_b_1d_array_i8_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_clamp, 74290}, // __nvvm_sust_b_1d_array_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_trap, 74325}, // __nvvm_sust_b_1d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i16_zero, 74359}, // __nvvm_sust_b_1d_array_v2i16_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_clamp, 74393}, // __nvvm_sust_b_1d_array_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_trap, 74428}, // __nvvm_sust_b_1d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i32_zero, 74462}, // __nvvm_sust_b_1d_array_v2i32_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_clamp, 74496}, // __nvvm_sust_b_1d_array_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_trap, 74531}, // __nvvm_sust_b_1d_array_v2i64_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i64_zero, 74565}, // __nvvm_sust_b_1d_array_v2i64_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_clamp, 74599}, // __nvvm_sust_b_1d_array_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_trap, 74633}, // __nvvm_sust_b_1d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v2i8_zero, 74666}, // __nvvm_sust_b_1d_array_v2i8_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_clamp, 74699}, // __nvvm_sust_b_1d_array_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_trap, 74734}, // __nvvm_sust_b_1d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v4i16_zero, 74768}, // __nvvm_sust_b_1d_array_v4i16_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_clamp, 74802}, // __nvvm_sust_b_1d_array_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_trap, 74837}, // __nvvm_sust_b_1d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v4i32_zero, 74871}, // __nvvm_sust_b_1d_array_v4i32_zero
+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_clamp, 74905}, // __nvvm_sust_b_1d_array_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_trap, 74939}, // __nvvm_sust_b_1d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_b_1d_array_v4i8_zero, 74972}, // __nvvm_sust_b_1d_array_v4i8_zero
+      {Intrinsic::nvvm_sust_b_1d_i16_clamp, 75005}, // __nvvm_sust_b_1d_i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_i16_trap, 75032}, // __nvvm_sust_b_1d_i16_trap
+      {Intrinsic::nvvm_sust_b_1d_i16_zero, 75058}, // __nvvm_sust_b_1d_i16_zero
+      {Intrinsic::nvvm_sust_b_1d_i32_clamp, 75084}, // __nvvm_sust_b_1d_i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_i32_trap, 75111}, // __nvvm_sust_b_1d_i32_trap
+      {Intrinsic::nvvm_sust_b_1d_i32_zero, 75137}, // __nvvm_sust_b_1d_i32_zero
+      {Intrinsic::nvvm_sust_b_1d_i64_clamp, 75163}, // __nvvm_sust_b_1d_i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_i64_trap, 75190}, // __nvvm_sust_b_1d_i64_trap
+      {Intrinsic::nvvm_sust_b_1d_i64_zero, 75216}, // __nvvm_sust_b_1d_i64_zero
+      {Intrinsic::nvvm_sust_b_1d_i8_clamp, 75242}, // __nvvm_sust_b_1d_i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_i8_trap, 75268}, // __nvvm_sust_b_1d_i8_trap
+      {Intrinsic::nvvm_sust_b_1d_i8_zero, 75293}, // __nvvm_sust_b_1d_i8_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i16_clamp, 75318}, // __nvvm_sust_b_1d_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i16_trap, 75347}, // __nvvm_sust_b_1d_v2i16_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i16_zero, 75375}, // __nvvm_sust_b_1d_v2i16_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i32_clamp, 75403}, // __nvvm_sust_b_1d_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i32_trap, 75432}, // __nvvm_sust_b_1d_v2i32_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i32_zero, 75460}, // __nvvm_sust_b_1d_v2i32_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i64_clamp, 75488}, // __nvvm_sust_b_1d_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i64_trap, 75517}, // __nvvm_sust_b_1d_v2i64_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i64_zero, 75545}, // __nvvm_sust_b_1d_v2i64_zero
+      {Intrinsic::nvvm_sust_b_1d_v2i8_clamp, 75573}, // __nvvm_sust_b_1d_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_v2i8_trap, 75601}, // __nvvm_sust_b_1d_v2i8_trap
+      {Intrinsic::nvvm_sust_b_1d_v2i8_zero, 75628}, // __nvvm_sust_b_1d_v2i8_zero
+      {Intrinsic::nvvm_sust_b_1d_v4i16_clamp, 75655}, // __nvvm_sust_b_1d_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_1d_v4i16_trap, 75684}, // __nvvm_sust_b_1d_v4i16_trap
+      {Intrinsic::nvvm_sust_b_1d_v4i16_zero, 75712}, // __nvvm_sust_b_1d_v4i16_zero
+      {Intrinsic::nvvm_sust_b_1d_v4i32_clamp, 75740}, // __nvvm_sust_b_1d_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_1d_v4i32_trap, 75769}, // __nvvm_sust_b_1d_v4i32_trap
+      {Intrinsic::nvvm_sust_b_1d_v4i32_zero, 75797}, // __nvvm_sust_b_1d_v4i32_zero
+      {Intrinsic::nvvm_sust_b_1d_v4i8_clamp, 75825}, // __nvvm_sust_b_1d_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_1d_v4i8_trap, 75853}, // __nvvm_sust_b_1d_v4i8_trap
+      {Intrinsic::nvvm_sust_b_1d_v4i8_zero, 75880}, // __nvvm_sust_b_1d_v4i8_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i16_clamp, 75907}, // __nvvm_sust_b_2d_array_i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i16_trap, 75940}, // __nvvm_sust_b_2d_array_i16_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i16_zero, 75972}, // __nvvm_sust_b_2d_array_i16_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i32_clamp, 76004}, // __nvvm_sust_b_2d_array_i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i32_trap, 76037}, // __nvvm_sust_b_2d_array_i32_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i32_zero, 76069}, // __nvvm_sust_b_2d_array_i32_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i64_clamp, 76101}, // __nvvm_sust_b_2d_array_i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i64_trap, 76134}, // __nvvm_sust_b_2d_array_i64_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i64_zero, 76166}, // __nvvm_sust_b_2d_array_i64_zero
+      {Intrinsic::nvvm_sust_b_2d_array_i8_clamp, 76198}, // __nvvm_sust_b_2d_array_i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_i8_trap, 76230}, // __nvvm_sust_b_2d_array_i8_trap
+      {Intrinsic::nvvm_sust_b_2d_array_i8_zero, 76261}, // __nvvm_sust_b_2d_array_i8_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_clamp, 76292}, // __nvvm_sust_b_2d_array_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_trap, 76327}, // __nvvm_sust_b_2d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i16_zero, 76361}, // __nvvm_sust_b_2d_array_v2i16_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_clamp, 76395}, // __nvvm_sust_b_2d_array_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_trap, 76430}, // __nvvm_sust_b_2d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i32_zero, 76464}, // __nvvm_sust_b_2d_array_v2i32_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_clamp, 76498}, // __nvvm_sust_b_2d_array_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_trap, 76533}, // __nvvm_sust_b_2d_array_v2i64_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i64_zero, 76567}, // __nvvm_sust_b_2d_array_v2i64_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_clamp, 76601}, // __nvvm_sust_b_2d_array_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_trap, 76635}, // __nvvm_sust_b_2d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v2i8_zero, 76668}, // __nvvm_sust_b_2d_array_v2i8_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_clamp, 76701}, // __nvvm_sust_b_2d_array_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_trap, 76736}, // __nvvm_sust_b_2d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v4i16_zero, 76770}, // __nvvm_sust_b_2d_array_v4i16_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_clamp, 76804}, // __nvvm_sust_b_2d_array_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_trap, 76839}, // __nvvm_sust_b_2d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v4i32_zero, 76873}, // __nvvm_sust_b_2d_array_v4i32_zero
+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_clamp, 76907}, // __nvvm_sust_b_2d_array_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_trap, 76941}, // __nvvm_sust_b_2d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_b_2d_array_v4i8_zero, 76974}, // __nvvm_sust_b_2d_array_v4i8_zero
+      {Intrinsic::nvvm_sust_b_2d_i16_clamp, 77007}, // __nvvm_sust_b_2d_i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_i16_trap, 77034}, // __nvvm_sust_b_2d_i16_trap
+      {Intrinsic::nvvm_sust_b_2d_i16_zero, 77060}, // __nvvm_sust_b_2d_i16_zero
+      {Intrinsic::nvvm_sust_b_2d_i32_clamp, 77086}, // __nvvm_sust_b_2d_i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_i32_trap, 77113}, // __nvvm_sust_b_2d_i32_trap
+      {Intrinsic::nvvm_sust_b_2d_i32_zero, 77139}, // __nvvm_sust_b_2d_i32_zero
+      {Intrinsic::nvvm_sust_b_2d_i64_clamp, 77165}, // __nvvm_sust_b_2d_i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_i64_trap, 77192}, // __nvvm_sust_b_2d_i64_trap
+      {Intrinsic::nvvm_sust_b_2d_i64_zero, 77218}, // __nvvm_sust_b_2d_i64_zero
+      {Intrinsic::nvvm_sust_b_2d_i8_clamp, 77244}, // __nvvm_sust_b_2d_i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_i8_trap, 77270}, // __nvvm_sust_b_2d_i8_trap
+      {Intrinsic::nvvm_sust_b_2d_i8_zero, 77295}, // __nvvm_sust_b_2d_i8_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i16_clamp, 77320}, // __nvvm_sust_b_2d_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i16_trap, 77349}, // __nvvm_sust_b_2d_v2i16_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i16_zero, 77377}, // __nvvm_sust_b_2d_v2i16_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i32_clamp, 77405}, // __nvvm_sust_b_2d_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i32_trap, 77434}, // __nvvm_sust_b_2d_v2i32_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i32_zero, 77462}, // __nvvm_sust_b_2d_v2i32_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i64_clamp, 77490}, // __nvvm_sust_b_2d_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i64_trap, 77519}, // __nvvm_sust_b_2d_v2i64_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i64_zero, 77547}, // __nvvm_sust_b_2d_v2i64_zero
+      {Intrinsic::nvvm_sust_b_2d_v2i8_clamp, 77575}, // __nvvm_sust_b_2d_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_v2i8_trap, 77603}, // __nvvm_sust_b_2d_v2i8_trap
+      {Intrinsic::nvvm_sust_b_2d_v2i8_zero, 77630}, // __nvvm_sust_b_2d_v2i8_zero
+      {Intrinsic::nvvm_sust_b_2d_v4i16_clamp, 77657}, // __nvvm_sust_b_2d_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_2d_v4i16_trap, 77686}, // __nvvm_sust_b_2d_v4i16_trap
+      {Intrinsic::nvvm_sust_b_2d_v4i16_zero, 77714}, // __nvvm_sust_b_2d_v4i16_zero
+      {Intrinsic::nvvm_sust_b_2d_v4i32_clamp, 77742}, // __nvvm_sust_b_2d_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_2d_v4i32_trap, 77771}, // __nvvm_sust_b_2d_v4i32_trap
+      {Intrinsic::nvvm_sust_b_2d_v4i32_zero, 77799}, // __nvvm_sust_b_2d_v4i32_zero
+      {Intrinsic::nvvm_sust_b_2d_v4i8_clamp, 77827}, // __nvvm_sust_b_2d_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_2d_v4i8_trap, 77855}, // __nvvm_sust_b_2d_v4i8_trap
+      {Intrinsic::nvvm_sust_b_2d_v4i8_zero, 77882}, // __nvvm_sust_b_2d_v4i8_zero
+      {Intrinsic::nvvm_sust_b_3d_i16_clamp, 77909}, // __nvvm_sust_b_3d_i16_clamp
+      {Intrinsic::nvvm_sust_b_3d_i16_trap, 77936}, // __nvvm_sust_b_3d_i16_trap
+      {Intrinsic::nvvm_sust_b_3d_i16_zero, 77962}, // __nvvm_sust_b_3d_i16_zero
+      {Intrinsic::nvvm_sust_b_3d_i32_clamp, 77988}, // __nvvm_sust_b_3d_i32_clamp
+      {Intrinsic::nvvm_sust_b_3d_i32_trap, 78015}, // __nvvm_sust_b_3d_i32_trap
+      {Intrinsic::nvvm_sust_b_3d_i32_zero, 78041}, // __nvvm_sust_b_3d_i32_zero
+      {Intrinsic::nvvm_sust_b_3d_i64_clamp, 78067}, // __nvvm_sust_b_3d_i64_clamp
+      {Intrinsic::nvvm_sust_b_3d_i64_trap, 78094}, // __nvvm_sust_b_3d_i64_trap
+      {Intrinsic::nvvm_sust_b_3d_i64_zero, 78120}, // __nvvm_sust_b_3d_i64_zero
+      {Intrinsic::nvvm_sust_b_3d_i8_clamp, 78146}, // __nvvm_sust_b_3d_i8_clamp
+      {Intrinsic::nvvm_sust_b_3d_i8_trap, 78172}, // __nvvm_sust_b_3d_i8_trap
+      {Intrinsic::nvvm_sust_b_3d_i8_zero, 78197}, // __nvvm_sust_b_3d_i8_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i16_clamp, 78222}, // __nvvm_sust_b_3d_v2i16_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i16_trap, 78251}, // __nvvm_sust_b_3d_v2i16_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i16_zero, 78279}, // __nvvm_sust_b_3d_v2i16_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i32_clamp, 78307}, // __nvvm_sust_b_3d_v2i32_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i32_trap, 78336}, // __nvvm_sust_b_3d_v2i32_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i32_zero, 78364}, // __nvvm_sust_b_3d_v2i32_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i64_clamp, 78392}, // __nvvm_sust_b_3d_v2i64_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i64_trap, 78421}, // __nvvm_sust_b_3d_v2i64_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i64_zero, 78449}, // __nvvm_sust_b_3d_v2i64_zero
+      {Intrinsic::nvvm_sust_b_3d_v2i8_clamp, 78477}, // __nvvm_sust_b_3d_v2i8_clamp
+      {Intrinsic::nvvm_sust_b_3d_v2i8_trap, 78505}, // __nvvm_sust_b_3d_v2i8_trap
+      {Intrinsic::nvvm_sust_b_3d_v2i8_zero, 78532}, // __nvvm_sust_b_3d_v2i8_zero
+      {Intrinsic::nvvm_sust_b_3d_v4i16_clamp, 78559}, // __nvvm_sust_b_3d_v4i16_clamp
+      {Intrinsic::nvvm_sust_b_3d_v4i16_trap, 78588}, // __nvvm_sust_b_3d_v4i16_trap
+      {Intrinsic::nvvm_sust_b_3d_v4i16_zero, 78616}, // __nvvm_sust_b_3d_v4i16_zero
+      {Intrinsic::nvvm_sust_b_3d_v4i32_clamp, 78644}, // __nvvm_sust_b_3d_v4i32_clamp
+      {Intrinsic::nvvm_sust_b_3d_v4i32_trap, 78673}, // __nvvm_sust_b_3d_v4i32_trap
+      {Intrinsic::nvvm_sust_b_3d_v4i32_zero, 78701}, // __nvvm_sust_b_3d_v4i32_zero
+      {Intrinsic::nvvm_sust_b_3d_v4i8_clamp, 78729}, // __nvvm_sust_b_3d_v4i8_clamp
+      {Intrinsic::nvvm_sust_b_3d_v4i8_trap, 78757}, // __nvvm_sust_b_3d_v4i8_trap
+      {Intrinsic::nvvm_sust_b_3d_v4i8_zero, 78784}, // __nvvm_sust_b_3d_v4i8_zero
+      {Intrinsic::nvvm_sust_p_1d_array_i16_trap, 78811}, // __nvvm_sust_p_1d_array_i16_trap
+      {Intrinsic::nvvm_sust_p_1d_array_i32_trap, 78843}, // __nvvm_sust_p_1d_array_i32_trap
+      {Intrinsic::nvvm_sust_p_1d_array_i8_trap, 78875}, // __nvvm_sust_p_1d_array_i8_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v2i16_trap, 78906}, // __nvvm_sust_p_1d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v2i32_trap, 78940}, // __nvvm_sust_p_1d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v2i8_trap, 78974}, // __nvvm_sust_p_1d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v4i16_trap, 79007}, // __nvvm_sust_p_1d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v4i32_trap, 79041}, // __nvvm_sust_p_1d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_p_1d_array_v4i8_trap, 79075}, // __nvvm_sust_p_1d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_p_1d_i16_trap, 79108}, // __nvvm_sust_p_1d_i16_trap
+      {Intrinsic::nvvm_sust_p_1d_i32_trap, 79134}, // __nvvm_sust_p_1d_i32_trap
+      {Intrinsic::nvvm_sust_p_1d_i8_trap, 79160}, // __nvvm_sust_p_1d_i8_trap
+      {Intrinsic::nvvm_sust_p_1d_v2i16_trap, 79185}, // __nvvm_sust_p_1d_v2i16_trap
+      {Intrinsic::nvvm_sust_p_1d_v2i32_trap, 79213}, // __nvvm_sust_p_1d_v2i32_trap
+      {Intrinsic::nvvm_sust_p_1d_v2i8_trap, 79241}, // __nvvm_sust_p_1d_v2i8_trap
+      {Intrinsic::nvvm_sust_p_1d_v4i16_trap, 79268}, // __nvvm_sust_p_1d_v4i16_trap
+      {Intrinsic::nvvm_sust_p_1d_v4i32_trap, 79296}, // __nvvm_sust_p_1d_v4i32_trap
+      {Intrinsic::nvvm_sust_p_1d_v4i8_trap, 79324}, // __nvvm_sust_p_1d_v4i8_trap
+      {Intrinsic::nvvm_sust_p_2d_array_i16_trap, 79351}, // __nvvm_sust_p_2d_array_i16_trap
+      {Intrinsic::nvvm_sust_p_2d_array_i32_trap, 79383}, // __nvvm_sust_p_2d_array_i32_trap
+      {Intrinsic::nvvm_sust_p_2d_array_i8_trap, 79415}, // __nvvm_sust_p_2d_array_i8_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v2i16_trap, 79446}, // __nvvm_sust_p_2d_array_v2i16_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v2i32_trap, 79480}, // __nvvm_sust_p_2d_array_v2i32_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v2i8_trap, 79514}, // __nvvm_sust_p_2d_array_v2i8_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v4i16_trap, 79547}, // __nvvm_sust_p_2d_array_v4i16_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v4i32_trap, 79581}, // __nvvm_sust_p_2d_array_v4i32_trap
+      {Intrinsic::nvvm_sust_p_2d_array_v4i8_trap, 79615}, // __nvvm_sust_p_2d_array_v4i8_trap
+      {Intrinsic::nvvm_sust_p_2d_i16_trap, 79648}, // __nvvm_sust_p_2d_i16_trap
+      {Intrinsic::nvvm_sust_p_2d_i32_trap, 79674}, // __nvvm_sust_p_2d_i32_trap
+      {Intrinsic::nvvm_sust_p_2d_i8_trap, 79700}, // __nvvm_sust_p_2d_i8_trap
+      {Intrinsic::nvvm_sust_p_2d_v2i16_trap, 79725}, // __nvvm_sust_p_2d_v2i16_trap
+      {Intrinsic::nvvm_sust_p_2d_v2i32_trap, 79753}, // __nvvm_sust_p_2d_v2i32_trap
+      {Intrinsic::nvvm_sust_p_2d_v2i8_trap, 79781}, // __nvvm_sust_p_2d_v2i8_trap
+      {Intrinsic::nvvm_sust_p_2d_v4i16_trap, 79808}, // __nvvm_sust_p_2d_v4i16_trap
+      {Intrinsic::nvvm_sust_p_2d_v4i32_trap, 79836}, // __nvvm_sust_p_2d_v4i32_trap
+      {Intrinsic::nvvm_sust_p_2d_v4i8_trap, 79864}, // __nvvm_sust_p_2d_v4i8_trap
+      {Intrinsic::nvvm_sust_p_3d_i16_trap, 79891}, // __nvvm_sust_p_3d_i16_trap
+      {Intrinsic::nvvm_sust_p_3d_i32_trap, 79917}, // __nvvm_sust_p_3d_i32_trap
+      {Intrinsic::nvvm_sust_p_3d_i8_trap, 79943}, // __nvvm_sust_p_3d_i8_trap
+      {Intrinsic::nvvm_sust_p_3d_v2i16_trap, 79968}, // __nvvm_sust_p_3d_v2i16_trap
+      {Intrinsic::nvvm_sust_p_3d_v2i32_trap, 79996}, // __nvvm_sust_p_3d_v2i32_trap
+      {Intrinsic::nvvm_sust_p_3d_v2i8_trap, 80024}, // __nvvm_sust_p_3d_v2i8_trap
+      {Intrinsic::nvvm_sust_p_3d_v4i16_trap, 80051}, // __nvvm_sust_p_3d_v4i16_trap
+      {Intrinsic::nvvm_sust_p_3d_v4i32_trap, 80079}, // __nvvm_sust_p_3d_v4i32_trap
+      {Intrinsic::nvvm_sust_p_3d_v4i8_trap, 80107}, // __nvvm_sust_p_3d_v4i8_trap
+      {Intrinsic::nvvm_swap_lo_hi_b64, 80134}, // __nvvm_swap_lo_hi_b64
+      {Intrinsic::nvvm_trunc_d, 80156}, // __nvvm_trunc_d
+      {Intrinsic::nvvm_trunc_f, 80171}, // __nvvm_trunc_f
+      {Intrinsic::nvvm_trunc_ftz_f, 80186}, // __nvvm_trunc_ftz_f
+      {Intrinsic::nvvm_txq_array_size, 80205}, // __nvvm_txq_array_size
+      {Intrinsic::nvvm_txq_channel_data_type, 80227}, // __nvvm_txq_channel_data_type
+      {Intrinsic::nvvm_txq_channel_order, 80256}, // __nvvm_txq_channel_order
+      {Intrinsic::nvvm_txq_depth, 80281}, // __nvvm_txq_depth
+      {Intrinsic::nvvm_txq_height, 80298}, // __nvvm_txq_height
+      {Intrinsic::nvvm_txq_num_mipmap_levels, 80316}, // __nvvm_txq_num_mipmap_levels
+      {Intrinsic::nvvm_txq_num_samples, 80345}, // __nvvm_txq_num_samples
+      {Intrinsic::nvvm_txq_width, 80368}, // __nvvm_txq_width
+      {Intrinsic::nvvm_ui2d_rm, 80385}, // __nvvm_ui2d_rm
+      {Intrinsic::nvvm_ui2d_rn, 80400}, // __nvvm_ui2d_rn
+      {Intrinsic::nvvm_ui2d_rp, 80415}, // __nvvm_ui2d_rp
+      {Intrinsic::nvvm_ui2d_rz, 80430}, // __nvvm_ui2d_rz
+      {Intrinsic::nvvm_ui2f_rm, 80445}, // __nvvm_ui2f_rm
+      {Intrinsic::nvvm_ui2f_rn, 80460}, // __nvvm_ui2f_rn
+      {Intrinsic::nvvm_ui2f_rp, 80475}, // __nvvm_ui2f_rp
+      {Intrinsic::nvvm_ui2f_rz, 80490}, // __nvvm_ui2f_rz
+      {Intrinsic::nvvm_ull2d_rm, 80505}, // __nvvm_ull2d_rm
+      {Intrinsic::nvvm_ull2d_rn, 80521}, // __nvvm_ull2d_rn
+      {Intrinsic::nvvm_ull2d_rp, 80537}, // __nvvm_ull2d_rp
+      {Intrinsic::nvvm_ull2d_rz, 80553}, // __nvvm_ull2d_rz
+      {Intrinsic::nvvm_ull2f_rm, 80569}, // __nvvm_ull2f_rm
+      {Intrinsic::nvvm_ull2f_rn, 80585}, // __nvvm_ull2f_rn
+      {Intrinsic::nvvm_ull2f_rp, 80601}, // __nvvm_ull2f_rp
+      {Intrinsic::nvvm_ull2f_rz, 80617}, // __nvvm_ull2f_rz
+      {Intrinsic::nvvm_barrier0, 68120}, // __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, 80633}, // __builtin_altivec_crypto_vcipher
+      {Intrinsic::ppc_altivec_crypto_vcipherlast, 80666}, // __builtin_altivec_crypto_vcipherlast
+      {Intrinsic::ppc_altivec_crypto_vncipher, 80703}, // __builtin_altivec_crypto_vncipher
+      {Intrinsic::ppc_altivec_crypto_vncipherlast, 80737}, // __builtin_altivec_crypto_vncipherlast
+      {Intrinsic::ppc_altivec_crypto_vpermxor, 80775}, // __builtin_altivec_crypto_vpermxor
+      {Intrinsic::ppc_altivec_crypto_vpmsumb, 80809}, // __builtin_altivec_crypto_vpmsumb
+      {Intrinsic::ppc_altivec_crypto_vpmsumd, 80842}, // __builtin_altivec_crypto_vpmsumd
+      {Intrinsic::ppc_altivec_crypto_vpmsumh, 80875}, // __builtin_altivec_crypto_vpmsumh
+      {Intrinsic::ppc_altivec_crypto_vpmsumw, 80908}, // __builtin_altivec_crypto_vpmsumw
+      {Intrinsic::ppc_altivec_crypto_vsbox, 80941}, // __builtin_altivec_crypto_vsbox
+      {Intrinsic::ppc_altivec_crypto_vshasigmad, 80972}, // __builtin_altivec_crypto_vshasigmad
+      {Intrinsic::ppc_altivec_crypto_vshasigmaw, 81008}, // __builtin_altivec_crypto_vshasigmaw
+      {Intrinsic::ppc_altivec_dss, 81044}, // __builtin_altivec_dss
+      {Intrinsic::ppc_altivec_dssall, 81066}, // __builtin_altivec_dssall
+      {Intrinsic::ppc_altivec_dst, 81091}, // __builtin_altivec_dst
+      {Intrinsic::ppc_altivec_dstst, 81113}, // __builtin_altivec_dstst
+      {Intrinsic::ppc_altivec_dststt, 81137}, // __builtin_altivec_dststt
+      {Intrinsic::ppc_altivec_dstt, 81162}, // __builtin_altivec_dstt
+      {Intrinsic::ppc_altivec_mfvscr, 81185}, // __builtin_altivec_mfvscr
+      {Intrinsic::ppc_altivec_mtvscr, 81210}, // __builtin_altivec_mtvscr
+      {Intrinsic::ppc_altivec_vabsdub, 81235}, // __builtin_altivec_vabsdub
+      {Intrinsic::ppc_altivec_vabsduh, 81261}, // __builtin_altivec_vabsduh
+      {Intrinsic::ppc_altivec_vabsduw, 81287}, // __builtin_altivec_vabsduw
+      {Intrinsic::ppc_altivec_vaddcuq, 81313}, // __builtin_altivec_vaddcuq
+      {Intrinsic::ppc_altivec_vaddcuw, 81339}, // __builtin_altivec_vaddcuw
+      {Intrinsic::ppc_altivec_vaddecuq, 81365}, // __builtin_altivec_vaddecuq
+      {Intrinsic::ppc_altivec_vaddeuqm, 81392}, // __builtin_altivec_vaddeuqm
+      {Intrinsic::ppc_altivec_vaddsbs, 81419}, // __builtin_altivec_vaddsbs
+      {Intrinsic::ppc_altivec_vaddshs, 81445}, // __builtin_altivec_vaddshs
+      {Intrinsic::ppc_altivec_vaddsws, 81471}, // __builtin_altivec_vaddsws
+      {Intrinsic::ppc_altivec_vaddubs, 81497}, // __builtin_altivec_vaddubs
+      {Intrinsic::ppc_altivec_vadduhs, 81523}, // __builtin_altivec_vadduhs
+      {Intrinsic::ppc_altivec_vadduws, 81549}, // __builtin_altivec_vadduws
+      {Intrinsic::ppc_altivec_vavgsb, 81575}, // __builtin_altivec_vavgsb
+      {Intrinsic::ppc_altivec_vavgsh, 81600}, // __builtin_altivec_vavgsh
+      {Intrinsic::ppc_altivec_vavgsw, 81625}, // __builtin_altivec_vavgsw
+      {Intrinsic::ppc_altivec_vavgub, 81650}, // __builtin_altivec_vavgub
+      {Intrinsic::ppc_altivec_vavguh, 81675}, // __builtin_altivec_vavguh
+      {Intrinsic::ppc_altivec_vavguw, 81700}, // __builtin_altivec_vavguw
+      {Intrinsic::ppc_altivec_vbpermq, 81725}, // __builtin_altivec_vbpermq
+      {Intrinsic::ppc_altivec_vcfsx, 81751}, // __builtin_altivec_vcfsx
+      {Intrinsic::ppc_altivec_vcfux, 81775}, // __builtin_altivec_vcfux
+      {Intrinsic::ppc_altivec_vclzlsbb, 81799}, // __builtin_altivec_vclzlsbb
+      {Intrinsic::ppc_altivec_vcmpbfp, 81826}, // __builtin_altivec_vcmpbfp
+      {Intrinsic::ppc_altivec_vcmpbfp_p, 81852}, // __builtin_altivec_vcmpbfp_p
+      {Intrinsic::ppc_altivec_vcmpeqfp, 81880}, // __builtin_altivec_vcmpeqfp
+      {Intrinsic::ppc_altivec_vcmpeqfp_p, 81907}, // __builtin_altivec_vcmpeqfp_p
+      {Intrinsic::ppc_altivec_vcmpequb, 81936}, // __builtin_altivec_vcmpequb
+      {Intrinsic::ppc_altivec_vcmpequb_p, 81963}, // __builtin_altivec_vcmpequb_p
+      {Intrinsic::ppc_altivec_vcmpequd, 81992}, // __builtin_altivec_vcmpequd
+      {Intrinsic::ppc_altivec_vcmpequd_p, 82019}, // __builtin_altivec_vcmpequd_p
+      {Intrinsic::ppc_altivec_vcmpequh, 82048}, // __builtin_altivec_vcmpequh
+      {Intrinsic::ppc_altivec_vcmpequh_p, 82075}, // __builtin_altivec_vcmpequh_p
+      {Intrinsic::ppc_altivec_vcmpequw, 82104}, // __builtin_altivec_vcmpequw
+      {Intrinsic::ppc_altivec_vcmpequw_p, 82131}, // __builtin_altivec_vcmpequw_p
+      {Intrinsic::ppc_altivec_vcmpgefp, 82160}, // __builtin_altivec_vcmpgefp
+      {Intrinsic::ppc_altivec_vcmpgefp_p, 82187}, // __builtin_altivec_vcmpgefp_p
+      {Intrinsic::ppc_altivec_vcmpgtfp, 82216}, // __builtin_altivec_vcmpgtfp
+      {Intrinsic::ppc_altivec_vcmpgtfp_p, 82243}, // __builtin_altivec_vcmpgtfp_p
+      {Intrinsic::ppc_altivec_vcmpgtsb, 82272}, // __builtin_altivec_vcmpgtsb
+      {Intrinsic::ppc_altivec_vcmpgtsb_p, 82299}, // __builtin_altivec_vcmpgtsb_p
+      {Intrinsic::ppc_altivec_vcmpgtsd, 82328}, // __builtin_altivec_vcmpgtsd
+      {Intrinsic::ppc_altivec_vcmpgtsd_p, 82355}, // __builtin_altivec_vcmpgtsd_p
+      {Intrinsic::ppc_altivec_vcmpgtsh, 82384}, // __builtin_altivec_vcmpgtsh
+      {Intrinsic::ppc_altivec_vcmpgtsh_p, 82411}, // __builtin_altivec_vcmpgtsh_p
+      {Intrinsic::ppc_altivec_vcmpgtsw, 82440}, // __builtin_altivec_vcmpgtsw
+      {Intrinsic::ppc_altivec_vcmpgtsw_p, 82467}, // __builtin_altivec_vcmpgtsw_p
+      {Intrinsic::ppc_altivec_vcmpgtub, 82496}, // __builtin_altivec_vcmpgtub
+      {Intrinsic::ppc_altivec_vcmpgtub_p, 82523}, // __builtin_altivec_vcmpgtub_p
+      {Intrinsic::ppc_altivec_vcmpgtud, 82552}, // __builtin_altivec_vcmpgtud
+      {Intrinsic::ppc_altivec_vcmpgtud_p, 82579}, // __builtin_altivec_vcmpgtud_p
+      {Intrinsic::ppc_altivec_vcmpgtuh, 82608}, // __builtin_altivec_vcmpgtuh
+      {Intrinsic::ppc_altivec_vcmpgtuh_p, 82635}, // __builtin_altivec_vcmpgtuh_p
+      {Intrinsic::ppc_altivec_vcmpgtuw, 82664}, // __builtin_altivec_vcmpgtuw
+      {Intrinsic::ppc_altivec_vcmpgtuw_p, 82691}, // __builtin_altivec_vcmpgtuw_p
+      {Intrinsic::ppc_altivec_vcmpneb, 82720}, // __builtin_altivec_vcmpneb
+      {Intrinsic::ppc_altivec_vcmpneb_p, 82746}, // __builtin_altivec_vcmpneb_p
+      {Intrinsic::ppc_altivec_vcmpneh, 82774}, // __builtin_altivec_vcmpneh
+      {Intrinsic::ppc_altivec_vcmpneh_p, 82800}, // __builtin_altivec_vcmpneh_p
+      {Intrinsic::ppc_altivec_vcmpnew, 82828}, // __builtin_altivec_vcmpnew
+      {Intrinsic::ppc_altivec_vcmpnew_p, 82854}, // __builtin_altivec_vcmpnew_p
+      {Intrinsic::ppc_altivec_vcmpnezb, 82882}, // __builtin_altivec_vcmpnezb
+      {Intrinsic::ppc_altivec_vcmpnezb_p, 82909}, // __builtin_altivec_vcmpnezb_p
+      {Intrinsic::ppc_altivec_vcmpnezh, 82938}, // __builtin_altivec_vcmpnezh
+      {Intrinsic::ppc_altivec_vcmpnezh_p, 82965}, // __builtin_altivec_vcmpnezh_p
+      {Intrinsic::ppc_altivec_vcmpnezw, 82994}, // __builtin_altivec_vcmpnezw
+      {Intrinsic::ppc_altivec_vcmpnezw_p, 83021}, // __builtin_altivec_vcmpnezw_p
+      {Intrinsic::ppc_altivec_vctsxs, 83050}, // __builtin_altivec_vctsxs
+      {Intrinsic::ppc_altivec_vctuxs, 83075}, // __builtin_altivec_vctuxs
+      {Intrinsic::ppc_altivec_vctzlsbb, 83100}, // __builtin_altivec_vctzlsbb
+      {Intrinsic::ppc_altivec_vexptefp, 83127}, // __builtin_altivec_vexptefp
+      {Intrinsic::ppc_altivec_vgbbd, 83154}, // __builtin_altivec_vgbbd
+      {Intrinsic::ppc_altivec_vlogefp, 83178}, // __builtin_altivec_vlogefp
+      {Intrinsic::ppc_altivec_vmaddfp, 83204}, // __builtin_altivec_vmaddfp
+      {Intrinsic::ppc_altivec_vmaxfp, 83230}, // __builtin_altivec_vmaxfp
+      {Intrinsic::ppc_altivec_vmaxsb, 83255}, // __builtin_altivec_vmaxsb
+      {Intrinsic::ppc_altivec_vmaxsd, 83280}, // __builtin_altivec_vmaxsd
+      {Intrinsic::ppc_altivec_vmaxsh, 83305}, // __builtin_altivec_vmaxsh
+      {Intrinsic::ppc_altivec_vmaxsw, 83330}, // __builtin_altivec_vmaxsw
+      {Intrinsic::ppc_altivec_vmaxub, 83355}, // __builtin_altivec_vmaxub
+      {Intrinsic::ppc_altivec_vmaxud, 83380}, // __builtin_altivec_vmaxud
+      {Intrinsic::ppc_altivec_vmaxuh, 83405}, // __builtin_altivec_vmaxuh
+      {Intrinsic::ppc_altivec_vmaxuw, 83430}, // __builtin_altivec_vmaxuw
+      {Intrinsic::ppc_altivec_vmhaddshs, 83455}, // __builtin_altivec_vmhaddshs
+      {Intrinsic::ppc_altivec_vmhraddshs, 83483}, // __builtin_altivec_vmhraddshs
+      {Intrinsic::ppc_altivec_vminfp, 83512}, // __builtin_altivec_vminfp
+      {Intrinsic::ppc_altivec_vminsb, 83537}, // __builtin_altivec_vminsb
+      {Intrinsic::ppc_altivec_vminsd, 83562}, // __builtin_altivec_vminsd
+      {Intrinsic::ppc_altivec_vminsh, 83587}, // __builtin_altivec_vminsh
+      {Intrinsic::ppc_altivec_vminsw, 83612}, // __builtin_altivec_vminsw
+      {Intrinsic::ppc_altivec_vminub, 83637}, // __builtin_altivec_vminub
+      {Intrinsic::ppc_altivec_vminud, 83662}, // __builtin_altivec_vminud
+      {Intrinsic::ppc_altivec_vminuh, 83687}, // __builtin_altivec_vminuh
+      {Intrinsic::ppc_altivec_vminuw, 83712}, // __builtin_altivec_vminuw
+      {Intrinsic::ppc_altivec_vmladduhm, 83737}, // __builtin_altivec_vmladduhm
+      {Intrinsic::ppc_altivec_vmsummbm, 83765}, // __builtin_altivec_vmsummbm
+      {Intrinsic::ppc_altivec_vmsumshm, 83792}, // __builtin_altivec_vmsumshm
+      {Intrinsic::ppc_altivec_vmsumshs, 83819}, // __builtin_altivec_vmsumshs
+      {Intrinsic::ppc_altivec_vmsumubm, 83846}, // __builtin_altivec_vmsumubm
+      {Intrinsic::ppc_altivec_vmsumuhm, 83873}, // __builtin_altivec_vmsumuhm
+      {Intrinsic::ppc_altivec_vmsumuhs, 83900}, // __builtin_altivec_vmsumuhs
+      {Intrinsic::ppc_altivec_vmulesb, 83927}, // __builtin_altivec_vmulesb
+      {Intrinsic::ppc_altivec_vmulesh, 83953}, // __builtin_altivec_vmulesh
+      {Intrinsic::ppc_altivec_vmulesw, 83979}, // __builtin_altivec_vmulesw
+      {Intrinsic::ppc_altivec_vmuleub, 84005}, // __builtin_altivec_vmuleub
+      {Intrinsic::ppc_altivec_vmuleuh, 84031}, // __builtin_altivec_vmuleuh
+      {Intrinsic::ppc_altivec_vmuleuw, 84057}, // __builtin_altivec_vmuleuw
+      {Intrinsic::ppc_altivec_vmulosb, 84083}, // __builtin_altivec_vmulosb
+      {Intrinsic::ppc_altivec_vmulosh, 84109}, // __builtin_altivec_vmulosh
+      {Intrinsic::ppc_altivec_vmulosw, 84135}, // __builtin_altivec_vmulosw
+      {Intrinsic::ppc_altivec_vmuloub, 84161}, // __builtin_altivec_vmuloub
+      {Intrinsic::ppc_altivec_vmulouh, 84187}, // __builtin_altivec_vmulouh
+      {Intrinsic::ppc_altivec_vmulouw, 84213}, // __builtin_altivec_vmulouw
+      {Intrinsic::ppc_altivec_vnmsubfp, 84239}, // __builtin_altivec_vnmsubfp
+      {Intrinsic::ppc_altivec_vperm, 84266}, // __builtin_altivec_vperm_4si
+      {Intrinsic::ppc_altivec_vpkpx, 84294}, // __builtin_altivec_vpkpx
+      {Intrinsic::ppc_altivec_vpksdss, 84318}, // __builtin_altivec_vpksdss
+      {Intrinsic::ppc_altivec_vpksdus, 84344}, // __builtin_altivec_vpksdus
+      {Intrinsic::ppc_altivec_vpkshss, 84370}, // __builtin_altivec_vpkshss
+      {Intrinsic::ppc_altivec_vpkshus, 84396}, // __builtin_altivec_vpkshus
+      {Intrinsic::ppc_altivec_vpkswss, 84422}, // __builtin_altivec_vpkswss
+      {Intrinsic::ppc_altivec_vpkswus, 84448}, // __builtin_altivec_vpkswus
+      {Intrinsic::ppc_altivec_vpkudus, 84474}, // __builtin_altivec_vpkudus
+      {Intrinsic::ppc_altivec_vpkuhus, 84500}, // __builtin_altivec_vpkuhus
+      {Intrinsic::ppc_altivec_vpkuwus, 84526}, // __builtin_altivec_vpkuwus
+      {Intrinsic::ppc_altivec_vprtybd, 84552}, // __builtin_altivec_vprtybd
+      {Intrinsic::ppc_altivec_vprtybq, 84578}, // __builtin_altivec_vprtybq
+      {Intrinsic::ppc_altivec_vprtybw, 84604}, // __builtin_altivec_vprtybw
+      {Intrinsic::ppc_altivec_vrefp, 84630}, // __builtin_altivec_vrefp
+      {Intrinsic::ppc_altivec_vrfim, 84654}, // __builtin_altivec_vrfim
+      {Intrinsic::ppc_altivec_vrfin, 84678}, // __builtin_altivec_vrfin
+      {Intrinsic::ppc_altivec_vrfip, 84702}, // __builtin_altivec_vrfip
+      {Intrinsic::ppc_altivec_vrfiz, 84726}, // __builtin_altivec_vrfiz
+      {Intrinsic::ppc_altivec_vrlb, 84750}, // __builtin_altivec_vrlb
+      {Intrinsic::ppc_altivec_vrld, 84773}, // __builtin_altivec_vrld
+      {Intrinsic::ppc_altivec_vrldmi, 84796}, // __builtin_altivec_vrldmi
+      {Intrinsic::ppc_altivec_vrldnm, 84821}, // __builtin_altivec_vrldnm
+      {Intrinsic::ppc_altivec_vrlh, 84846}, // __builtin_altivec_vrlh
+      {Intrinsic::ppc_altivec_vrlw, 84869}, // __builtin_altivec_vrlw
+      {Intrinsic::ppc_altivec_vrlwmi, 84892}, // __builtin_altivec_vrlwmi
+      {Intrinsic::ppc_altivec_vrlwnm, 84917}, // __builtin_altivec_vrlwnm
+      {Intrinsic::ppc_altivec_vrsqrtefp, 84942}, // __builtin_altivec_vrsqrtefp
+      {Intrinsic::ppc_altivec_vsel, 84970}, // __builtin_altivec_vsel_4si
+      {Intrinsic::ppc_altivec_vsl, 84997}, // __builtin_altivec_vsl
+      {Intrinsic::ppc_altivec_vslb, 85019}, // __builtin_altivec_vslb
+      {Intrinsic::ppc_altivec_vslh, 85042}, // __builtin_altivec_vslh
+      {Intrinsic::ppc_altivec_vslo, 85065}, // __builtin_altivec_vslo
+      {Intrinsic::ppc_altivec_vslv, 85088}, // __builtin_altivec_vslv
+      {Intrinsic::ppc_altivec_vslw, 85111}, // __builtin_altivec_vslw
+      {Intrinsic::ppc_altivec_vsr, 85134}, // __builtin_altivec_vsr
+      {Intrinsic::ppc_altivec_vsrab, 85156}, // __builtin_altivec_vsrab
+      {Intrinsic::ppc_altivec_vsrah, 85180}, // __builtin_altivec_vsrah
+      {Intrinsic::ppc_altivec_vsraw, 85204}, // __builtin_altivec_vsraw
+      {Intrinsic::ppc_altivec_vsrb, 85228}, // __builtin_altivec_vsrb
+      {Intrinsic::ppc_altivec_vsrh, 85251}, // __builtin_altivec_vsrh
+      {Intrinsic::ppc_altivec_vsro, 85274}, // __builtin_altivec_vsro
+      {Intrinsic::ppc_altivec_vsrv, 85297}, // __builtin_altivec_vsrv
+      {Intrinsic::ppc_altivec_vsrw, 85320}, // __builtin_altivec_vsrw
+      {Intrinsic::ppc_altivec_vsubcuq, 85343}, // __builtin_altivec_vsubcuq
+      {Intrinsic::ppc_altivec_vsubcuw, 85369}, // __builtin_altivec_vsubcuw
+      {Intrinsic::ppc_altivec_vsubecuq, 85395}, // __builtin_altivec_vsubecuq
+      {Intrinsic::ppc_altivec_vsubeuqm, 85422}, // __builtin_altivec_vsubeuqm
+      {Intrinsic::ppc_altivec_vsubsbs, 85449}, // __builtin_altivec_vsubsbs
+      {Intrinsic::ppc_altivec_vsubshs, 85475}, // __builtin_altivec_vsubshs
+      {Intrinsic::ppc_altivec_vsubsws, 85501}, // __builtin_altivec_vsubsws
+      {Intrinsic::ppc_altivec_vsububs, 85527}, // __builtin_altivec_vsububs
+      {Intrinsic::ppc_altivec_vsubuhs, 85553}, // __builtin_altivec_vsubuhs
+      {Intrinsic::ppc_altivec_vsubuws, 85579}, // __builtin_altivec_vsubuws
+      {Intrinsic::ppc_altivec_vsum2sws, 85605}, // __builtin_altivec_vsum2sws
+      {Intrinsic::ppc_altivec_vsum4sbs, 85632}, // __builtin_altivec_vsum4sbs
+      {Intrinsic::ppc_altivec_vsum4shs, 85659}, // __builtin_altivec_vsum4shs
+      {Intrinsic::ppc_altivec_vsum4ubs, 85686}, // __builtin_altivec_vsum4ubs
+      {Intrinsic::ppc_altivec_vsumsws, 85713}, // __builtin_altivec_vsumsws
+      {Intrinsic::ppc_altivec_vupkhpx, 85739}, // __builtin_altivec_vupkhpx
+      {Intrinsic::ppc_altivec_vupkhsb, 85765}, // __builtin_altivec_vupkhsb
+      {Intrinsic::ppc_altivec_vupkhsh, 85791}, // __builtin_altivec_vupkhsh
+      {Intrinsic::ppc_altivec_vupkhsw, 85817}, // __builtin_altivec_vupkhsw
+      {Intrinsic::ppc_altivec_vupklpx, 85843}, // __builtin_altivec_vupklpx
+      {Intrinsic::ppc_altivec_vupklsb, 85869}, // __builtin_altivec_vupklsb
+      {Intrinsic::ppc_altivec_vupklsh, 85895}, // __builtin_altivec_vupklsh
+      {Intrinsic::ppc_altivec_vupklsw, 85921}, // __builtin_altivec_vupklsw
+      {Intrinsic::ppc_bpermd, 85947}, // __builtin_bpermd
+      {Intrinsic::ppc_divde, 85964}, // __builtin_divde
+      {Intrinsic::ppc_divdeu, 85980}, // __builtin_divdeu
+      {Intrinsic::ppc_divwe, 85997}, // __builtin_divwe
+      {Intrinsic::ppc_divweu, 86013}, // __builtin_divweu
+      {Intrinsic::ppc_get_texasr, 86030}, // __builtin_get_texasr
+      {Intrinsic::ppc_get_texasru, 86051}, // __builtin_get_texasru
+      {Intrinsic::ppc_get_tfhar, 86073}, // __builtin_get_tfhar
+      {Intrinsic::ppc_get_tfiar, 86093}, // __builtin_get_tfiar
+      {Intrinsic::ppc_qpx_qvfabs, 86113}, // __builtin_qpx_qvfabs
+      {Intrinsic::ppc_qpx_qvfadd, 86134}, // __builtin_qpx_qvfadd
+      {Intrinsic::ppc_qpx_qvfadds, 86155}, // __builtin_qpx_qvfadds
+      {Intrinsic::ppc_qpx_qvfcfid, 86177}, // __builtin_qpx_qvfcfid
+      {Intrinsic::ppc_qpx_qvfcfids, 86199}, // __builtin_qpx_qvfcfids
+      {Intrinsic::ppc_qpx_qvfcfidu, 86222}, // __builtin_qpx_qvfcfidu
+      {Intrinsic::ppc_qpx_qvfcfidus, 86245}, // __builtin_qpx_qvfcfidus
+      {Intrinsic::ppc_qpx_qvfcmpeq, 86269}, // __builtin_qpx_qvfcmpeq
+      {Intrinsic::ppc_qpx_qvfcmpgt, 86292}, // __builtin_qpx_qvfcmpgt
+      {Intrinsic::ppc_qpx_qvfcmplt, 86315}, // __builtin_qpx_qvfcmplt
+      {Intrinsic::ppc_qpx_qvfcpsgn, 86338}, // __builtin_qpx_qvfcpsgn
+      {Intrinsic::ppc_qpx_qvfctid, 86361}, // __builtin_qpx_qvfctid
+      {Intrinsic::ppc_qpx_qvfctidu, 86383}, // __builtin_qpx_qvfctidu
+      {Intrinsic::ppc_qpx_qvfctiduz, 86406}, // __builtin_qpx_qvfctiduz
+      {Intrinsic::ppc_qpx_qvfctidz, 86430}, // __builtin_qpx_qvfctidz
+      {Intrinsic::ppc_qpx_qvfctiw, 86453}, // __builtin_qpx_qvfctiw
+      {Intrinsic::ppc_qpx_qvfctiwu, 86475}, // __builtin_qpx_qvfctiwu
+      {Intrinsic::ppc_qpx_qvfctiwuz, 86498}, // __builtin_qpx_qvfctiwuz
+      {Intrinsic::ppc_qpx_qvfctiwz, 86522}, // __builtin_qpx_qvfctiwz
+      {Intrinsic::ppc_qpx_qvflogical, 86545}, // __builtin_qpx_qvflogical
+      {Intrinsic::ppc_qpx_qvfmadd, 86570}, // __builtin_qpx_qvfmadd
+      {Intrinsic::ppc_qpx_qvfmadds, 86592}, // __builtin_qpx_qvfmadds
+      {Intrinsic::ppc_qpx_qvfmsub, 86615}, // __builtin_qpx_qvfmsub
+      {Intrinsic::ppc_qpx_qvfmsubs, 86637}, // __builtin_qpx_qvfmsubs
+      {Intrinsic::ppc_qpx_qvfmul, 86660}, // __builtin_qpx_qvfmul
+      {Intrinsic::ppc_qpx_qvfmuls, 86681}, // __builtin_qpx_qvfmuls
+      {Intrinsic::ppc_qpx_qvfnabs, 86703}, // __builtin_qpx_qvfnabs
+      {Intrinsic::ppc_qpx_qvfneg, 86725}, // __builtin_qpx_qvfneg
+      {Intrinsic::ppc_qpx_qvfnmadd, 86746}, // __builtin_qpx_qvfnmadd
+      {Intrinsic::ppc_qpx_qvfnmadds, 86769}, // __builtin_qpx_qvfnmadds
+      {Intrinsic::ppc_qpx_qvfnmsub, 86793}, // __builtin_qpx_qvfnmsub
+      {Intrinsic::ppc_qpx_qvfnmsubs, 86816}, // __builtin_qpx_qvfnmsubs
+      {Intrinsic::ppc_qpx_qvfperm, 86840}, // __builtin_qpx_qvfperm
+      {Intrinsic::ppc_qpx_qvfre, 86862}, // __builtin_qpx_qvfre
+      {Intrinsic::ppc_qpx_qvfres, 86882}, // __builtin_qpx_qvfres
+      {Intrinsic::ppc_qpx_qvfrim, 86903}, // __builtin_qpx_qvfrim
+      {Intrinsic::ppc_qpx_qvfrin, 86924}, // __builtin_qpx_qvfrin
+      {Intrinsic::ppc_qpx_qvfrip, 86945}, // __builtin_qpx_qvfrip
+      {Intrinsic::ppc_qpx_qvfriz, 86966}, // __builtin_qpx_qvfriz
+      {Intrinsic::ppc_qpx_qvfrsp, 86987}, // __builtin_qpx_qvfrsp
+      {Intrinsic::ppc_qpx_qvfrsqrte, 87008}, // __builtin_qpx_qvfrsqrte
+      {Intrinsic::ppc_qpx_qvfrsqrtes, 87032}, // __builtin_qpx_qvfrsqrtes
+      {Intrinsic::ppc_qpx_qvfsel, 87057}, // __builtin_qpx_qvfsel
+      {Intrinsic::ppc_qpx_qvfsub, 87078}, // __builtin_qpx_qvfsub
+      {Intrinsic::ppc_qpx_qvfsubs, 87099}, // __builtin_qpx_qvfsubs
+      {Intrinsic::ppc_qpx_qvftstnan, 87121}, // __builtin_qpx_qvftstnan
+      {Intrinsic::ppc_qpx_qvfxmadd, 87145}, // __builtin_qpx_qvfxmadd
+      {Intrinsic::ppc_qpx_qvfxmadds, 87168}, // __builtin_qpx_qvfxmadds
+      {Intrinsic::ppc_qpx_qvfxmul, 87192}, // __builtin_qpx_qvfxmul
+      {Intrinsic::ppc_qpx_qvfxmuls, 87214}, // __builtin_qpx_qvfxmuls
+      {Intrinsic::ppc_qpx_qvfxxcpnmadd, 87237}, // __builtin_qpx_qvfxxcpnmadd
+      {Intrinsic::ppc_qpx_qvfxxcpnmadds, 87264}, // __builtin_qpx_qvfxxcpnmadds
+      {Intrinsic::ppc_qpx_qvfxxmadd, 87292}, // __builtin_qpx_qvfxxmadd
+      {Intrinsic::ppc_qpx_qvfxxmadds, 87316}, // __builtin_qpx_qvfxxmadds
+      {Intrinsic::ppc_qpx_qvfxxnpmadd, 87341}, // __builtin_qpx_qvfxxnpmadd
+      {Intrinsic::ppc_qpx_qvfxxnpmadds, 87367}, // __builtin_qpx_qvfxxnpmadds
+      {Intrinsic::ppc_qpx_qvgpci, 87394}, // __builtin_qpx_qvgpci
+      {Intrinsic::ppc_qpx_qvlfcd, 87415}, // __builtin_qpx_qvlfcd
+      {Intrinsic::ppc_qpx_qvlfcda, 87436}, // __builtin_qpx_qvlfcda
+      {Intrinsic::ppc_qpx_qvlfcs, 87458}, // __builtin_qpx_qvlfcs
+      {Intrinsic::ppc_qpx_qvlfcsa, 87479}, // __builtin_qpx_qvlfcsa
+      {Intrinsic::ppc_qpx_qvlfd, 87501}, // __builtin_qpx_qvlfd
+      {Intrinsic::ppc_qpx_qvlfda, 87521}, // __builtin_qpx_qvlfda
+      {Intrinsic::ppc_qpx_qvlfiwa, 87542}, // __builtin_qpx_qvlfiwa
+      {Intrinsic::ppc_qpx_qvlfiwaa, 87564}, // __builtin_qpx_qvlfiwaa
+      {Intrinsic::ppc_qpx_qvlfiwz, 87587}, // __builtin_qpx_qvlfiwz
+      {Intrinsic::ppc_qpx_qvlfiwza, 87609}, // __builtin_qpx_qvlfiwza
+      {Intrinsic::ppc_qpx_qvlfs, 87632}, // __builtin_qpx_qvlfs
+      {Intrinsic::ppc_qpx_qvlfsa, 87652}, // __builtin_qpx_qvlfsa
+      {Intrinsic::ppc_qpx_qvlpcld, 87673}, // __builtin_qpx_qvlpcld
+      {Intrinsic::ppc_qpx_qvlpcls, 87695}, // __builtin_qpx_qvlpcls
+      {Intrinsic::ppc_qpx_qvlpcrd, 87717}, // __builtin_qpx_qvlpcrd
+      {Intrinsic::ppc_qpx_qvlpcrs, 87739}, // __builtin_qpx_qvlpcrs
+      {Intrinsic::ppc_qpx_qvstfcd, 87761}, // __builtin_qpx_qvstfcd
+      {Intrinsic::ppc_qpx_qvstfcda, 87783}, // __builtin_qpx_qvstfcda
+      {Intrinsic::ppc_qpx_qvstfcs, 87806}, // __builtin_qpx_qvstfcs
+      {Intrinsic::ppc_qpx_qvstfcsa, 87828}, // __builtin_qpx_qvstfcsa
+      {Intrinsic::ppc_qpx_qvstfd, 87851}, // __builtin_qpx_qvstfd
+      {Intrinsic::ppc_qpx_qvstfda, 87872}, // __builtin_qpx_qvstfda
+      {Intrinsic::ppc_qpx_qvstfiw, 87894}, // __builtin_qpx_qvstfiw
+      {Intrinsic::ppc_qpx_qvstfiwa, 87916}, // __builtin_qpx_qvstfiwa
+      {Intrinsic::ppc_qpx_qvstfs, 87939}, // __builtin_qpx_qvstfs
+      {Intrinsic::ppc_qpx_qvstfsa, 87960}, // __builtin_qpx_qvstfsa
+      {Intrinsic::ppc_set_texasr, 87982}, // __builtin_set_texasr
+      {Intrinsic::ppc_set_texasru, 88003}, // __builtin_set_texasru
+      {Intrinsic::ppc_set_tfhar, 88025}, // __builtin_set_tfhar
+      {Intrinsic::ppc_set_tfiar, 88045}, // __builtin_set_tfiar
+      {Intrinsic::ppc_tabort, 88065}, // __builtin_tabort
+      {Intrinsic::ppc_tabortdc, 88082}, // __builtin_tabortdc
+      {Intrinsic::ppc_tabortdci, 88101}, // __builtin_tabortdci
+      {Intrinsic::ppc_tabortwc, 88121}, // __builtin_tabortwc
+      {Intrinsic::ppc_tabortwci, 88140}, // __builtin_tabortwci
+      {Intrinsic::ppc_tbegin, 88160}, // __builtin_tbegin
+      {Intrinsic::ppc_tcheck, 88177}, // __builtin_tcheck
+      {Intrinsic::ppc_tend, 88194}, // __builtin_tend
+      {Intrinsic::ppc_tendall, 88209}, // __builtin_tendall
+      {Intrinsic::ppc_trechkpt, 88227}, // __builtin_trechkpt
+      {Intrinsic::ppc_treclaim, 88246}, // __builtin_treclaim
+      {Intrinsic::ppc_tresume, 88265}, // __builtin_tresume
+      {Intrinsic::ppc_tsr, 88283}, // __builtin_tsr
+      {Intrinsic::ppc_tsuspend, 88297}, // __builtin_tsuspend
+      {Intrinsic::ppc_ttest, 88316}, // __builtin_ttest
+      {Intrinsic::ppc_vsx_xsmaxdp, 88332}, // __builtin_vsx_xsmaxdp
+      {Intrinsic::ppc_vsx_xsmindp, 88354}, // __builtin_vsx_xsmindp
+      {Intrinsic::ppc_vsx_xvcmpeqdp, 88376}, // __builtin_vsx_xvcmpeqdp
+      {Intrinsic::ppc_vsx_xvcmpeqdp_p, 88400}, // __builtin_vsx_xvcmpeqdp_p
+      {Intrinsic::ppc_vsx_xvcmpeqsp, 88426}, // __builtin_vsx_xvcmpeqsp
+      {Intrinsic::ppc_vsx_xvcmpeqsp_p, 88450}, // __builtin_vsx_xvcmpeqsp_p
+      {Intrinsic::ppc_vsx_xvcmpgedp, 88476}, // __builtin_vsx_xvcmpgedp
+      {Intrinsic::ppc_vsx_xvcmpgedp_p, 88500}, // __builtin_vsx_xvcmpgedp_p
+      {Intrinsic::ppc_vsx_xvcmpgesp, 88526}, // __builtin_vsx_xvcmpgesp
+      {Intrinsic::ppc_vsx_xvcmpgesp_p, 88550}, // __builtin_vsx_xvcmpgesp_p
+      {Intrinsic::ppc_vsx_xvcmpgtdp, 88576}, // __builtin_vsx_xvcmpgtdp
+      {Intrinsic::ppc_vsx_xvcmpgtdp_p, 88600}, // __builtin_vsx_xvcmpgtdp_p
+      {Intrinsic::ppc_vsx_xvcmpgtsp, 88626}, // __builtin_vsx_xvcmpgtsp
+      {Intrinsic::ppc_vsx_xvcmpgtsp_p, 88650}, // __builtin_vsx_xvcmpgtsp_p
+      {Intrinsic::ppc_vsx_xvcvdpsp, 88676}, // __builtin_vsx_xvcvdpsp
+      {Intrinsic::ppc_vsx_xvcvdpsxws, 88699}, // __builtin_vsx_xvcvdpsxws
+      {Intrinsic::ppc_vsx_xvcvdpuxws, 88724}, // __builtin_vsx_xvcvdpuxws
+      {Intrinsic::ppc_vsx_xvcvhpsp, 88749}, // __builtin_vsx_xvcvhpsp
+      {Intrinsic::ppc_vsx_xvcvspdp, 88772}, // __builtin_vsx_xvcvspdp
+      {Intrinsic::ppc_vsx_xvcvsphp, 88795}, // __builtin_vsx_xvcvsphp
+      {Intrinsic::ppc_vsx_xvcvsxdsp, 88818}, // __builtin_vsx_xvcvsxdsp
+      {Intrinsic::ppc_vsx_xvcvsxwdp, 88842}, // __builtin_vsx_xvcvsxwdp
+      {Intrinsic::ppc_vsx_xvcvuxdsp, 88866}, // __builtin_vsx_xvcvuxdsp
+      {Intrinsic::ppc_vsx_xvcvuxwdp, 88890}, // __builtin_vsx_xvcvuxwdp
+      {Intrinsic::ppc_vsx_xvdivdp, 88914}, // __builtin_vsx_xvdivdp
+      {Intrinsic::ppc_vsx_xvdivsp, 88936}, // __builtin_vsx_xvdivsp
+      {Intrinsic::ppc_vsx_xviexpdp, 88958}, // __builtin_vsx_xviexpdp
+      {Intrinsic::ppc_vsx_xviexpsp, 88981}, // __builtin_vsx_xviexpsp
+      {Intrinsic::ppc_vsx_xvmaxdp, 89004}, // __builtin_vsx_xvmaxdp
+      {Intrinsic::ppc_vsx_xvmaxsp, 89026}, // __builtin_vsx_xvmaxsp
+      {Intrinsic::ppc_vsx_xvmindp, 89048}, // __builtin_vsx_xvmindp
+      {Intrinsic::ppc_vsx_xvminsp, 89070}, // __builtin_vsx_xvminsp
+      {Intrinsic::ppc_vsx_xvredp, 89092}, // __builtin_vsx_xvredp
+      {Intrinsic::ppc_vsx_xvresp, 89113}, // __builtin_vsx_xvresp
+      {Intrinsic::ppc_vsx_xvrsqrtedp, 89134}, // __builtin_vsx_xvrsqrtedp
+      {Intrinsic::ppc_vsx_xvrsqrtesp, 89159}, // __builtin_vsx_xvrsqrtesp
+      {Intrinsic::ppc_vsx_xvtstdcdp, 89184}, // __builtin_vsx_xvtstdcdp
+      {Intrinsic::ppc_vsx_xvtstdcsp, 89208}, // __builtin_vsx_xvtstdcsp
+      {Intrinsic::ppc_vsx_xvxexpdp, 89232}, // __builtin_vsx_xvxexpdp
+      {Intrinsic::ppc_vsx_xvxexpsp, 89255}, // __builtin_vsx_xvxexpsp
+      {Intrinsic::ppc_vsx_xvxsigdp, 89278}, // __builtin_vsx_xvxsigdp
+      {Intrinsic::ppc_vsx_xvxsigsp, 89301}, // __builtin_vsx_xvxsigsp
+      {Intrinsic::ppc_vsx_xxextractuw, 89324}, // __builtin_vsx_xxextractuw
+      {Intrinsic::ppc_vsx_xxinsertw, 89350}, // __builtin_vsx_xxinsertw
+      {Intrinsic::ppc_vsx_xxleqv, 89374}, // __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, 89395}, // __builtin_r600_group_barrier
+      {Intrinsic::r600_implicitarg_ptr, 89424}, // __builtin_r600_implicitarg_ptr
+      {Intrinsic::r600_rat_store_typed, 89455}, // __builtin_r600_rat_store_typed
+      {Intrinsic::r600_read_global_size_x, 89486}, // __builtin_r600_read_global_size_x
+      {Intrinsic::r600_read_global_size_y, 89520}, // __builtin_r600_read_global_size_y
+      {Intrinsic::r600_read_global_size_z, 89554}, // __builtin_r600_read_global_size_z
+      {Intrinsic::r600_read_ngroups_x, 89588}, // __builtin_r600_read_ngroups_x
+      {Intrinsic::r600_read_ngroups_y, 89618}, // __builtin_r600_read_ngroups_y
+      {Intrinsic::r600_read_ngroups_z, 89648}, // __builtin_r600_read_ngroups_z
+      {Intrinsic::r600_read_tgid_x, 89678}, // __builtin_r600_read_tgid_x
+      {Intrinsic::r600_read_tgid_y, 89705}, // __builtin_r600_read_tgid_y
+      {Intrinsic::r600_read_tgid_z, 89732}, // __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, 89759}, // __builtin_s390_efpc
+      {Intrinsic::s390_lcbb, 89806}, // __builtin_s390_lcbb
+      {Intrinsic::s390_sfpc, 89846}, // __builtin_s390_sfpc
+      {Intrinsic::s390_vaccb, 89866}, // __builtin_s390_vaccb
+      {Intrinsic::s390_vacccq, 89887}, // __builtin_s390_vacccq
+      {Intrinsic::s390_vaccf, 89909}, // __builtin_s390_vaccf
+      {Intrinsic::s390_vaccg, 89930}, // __builtin_s390_vaccg
+      {Intrinsic::s390_vacch, 89951}, // __builtin_s390_vacch
+      {Intrinsic::s390_vaccq, 89972}, // __builtin_s390_vaccq
+      {Intrinsic::s390_vacq, 89993}, // __builtin_s390_vacq
+      {Intrinsic::s390_vaq, 90013}, // __builtin_s390_vaq
+      {Intrinsic::s390_vavgb, 90032}, // __builtin_s390_vavgb
+      {Intrinsic::s390_vavgf, 90053}, // __builtin_s390_vavgf
+      {Intrinsic::s390_vavgg, 90074}, // __builtin_s390_vavgg
+      {Intrinsic::s390_vavgh, 90095}, // __builtin_s390_vavgh
+      {Intrinsic::s390_vavglb, 90116}, // __builtin_s390_vavglb
+      {Intrinsic::s390_vavglf, 90138}, // __builtin_s390_vavglf
+      {Intrinsic::s390_vavglg, 90160}, // __builtin_s390_vavglg
+      {Intrinsic::s390_vavglh, 90182}, // __builtin_s390_vavglh
+      {Intrinsic::s390_vcksm, 90204}, // __builtin_s390_vcksm
+      {Intrinsic::s390_verimb, 90225}, // __builtin_s390_verimb
+      {Intrinsic::s390_verimf, 90247}, // __builtin_s390_verimf
+      {Intrinsic::s390_verimg, 90269}, // __builtin_s390_verimg
+      {Intrinsic::s390_verimh, 90291}, // __builtin_s390_verimh
+      {Intrinsic::s390_verllb, 90313}, // __builtin_s390_verllb
+      {Intrinsic::s390_verllf, 90335}, // __builtin_s390_verllf
+      {Intrinsic::s390_verllg, 90357}, // __builtin_s390_verllg
+      {Intrinsic::s390_verllh, 90379}, // __builtin_s390_verllh
+      {Intrinsic::s390_verllvb, 90401}, // __builtin_s390_verllvb
+      {Intrinsic::s390_verllvf, 90424}, // __builtin_s390_verllvf
+      {Intrinsic::s390_verllvg, 90447}, // __builtin_s390_verllvg
+      {Intrinsic::s390_verllvh, 90470}, // __builtin_s390_verllvh
+      {Intrinsic::s390_vfaeb, 90493}, // __builtin_s390_vfaeb
+      {Intrinsic::s390_vfaef, 90514}, // __builtin_s390_vfaef
+      {Intrinsic::s390_vfaeh, 90535}, // __builtin_s390_vfaeh
+      {Intrinsic::s390_vfaezb, 90556}, // __builtin_s390_vfaezb
+      {Intrinsic::s390_vfaezf, 90578}, // __builtin_s390_vfaezf
+      {Intrinsic::s390_vfaezh, 90600}, // __builtin_s390_vfaezh
+      {Intrinsic::s390_vfeeb, 90622}, // __builtin_s390_vfeeb
+      {Intrinsic::s390_vfeef, 90643}, // __builtin_s390_vfeef
+      {Intrinsic::s390_vfeeh, 90664}, // __builtin_s390_vfeeh
+      {Intrinsic::s390_vfeezb, 90685}, // __builtin_s390_vfeezb
+      {Intrinsic::s390_vfeezf, 90707}, // __builtin_s390_vfeezf
+      {Intrinsic::s390_vfeezh, 90729}, // __builtin_s390_vfeezh
+      {Intrinsic::s390_vfeneb, 90751}, // __builtin_s390_vfeneb
+      {Intrinsic::s390_vfenef, 90773}, // __builtin_s390_vfenef
+      {Intrinsic::s390_vfeneh, 90795}, // __builtin_s390_vfeneh
+      {Intrinsic::s390_vfenezb, 90817}, // __builtin_s390_vfenezb
+      {Intrinsic::s390_vfenezf, 90840}, // __builtin_s390_vfenezf
+      {Intrinsic::s390_vfenezh, 90863}, // __builtin_s390_vfenezh
+      {Intrinsic::s390_vgfmab, 90886}, // __builtin_s390_vgfmab
+      {Intrinsic::s390_vgfmaf, 90908}, // __builtin_s390_vgfmaf
+      {Intrinsic::s390_vgfmag, 90930}, // __builtin_s390_vgfmag
+      {Intrinsic::s390_vgfmah, 90952}, // __builtin_s390_vgfmah
+      {Intrinsic::s390_vgfmb, 90974}, // __builtin_s390_vgfmb
+      {Intrinsic::s390_vgfmf, 90995}, // __builtin_s390_vgfmf
+      {Intrinsic::s390_vgfmg, 91016}, // __builtin_s390_vgfmg
+      {Intrinsic::s390_vgfmh, 91037}, // __builtin_s390_vgfmh
+      {Intrinsic::s390_vistrb, 91058}, // __builtin_s390_vistrb
+      {Intrinsic::s390_vistrf, 91080}, // __builtin_s390_vistrf
+      {Intrinsic::s390_vistrh, 91102}, // __builtin_s390_vistrh
+      {Intrinsic::s390_vlbb, 91124}, // __builtin_s390_vlbb
+      {Intrinsic::s390_vll, 91144}, // __builtin_s390_vll
+      {Intrinsic::s390_vmaeb, 91163}, // __builtin_s390_vmaeb
+      {Intrinsic::s390_vmaef, 91184}, // __builtin_s390_vmaef
+      {Intrinsic::s390_vmaeh, 91205}, // __builtin_s390_vmaeh
+      {Intrinsic::s390_vmahb, 91226}, // __builtin_s390_vmahb
+      {Intrinsic::s390_vmahf, 91247}, // __builtin_s390_vmahf
+      {Intrinsic::s390_vmahh, 91268}, // __builtin_s390_vmahh
+      {Intrinsic::s390_vmaleb, 91289}, // __builtin_s390_vmaleb
+      {Intrinsic::s390_vmalef, 91311}, // __builtin_s390_vmalef
+      {Intrinsic::s390_vmaleh, 91333}, // __builtin_s390_vmaleh
+      {Intrinsic::s390_vmalhb, 91355}, // __builtin_s390_vmalhb
+      {Intrinsic::s390_vmalhf, 91377}, // __builtin_s390_vmalhf
+      {Intrinsic::s390_vmalhh, 91399}, // __builtin_s390_vmalhh
+      {Intrinsic::s390_vmalob, 91421}, // __builtin_s390_vmalob
+      {Intrinsic::s390_vmalof, 91443}, // __builtin_s390_vmalof
+      {Intrinsic::s390_vmaloh, 91465}, // __builtin_s390_vmaloh
+      {Intrinsic::s390_vmaob, 91487}, // __builtin_s390_vmaob
+      {Intrinsic::s390_vmaof, 91508}, // __builtin_s390_vmaof
+      {Intrinsic::s390_vmaoh, 91529}, // __builtin_s390_vmaoh
+      {Intrinsic::s390_vmeb, 91550}, // __builtin_s390_vmeb
+      {Intrinsic::s390_vmef, 91570}, // __builtin_s390_vmef
+      {Intrinsic::s390_vmeh, 91590}, // __builtin_s390_vmeh
+      {Intrinsic::s390_vmhb, 91610}, // __builtin_s390_vmhb
+      {Intrinsic::s390_vmhf, 91630}, // __builtin_s390_vmhf
+      {Intrinsic::s390_vmhh, 91650}, // __builtin_s390_vmhh
+      {Intrinsic::s390_vmleb, 91670}, // __builtin_s390_vmleb
+      {Intrinsic::s390_vmlef, 91691}, // __builtin_s390_vmlef
+      {Intrinsic::s390_vmleh, 91712}, // __builtin_s390_vmleh
+      {Intrinsic::s390_vmlhb, 91733}, // __builtin_s390_vmlhb
+      {Intrinsic::s390_vmlhf, 91754}, // __builtin_s390_vmlhf
+      {Intrinsic::s390_vmlhh, 91775}, // __builtin_s390_vmlhh
+      {Intrinsic::s390_vmlob, 91796}, // __builtin_s390_vmlob
+      {Intrinsic::s390_vmlof, 91817}, // __builtin_s390_vmlof
+      {Intrinsic::s390_vmloh, 91838}, // __builtin_s390_vmloh
+      {Intrinsic::s390_vmob, 91859}, // __builtin_s390_vmob
+      {Intrinsic::s390_vmof, 91879}, // __builtin_s390_vmof
+      {Intrinsic::s390_vmoh, 91899}, // __builtin_s390_vmoh
+      {Intrinsic::s390_vpdi, 91919}, // __builtin_s390_vpdi
+      {Intrinsic::s390_vperm, 91939}, // __builtin_s390_vperm
+      {Intrinsic::s390_vpklsf, 91960}, // __builtin_s390_vpklsf
+      {Intrinsic::s390_vpklsg, 91982}, // __builtin_s390_vpklsg
+      {Intrinsic::s390_vpklsh, 92004}, // __builtin_s390_vpklsh
+      {Intrinsic::s390_vpksf, 92026}, // __builtin_s390_vpksf
+      {Intrinsic::s390_vpksg, 92047}, // __builtin_s390_vpksg
+      {Intrinsic::s390_vpksh, 92068}, // __builtin_s390_vpksh
+      {Intrinsic::s390_vsbcbiq, 92089}, // __builtin_s390_vsbcbiq
+      {Intrinsic::s390_vsbiq, 92112}, // __builtin_s390_vsbiq
+      {Intrinsic::s390_vscbib, 92133}, // __builtin_s390_vscbib
+      {Intrinsic::s390_vscbif, 92155}, // __builtin_s390_vscbif
+      {Intrinsic::s390_vscbig, 92177}, // __builtin_s390_vscbig
+      {Intrinsic::s390_vscbih, 92199}, // __builtin_s390_vscbih
+      {Intrinsic::s390_vscbiq, 92221}, // __builtin_s390_vscbiq
+      {Intrinsic::s390_vsl, 92243}, // __builtin_s390_vsl
+      {Intrinsic::s390_vslb, 92262}, // __builtin_s390_vslb
+      {Intrinsic::s390_vsldb, 92282}, // __builtin_s390_vsldb
+      {Intrinsic::s390_vsq, 92303}, // __builtin_s390_vsq
+      {Intrinsic::s390_vsra, 92322}, // __builtin_s390_vsra
+      {Intrinsic::s390_vsrab, 92342}, // __builtin_s390_vsrab
+      {Intrinsic::s390_vsrl, 92363}, // __builtin_s390_vsrl
+      {Intrinsic::s390_vsrlb, 92383}, // __builtin_s390_vsrlb
+      {Intrinsic::s390_vstl, 92404}, // __builtin_s390_vstl
+      {Intrinsic::s390_vstrcb, 92424}, // __builtin_s390_vstrcb
+      {Intrinsic::s390_vstrcf, 92446}, // __builtin_s390_vstrcf
+      {Intrinsic::s390_vstrch, 92468}, // __builtin_s390_vstrch
+      {Intrinsic::s390_vstrczb, 92490}, // __builtin_s390_vstrczb
+      {Intrinsic::s390_vstrczf, 92513}, // __builtin_s390_vstrczf
+      {Intrinsic::s390_vstrczh, 92536}, // __builtin_s390_vstrczh
+      {Intrinsic::s390_vsumb, 92559}, // __builtin_s390_vsumb
+      {Intrinsic::s390_vsumgf, 92580}, // __builtin_s390_vsumgf
+      {Intrinsic::s390_vsumgh, 92602}, // __builtin_s390_vsumgh
+      {Intrinsic::s390_vsumh, 92624}, // __builtin_s390_vsumh
+      {Intrinsic::s390_vsumqf, 92645}, // __builtin_s390_vsumqf
+      {Intrinsic::s390_vsumqg, 92667}, // __builtin_s390_vsumqg
+      {Intrinsic::s390_vtm, 92689}, // __builtin_s390_vtm
+      {Intrinsic::s390_vuphb, 92708}, // __builtin_s390_vuphb
+      {Intrinsic::s390_vuphf, 92729}, // __builtin_s390_vuphf
+      {Intrinsic::s390_vuphh, 92750}, // __builtin_s390_vuphh
+      {Intrinsic::s390_vuplb, 92771}, // __builtin_s390_vuplb
+      {Intrinsic::s390_vuplf, 92792}, // __builtin_s390_vuplf
+      {Intrinsic::s390_vuplhb, 92813}, // __builtin_s390_vuplhb
+      {Intrinsic::s390_vuplhf, 92835}, // __builtin_s390_vuplhf
+      {Intrinsic::s390_vuplhh, 92857}, // __builtin_s390_vuplhh
+      {Intrinsic::s390_vuplhw, 92879}, // __builtin_s390_vuplhw
+      {Intrinsic::s390_vupllb, 92901}, // __builtin_s390_vupllb
+      {Intrinsic::s390_vupllf, 92923}, // __builtin_s390_vupllf
+      {Intrinsic::s390_vupllh, 92945}, // __builtin_s390_vupllh
+      {Intrinsic::s390_tend, 88194}, // __builtin_tend
+      {Intrinsic::s390_ppa_txassist, 89826}, // __builtin_tx_assist
+      {Intrinsic::s390_etnd, 89779}, // __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, 93475}, // __builtin_ia32_addcarry_u32
+      {Intrinsic::x86_addcarry_u64, 93503}, // __builtin_ia32_addcarry_u64
+      {Intrinsic::x86_addcarryx_u32, 93531}, // __builtin_ia32_addcarryx_u32
+      {Intrinsic::x86_addcarryx_u64, 93560}, // __builtin_ia32_addcarryx_u64
+      {Intrinsic::x86_avx512_mask_add_pd_512, 99757}, // __builtin_ia32_addpd512_mask
+      {Intrinsic::x86_avx512_mask_add_ps_512, 99786}, // __builtin_ia32_addps512_mask
+      {Intrinsic::x86_avx512_mask_add_sd_round, 99815}, // __builtin_ia32_addsd_round_mask
+      {Intrinsic::x86_avx512_mask_add_ss_round, 99847}, // __builtin_ia32_addss_round_mask
+      {Intrinsic::x86_sse3_addsub_pd, 130930}, // __builtin_ia32_addsubpd
+      {Intrinsic::x86_avx_addsub_pd_256, 93756}, // __builtin_ia32_addsubpd256
+      {Intrinsic::x86_sse3_addsub_ps, 130954}, // __builtin_ia32_addsubps
+      {Intrinsic::x86_avx_addsub_ps_256, 93783}, // __builtin_ia32_addsubps256
+      {Intrinsic::x86_aesni_aesdec, 93589}, // __builtin_ia32_aesdec128
+      {Intrinsic::x86_aesni_aesdeclast, 93614}, // __builtin_ia32_aesdeclast128
+      {Intrinsic::x86_aesni_aesenc, 93643}, // __builtin_ia32_aesenc128
+      {Intrinsic::x86_aesni_aesenclast, 93668}, // __builtin_ia32_aesenclast128
+      {Intrinsic::x86_aesni_aesimc, 93697}, // __builtin_ia32_aesimc128
+      {Intrinsic::x86_aesni_aeskeygenassist, 93722}, // __builtin_ia32_aeskeygenassist128
+      {Intrinsic::x86_bmi_bextr_32, 125050}, // __builtin_ia32_bextr_u32
+      {Intrinsic::x86_bmi_bextr_64, 125075}, // __builtin_ia32_bextr_u64
+      {Intrinsic::x86_tbm_bextri_u32, 132928}, // __builtin_ia32_bextri_u32
+      {Intrinsic::x86_tbm_bextri_u64, 132954}, // __builtin_ia32_bextri_u64
+      {Intrinsic::x86_sse41_blendvpd, 131131}, // __builtin_ia32_blendvpd
+      {Intrinsic::x86_avx_blendv_pd_256, 93810}, // __builtin_ia32_blendvpd256
+      {Intrinsic::x86_sse41_blendvps, 131155}, // __builtin_ia32_blendvps
+      {Intrinsic::x86_avx_blendv_ps_256, 93837}, // __builtin_ia32_blendvps256
+      {Intrinsic::x86_avx512_mask_broadcastf32x2_256, 99879}, // __builtin_ia32_broadcastf32x2_256_mask
+      {Intrinsic::x86_avx512_mask_broadcastf32x2_512, 99918}, // __builtin_ia32_broadcastf32x2_512_mask
+      {Intrinsic::x86_avx512_mask_broadcastf32x4_256, 99957}, // __builtin_ia32_broadcastf32x4_256_mask
+      {Intrinsic::x86_avx512_mask_broadcastf32x4_512, 99996}, // __builtin_ia32_broadcastf32x4_512
+      {Intrinsic::x86_avx512_mask_broadcastf32x8_512, 100030}, // __builtin_ia32_broadcastf32x8_512_mask
+      {Intrinsic::x86_avx512_mask_broadcastf64x2_256, 100069}, // __builtin_ia32_broadcastf64x2_256_mask
+      {Intrinsic::x86_avx512_mask_broadcastf64x2_512, 100108}, // __builtin_ia32_broadcastf64x2_512_mask
+      {Intrinsic::x86_avx512_mask_broadcastf64x4_512, 100147}, // __builtin_ia32_broadcastf64x4_512
+      {Intrinsic::x86_avx512_mask_broadcasti32x2_128, 100181}, // __builtin_ia32_broadcasti32x2_128_mask
+      {Intrinsic::x86_avx512_mask_broadcasti32x2_256, 100220}, // __builtin_ia32_broadcasti32x2_256_mask
+      {Intrinsic::x86_avx512_mask_broadcasti32x2_512, 100259}, // __builtin_ia32_broadcasti32x2_512_mask
+      {Intrinsic::x86_avx512_mask_broadcasti32x4_256, 100298}, // __builtin_ia32_broadcasti32x4_256_mask
+      {Intrinsic::x86_avx512_mask_broadcasti32x4_512, 100337}, // __builtin_ia32_broadcasti32x4_512
+      {Intrinsic::x86_avx512_mask_broadcasti32x8_512, 100371}, // __builtin_ia32_broadcasti32x8_512_mask
+      {Intrinsic::x86_avx512_mask_broadcasti64x2_256, 100410}, // __builtin_ia32_broadcasti64x2_256_mask
+      {Intrinsic::x86_avx512_mask_broadcasti64x2_512, 100449}, // __builtin_ia32_broadcasti64x2_512_mask
+      {Intrinsic::x86_avx512_mask_broadcasti64x4_512, 100488}, // __builtin_ia32_broadcasti64x4_512
+      {Intrinsic::x86_avx512_broadcastmb_128, 97716}, // __builtin_ia32_broadcastmb128
+      {Intrinsic::x86_avx512_broadcastmb_256, 97746}, // __builtin_ia32_broadcastmb256
+      {Intrinsic::x86_avx512_broadcastmb_512, 97776}, // __builtin_ia32_broadcastmb512
+      {Intrinsic::x86_avx512_broadcastmw_128, 97806}, // __builtin_ia32_broadcastmw128
+      {Intrinsic::x86_avx512_broadcastmw_256, 97836}, // __builtin_ia32_broadcastmw256
+      {Intrinsic::x86_avx512_broadcastmw_512, 97866}, // __builtin_ia32_broadcastmw512
+      {Intrinsic::x86_bmi_bzhi_64, 125123}, // __builtin_ia32_bzhi_di
+      {Intrinsic::x86_bmi_bzhi_32, 125100}, // __builtin_ia32_bzhi_si
+      {Intrinsic::x86_sse2_clflush, 129195}, // __builtin_ia32_clflush
+      {Intrinsic::x86_clflushopt, 125238}, // __builtin_ia32_clflushopt
+      {Intrinsic::x86_clzero, 125264}, // __builtin_ia32_clzero
+      {Intrinsic::x86_avx512_mask_cmp_pd_128, 100522}, // __builtin_ia32_cmppd128_mask
+      {Intrinsic::x86_avx512_mask_cmp_pd_256, 100551}, // __builtin_ia32_cmppd256_mask
+      {Intrinsic::x86_avx512_mask_cmp_pd_512, 100580}, // __builtin_ia32_cmppd512_mask
+      {Intrinsic::x86_avx512_mask_cmp_ps_128, 100609}, // __builtin_ia32_cmpps128_mask
+      {Intrinsic::x86_avx512_mask_cmp_ps_256, 100638}, // __builtin_ia32_cmpps256_mask
+      {Intrinsic::x86_avx512_mask_cmp_ps_512, 100667}, // __builtin_ia32_cmpps512_mask
+      {Intrinsic::x86_sse2_cmp_sd, 129218}, // __builtin_ia32_cmpsd
+      {Intrinsic::x86_avx512_mask_cmp_sd, 100696}, // __builtin_ia32_cmpsd_mask
+      {Intrinsic::x86_sse_cmp_ss, 128370}, // __builtin_ia32_cmpss
+      {Intrinsic::x86_avx512_mask_cmp_ss, 100722}, // __builtin_ia32_cmpss_mask
+      {Intrinsic::x86_sse_comieq_ss, 128391}, // __builtin_ia32_comieq
+      {Intrinsic::x86_sse_comige_ss, 128413}, // __builtin_ia32_comige
+      {Intrinsic::x86_sse_comigt_ss, 128435}, // __builtin_ia32_comigt
+      {Intrinsic::x86_sse_comile_ss, 128457}, // __builtin_ia32_comile
+      {Intrinsic::x86_sse_comilt_ss, 128479}, // __builtin_ia32_comilt
+      {Intrinsic::x86_sse_comineq_ss, 128501}, // __builtin_ia32_comineq
+      {Intrinsic::x86_sse2_comieq_sd, 129239}, // __builtin_ia32_comisdeq
+      {Intrinsic::x86_sse2_comige_sd, 129263}, // __builtin_ia32_comisdge
+      {Intrinsic::x86_sse2_comigt_sd, 129287}, // __builtin_ia32_comisdgt
+      {Intrinsic::x86_sse2_comile_sd, 129311}, // __builtin_ia32_comisdle
+      {Intrinsic::x86_sse2_comilt_sd, 129335}, // __builtin_ia32_comisdlt
+      {Intrinsic::x86_sse2_comineq_sd, 129359}, // __builtin_ia32_comisdneq
+      {Intrinsic::x86_avx512_mask_compress_pd_128, 100850}, // __builtin_ia32_compressdf128_mask
+      {Intrinsic::x86_avx512_mask_compress_pd_256, 100884}, // __builtin_ia32_compressdf256_mask
+      {Intrinsic::x86_avx512_mask_compress_pd_512, 100918}, // __builtin_ia32_compressdf512_mask
+      {Intrinsic::x86_avx512_mask_compress_q_128, 101054}, // __builtin_ia32_compressdi128_mask
+      {Intrinsic::x86_avx512_mask_compress_q_256, 101088}, // __builtin_ia32_compressdi256_mask
+      {Intrinsic::x86_avx512_mask_compress_q_512, 101122}, // __builtin_ia32_compressdi512_mask
+      {Intrinsic::x86_avx512_mask_compress_ps_128, 100952}, // __builtin_ia32_compresssf128_mask
+      {Intrinsic::x86_avx512_mask_compress_ps_256, 100986}, // __builtin_ia32_compresssf256_mask
+      {Intrinsic::x86_avx512_mask_compress_ps_512, 101020}, // __builtin_ia32_compresssf512_mask
+      {Intrinsic::x86_avx512_mask_compress_d_128, 100748}, // __builtin_ia32_compresssi128_mask
+      {Intrinsic::x86_avx512_mask_compress_d_256, 100782}, // __builtin_ia32_compresssi256_mask
+      {Intrinsic::x86_avx512_mask_compress_d_512, 100816}, // __builtin_ia32_compresssi512_mask
+      {Intrinsic::x86_avx512_mask_compress_store_pd_128, 101273}, // __builtin_ia32_compressstoredf128_mask
+      {Intrinsic::x86_avx512_mask_compress_store_pd_256, 101312}, // __builtin_ia32_compressstoredf256_mask
+      {Intrinsic::x86_avx512_mask_compress_store_pd_512, 101351}, // __builtin_ia32_compressstoredf512_mask
+      {Intrinsic::x86_avx512_mask_compress_store_q_128, 101507}, // __builtin_ia32_compressstoredi128_mask
+      {Intrinsic::x86_avx512_mask_compress_store_q_256, 101546}, // __builtin_ia32_compressstoredi256_mask
+      {Intrinsic::x86_avx512_mask_compress_store_q_512, 101585}, // __builtin_ia32_compressstoredi512_mask
+      {Intrinsic::x86_avx512_mask_compress_store_ps_128, 101390}, // __builtin_ia32_compressstoresf128_mask
+      {Intrinsic::x86_avx512_mask_compress_store_ps_256, 101429}, // __builtin_ia32_compressstoresf256_mask
+      {Intrinsic::x86_avx512_mask_compress_store_ps_512, 101468}, // __builtin_ia32_compressstoresf512_mask
+      {Intrinsic::x86_avx512_mask_compress_store_d_128, 101156}, // __builtin_ia32_compressstoresi128_mask
+      {Intrinsic::x86_avx512_mask_compress_store_d_256, 101195}, // __builtin_ia32_compressstoresi256_mask
+      {Intrinsic::x86_avx512_mask_compress_store_d_512, 101234}, // __builtin_ia32_compressstoresi512_mask
+      {Intrinsic::x86_sse42_crc32_64_64, 131642}, // __builtin_ia32_crc32di
+      {Intrinsic::x86_sse42_crc32_32_16, 131573}, // __builtin_ia32_crc32hi
+      {Intrinsic::x86_sse42_crc32_32_8, 131619}, // __builtin_ia32_crc32qi
+      {Intrinsic::x86_sse42_crc32_32_32, 131596}, // __builtin_ia32_crc32si
+      {Intrinsic::x86_avx512_cvtb2mask_128, 97896}, // __builtin_ia32_cvtb2mask128
+      {Intrinsic::x86_avx512_cvtb2mask_256, 97924}, // __builtin_ia32_cvtb2mask256
+      {Intrinsic::x86_avx512_cvtb2mask_512, 97952}, // __builtin_ia32_cvtb2mask512
+      {Intrinsic::x86_avx512_cvtd2mask_128, 97980}, // __builtin_ia32_cvtd2mask128
+      {Intrinsic::x86_avx512_cvtd2mask_256, 98008}, // __builtin_ia32_cvtd2mask256
+      {Intrinsic::x86_avx512_cvtd2mask_512, 98036}, // __builtin_ia32_cvtd2mask512
+      {Intrinsic::x86_sse2_cvtdq2ps, 129384}, // __builtin_ia32_cvtdq2ps
+      {Intrinsic::x86_avx512_mask_cvtdq2ps_128, 101846}, // __builtin_ia32_cvtdq2ps128_mask
+      {Intrinsic::x86_avx_cvtdq2_ps_256, 93945}, // __builtin_ia32_cvtdq2ps256
+      {Intrinsic::x86_avx512_mask_cvtdq2ps_256, 101878}, // __builtin_ia32_cvtdq2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtdq2ps_512, 101910}, // __builtin_ia32_cvtdq2ps512_mask
+      {Intrinsic::x86_sse2_cvtpd2dq, 129408}, // __builtin_ia32_cvtpd2dq
+      {Intrinsic::x86_avx512_mask_cvtpd2dq_128, 101942}, // __builtin_ia32_cvtpd2dq128_mask
+      {Intrinsic::x86_avx_cvt_pd2dq_256, 93891}, // __builtin_ia32_cvtpd2dq256
+      {Intrinsic::x86_avx512_mask_cvtpd2dq_256, 101974}, // __builtin_ia32_cvtpd2dq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2dq_512, 102006}, // __builtin_ia32_cvtpd2dq512_mask
+      {Intrinsic::x86_sse_cvtpd2pi, 128524}, // __builtin_ia32_cvtpd2pi
+      {Intrinsic::x86_sse2_cvtpd2ps, 129432}, // __builtin_ia32_cvtpd2ps
+      {Intrinsic::x86_avx_cvt_pd2_ps_256, 93864}, // __builtin_ia32_cvtpd2ps256
+      {Intrinsic::x86_avx512_mask_cvtpd2ps_256, 102067}, // __builtin_ia32_cvtpd2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2ps_512, 102099}, // __builtin_ia32_cvtpd2ps512_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2ps, 102038}, // __builtin_ia32_cvtpd2ps_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2qq_128, 102131}, // __builtin_ia32_cvtpd2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2qq_256, 102163}, // __builtin_ia32_cvtpd2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2qq_512, 102195}, // __builtin_ia32_cvtpd2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2udq_128, 102227}, // __builtin_ia32_cvtpd2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2udq_256, 102260}, // __builtin_ia32_cvtpd2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2udq_512, 102293}, // __builtin_ia32_cvtpd2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_128, 102326}, // __builtin_ia32_cvtpd2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_256, 102359}, // __builtin_ia32_cvtpd2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvtpd2uqq_512, 102392}, // __builtin_ia32_cvtpd2uqq512_mask
+      {Intrinsic::x86_sse_cvtpi2pd, 128548}, // __builtin_ia32_cvtpi2pd
+      {Intrinsic::x86_sse_cvtpi2ps, 128572}, // __builtin_ia32_cvtpi2ps
+      {Intrinsic::x86_sse2_cvtps2dq, 129456}, // __builtin_ia32_cvtps2dq
+      {Intrinsic::x86_avx512_mask_cvtps2dq_128, 102425}, // __builtin_ia32_cvtps2dq128_mask
+      {Intrinsic::x86_avx_cvt_ps2dq_256, 93918}, // __builtin_ia32_cvtps2dq256
+      {Intrinsic::x86_avx512_mask_cvtps2dq_256, 102457}, // __builtin_ia32_cvtps2dq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2dq_512, 102489}, // __builtin_ia32_cvtps2dq512_mask
+      {Intrinsic::x86_avx512_mask_cvtps2pd_128, 102521}, // __builtin_ia32_cvtps2pd128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2pd_256, 102553}, // __builtin_ia32_cvtps2pd256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2pd_512, 102585}, // __builtin_ia32_cvtps2pd512_mask
+      {Intrinsic::x86_sse_cvtps2pi, 128596}, // __builtin_ia32_cvtps2pi
+      {Intrinsic::x86_avx512_mask_cvtps2qq_128, 102617}, // __builtin_ia32_cvtps2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2qq_256, 102649}, // __builtin_ia32_cvtps2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2qq_512, 102681}, // __builtin_ia32_cvtps2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvtps2udq_128, 102713}, // __builtin_ia32_cvtps2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2udq_256, 102746}, // __builtin_ia32_cvtps2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2udq_512, 102779}, // __builtin_ia32_cvtps2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvtps2uqq_128, 102812}, // __builtin_ia32_cvtps2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvtps2uqq_256, 102845}, // __builtin_ia32_cvtps2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvtps2uqq_512, 102878}, // __builtin_ia32_cvtps2uqq512_mask
+      {Intrinsic::x86_avx512_cvtq2mask_128, 98064}, // __builtin_ia32_cvtq2mask128
+      {Intrinsic::x86_avx512_cvtq2mask_256, 98092}, // __builtin_ia32_cvtq2mask256
+      {Intrinsic::x86_avx512_cvtq2mask_512, 98120}, // __builtin_ia32_cvtq2mask512
+      {Intrinsic::x86_avx512_mask_cvtqq2pd_128, 102911}, // __builtin_ia32_cvtqq2pd128_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2pd_256, 102943}, // __builtin_ia32_cvtqq2pd256_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2pd_512, 102975}, // __builtin_ia32_cvtqq2pd512_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2ps_128, 103007}, // __builtin_ia32_cvtqq2ps128_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2ps_256, 103039}, // __builtin_ia32_cvtqq2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtqq2ps_512, 103071}, // __builtin_ia32_cvtqq2ps512_mask
+      {Intrinsic::x86_sse2_cvtsd2si, 129480}, // __builtin_ia32_cvtsd2si
+      {Intrinsic::x86_sse2_cvtsd2si64, 129504}, // __builtin_ia32_cvtsd2si64
+      {Intrinsic::x86_sse2_cvtsd2ss, 129530}, // __builtin_ia32_cvtsd2ss
+      {Intrinsic::x86_avx512_mask_cvtsd2ss_round, 103103}, // __builtin_ia32_cvtsd2ss_round_mask
+      {Intrinsic::x86_avx512_cvtsi2sd64, 98148}, // __builtin_ia32_cvtsi2sd64
+      {Intrinsic::x86_avx512_cvtsi2ss32, 98174}, // __builtin_ia32_cvtsi2ss32
+      {Intrinsic::x86_avx512_cvtsi2ss64, 98200}, // __builtin_ia32_cvtsi2ss64
+      {Intrinsic::x86_avx512_mask_cvtss2sd_round, 103138}, // __builtin_ia32_cvtss2sd_round_mask
+      {Intrinsic::x86_sse_cvtss2si, 128620}, // __builtin_ia32_cvtss2si
+      {Intrinsic::x86_sse_cvtss2si64, 128644}, // __builtin_ia32_cvtss2si64
+      {Intrinsic::x86_sse2_cvttpd2dq, 129554}, // __builtin_ia32_cvttpd2dq
+      {Intrinsic::x86_avx512_mask_cvttpd2dq_128, 103173}, // __builtin_ia32_cvttpd2dq128_mask
+      {Intrinsic::x86_avx_cvtt_pd2dq_256, 93972}, // __builtin_ia32_cvttpd2dq256
+      {Intrinsic::x86_avx512_mask_cvttpd2dq_256, 103206}, // __builtin_ia32_cvttpd2dq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2dq_512, 103239}, // __builtin_ia32_cvttpd2dq512_mask
+      {Intrinsic::x86_sse_cvttpd2pi, 128670}, // __builtin_ia32_cvttpd2pi
+      {Intrinsic::x86_avx512_mask_cvttpd2qq_128, 103272}, // __builtin_ia32_cvttpd2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2qq_256, 103305}, // __builtin_ia32_cvttpd2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2qq_512, 103338}, // __builtin_ia32_cvttpd2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2udq_128, 103371}, // __builtin_ia32_cvttpd2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2udq_256, 103405}, // __builtin_ia32_cvttpd2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2udq_512, 103439}, // __builtin_ia32_cvttpd2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_128, 103473}, // __builtin_ia32_cvttpd2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_256, 103507}, // __builtin_ia32_cvttpd2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvttpd2uqq_512, 103541}, // __builtin_ia32_cvttpd2uqq512_mask
+      {Intrinsic::x86_sse2_cvttps2dq, 129579}, // __builtin_ia32_cvttps2dq
+      {Intrinsic::x86_avx512_mask_cvttps2dq_128, 103575}, // __builtin_ia32_cvttps2dq128_mask
+      {Intrinsic::x86_avx_cvtt_ps2dq_256, 94000}, // __builtin_ia32_cvttps2dq256
+      {Intrinsic::x86_avx512_mask_cvttps2dq_256, 103608}, // __builtin_ia32_cvttps2dq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2dq_512, 103641}, // __builtin_ia32_cvttps2dq512_mask
+      {Intrinsic::x86_sse_cvttps2pi, 128695}, // __builtin_ia32_cvttps2pi
+      {Intrinsic::x86_avx512_mask_cvttps2qq_128, 103674}, // __builtin_ia32_cvttps2qq128_mask
+      {Intrinsic::x86_avx512_mask_cvttps2qq_256, 103707}, // __builtin_ia32_cvttps2qq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2qq_512, 103740}, // __builtin_ia32_cvttps2qq512_mask
+      {Intrinsic::x86_avx512_mask_cvttps2udq_128, 103773}, // __builtin_ia32_cvttps2udq128_mask
+      {Intrinsic::x86_avx512_mask_cvttps2udq_256, 103807}, // __builtin_ia32_cvttps2udq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2udq_512, 103841}, // __builtin_ia32_cvttps2udq512_mask
+      {Intrinsic::x86_avx512_mask_cvttps2uqq_128, 103875}, // __builtin_ia32_cvttps2uqq128_mask
+      {Intrinsic::x86_avx512_mask_cvttps2uqq_256, 103909}, // __builtin_ia32_cvttps2uqq256_mask
+      {Intrinsic::x86_avx512_mask_cvttps2uqq_512, 103943}, // __builtin_ia32_cvttps2uqq512_mask
+      {Intrinsic::x86_sse2_cvttsd2si, 129604}, // __builtin_ia32_cvttsd2si
+      {Intrinsic::x86_sse2_cvttsd2si64, 129629}, // __builtin_ia32_cvttsd2si64
+      {Intrinsic::x86_sse_cvttss2si, 128720}, // __builtin_ia32_cvttss2si
+      {Intrinsic::x86_sse_cvttss2si64, 128745}, // __builtin_ia32_cvttss2si64
+      {Intrinsic::x86_avx512_mask_cvtudq2ps_128, 103977}, // __builtin_ia32_cvtudq2ps128_mask
+      {Intrinsic::x86_avx512_mask_cvtudq2ps_256, 104010}, // __builtin_ia32_cvtudq2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtudq2ps_512, 104043}, // __builtin_ia32_cvtudq2ps512_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_128, 104076}, // __builtin_ia32_cvtuqq2pd128_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_256, 104109}, // __builtin_ia32_cvtuqq2pd256_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2pd_512, 104142}, // __builtin_ia32_cvtuqq2pd512_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_128, 104175}, // __builtin_ia32_cvtuqq2ps128_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_256, 104208}, // __builtin_ia32_cvtuqq2ps256_mask
+      {Intrinsic::x86_avx512_mask_cvtuqq2ps_512, 104241}, // __builtin_ia32_cvtuqq2ps512_mask
+      {Intrinsic::x86_avx512_cvtusi2sd, 98454}, // __builtin_ia32_cvtusi2sd32
+      {Intrinsic::x86_avx512_cvtusi642sd, 98508}, // __builtin_ia32_cvtusi2sd64
+      {Intrinsic::x86_avx512_cvtusi2ss, 98481}, // __builtin_ia32_cvtusi2ss32
+      {Intrinsic::x86_avx512_cvtusi642ss, 98535}, // __builtin_ia32_cvtusi2ss64
+      {Intrinsic::x86_avx512_cvtw2mask_128, 98562}, // __builtin_ia32_cvtw2mask128
+      {Intrinsic::x86_avx512_cvtw2mask_256, 98590}, // __builtin_ia32_cvtw2mask256
+      {Intrinsic::x86_avx512_cvtw2mask_512, 98618}, // __builtin_ia32_cvtw2mask512
+      {Intrinsic::x86_avx512_mask_dbpsadbw_128, 104274}, // __builtin_ia32_dbpsadbw128_mask
+      {Intrinsic::x86_avx512_mask_dbpsadbw_256, 104306}, // __builtin_ia32_dbpsadbw256_mask
+      {Intrinsic::x86_avx512_mask_dbpsadbw_512, 104338}, // __builtin_ia32_dbpsadbw512_mask
+      {Intrinsic::x86_avx512_mask_div_pd_512, 104370}, // __builtin_ia32_divpd512_mask
+      {Intrinsic::x86_avx512_mask_div_ps_512, 104399}, // __builtin_ia32_divps512_mask
+      {Intrinsic::x86_avx512_mask_div_sd_round, 104428}, // __builtin_ia32_divsd_round_mask
+      {Intrinsic::x86_avx512_mask_div_ss_round, 104460}, // __builtin_ia32_divss_round_mask
+      {Intrinsic::x86_sse41_dppd, 131179}, // __builtin_ia32_dppd
+      {Intrinsic::x86_sse41_dpps, 131199}, // __builtin_ia32_dpps
+      {Intrinsic::x86_avx_dp_ps_256, 94028}, // __builtin_ia32_dpps256
+      {Intrinsic::x86_mmx_emms, 126342}, // __builtin_ia32_emms
+      {Intrinsic::x86_avx512_exp2_pd, 98646}, // __builtin_ia32_exp2pd_mask
+      {Intrinsic::x86_avx512_exp2_ps, 98673}, // __builtin_ia32_exp2ps_mask
+      {Intrinsic::x86_avx512_mask_expand_pd_128, 105020}, // __builtin_ia32_expanddf128_mask
+      {Intrinsic::x86_avx512_mask_expand_pd_256, 105052}, // __builtin_ia32_expanddf256_mask
+      {Intrinsic::x86_avx512_mask_expand_pd_512, 105084}, // __builtin_ia32_expanddf512_mask
+      {Intrinsic::x86_avx512_mask_expand_q_128, 105212}, // __builtin_ia32_expanddi128_mask
+      {Intrinsic::x86_avx512_mask_expand_q_256, 105244}, // __builtin_ia32_expanddi256_mask
+      {Intrinsic::x86_avx512_mask_expand_q_512, 105276}, // __builtin_ia32_expanddi512_mask
+      {Intrinsic::x86_avx512_mask_expand_load_pd_128, 104696}, // __builtin_ia32_expandloaddf128_mask
+      {Intrinsic::x86_avx512_mask_expand_load_pd_256, 104732}, // __builtin_ia32_expandloaddf256_mask
+      {Intrinsic::x86_avx512_mask_expand_load_pd_512, 104768}, // __builtin_ia32_expandloaddf512_mask
+      {Intrinsic::x86_avx512_mask_expand_load_q_128, 104912}, // __builtin_ia32_expandloaddi128_mask
+      {Intrinsic::x86_avx512_mask_expand_load_q_256, 104948}, // __builtin_ia32_expandloaddi256_mask
+      {Intrinsic::x86_avx512_mask_expand_load_q_512, 104984}, // __builtin_ia32_expandloaddi512_mask
+      {Intrinsic::x86_avx512_mask_expand_load_ps_128, 104804}, // __builtin_ia32_expandloadsf128_mask
+      {Intrinsic::x86_avx512_mask_expand_load_ps_256, 104840}, // __builtin_ia32_expandloadsf256_mask
+      {Intrinsic::x86_avx512_mask_expand_load_ps_512, 104876}, // __builtin_ia32_expandloadsf512_mask
+      {Intrinsic::x86_avx512_mask_expand_load_d_128, 104588}, // __builtin_ia32_expandloadsi128_mask
+      {Intrinsic::x86_avx512_mask_expand_load_d_256, 104624}, // __builtin_ia32_expandloadsi256_mask
+      {Intrinsic::x86_avx512_mask_expand_load_d_512, 104660}, // __builtin_ia32_expandloadsi512_mask
+      {Intrinsic::x86_avx512_mask_expand_ps_128, 105116}, // __builtin_ia32_expandsf128_mask
+      {Intrinsic::x86_avx512_mask_expand_ps_256, 105148}, // __builtin_ia32_expandsf256_mask
+      {Intrinsic::x86_avx512_mask_expand_ps_512, 105180}, // __builtin_ia32_expandsf512_mask
+      {Intrinsic::x86_avx512_mask_expand_d_128, 104492}, // __builtin_ia32_expandsi128_mask
+      {Intrinsic::x86_avx512_mask_expand_d_256, 104524}, // __builtin_ia32_expandsi256_mask
+      {Intrinsic::x86_avx512_mask_expand_d_512, 104556}, // __builtin_ia32_expandsi512_mask
+      {Intrinsic::x86_sse4a_extrq, 132067}, // __builtin_ia32_extrq
+      {Intrinsic::x86_sse4a_extrqi, 132088}, // __builtin_ia32_extrqi
+      {Intrinsic::x86_mmx_femms, 126362}, // __builtin_ia32_femms
+      {Intrinsic::x86_avx512_mask_fixupimm_pd_128, 105308}, // __builtin_ia32_fixupimmpd128_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_128, 119432}, // __builtin_ia32_fixupimmpd128_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_pd_256, 105342}, // __builtin_ia32_fixupimmpd256_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_256, 119467}, // __builtin_ia32_fixupimmpd256_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_pd_512, 105376}, // __builtin_ia32_fixupimmpd512_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_pd_512, 119502}, // __builtin_ia32_fixupimmpd512_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ps_128, 105410}, // __builtin_ia32_fixupimmps128_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_128, 119537}, // __builtin_ia32_fixupimmps128_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ps_256, 105444}, // __builtin_ia32_fixupimmps256_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_256, 119572}, // __builtin_ia32_fixupimmps256_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ps_512, 105478}, // __builtin_ia32_fixupimmps512_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ps_512, 119607}, // __builtin_ia32_fixupimmps512_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_sd, 105512}, // __builtin_ia32_fixupimmsd_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_sd, 119642}, // __builtin_ia32_fixupimmsd_maskz
+      {Intrinsic::x86_avx512_mask_fixupimm_ss, 105543}, // __builtin_ia32_fixupimmss_mask
+      {Intrinsic::x86_avx512_maskz_fixupimm_ss, 119674}, // __builtin_ia32_fixupimmss_maskz
+      {Intrinsic::x86_avx512_mask_fpclass_pd_128, 105574}, // __builtin_ia32_fpclasspd128_mask
+      {Intrinsic::x86_avx512_mask_fpclass_pd_256, 105607}, // __builtin_ia32_fpclasspd256_mask
+      {Intrinsic::x86_avx512_mask_fpclass_pd_512, 105640}, // __builtin_ia32_fpclasspd512_mask
+      {Intrinsic::x86_avx512_mask_fpclass_ps_128, 105673}, // __builtin_ia32_fpclassps128_mask
+      {Intrinsic::x86_avx512_mask_fpclass_ps_256, 105706}, // __builtin_ia32_fpclassps256_mask
+      {Intrinsic::x86_avx512_mask_fpclass_ps_512, 105739}, // __builtin_ia32_fpclassps512_mask
+      {Intrinsic::x86_avx512_mask_fpclass_sd, 105772}, // __builtin_ia32_fpclasssd_mask
+      {Intrinsic::x86_avx512_mask_fpclass_ss, 105802}, // __builtin_ia32_fpclassss_mask
+      {Intrinsic::x86_fxrstor, 126248}, // __builtin_ia32_fxrstor
+      {Intrinsic::x86_fxrstor64, 126271}, // __builtin_ia32_fxrstor64
+      {Intrinsic::x86_fxsave, 126296}, // __builtin_ia32_fxsave
+      {Intrinsic::x86_fxsave64, 126318}, // __builtin_ia32_fxsave64
+      {Intrinsic::x86_avx512_gather3div2_df, 98928}, // __builtin_ia32_gather3div2df
+      {Intrinsic::x86_avx512_gather3div2_di, 98957}, // __builtin_ia32_gather3div2di
+      {Intrinsic::x86_avx512_gather3div4_df, 98986}, // __builtin_ia32_gather3div4df
+      {Intrinsic::x86_avx512_gather3div4_di, 99015}, // __builtin_ia32_gather3div4di
+      {Intrinsic::x86_avx512_gather3div4_sf, 99044}, // __builtin_ia32_gather3div4sf
+      {Intrinsic::x86_avx512_gather3div4_si, 99073}, // __builtin_ia32_gather3div4si
+      {Intrinsic::x86_avx512_gather3div8_sf, 99102}, // __builtin_ia32_gather3div8sf
+      {Intrinsic::x86_avx512_gather3div8_si, 99131}, // __builtin_ia32_gather3div8si
+      {Intrinsic::x86_avx512_gather3siv2_df, 99160}, // __builtin_ia32_gather3siv2df
+      {Intrinsic::x86_avx512_gather3siv2_di, 99189}, // __builtin_ia32_gather3siv2di
+      {Intrinsic::x86_avx512_gather3siv4_df, 99218}, // __builtin_ia32_gather3siv4df
+      {Intrinsic::x86_avx512_gather3siv4_di, 99247}, // __builtin_ia32_gather3siv4di
+      {Intrinsic::x86_avx512_gather3siv4_sf, 99276}, // __builtin_ia32_gather3siv4sf
+      {Intrinsic::x86_avx512_gather3siv4_si, 99305}, // __builtin_ia32_gather3siv4si
+      {Intrinsic::x86_avx512_gather3siv8_sf, 99334}, // __builtin_ia32_gather3siv8sf
+      {Intrinsic::x86_avx512_gather3siv8_si, 99363}, // __builtin_ia32_gather3siv8si
+      {Intrinsic::x86_avx2_gather_d_d, 95356}, // __builtin_ia32_gatherd_d
+      {Intrinsic::x86_avx2_gather_d_d_256, 95381}, // __builtin_ia32_gatherd_d256
+      {Intrinsic::x86_avx2_gather_d_pd, 95409}, // __builtin_ia32_gatherd_pd
+      {Intrinsic::x86_avx2_gather_d_pd_256, 95435}, // __builtin_ia32_gatherd_pd256
+      {Intrinsic::x86_avx2_gather_d_ps, 95464}, // __builtin_ia32_gatherd_ps
+      {Intrinsic::x86_avx2_gather_d_ps_256, 95490}, // __builtin_ia32_gatherd_ps256
+      {Intrinsic::x86_avx2_gather_d_q, 95519}, // __builtin_ia32_gatherd_q
+      {Intrinsic::x86_avx2_gather_d_q_256, 95544}, // __builtin_ia32_gatherd_q256
+      {Intrinsic::x86_avx512_gather_qps_512, 98899}, // __builtin_ia32_gatherdiv16sf
+      {Intrinsic::x86_avx512_gather_qpi_512, 98842}, // __builtin_ia32_gatherdiv16si
+      {Intrinsic::x86_avx512_gather_qpd_512, 98814}, // __builtin_ia32_gatherdiv8df
+      {Intrinsic::x86_avx512_gather_qpq_512, 98871}, // __builtin_ia32_gatherdiv8di
+      {Intrinsic::x86_avx512_gatherpf_dpd_512, 99392}, // __builtin_ia32_gatherpfdpd
+      {Intrinsic::x86_avx512_gatherpf_dps_512, 99419}, // __builtin_ia32_gatherpfdps
+      {Intrinsic::x86_avx512_gatherpf_qpd_512, 99446}, // __builtin_ia32_gatherpfqpd
+      {Intrinsic::x86_avx512_gatherpf_qps_512, 99473}, // __builtin_ia32_gatherpfqps
+      {Intrinsic::x86_avx2_gather_q_d, 95572}, // __builtin_ia32_gatherq_d
+      {Intrinsic::x86_avx2_gather_q_d_256, 95597}, // __builtin_ia32_gatherq_d256
+      {Intrinsic::x86_avx2_gather_q_pd, 95625}, // __builtin_ia32_gatherq_pd
+      {Intrinsic::x86_avx2_gather_q_pd_256, 95651}, // __builtin_ia32_gatherq_pd256
+      {Intrinsic::x86_avx2_gather_q_ps, 95680}, // __builtin_ia32_gatherq_ps
+      {Intrinsic::x86_avx2_gather_q_ps_256, 95706}, // __builtin_ia32_gatherq_ps256
+      {Intrinsic::x86_avx2_gather_q_q, 95735}, // __builtin_ia32_gatherq_q
+      {Intrinsic::x86_avx2_gather_q_q_256, 95760}, // __builtin_ia32_gatherq_q256
+      {Intrinsic::x86_avx512_gather_dps_512, 98785}, // __builtin_ia32_gathersiv16sf
+      {Intrinsic::x86_avx512_gather_dpi_512, 98728}, // __builtin_ia32_gathersiv16si
+      {Intrinsic::x86_avx512_gather_dpd_512, 98700}, // __builtin_ia32_gathersiv8df
+      {Intrinsic::x86_avx512_gather_dpq_512, 98757}, // __builtin_ia32_gathersiv8di
+      {Intrinsic::x86_avx512_mask_getexp_pd_128, 105832}, // __builtin_ia32_getexppd128_mask
+      {Intrinsic::x86_avx512_mask_getexp_pd_256, 105864}, // __builtin_ia32_getexppd256_mask
+      {Intrinsic::x86_avx512_mask_getexp_pd_512, 105896}, // __builtin_ia32_getexppd512_mask
+      {Intrinsic::x86_avx512_mask_getexp_ps_128, 105928}, // __builtin_ia32_getexpps128_mask
+      {Intrinsic::x86_avx512_mask_getexp_ps_256, 105960}, // __builtin_ia32_getexpps256_mask
+      {Intrinsic::x86_avx512_mask_getexp_ps_512, 105992}, // __builtin_ia32_getexpps512_mask
+      {Intrinsic::x86_avx512_mask_getexp_sd, 106024}, // __builtin_ia32_getexpsd128_round_mask
+      {Intrinsic::x86_avx512_mask_getexp_ss, 106062}, // __builtin_ia32_getexpss128_round_mask
+      {Intrinsic::x86_avx512_mask_getmant_pd_128, 106100}, // __builtin_ia32_getmantpd128_mask
+      {Intrinsic::x86_avx512_mask_getmant_pd_256, 106133}, // __builtin_ia32_getmantpd256_mask
+      {Intrinsic::x86_avx512_mask_getmant_pd_512, 106166}, // __builtin_ia32_getmantpd512_mask
+      {Intrinsic::x86_avx512_mask_getmant_ps_128, 106199}, // __builtin_ia32_getmantps128_mask
+      {Intrinsic::x86_avx512_mask_getmant_ps_256, 106232}, // __builtin_ia32_getmantps256_mask
+      {Intrinsic::x86_avx512_mask_getmant_ps_512, 106265}, // __builtin_ia32_getmantps512_mask
+      {Intrinsic::x86_avx512_mask_getmant_sd, 106298}, // __builtin_ia32_getmantsd_round_mask
+      {Intrinsic::x86_avx512_mask_getmant_ss, 106334}, // __builtin_ia32_getmantss_round_mask
+      {Intrinsic::x86_sse3_hadd_pd, 130978}, // __builtin_ia32_haddpd
+      {Intrinsic::x86_avx_hadd_pd_256, 94051}, // __builtin_ia32_haddpd256
+      {Intrinsic::x86_sse3_hadd_ps, 131000}, // __builtin_ia32_haddps
+      {Intrinsic::x86_avx_hadd_ps_256, 94076}, // __builtin_ia32_haddps256
+      {Intrinsic::x86_sse3_hsub_pd, 131022}, // __builtin_ia32_hsubpd
+      {Intrinsic::x86_avx_hsub_pd_256, 94101}, // __builtin_ia32_hsubpd256
+      {Intrinsic::x86_sse3_hsub_ps, 131044}, // __builtin_ia32_hsubps
+      {Intrinsic::x86_avx_hsub_ps_256, 94126}, // __builtin_ia32_hsubps256
+      {Intrinsic::x86_sse41_insertps, 131219}, // __builtin_ia32_insertps128
+      {Intrinsic::x86_sse4a_insertq, 132110}, // __builtin_ia32_insertq
+      {Intrinsic::x86_sse4a_insertqi, 132133}, // __builtin_ia32_insertqi
+      {Intrinsic::x86_avx512_kand_w, 99500}, // __builtin_ia32_kandhi
+      {Intrinsic::x86_avx512_kandn_w, 99522}, // __builtin_ia32_kandnhi
+      {Intrinsic::x86_avx512_knot_w, 99545}, // __builtin_ia32_knothi
+      {Intrinsic::x86_avx512_kor_w, 99567}, // __builtin_ia32_korhi
+      {Intrinsic::x86_avx512_kortestc_w, 99588}, // __builtin_ia32_kortestchi
+      {Intrinsic::x86_avx512_kortestz_w, 99614}, // __builtin_ia32_kortestzhi
+      {Intrinsic::x86_avx512_kunpck_dq, 99664}, // __builtin_ia32_kunpckdi
+      {Intrinsic::x86_avx512_kunpck_bw, 99640}, // __builtin_ia32_kunpckhi
+      {Intrinsic::x86_avx512_kunpck_wd, 99688}, // __builtin_ia32_kunpcksi
+      {Intrinsic::x86_avx512_kxnor_w, 99712}, // __builtin_ia32_kxnorhi
+      {Intrinsic::x86_avx512_kxor_w, 99735}, // __builtin_ia32_kxorhi
+      {Intrinsic::x86_sse3_ldu_dq, 131066}, // __builtin_ia32_lddqu
+      {Intrinsic::x86_avx_ldu_dq_256, 94151}, // __builtin_ia32_lddqu256
+      {Intrinsic::x86_sse2_lfence, 129656}, // __builtin_ia32_lfence
+      {Intrinsic::x86_avx2_maskload_d, 95788}, // __builtin_ia32_maskloadd
+      {Intrinsic::x86_avx2_maskload_d_256, 95813}, // __builtin_ia32_maskloadd256
+      {Intrinsic::x86_avx_maskload_pd, 94175}, // __builtin_ia32_maskloadpd
+      {Intrinsic::x86_avx_maskload_pd_256, 94201}, // __builtin_ia32_maskloadpd256
+      {Intrinsic::x86_avx_maskload_ps, 94230}, // __builtin_ia32_maskloadps
+      {Intrinsic::x86_avx_maskload_ps_256, 94256}, // __builtin_ia32_maskloadps256
+      {Intrinsic::x86_avx2_maskload_q, 95841}, // __builtin_ia32_maskloadq
+      {Intrinsic::x86_avx2_maskload_q_256, 95866}, // __builtin_ia32_maskloadq256
+      {Intrinsic::x86_sse2_maskmov_dqu, 129678}, // __builtin_ia32_maskmovdqu
+      {Intrinsic::x86_mmx_maskmovq, 126383}, // __builtin_ia32_maskmovq
+      {Intrinsic::x86_avx2_maskstore_d, 95894}, // __builtin_ia32_maskstored
+      {Intrinsic::x86_avx2_maskstore_d_256, 95920}, // __builtin_ia32_maskstored256
+      {Intrinsic::x86_avx_maskstore_pd, 94285}, // __builtin_ia32_maskstorepd
+      {Intrinsic::x86_avx_maskstore_pd_256, 94312}, // __builtin_ia32_maskstorepd256
+      {Intrinsic::x86_avx_maskstore_ps, 94342}, // __builtin_ia32_maskstoreps
+      {Intrinsic::x86_avx_maskstore_ps_256, 94369}, // __builtin_ia32_maskstoreps256
+      {Intrinsic::x86_avx2_maskstore_q, 95949}, // __builtin_ia32_maskstoreq
+      {Intrinsic::x86_avx2_maskstore_q_256, 95975}, // __builtin_ia32_maskstoreq256
+      {Intrinsic::x86_sse2_max_pd, 129704}, // __builtin_ia32_maxpd
+      {Intrinsic::x86_avx_max_pd_256, 94399}, // __builtin_ia32_maxpd256
+      {Intrinsic::x86_avx512_mask_max_pd_512, 106370}, // __builtin_ia32_maxpd512_mask
+      {Intrinsic::x86_sse_max_ps, 128772}, // __builtin_ia32_maxps
+      {Intrinsic::x86_avx_max_ps_256, 94423}, // __builtin_ia32_maxps256
+      {Intrinsic::x86_avx512_mask_max_ps_512, 106399}, // __builtin_ia32_maxps512_mask
+      {Intrinsic::x86_sse2_max_sd, 129725}, // __builtin_ia32_maxsd
+      {Intrinsic::x86_avx512_mask_max_sd_round, 106428}, // __builtin_ia32_maxsd_round_mask
+      {Intrinsic::x86_sse_max_ss, 128793}, // __builtin_ia32_maxss
+      {Intrinsic::x86_avx512_mask_max_ss_round, 106460}, // __builtin_ia32_maxss_round_mask
+      {Intrinsic::x86_sse2_mfence, 129746}, // __builtin_ia32_mfence
+      {Intrinsic::x86_sse2_min_pd, 129768}, // __builtin_ia32_minpd
+      {Intrinsic::x86_avx_min_pd_256, 94447}, // __builtin_ia32_minpd256
+      {Intrinsic::x86_avx512_mask_min_pd_512, 106492}, // __builtin_ia32_minpd512_mask
+      {Intrinsic::x86_sse_min_ps, 128814}, // __builtin_ia32_minps
+      {Intrinsic::x86_avx_min_ps_256, 94471}, // __builtin_ia32_minps256
+      {Intrinsic::x86_avx512_mask_min_ps_512, 106521}, // __builtin_ia32_minps512_mask
+      {Intrinsic::x86_sse2_min_sd, 129789}, // __builtin_ia32_minsd
+      {Intrinsic::x86_avx512_mask_min_sd_round, 106550}, // __builtin_ia32_minsd_round_mask
+      {Intrinsic::x86_sse_min_ss, 128835}, // __builtin_ia32_minss
+      {Intrinsic::x86_avx512_mask_min_ss_round, 106582}, // __builtin_ia32_minss_round_mask
+      {Intrinsic::x86_sse3_monitor, 131087}, // __builtin_ia32_monitor
+      {Intrinsic::x86_monitorx, 127929}, // __builtin_ia32_monitorx
+      {Intrinsic::x86_sse2_movmsk_pd, 129810}, // __builtin_ia32_movmskpd
+      {Intrinsic::x86_avx_movmsk_pd_256, 94495}, // __builtin_ia32_movmskpd256
+      {Intrinsic::x86_sse_movmsk_ps, 128856}, // __builtin_ia32_movmskps
+      {Intrinsic::x86_avx_movmsk_ps_256, 94522}, // __builtin_ia32_movmskps256
+      {Intrinsic::x86_sse41_movntdqa, 131246}, // __builtin_ia32_movntdqa
+      {Intrinsic::x86_avx2_movntdqa, 96004}, // __builtin_ia32_movntdqa256
+      {Intrinsic::x86_avx512_movntdqa, 121262}, // __builtin_ia32_movntdqa512
+      {Intrinsic::x86_mmx_movnt_dq, 126407}, // __builtin_ia32_movntq
+      {Intrinsic::x86_sse41_mpsadbw, 131270}, // __builtin_ia32_mpsadbw128
+      {Intrinsic::x86_avx2_mpsadbw, 96031}, // __builtin_ia32_mpsadbw256
+      {Intrinsic::x86_avx512_mask_mul_pd_512, 106614}, // __builtin_ia32_mulpd512_mask
+      {Intrinsic::x86_avx512_mask_mul_ps_512, 106643}, // __builtin_ia32_mulps512_mask
+      {Intrinsic::x86_avx512_mask_mul_sd_round, 106672}, // __builtin_ia32_mulsd_round_mask
+      {Intrinsic::x86_avx512_mask_mul_ss_round, 106704}, // __builtin_ia32_mulss_round_mask
+      {Intrinsic::x86_sse3_mwait, 131110}, // __builtin_ia32_mwait
+      {Intrinsic::x86_mwaitx, 127953}, // __builtin_ia32_mwaitx
+      {Intrinsic::x86_ssse3_pabs_b, 132157}, // __builtin_ia32_pabsb
+      {Intrinsic::x86_ssse3_pabs_b_128, 132178}, // __builtin_ia32_pabsb128
+      {Intrinsic::x86_avx512_mask_pabs_b_128, 106736}, // __builtin_ia32_pabsb128_mask
+      {Intrinsic::x86_avx2_pabs_b, 96057}, // __builtin_ia32_pabsb256
+      {Intrinsic::x86_avx512_mask_pabs_b_256, 106765}, // __builtin_ia32_pabsb256_mask
+      {Intrinsic::x86_avx512_mask_pabs_b_512, 106794}, // __builtin_ia32_pabsb512_mask
+      {Intrinsic::x86_ssse3_pabs_d, 132202}, // __builtin_ia32_pabsd
+      {Intrinsic::x86_ssse3_pabs_d_128, 132223}, // __builtin_ia32_pabsd128
+      {Intrinsic::x86_avx512_mask_pabs_d_128, 106823}, // __builtin_ia32_pabsd128_mask
+      {Intrinsic::x86_avx2_pabs_d, 96081}, // __builtin_ia32_pabsd256
+      {Intrinsic::x86_avx512_mask_pabs_d_256, 106852}, // __builtin_ia32_pabsd256_mask
+      {Intrinsic::x86_avx512_mask_pabs_d_512, 106881}, // __builtin_ia32_pabsd512_mask
+      {Intrinsic::x86_avx512_mask_pabs_q_128, 106910}, // __builtin_ia32_pabsq128_mask
+      {Intrinsic::x86_avx512_mask_pabs_q_256, 106939}, // __builtin_ia32_pabsq256_mask
+      {Intrinsic::x86_avx512_mask_pabs_q_512, 106968}, // __builtin_ia32_pabsq512_mask
+      {Intrinsic::x86_ssse3_pabs_w, 132247}, // __builtin_ia32_pabsw
+      {Intrinsic::x86_ssse3_pabs_w_128, 132268}, // __builtin_ia32_pabsw128
+      {Intrinsic::x86_avx512_mask_pabs_w_128, 106997}, // __builtin_ia32_pabsw128_mask
+      {Intrinsic::x86_avx2_pabs_w, 96105}, // __builtin_ia32_pabsw256
+      {Intrinsic::x86_avx512_mask_pabs_w_256, 107026}, // __builtin_ia32_pabsw256_mask
+      {Intrinsic::x86_avx512_mask_pabs_w_512, 107055}, // __builtin_ia32_pabsw512_mask
+      {Intrinsic::x86_mmx_packssdw, 126429}, // __builtin_ia32_packssdw
+      {Intrinsic::x86_sse2_packssdw_128, 129834}, // __builtin_ia32_packssdw128
+      {Intrinsic::x86_avx2_packssdw, 96129}, // __builtin_ia32_packssdw256
+      {Intrinsic::x86_avx512_packssdw_512, 121289}, // __builtin_ia32_packssdw512
+      {Intrinsic::x86_mmx_packsswb, 126453}, // __builtin_ia32_packsswb
+      {Intrinsic::x86_sse2_packsswb_128, 129861}, // __builtin_ia32_packsswb128
+      {Intrinsic::x86_avx2_packsswb, 96156}, // __builtin_ia32_packsswb256
+      {Intrinsic::x86_avx512_packsswb_512, 121316}, // __builtin_ia32_packsswb512
+      {Intrinsic::x86_sse41_packusdw, 131296}, // __builtin_ia32_packusdw128
+      {Intrinsic::x86_avx2_packusdw, 96183}, // __builtin_ia32_packusdw256
+      {Intrinsic::x86_avx512_packusdw_512, 121343}, // __builtin_ia32_packusdw512
+      {Intrinsic::x86_mmx_packuswb, 126477}, // __builtin_ia32_packuswb
+      {Intrinsic::x86_sse2_packuswb_128, 129888}, // __builtin_ia32_packuswb128
+      {Intrinsic::x86_avx2_packuswb, 96210}, // __builtin_ia32_packuswb256
+      {Intrinsic::x86_avx512_packuswb_512, 121370}, // __builtin_ia32_packuswb512
+      {Intrinsic::x86_mmx_padd_b, 126501}, // __builtin_ia32_paddb
+      {Intrinsic::x86_mmx_padd_d, 126522}, // __builtin_ia32_paddd
+      {Intrinsic::x86_mmx_padd_q, 126543}, // __builtin_ia32_paddq
+      {Intrinsic::x86_mmx_padds_b, 126585}, // __builtin_ia32_paddsb
+      {Intrinsic::x86_sse2_padds_b, 129915}, // __builtin_ia32_paddsb128
+      {Intrinsic::x86_avx512_mask_padds_b_128, 107084}, // __builtin_ia32_paddsb128_mask
+      {Intrinsic::x86_avx2_padds_b, 96237}, // __builtin_ia32_paddsb256
+      {Intrinsic::x86_avx512_mask_padds_b_256, 107114}, // __builtin_ia32_paddsb256_mask
+      {Intrinsic::x86_avx512_mask_padds_b_512, 107144}, // __builtin_ia32_paddsb512_mask
+      {Intrinsic::x86_mmx_padds_w, 126607}, // __builtin_ia32_paddsw
+      {Intrinsic::x86_sse2_padds_w, 129940}, // __builtin_ia32_paddsw128
+      {Intrinsic::x86_avx512_mask_padds_w_128, 107174}, // __builtin_ia32_paddsw128_mask
+      {Intrinsic::x86_avx2_padds_w, 96262}, // __builtin_ia32_paddsw256
+      {Intrinsic::x86_avx512_mask_padds_w_256, 107204}, // __builtin_ia32_paddsw256_mask
+      {Intrinsic::x86_avx512_mask_padds_w_512, 107234}, // __builtin_ia32_paddsw512_mask
+      {Intrinsic::x86_mmx_paddus_b, 126629}, // __builtin_ia32_paddusb
+      {Intrinsic::x86_sse2_paddus_b, 129965}, // __builtin_ia32_paddusb128
+      {Intrinsic::x86_avx512_mask_paddus_b_128, 107264}, // __builtin_ia32_paddusb128_mask
+      {Intrinsic::x86_avx2_paddus_b, 96287}, // __builtin_ia32_paddusb256
+      {Intrinsic::x86_avx512_mask_paddus_b_256, 107295}, // __builtin_ia32_paddusb256_mask
+      {Intrinsic::x86_avx512_mask_paddus_b_512, 107326}, // __builtin_ia32_paddusb512_mask
+      {Intrinsic::x86_mmx_paddus_w, 126652}, // __builtin_ia32_paddusw
+      {Intrinsic::x86_sse2_paddus_w, 129991}, // __builtin_ia32_paddusw128
+      {Intrinsic::x86_avx512_mask_paddus_w_128, 107357}, // __builtin_ia32_paddusw128_mask
+      {Intrinsic::x86_avx2_paddus_w, 96313}, // __builtin_ia32_paddusw256
+      {Intrinsic::x86_avx512_mask_paddus_w_256, 107388}, // __builtin_ia32_paddusw256_mask
+      {Intrinsic::x86_avx512_mask_paddus_w_512, 107419}, // __builtin_ia32_paddusw512_mask
+      {Intrinsic::x86_mmx_padd_w, 126564}, // __builtin_ia32_paddw
+      {Intrinsic::x86_mmx_palignr_b, 126675}, // __builtin_ia32_palignr
+      {Intrinsic::x86_mmx_pand, 126698}, // __builtin_ia32_pand
+      {Intrinsic::x86_mmx_pandn, 126718}, // __builtin_ia32_pandn
+      {Intrinsic::x86_sse2_pause, 130017}, // __builtin_ia32_pause
+      {Intrinsic::x86_mmx_pavg_b, 126739}, // __builtin_ia32_pavgb
+      {Intrinsic::x86_sse2_pavg_b, 130038}, // __builtin_ia32_pavgb128
+      {Intrinsic::x86_avx512_mask_pavg_b_128, 107450}, // __builtin_ia32_pavgb128_mask
+      {Intrinsic::x86_avx2_pavg_b, 96339}, // __builtin_ia32_pavgb256
+      {Intrinsic::x86_avx512_mask_pavg_b_256, 107479}, // __builtin_ia32_pavgb256_mask
+      {Intrinsic::x86_avx512_mask_pavg_b_512, 107508}, // __builtin_ia32_pavgb512_mask
+      {Intrinsic::x86_3dnow_pavgusb, 92967}, // __builtin_ia32_pavgusb
+      {Intrinsic::x86_mmx_pavg_w, 126760}, // __builtin_ia32_pavgw
+      {Intrinsic::x86_sse2_pavg_w, 130062}, // __builtin_ia32_pavgw128
+      {Intrinsic::x86_avx512_mask_pavg_w_128, 107537}, // __builtin_ia32_pavgw128_mask
+      {Intrinsic::x86_avx2_pavg_w, 96363}, // __builtin_ia32_pavgw256
+      {Intrinsic::x86_avx512_mask_pavg_w_256, 107566}, // __builtin_ia32_pavgw256_mask
+      {Intrinsic::x86_avx512_mask_pavg_w_512, 107595}, // __builtin_ia32_pavgw512_mask
+      {Intrinsic::x86_sse41_pblendvb, 131323}, // __builtin_ia32_pblendvb128
+      {Intrinsic::x86_avx2_pblendvb, 96387}, // __builtin_ia32_pblendvb256
+      {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_128, 107624}, // __builtin_ia32_pbroadcastb128_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_256, 107663}, // __builtin_ia32_pbroadcastb256_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_b_gpr_512, 107702}, // __builtin_ia32_pbroadcastb512_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_128, 107741}, // __builtin_ia32_pbroadcastd128_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_256, 107780}, // __builtin_ia32_pbroadcastd256_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_d_gpr_512, 107819}, // __builtin_ia32_pbroadcastd512_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_128, 107858}, // __builtin_ia32_pbroadcastq128_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_256, 107897}, // __builtin_ia32_pbroadcastq256_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_q_gpr_512, 107936}, // __builtin_ia32_pbroadcastq512_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_q_mem_512, 107975}, // __builtin_ia32_pbroadcastq512_mem_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_128, 108014}, // __builtin_ia32_pbroadcastw128_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_256, 108053}, // __builtin_ia32_pbroadcastw256_gpr_mask
+      {Intrinsic::x86_avx512_mask_pbroadcast_w_gpr_512, 108092}, // __builtin_ia32_pbroadcastw512_gpr_mask
+      {Intrinsic::x86_pclmulqdq, 127975}, // __builtin_ia32_pclmulqdq128
+      {Intrinsic::x86_mmx_pcmpeq_b, 126781}, // __builtin_ia32_pcmpeqb
+      {Intrinsic::x86_mmx_pcmpeq_d, 126804}, // __builtin_ia32_pcmpeqd
+      {Intrinsic::x86_mmx_pcmpeq_w, 126827}, // __builtin_ia32_pcmpeqw
+      {Intrinsic::x86_sse42_pcmpestri128, 131665}, // __builtin_ia32_pcmpestri128
+      {Intrinsic::x86_sse42_pcmpestria128, 131693}, // __builtin_ia32_pcmpestria128
+      {Intrinsic::x86_sse42_pcmpestric128, 131722}, // __builtin_ia32_pcmpestric128
+      {Intrinsic::x86_sse42_pcmpestrio128, 131751}, // __builtin_ia32_pcmpestrio128
+      {Intrinsic::x86_sse42_pcmpestris128, 131780}, // __builtin_ia32_pcmpestris128
+      {Intrinsic::x86_sse42_pcmpestriz128, 131809}, // __builtin_ia32_pcmpestriz128
+      {Intrinsic::x86_sse42_pcmpestrm128, 131838}, // __builtin_ia32_pcmpestrm128
+      {Intrinsic::x86_mmx_pcmpgt_b, 126850}, // __builtin_ia32_pcmpgtb
+      {Intrinsic::x86_mmx_pcmpgt_d, 126873}, // __builtin_ia32_pcmpgtd
+      {Intrinsic::x86_mmx_pcmpgt_w, 126896}, // __builtin_ia32_pcmpgtw
+      {Intrinsic::x86_sse42_pcmpistri128, 131866}, // __builtin_ia32_pcmpistri128
+      {Intrinsic::x86_sse42_pcmpistria128, 131894}, // __builtin_ia32_pcmpistria128
+      {Intrinsic::x86_sse42_pcmpistric128, 131923}, // __builtin_ia32_pcmpistric128
+      {Intrinsic::x86_sse42_pcmpistrio128, 131952}, // __builtin_ia32_pcmpistrio128
+      {Intrinsic::x86_sse42_pcmpistris128, 131981}, // __builtin_ia32_pcmpistris128
+      {Intrinsic::x86_sse42_pcmpistriz128, 132010}, // __builtin_ia32_pcmpistriz128
+      {Intrinsic::x86_sse42_pcmpistrm128, 132039}, // __builtin_ia32_pcmpistrm128
+      {Intrinsic::x86_bmi_pdep_64, 125169}, // __builtin_ia32_pdep_di
+      {Intrinsic::x86_bmi_pdep_32, 125146}, // __builtin_ia32_pdep_si
+      {Intrinsic::x86_avx2_vperm2i128, 97691}, // __builtin_ia32_permti256
+      {Intrinsic::x86_avx512_mask_permvar_df_256, 108131}, // __builtin_ia32_permvardf256_mask
+      {Intrinsic::x86_avx512_mask_permvar_df_512, 108164}, // __builtin_ia32_permvardf512_mask
+      {Intrinsic::x86_avx512_mask_permvar_di_256, 108197}, // __builtin_ia32_permvardi256_mask
+      {Intrinsic::x86_avx512_mask_permvar_di_512, 108230}, // __builtin_ia32_permvardi512_mask
+      {Intrinsic::x86_avx512_mask_permvar_hi_128, 108263}, // __builtin_ia32_permvarhi128_mask
+      {Intrinsic::x86_avx512_mask_permvar_hi_256, 108296}, // __builtin_ia32_permvarhi256_mask
+      {Intrinsic::x86_avx512_mask_permvar_hi_512, 108329}, // __builtin_ia32_permvarhi512_mask
+      {Intrinsic::x86_avx512_mask_permvar_qi_128, 108362}, // __builtin_ia32_permvarqi128_mask
+      {Intrinsic::x86_avx512_mask_permvar_qi_256, 108395}, // __builtin_ia32_permvarqi256_mask
+      {Intrinsic::x86_avx512_mask_permvar_qi_512, 108428}, // __builtin_ia32_permvarqi512_mask
+      {Intrinsic::x86_avx2_permps, 96442}, // __builtin_ia32_permvarsf256
+      {Intrinsic::x86_avx512_mask_permvar_sf_256, 108461}, // __builtin_ia32_permvarsf256_mask
+      {Intrinsic::x86_avx512_mask_permvar_sf_512, 108494}, // __builtin_ia32_permvarsf512_mask
+      {Intrinsic::x86_avx2_permd, 96414}, // __builtin_ia32_permvarsi256
+      {Intrinsic::x86_avx512_mask_permvar_si_256, 108527}, // __builtin_ia32_permvarsi256_mask
+      {Intrinsic::x86_avx512_mask_permvar_si_512, 108560}, // __builtin_ia32_permvarsi512_mask
+      {Intrinsic::x86_bmi_pext_64, 125215}, // __builtin_ia32_pext_di
+      {Intrinsic::x86_bmi_pext_32, 125192}, // __builtin_ia32_pext_si
+      {Intrinsic::x86_3dnow_pf2id, 92990}, // __builtin_ia32_pf2id
+      {Intrinsic::x86_3dnowa_pf2iw, 93388}, // __builtin_ia32_pf2iw
+      {Intrinsic::x86_3dnow_pfacc, 93011}, // __builtin_ia32_pfacc
+      {Intrinsic::x86_3dnow_pfadd, 93032}, // __builtin_ia32_pfadd
+      {Intrinsic::x86_3dnow_pfcmpeq, 93053}, // __builtin_ia32_pfcmpeq
+      {Intrinsic::x86_3dnow_pfcmpge, 93076}, // __builtin_ia32_pfcmpge
+      {Intrinsic::x86_3dnow_pfcmpgt, 93099}, // __builtin_ia32_pfcmpgt
+      {Intrinsic::x86_3dnow_pfmax, 93122}, // __builtin_ia32_pfmax
+      {Intrinsic::x86_3dnow_pfmin, 93143}, // __builtin_ia32_pfmin
+      {Intrinsic::x86_3dnow_pfmul, 93164}, // __builtin_ia32_pfmul
+      {Intrinsic::x86_3dnowa_pfnacc, 93409}, // __builtin_ia32_pfnacc
+      {Intrinsic::x86_3dnowa_pfpnacc, 93431}, // __builtin_ia32_pfpnacc
+      {Intrinsic::x86_3dnow_pfrcp, 93185}, // __builtin_ia32_pfrcp
+      {Intrinsic::x86_3dnow_pfrcpit1, 93206}, // __builtin_ia32_pfrcpit1
+      {Intrinsic::x86_3dnow_pfrcpit2, 93230}, // __builtin_ia32_pfrcpit2
+      {Intrinsic::x86_3dnow_pfrsqit1, 93254}, // __builtin_ia32_pfrsqit1
+      {Intrinsic::x86_3dnow_pfrsqrt, 93278}, // __builtin_ia32_pfrsqrt
+      {Intrinsic::x86_3dnow_pfsub, 93301}, // __builtin_ia32_pfsub
+      {Intrinsic::x86_3dnow_pfsubr, 93322}, // __builtin_ia32_pfsubr
+      {Intrinsic::x86_ssse3_phadd_d, 132292}, // __builtin_ia32_phaddd
+      {Intrinsic::x86_ssse3_phadd_d_128, 132314}, // __builtin_ia32_phaddd128
+      {Intrinsic::x86_avx2_phadd_d, 96470}, // __builtin_ia32_phaddd256
+      {Intrinsic::x86_ssse3_phadd_sw, 132339}, // __builtin_ia32_phaddsw
+      {Intrinsic::x86_ssse3_phadd_sw_128, 132362}, // __builtin_ia32_phaddsw128
+      {Intrinsic::x86_avx2_phadd_sw, 96495}, // __builtin_ia32_phaddsw256
+      {Intrinsic::x86_ssse3_phadd_w, 132388}, // __builtin_ia32_phaddw
+      {Intrinsic::x86_ssse3_phadd_w_128, 132410}, // __builtin_ia32_phaddw128
+      {Intrinsic::x86_avx2_phadd_w, 96521}, // __builtin_ia32_phaddw256
+      {Intrinsic::x86_sse41_phminposuw, 131350}, // __builtin_ia32_phminposuw128
+      {Intrinsic::x86_ssse3_phsub_d, 132435}, // __builtin_ia32_phsubd
+      {Intrinsic::x86_ssse3_phsub_d_128, 132457}, // __builtin_ia32_phsubd128
+      {Intrinsic::x86_avx2_phsub_d, 96546}, // __builtin_ia32_phsubd256
+      {Intrinsic::x86_ssse3_phsub_sw, 132482}, // __builtin_ia32_phsubsw
+      {Intrinsic::x86_ssse3_phsub_sw_128, 132505}, // __builtin_ia32_phsubsw128
+      {Intrinsic::x86_avx2_phsub_sw, 96571}, // __builtin_ia32_phsubsw256
+      {Intrinsic::x86_ssse3_phsub_w, 132531}, // __builtin_ia32_phsubw
+      {Intrinsic::x86_ssse3_phsub_w_128, 132553}, // __builtin_ia32_phsubw128
+      {Intrinsic::x86_avx2_phsub_w, 96597}, // __builtin_ia32_phsubw256
+      {Intrinsic::x86_3dnow_pi2fd, 93344}, // __builtin_ia32_pi2fd
+      {Intrinsic::x86_3dnowa_pi2fw, 93454}, // __builtin_ia32_pi2fw
+      {Intrinsic::x86_ssse3_pmadd_ub_sw, 132578}, // __builtin_ia32_pmaddubsw
+      {Intrinsic::x86_ssse3_pmadd_ub_sw_128, 132603}, // __builtin_ia32_pmaddubsw128
+      {Intrinsic::x86_avx512_mask_pmaddubs_w_128, 108593}, // __builtin_ia32_pmaddubsw128_mask
+      {Intrinsic::x86_avx2_pmadd_ub_sw, 96622}, // __builtin_ia32_pmaddubsw256
+      {Intrinsic::x86_avx512_mask_pmaddubs_w_256, 108626}, // __builtin_ia32_pmaddubsw256_mask
+      {Intrinsic::x86_avx512_mask_pmaddubs_w_512, 108659}, // __builtin_ia32_pmaddubsw512_mask
+      {Intrinsic::x86_mmx_pmadd_wd, 126975}, // __builtin_ia32_pmaddwd
+      {Intrinsic::x86_sse2_pmadd_wd, 130086}, // __builtin_ia32_pmaddwd128
+      {Intrinsic::x86_avx512_mask_pmaddw_d_128, 108692}, // __builtin_ia32_pmaddwd128_mask
+      {Intrinsic::x86_avx2_pmadd_wd, 96650}, // __builtin_ia32_pmaddwd256
+      {Intrinsic::x86_avx512_mask_pmaddw_d_256, 108723}, // __builtin_ia32_pmaddwd256_mask
+      {Intrinsic::x86_avx512_mask_pmaddw_d_512, 108754}, // __builtin_ia32_pmaddwd512_mask
+      {Intrinsic::x86_mmx_pmaxs_w, 126998}, // __builtin_ia32_pmaxsw
+      {Intrinsic::x86_mmx_pmaxu_b, 127020}, // __builtin_ia32_pmaxub
+      {Intrinsic::x86_mmx_pmins_w, 127042}, // __builtin_ia32_pminsw
+      {Intrinsic::x86_mmx_pminu_b, 127064}, // __builtin_ia32_pminub
+      {Intrinsic::x86_avx512_mask_pmov_db_128, 108785}, // __builtin_ia32_pmovdb128_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_mem_128, 108875}, // __builtin_ia32_pmovdb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_256, 108815}, // __builtin_ia32_pmovdb256_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_mem_256, 108908}, // __builtin_ia32_pmovdb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_512, 108845}, // __builtin_ia32_pmovdb512_mask
+      {Intrinsic::x86_avx512_mask_pmov_db_mem_512, 108941}, // __builtin_ia32_pmovdb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_128, 108974}, // __builtin_ia32_pmovdw128_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_128, 109064}, // __builtin_ia32_pmovdw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_256, 109004}, // __builtin_ia32_pmovdw256_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_256, 109097}, // __builtin_ia32_pmovdw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_512, 109034}, // __builtin_ia32_pmovdw512_mask
+      {Intrinsic::x86_avx512_mask_pmov_dw_mem_512, 109130}, // __builtin_ia32_pmovdw512mem_mask
+      {Intrinsic::x86_mmx_pmovmskb, 127086}, // __builtin_ia32_pmovmskb
+      {Intrinsic::x86_sse2_pmovmskb_128, 130112}, // __builtin_ia32_pmovmskb128
+      {Intrinsic::x86_avx2_pmovmskb, 96676}, // __builtin_ia32_pmovmskb256
+      {Intrinsic::x86_avx512_mask_pmov_qb_128, 109163}, // __builtin_ia32_pmovqb128_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_128, 109253}, // __builtin_ia32_pmovqb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_256, 109193}, // __builtin_ia32_pmovqb256_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_256, 109286}, // __builtin_ia32_pmovqb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_512, 109223}, // __builtin_ia32_pmovqb512_mask
+      {Intrinsic::x86_avx512_mask_pmov_qb_mem_512, 109319}, // __builtin_ia32_pmovqb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_128, 109352}, // __builtin_ia32_pmovqd128_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_128, 109442}, // __builtin_ia32_pmovqd128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_256, 109382}, // __builtin_ia32_pmovqd256_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_256, 109475}, // __builtin_ia32_pmovqd256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_512, 109412}, // __builtin_ia32_pmovqd512_mask
+      {Intrinsic::x86_avx512_mask_pmov_qd_mem_512, 109508}, // __builtin_ia32_pmovqd512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_128, 109541}, // __builtin_ia32_pmovqw128_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_128, 109631}, // __builtin_ia32_pmovqw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_256, 109571}, // __builtin_ia32_pmovqw256_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_256, 109664}, // __builtin_ia32_pmovqw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_512, 109601}, // __builtin_ia32_pmovqw512_mask
+      {Intrinsic::x86_avx512_mask_pmov_qw_mem_512, 109697}, // __builtin_ia32_pmovqw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_128, 109919}, // __builtin_ia32_pmovsdb128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_128, 110012}, // __builtin_ia32_pmovsdb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_256, 109950}, // __builtin_ia32_pmovsdb256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_256, 110046}, // __builtin_ia32_pmovsdb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_512, 109981}, // __builtin_ia32_pmovsdb512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_db_mem_512, 110080}, // __builtin_ia32_pmovsdb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_128, 110114}, // __builtin_ia32_pmovsdw128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_128, 110207}, // __builtin_ia32_pmovsdw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_256, 110145}, // __builtin_ia32_pmovsdw256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_256, 110241}, // __builtin_ia32_pmovsdw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_512, 110176}, // __builtin_ia32_pmovsdw512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_dw_mem_512, 110275}, // __builtin_ia32_pmovsdw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_128, 110309}, // __builtin_ia32_pmovsqb128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_128, 110402}, // __builtin_ia32_pmovsqb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_256, 110340}, // __builtin_ia32_pmovsqb256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_256, 110436}, // __builtin_ia32_pmovsqb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_512, 110371}, // __builtin_ia32_pmovsqb512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qb_mem_512, 110470}, // __builtin_ia32_pmovsqb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_128, 110504}, // __builtin_ia32_pmovsqd128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_128, 110597}, // __builtin_ia32_pmovsqd128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_256, 110535}, // __builtin_ia32_pmovsqd256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_256, 110631}, // __builtin_ia32_pmovsqd256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_512, 110566}, // __builtin_ia32_pmovsqd512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qd_mem_512, 110665}, // __builtin_ia32_pmovsqd512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_128, 110699}, // __builtin_ia32_pmovsqw128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_128, 110792}, // __builtin_ia32_pmovsqw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_256, 110730}, // __builtin_ia32_pmovsqw256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_256, 110826}, // __builtin_ia32_pmovsqw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_512, 110761}, // __builtin_ia32_pmovsqw512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_qw_mem_512, 110860}, // __builtin_ia32_pmovsqw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_128, 110894}, // __builtin_ia32_pmovswb128_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_128, 110987}, // __builtin_ia32_pmovswb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_256, 110925}, // __builtin_ia32_pmovswb256_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_256, 111021}, // __builtin_ia32_pmovswb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_512, 110956}, // __builtin_ia32_pmovswb512_mask
+      {Intrinsic::x86_avx512_mask_pmovs_wb_mem_512, 111055}, // __builtin_ia32_pmovswb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_128, 111089}, // __builtin_ia32_pmovusdb128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_128, 111185}, // __builtin_ia32_pmovusdb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_256, 111121}, // __builtin_ia32_pmovusdb256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_256, 111220}, // __builtin_ia32_pmovusdb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_512, 111153}, // __builtin_ia32_pmovusdb512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_db_mem_512, 111255}, // __builtin_ia32_pmovusdb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_128, 111290}, // __builtin_ia32_pmovusdw128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_128, 111386}, // __builtin_ia32_pmovusdw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_256, 111322}, // __builtin_ia32_pmovusdw256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_256, 111421}, // __builtin_ia32_pmovusdw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_512, 111354}, // __builtin_ia32_pmovusdw512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_dw_mem_512, 111456}, // __builtin_ia32_pmovusdw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_128, 111491}, // __builtin_ia32_pmovusqb128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_128, 111587}, // __builtin_ia32_pmovusqb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_256, 111523}, // __builtin_ia32_pmovusqb256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_256, 111622}, // __builtin_ia32_pmovusqb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_512, 111555}, // __builtin_ia32_pmovusqb512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qb_mem_512, 111657}, // __builtin_ia32_pmovusqb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_128, 111692}, // __builtin_ia32_pmovusqd128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_128, 111788}, // __builtin_ia32_pmovusqd128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_256, 111724}, // __builtin_ia32_pmovusqd256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_256, 111823}, // __builtin_ia32_pmovusqd256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_512, 111756}, // __builtin_ia32_pmovusqd512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qd_mem_512, 111858}, // __builtin_ia32_pmovusqd512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_128, 111893}, // __builtin_ia32_pmovusqw128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_128, 111989}, // __builtin_ia32_pmovusqw128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_256, 111925}, // __builtin_ia32_pmovusqw256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_256, 112024}, // __builtin_ia32_pmovusqw256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_512, 111957}, // __builtin_ia32_pmovusqw512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_qw_mem_512, 112059}, // __builtin_ia32_pmovusqw512mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_128, 112094}, // __builtin_ia32_pmovuswb128_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_128, 112190}, // __builtin_ia32_pmovuswb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_256, 112126}, // __builtin_ia32_pmovuswb256_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_256, 112225}, // __builtin_ia32_pmovuswb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_512, 112158}, // __builtin_ia32_pmovuswb512_mask
+      {Intrinsic::x86_avx512_mask_pmovus_wb_mem_512, 112260}, // __builtin_ia32_pmovuswb512mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_128, 109730}, // __builtin_ia32_pmovwb128_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_128, 109820}, // __builtin_ia32_pmovwb128mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_256, 109760}, // __builtin_ia32_pmovwb256_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_256, 109853}, // __builtin_ia32_pmovwb256mem_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_512, 109790}, // __builtin_ia32_pmovwb512_mask
+      {Intrinsic::x86_avx512_mask_pmov_wb_mem_512, 109886}, // __builtin_ia32_pmovwb512mem_mask
+      {Intrinsic::x86_sse41_pmuldq, 131379}, // __builtin_ia32_pmuldq128
+      {Intrinsic::x86_avx2_pmul_dq, 96703}, // __builtin_ia32_pmuldq256
+      {Intrinsic::x86_avx512_pmul_dq_512, 121397}, // __builtin_ia32_pmuldq512
+      {Intrinsic::x86_ssse3_pmul_hr_sw, 132631}, // __builtin_ia32_pmulhrsw
+      {Intrinsic::x86_ssse3_pmul_hr_sw_128, 132655}, // __builtin_ia32_pmulhrsw128
+      {Intrinsic::x86_avx512_mask_pmul_hr_sw_128, 112295}, // __builtin_ia32_pmulhrsw128_mask
+      {Intrinsic::x86_avx2_pmul_hr_sw, 96728}, // __builtin_ia32_pmulhrsw256
+      {Intrinsic::x86_avx512_mask_pmul_hr_sw_256, 112327}, // __builtin_ia32_pmulhrsw256_mask
+      {Intrinsic::x86_avx512_mask_pmul_hr_sw_512, 112359}, // __builtin_ia32_pmulhrsw512_mask
+      {Intrinsic::x86_3dnow_pmulhrw, 93365}, // __builtin_ia32_pmulhrw
+      {Intrinsic::x86_mmx_pmulhu_w, 127132}, // __builtin_ia32_pmulhuw
+      {Intrinsic::x86_sse2_pmulhu_w, 130164}, // __builtin_ia32_pmulhuw128
+      {Intrinsic::x86_avx512_mask_pmulhu_w_128, 112481}, // __builtin_ia32_pmulhuw128_mask
+      {Intrinsic::x86_avx2_pmulhu_w, 96780}, // __builtin_ia32_pmulhuw256
+      {Intrinsic::x86_avx512_mask_pmulhu_w_256, 112512}, // __builtin_ia32_pmulhuw256_mask
+      {Intrinsic::x86_avx512_mask_pmulhu_w_512, 112543}, // __builtin_ia32_pmulhuw512_mask
+      {Intrinsic::x86_mmx_pmulh_w, 127110}, // __builtin_ia32_pmulhw
+      {Intrinsic::x86_sse2_pmulh_w, 130139}, // __builtin_ia32_pmulhw128
+      {Intrinsic::x86_avx512_mask_pmulh_w_128, 112391}, // __builtin_ia32_pmulhw128_mask
+      {Intrinsic::x86_avx2_pmulh_w, 96755}, // __builtin_ia32_pmulhw256
+      {Intrinsic::x86_avx512_mask_pmulh_w_256, 112421}, // __builtin_ia32_pmulhw256_mask
+      {Intrinsic::x86_avx512_mask_pmulh_w_512, 112451}, // __builtin_ia32_pmulhw512_mask
+      {Intrinsic::x86_mmx_pmull_w, 127155}, // __builtin_ia32_pmullw
+      {Intrinsic::x86_mmx_pmulu_dq, 127177}, // __builtin_ia32_pmuludq
+      {Intrinsic::x86_sse2_pmulu_dq, 130190}, // __builtin_ia32_pmuludq128
+      {Intrinsic::x86_avx2_pmulu_dq, 96806}, // __builtin_ia32_pmuludq256
+      {Intrinsic::x86_avx512_pmulu_dq_512, 121422}, // __builtin_ia32_pmuludq512
+      {Intrinsic::x86_mmx_por, 127200}, // __builtin_ia32_por
+      {Intrinsic::x86_avx512_mask_prol_d_128, 112688}, // __builtin_ia32_prold128_mask
+      {Intrinsic::x86_avx512_mask_prol_d_256, 112717}, // __builtin_ia32_prold256_mask
+      {Intrinsic::x86_avx512_mask_prol_d_512, 112746}, // __builtin_ia32_prold512_mask
+      {Intrinsic::x86_avx512_mask_prol_q_128, 112775}, // __builtin_ia32_prolq128_mask
+      {Intrinsic::x86_avx512_mask_prol_q_256, 112804}, // __builtin_ia32_prolq256_mask
+      {Intrinsic::x86_avx512_mask_prol_q_512, 112833}, // __builtin_ia32_prolq512_mask
+      {Intrinsic::x86_avx512_mask_prolv_d_128, 112862}, // __builtin_ia32_prolvd128_mask
+      {Intrinsic::x86_avx512_mask_prolv_d_256, 112892}, // __builtin_ia32_prolvd256_mask
+      {Intrinsic::x86_avx512_mask_prolv_d_512, 112922}, // __builtin_ia32_prolvd512_mask
+      {Intrinsic::x86_avx512_mask_prolv_q_128, 112952}, // __builtin_ia32_prolvq128_mask
+      {Intrinsic::x86_avx512_mask_prolv_q_256, 112982}, // __builtin_ia32_prolvq256_mask
+      {Intrinsic::x86_avx512_mask_prolv_q_512, 113012}, // __builtin_ia32_prolvq512_mask
+      {Intrinsic::x86_avx512_mask_pror_d_128, 113042}, // __builtin_ia32_prord128_mask
+      {Intrinsic::x86_avx512_mask_pror_d_256, 113071}, // __builtin_ia32_prord256_mask
+      {Intrinsic::x86_avx512_mask_pror_d_512, 113100}, // __builtin_ia32_prord512_mask
+      {Intrinsic::x86_avx512_mask_pror_q_128, 113129}, // __builtin_ia32_prorq128_mask
+      {Intrinsic::x86_avx512_mask_pror_q_256, 113158}, // __builtin_ia32_prorq256_mask
+      {Intrinsic::x86_avx512_mask_pror_q_512, 113187}, // __builtin_ia32_prorq512_mask
+      {Intrinsic::x86_avx512_mask_prorv_d_128, 113216}, // __builtin_ia32_prorvd128_mask
+      {Intrinsic::x86_avx512_mask_prorv_d_256, 113246}, // __builtin_ia32_prorvd256_mask
+      {Intrinsic::x86_avx512_mask_prorv_d_512, 113276}, // __builtin_ia32_prorvd512_mask
+      {Intrinsic::x86_avx512_mask_prorv_q_128, 113306}, // __builtin_ia32_prorvq128_mask
+      {Intrinsic::x86_avx512_mask_prorv_q_256, 113336}, // __builtin_ia32_prorvq256_mask
+      {Intrinsic::x86_avx512_mask_prorv_q_512, 113366}, // __builtin_ia32_prorvq512_mask
+      {Intrinsic::x86_mmx_psad_bw, 127219}, // __builtin_ia32_psadbw
+      {Intrinsic::x86_sse2_psad_bw, 130216}, // __builtin_ia32_psadbw128
+      {Intrinsic::x86_avx2_psad_bw, 96832}, // __builtin_ia32_psadbw256
+      {Intrinsic::x86_avx512_psad_bw_512, 121448}, // __builtin_ia32_psadbw512
+      {Intrinsic::x86_ssse3_pshuf_b, 132682}, // __builtin_ia32_pshufb
+      {Intrinsic::x86_ssse3_pshuf_b_128, 132704}, // __builtin_ia32_pshufb128
+      {Intrinsic::x86_avx2_pshuf_b, 96857}, // __builtin_ia32_pshufb256
+      {Intrinsic::x86_avx512_pshuf_b_512, 121473}, // __builtin_ia32_pshufb512
+      {Intrinsic::x86_sse_pshuf_w, 128880}, // __builtin_ia32_pshufw
+      {Intrinsic::x86_ssse3_psign_b, 132729}, // __builtin_ia32_psignb
+      {Intrinsic::x86_ssse3_psign_b_128, 132751}, // __builtin_ia32_psignb128
+      {Intrinsic::x86_avx2_psign_b, 96882}, // __builtin_ia32_psignb256
+      {Intrinsic::x86_ssse3_psign_d, 132776}, // __builtin_ia32_psignd
+      {Intrinsic::x86_ssse3_psign_d_128, 132798}, // __builtin_ia32_psignd128
+      {Intrinsic::x86_avx2_psign_d, 96907}, // __builtin_ia32_psignd256
+      {Intrinsic::x86_ssse3_psign_w, 132823}, // __builtin_ia32_psignw
+      {Intrinsic::x86_ssse3_psign_w_128, 132845}, // __builtin_ia32_psignw128
+      {Intrinsic::x86_avx2_psign_w, 96932}, // __builtin_ia32_psignw256
+      {Intrinsic::x86_mmx_psll_d, 127241}, // __builtin_ia32_pslld
+      {Intrinsic::x86_sse2_psll_d, 130241}, // __builtin_ia32_pslld128
+      {Intrinsic::x86_avx2_psll_d, 96957}, // __builtin_ia32_pslld256
+      {Intrinsic::x86_avx512_psll_d_512, 121498}, // __builtin_ia32_pslld512
+      {Intrinsic::x86_mmx_pslli_d, 127304}, // __builtin_ia32_pslldi
+      {Intrinsic::x86_sse2_pslli_d, 130313}, // __builtin_ia32_pslldi128
+      {Intrinsic::x86_avx2_pslli_d, 97029}, // __builtin_ia32_pslldi256
+      {Intrinsic::x86_avx512_pslli_d_512, 121570}, // __builtin_ia32_pslldi512
+      {Intrinsic::x86_mmx_psll_q, 127262}, // __builtin_ia32_psllq
+      {Intrinsic::x86_sse2_psll_q, 130265}, // __builtin_ia32_psllq128
+      {Intrinsic::x86_avx2_psll_q, 96981}, // __builtin_ia32_psllq256
+      {Intrinsic::x86_avx512_psll_q_512, 121522}, // __builtin_ia32_psllq512
+      {Intrinsic::x86_mmx_pslli_q, 127326}, // __builtin_ia32_psllqi
+      {Intrinsic::x86_sse2_pslli_q, 130338}, // __builtin_ia32_psllqi128
+      {Intrinsic::x86_avx2_pslli_q, 97054}, // __builtin_ia32_psllqi256
+      {Intrinsic::x86_avx512_pslli_q_512, 121595}, // __builtin_ia32_psllqi512
+      {Intrinsic::x86_avx512_psllv_w_256, 121718}, // __builtin_ia32_psllv16hi
+      {Intrinsic::x86_avx512_psllv_d_512, 121645}, // __builtin_ia32_psllv16si
+      {Intrinsic::x86_avx2_psllv_q, 97152}, // __builtin_ia32_psllv2di
+      {Intrinsic::x86_avx512_psllv_w_512, 121743}, // __builtin_ia32_psllv32hi
+      {Intrinsic::x86_avx2_psllv_q_256, 97176}, // __builtin_ia32_psllv4di
+      {Intrinsic::x86_avx2_psllv_d, 97104}, // __builtin_ia32_psllv4si
+      {Intrinsic::x86_avx512_psllv_q_512, 121670}, // __builtin_ia32_psllv8di
+      {Intrinsic::x86_avx512_psllv_w_128, 121694}, // __builtin_ia32_psllv8hi
+      {Intrinsic::x86_avx2_psllv_d_256, 97128}, // __builtin_ia32_psllv8si
+      {Intrinsic::x86_mmx_psll_w, 127283}, // __builtin_ia32_psllw
+      {Intrinsic::x86_sse2_psll_w, 130289}, // __builtin_ia32_psllw128
+      {Intrinsic::x86_avx2_psll_w, 97005}, // __builtin_ia32_psllw256
+      {Intrinsic::x86_avx512_psll_w_512, 121546}, // __builtin_ia32_psllw512
+      {Intrinsic::x86_mmx_pslli_w, 127348}, // __builtin_ia32_psllwi
+      {Intrinsic::x86_sse2_pslli_w, 130363}, // __builtin_ia32_psllwi128
+      {Intrinsic::x86_avx2_pslli_w, 97079}, // __builtin_ia32_psllwi256
+      {Intrinsic::x86_avx512_pslli_w_512, 121620}, // __builtin_ia32_psllwi512
+      {Intrinsic::x86_mmx_psra_d, 127370}, // __builtin_ia32_psrad
+      {Intrinsic::x86_sse2_psra_d, 130388}, // __builtin_ia32_psrad128
+      {Intrinsic::x86_avx2_psra_d, 97200}, // __builtin_ia32_psrad256
+      {Intrinsic::x86_avx512_psra_d_512, 121768}, // __builtin_ia32_psrad512
+      {Intrinsic::x86_mmx_psrai_d, 127412}, // __builtin_ia32_psradi
+      {Intrinsic::x86_sse2_psrai_d, 130436}, // __builtin_ia32_psradi128
+      {Intrinsic::x86_avx2_psrai_d, 97248}, // __builtin_ia32_psradi256
+      {Intrinsic::x86_avx512_psrai_d_512, 121888}, // __builtin_ia32_psradi512
+      {Intrinsic::x86_avx512_psra_q_128, 121792}, // __builtin_ia32_psraq128
+      {Intrinsic::x86_avx512_psra_q_256, 121816}, // __builtin_ia32_psraq256
+      {Intrinsic::x86_avx512_psra_q_512, 121840}, // __builtin_ia32_psraq512
+      {Intrinsic::x86_avx512_psrai_q_128, 121913}, // __builtin_ia32_psraqi128
+      {Intrinsic::x86_avx512_psrai_q_256, 121938}, // __builtin_ia32_psraqi256
+      {Intrinsic::x86_avx512_psrai_q_512, 121963}, // __builtin_ia32_psraqi512
+      {Intrinsic::x86_avx512_psrav_w_256, 122136}, // __builtin_ia32_psrav16hi
+      {Intrinsic::x86_avx512_psrav_d_512, 122013}, // __builtin_ia32_psrav16si
+      {Intrinsic::x86_avx512_psrav_w_512, 122161}, // __builtin_ia32_psrav32hi
+      {Intrinsic::x86_avx2_psrav_d, 97298}, // __builtin_ia32_psrav4si
+      {Intrinsic::x86_avx512_psrav_q_512, 122088}, // __builtin_ia32_psrav8di
+      {Intrinsic::x86_avx512_psrav_w_128, 122112}, // __builtin_ia32_psrav8hi
+      {Intrinsic::x86_avx2_psrav_d_256, 97322}, // __builtin_ia32_psrav8si
+      {Intrinsic::x86_avx512_psrav_q_128, 122038}, // __builtin_ia32_psravq128
+      {Intrinsic::x86_avx512_psrav_q_256, 122063}, // __builtin_ia32_psravq256
+      {Intrinsic::x86_mmx_psra_w, 127391}, // __builtin_ia32_psraw
+      {Intrinsic::x86_sse2_psra_w, 130412}, // __builtin_ia32_psraw128
+      {Intrinsic::x86_avx2_psra_w, 97224}, // __builtin_ia32_psraw256
+      {Intrinsic::x86_avx512_psra_w_512, 121864}, // __builtin_ia32_psraw512
+      {Intrinsic::x86_mmx_psrai_w, 127434}, // __builtin_ia32_psrawi
+      {Intrinsic::x86_sse2_psrai_w, 130461}, // __builtin_ia32_psrawi128
+      {Intrinsic::x86_avx2_psrai_w, 97273}, // __builtin_ia32_psrawi256
+      {Intrinsic::x86_avx512_psrai_w_512, 121988}, // __builtin_ia32_psrawi512
+      {Intrinsic::x86_mmx_psrl_d, 127456}, // __builtin_ia32_psrld
+      {Intrinsic::x86_sse2_psrl_d, 130486}, // __builtin_ia32_psrld128
+      {Intrinsic::x86_avx2_psrl_d, 97346}, // __builtin_ia32_psrld256
+      {Intrinsic::x86_avx512_psrl_d_512, 122186}, // __builtin_ia32_psrld512
+      {Intrinsic::x86_mmx_psrli_d, 127519}, // __builtin_ia32_psrldi
+      {Intrinsic::x86_sse2_psrli_d, 130558}, // __builtin_ia32_psrldi128
+      {Intrinsic::x86_avx2_psrli_d, 97418}, // __builtin_ia32_psrldi256
+      {Intrinsic::x86_avx512_psrli_d_512, 122258}, // __builtin_ia32_psrldi512
+      {Intrinsic::x86_mmx_psrl_q, 127477}, // __builtin_ia32_psrlq
+      {Intrinsic::x86_sse2_psrl_q, 130510}, // __builtin_ia32_psrlq128
+      {Intrinsic::x86_avx2_psrl_q, 97370}, // __builtin_ia32_psrlq256
+      {Intrinsic::x86_avx512_psrl_q_512, 122210}, // __builtin_ia32_psrlq512
+      {Intrinsic::x86_mmx_psrli_q, 127541}, // __builtin_ia32_psrlqi
+      {Intrinsic::x86_sse2_psrli_q, 130583}, // __builtin_ia32_psrlqi128
+      {Intrinsic::x86_avx2_psrli_q, 97443}, // __builtin_ia32_psrlqi256
+      {Intrinsic::x86_avx512_psrli_q_512, 122283}, // __builtin_ia32_psrlqi512
+      {Intrinsic::x86_avx512_psrlv_w_256, 122406}, // __builtin_ia32_psrlv16hi
+      {Intrinsic::x86_avx512_psrlv_d_512, 122333}, // __builtin_ia32_psrlv16si
+      {Intrinsic::x86_avx2_psrlv_q, 97541}, // __builtin_ia32_psrlv2di
+      {Intrinsic::x86_avx512_psrlv_w_512, 122431}, // __builtin_ia32_psrlv32hi
+      {Intrinsic::x86_avx2_psrlv_q_256, 97565}, // __builtin_ia32_psrlv4di
+      {Intrinsic::x86_avx2_psrlv_d, 97493}, // __builtin_ia32_psrlv4si
+      {Intrinsic::x86_avx512_psrlv_q_512, 122358}, // __builtin_ia32_psrlv8di
+      {Intrinsic::x86_avx512_psrlv_w_128, 122382}, // __builtin_ia32_psrlv8hi
+      {Intrinsic::x86_avx2_psrlv_d_256, 97517}, // __builtin_ia32_psrlv8si
+      {Intrinsic::x86_mmx_psrl_w, 127498}, // __builtin_ia32_psrlw
+      {Intrinsic::x86_sse2_psrl_w, 130534}, // __builtin_ia32_psrlw128
+      {Intrinsic::x86_avx2_psrl_w, 97394}, // __builtin_ia32_psrlw256
+      {Intrinsic::x86_avx512_psrl_w_512, 122234}, // __builtin_ia32_psrlw512
+      {Intrinsic::x86_mmx_psrli_w, 127563}, // __builtin_ia32_psrlwi
+      {Intrinsic::x86_sse2_psrli_w, 130608}, // __builtin_ia32_psrlwi128
+      {Intrinsic::x86_avx2_psrli_w, 97468}, // __builtin_ia32_psrlwi256
+      {Intrinsic::x86_avx512_psrli_w_512, 122308}, // __builtin_ia32_psrlwi512
+      {Intrinsic::x86_mmx_psub_b, 127585}, // __builtin_ia32_psubb
+      {Intrinsic::x86_mmx_psub_d, 127606}, // __builtin_ia32_psubd
+      {Intrinsic::x86_mmx_psub_q, 127627}, // __builtin_ia32_psubq
+      {Intrinsic::x86_mmx_psubs_b, 127669}, // __builtin_ia32_psubsb
+      {Intrinsic::x86_sse2_psubs_b, 130633}, // __builtin_ia32_psubsb128
+      {Intrinsic::x86_avx512_mask_psubs_b_128, 113396}, // __builtin_ia32_psubsb128_mask
+      {Intrinsic::x86_avx2_psubs_b, 97589}, // __builtin_ia32_psubsb256
+      {Intrinsic::x86_avx512_mask_psubs_b_256, 113426}, // __builtin_ia32_psubsb256_mask
+      {Intrinsic::x86_avx512_mask_psubs_b_512, 113456}, // __builtin_ia32_psubsb512_mask
+      {Intrinsic::x86_mmx_psubs_w, 127691}, // __builtin_ia32_psubsw
+      {Intrinsic::x86_sse2_psubs_w, 130658}, // __builtin_ia32_psubsw128
+      {Intrinsic::x86_avx512_mask_psubs_w_128, 113486}, // __builtin_ia32_psubsw128_mask
+      {Intrinsic::x86_avx2_psubs_w, 97614}, // __builtin_ia32_psubsw256
+      {Intrinsic::x86_avx512_mask_psubs_w_256, 113516}, // __builtin_ia32_psubsw256_mask
+      {Intrinsic::x86_avx512_mask_psubs_w_512, 113546}, // __builtin_ia32_psubsw512_mask
+      {Intrinsic::x86_mmx_psubus_b, 127713}, // __builtin_ia32_psubusb
+      {Intrinsic::x86_sse2_psubus_b, 130683}, // __builtin_ia32_psubusb128
+      {Intrinsic::x86_avx512_mask_psubus_b_128, 113576}, // __builtin_ia32_psubusb128_mask
+      {Intrinsic::x86_avx2_psubus_b, 97639}, // __builtin_ia32_psubusb256
+      {Intrinsic::x86_avx512_mask_psubus_b_256, 113607}, // __builtin_ia32_psubusb256_mask
+      {Intrinsic::x86_avx512_mask_psubus_b_512, 113638}, // __builtin_ia32_psubusb512_mask
+      {Intrinsic::x86_mmx_psubus_w, 127736}, // __builtin_ia32_psubusw
+      {Intrinsic::x86_sse2_psubus_w, 130709}, // __builtin_ia32_psubusw128
+      {Intrinsic::x86_avx512_mask_psubus_w_128, 113669}, // __builtin_ia32_psubusw128_mask
+      {Intrinsic::x86_avx2_psubus_w, 97665}, // __builtin_ia32_psubusw256
+      {Intrinsic::x86_avx512_mask_psubus_w_256, 113700}, // __builtin_ia32_psubusw256_mask
+      {Intrinsic::x86_avx512_mask_psubus_w_512, 113731}, // __builtin_ia32_psubusw512_mask
+      {Intrinsic::x86_mmx_psub_w, 127648}, // __builtin_ia32_psubw
+      {Intrinsic::x86_avx512_mask_pternlog_d_128, 113762}, // __builtin_ia32_pternlogd128_mask
+      {Intrinsic::x86_avx512_maskz_pternlog_d_128, 119706}, // __builtin_ia32_pternlogd128_maskz
+      {Intrinsic::x86_avx512_mask_pternlog_d_256, 113795}, // __builtin_ia32_pternlogd256_mask
+      {Intrinsic::x86_avx512_maskz_pternlog_d_256, 119740}, // __builtin_ia32_pternlogd256_maskz
+      {Intrinsic::x86_avx512_mask_pternlog_d_512, 113828}, // __builtin_ia32_pternlogd512_mask
+      {Intrinsic::x86_avx512_maskz_pternlog_d_512, 119774}, // __builtin_ia32_pternlogd512_maskz
+      {Intrinsic::x86_avx512_mask_pternlog_q_128, 113861}, // __builtin_ia32_pternlogq128_mask
+      {Intrinsic::x86_avx512_maskz_pternlog_q_128, 119808}, // __builtin_ia32_pternlogq128_maskz
+      {Intrinsic::x86_avx512_mask_pternlog_q_256, 113894}, // __builtin_ia32_pternlogq256_mask
+      {Intrinsic::x86_avx512_maskz_pternlog_q_256, 119842}, // __builtin_ia32_pternlogq256_maskz
+      {Intrinsic::x86_avx512_mask_pternlog_q_512, 113927}, // __builtin_ia32_pternlogq512_mask
+      {Intrinsic::x86_avx512_maskz_pternlog_q_512, 119876}, // __builtin_ia32_pternlogq512_maskz
+      {Intrinsic::x86_sse41_ptestc, 131404}, // __builtin_ia32_ptestc128
+      {Intrinsic::x86_avx_ptestc_256, 94549}, // __builtin_ia32_ptestc256
+      {Intrinsic::x86_avx512_ptestm_b_128, 122456}, // __builtin_ia32_ptestmb128
+      {Intrinsic::x86_avx512_ptestm_b_256, 122482}, // __builtin_ia32_ptestmb256
+      {Intrinsic::x86_avx512_ptestm_b_512, 122508}, // __builtin_ia32_ptestmb512
+      {Intrinsic::x86_avx512_ptestm_d_128, 122534}, // __builtin_ia32_ptestmd128
+      {Intrinsic::x86_avx512_ptestm_d_256, 122560}, // __builtin_ia32_ptestmd256
+      {Intrinsic::x86_avx512_ptestm_d_512, 122586}, // __builtin_ia32_ptestmd512
+      {Intrinsic::x86_avx512_ptestm_q_128, 122612}, // __builtin_ia32_ptestmq128
+      {Intrinsic::x86_avx512_ptestm_q_256, 122638}, // __builtin_ia32_ptestmq256
+      {Intrinsic::x86_avx512_ptestm_q_512, 122664}, // __builtin_ia32_ptestmq512
+      {Intrinsic::x86_avx512_ptestm_w_128, 122690}, // __builtin_ia32_ptestmw128
+      {Intrinsic::x86_avx512_ptestm_w_256, 122716}, // __builtin_ia32_ptestmw256
+      {Intrinsic::x86_avx512_ptestm_w_512, 122742}, // __builtin_ia32_ptestmw512
+      {Intrinsic::x86_avx512_ptestnm_b_128, 122768}, // __builtin_ia32_ptestnmb128
+      {Intrinsic::x86_avx512_ptestnm_b_256, 122795}, // __builtin_ia32_ptestnmb256
+      {Intrinsic::x86_avx512_ptestnm_b_512, 122822}, // __builtin_ia32_ptestnmb512
+      {Intrinsic::x86_avx512_ptestnm_d_128, 122849}, // __builtin_ia32_ptestnmd128
+      {Intrinsic::x86_avx512_ptestnm_d_256, 122876}, // __builtin_ia32_ptestnmd256
+      {Intrinsic::x86_avx512_ptestnm_d_512, 122903}, // __builtin_ia32_ptestnmd512
+      {Intrinsic::x86_avx512_ptestnm_q_128, 122930}, // __builtin_ia32_ptestnmq128
+      {Intrinsic::x86_avx512_ptestnm_q_256, 122957}, // __builtin_ia32_ptestnmq256
+      {Intrinsic::x86_avx512_ptestnm_q_512, 122984}, // __builtin_ia32_ptestnmq512
+      {Intrinsic::x86_avx512_ptestnm_w_128, 123011}, // __builtin_ia32_ptestnmw128
+      {Intrinsic::x86_avx512_ptestnm_w_256, 123038}, // __builtin_ia32_ptestnmw256
+      {Intrinsic::x86_avx512_ptestnm_w_512, 123065}, // __builtin_ia32_ptestnmw512
+      {Intrinsic::x86_sse41_ptestnzc, 131429}, // __builtin_ia32_ptestnzc128
+      {Intrinsic::x86_avx_ptestnzc_256, 94574}, // __builtin_ia32_ptestnzc256
+      {Intrinsic::x86_sse41_ptestz, 131456}, // __builtin_ia32_ptestz128
+      {Intrinsic::x86_avx_ptestz_256, 94601}, // __builtin_ia32_ptestz256
+      {Intrinsic::x86_mmx_punpckhbw, 127759}, // __builtin_ia32_punpckhbw
+      {Intrinsic::x86_mmx_punpckhdq, 127784}, // __builtin_ia32_punpckhdq
+      {Intrinsic::x86_mmx_punpckhwd, 127809}, // __builtin_ia32_punpckhwd
+      {Intrinsic::x86_mmx_punpcklbw, 127834}, // __builtin_ia32_punpcklbw
+      {Intrinsic::x86_mmx_punpckldq, 127859}, // __builtin_ia32_punpckldq
+      {Intrinsic::x86_mmx_punpcklwd, 127884}, // __builtin_ia32_punpcklwd
+      {Intrinsic::x86_mmx_pxor, 127909}, // __builtin_ia32_pxor
+      {Intrinsic::x86_avx512_mask_range_pd_128, 113960}, // __builtin_ia32_rangepd128_mask
+      {Intrinsic::x86_avx512_mask_range_pd_256, 113991}, // __builtin_ia32_rangepd256_mask
+      {Intrinsic::x86_avx512_mask_range_pd_512, 114022}, // __builtin_ia32_rangepd512_mask
+      {Intrinsic::x86_avx512_mask_range_ps_128, 114053}, // __builtin_ia32_rangeps128_mask
+      {Intrinsic::x86_avx512_mask_range_ps_256, 114084}, // __builtin_ia32_rangeps256_mask
+      {Intrinsic::x86_avx512_mask_range_ps_512, 114115}, // __builtin_ia32_rangeps512_mask
+      {Intrinsic::x86_avx512_mask_range_sd, 114146}, // __builtin_ia32_rangesd128_round_mask
+      {Intrinsic::x86_avx512_mask_range_ss, 114183}, // __builtin_ia32_rangess128_round_mask
+      {Intrinsic::x86_avx512_rcp14_pd_128, 123092}, // __builtin_ia32_rcp14pd128_mask
+      {Intrinsic::x86_avx512_rcp14_pd_256, 123123}, // __builtin_ia32_rcp14pd256_mask
+      {Intrinsic::x86_avx512_rcp14_pd_512, 123154}, // __builtin_ia32_rcp14pd512_mask
+      {Intrinsic::x86_avx512_rcp14_ps_128, 123185}, // __builtin_ia32_rcp14ps128_mask
+      {Intrinsic::x86_avx512_rcp14_ps_256, 123216}, // __builtin_ia32_rcp14ps256_mask
+      {Intrinsic::x86_avx512_rcp14_ps_512, 123247}, // __builtin_ia32_rcp14ps512_mask
+      {Intrinsic::x86_avx512_rcp14_sd, 123278}, // __builtin_ia32_rcp14sd_mask
+      {Intrinsic::x86_avx512_rcp14_ss, 123306}, // __builtin_ia32_rcp14ss_mask
+      {Intrinsic::x86_avx512_rcp28_pd, 123334}, // __builtin_ia32_rcp28pd_mask
+      {Intrinsic::x86_avx512_rcp28_ps, 123362}, // __builtin_ia32_rcp28ps_mask
+      {Intrinsic::x86_avx512_rcp28_sd, 123390}, // __builtin_ia32_rcp28sd_round_mask
+      {Intrinsic::x86_avx512_rcp28_ss, 123424}, // __builtin_ia32_rcp28ss_round_mask
+      {Intrinsic::x86_sse_rcp_ps, 128902}, // __builtin_ia32_rcpps
+      {Intrinsic::x86_avx_rcp_ps_256, 94626}, // __builtin_ia32_rcpps256
+      {Intrinsic::x86_sse_rcp_ss, 128923}, // __builtin_ia32_rcpss
+      {Intrinsic::x86_rdfsbase_32, 128003}, // __builtin_ia32_rdfsbase32
+      {Intrinsic::x86_rdfsbase_64, 128029}, // __builtin_ia32_rdfsbase64
+      {Intrinsic::x86_rdgsbase_32, 128055}, // __builtin_ia32_rdgsbase32
+      {Intrinsic::x86_rdgsbase_64, 128081}, // __builtin_ia32_rdgsbase64
+      {Intrinsic::x86_rdpkru, 128107}, // __builtin_ia32_rdpkru
+      {Intrinsic::x86_rdpmc, 128129}, // __builtin_ia32_rdpmc
+      {Intrinsic::x86_rdtsc, 128150}, // __builtin_ia32_rdtsc
+      {Intrinsic::x86_rdtscp, 128171}, // __builtin_ia32_rdtscp
+      {Intrinsic::x86_flags_read_u32, 125286}, // __builtin_ia32_readeflags_u32
+      {Intrinsic::x86_flags_read_u64, 125316}, // __builtin_ia32_readeflags_u64
+      {Intrinsic::x86_avx512_mask_reduce_pd_128, 114220}, // __builtin_ia32_reducepd128_mask
+      {Intrinsic::x86_avx512_mask_reduce_pd_256, 114252}, // __builtin_ia32_reducepd256_mask
+      {Intrinsic::x86_avx512_mask_reduce_pd_512, 114284}, // __builtin_ia32_reducepd512_mask
+      {Intrinsic::x86_avx512_mask_reduce_ps_128, 114316}, // __builtin_ia32_reduceps128_mask
+      {Intrinsic::x86_avx512_mask_reduce_ps_256, 114348}, // __builtin_ia32_reduceps256_mask
+      {Intrinsic::x86_avx512_mask_reduce_ps_512, 114380}, // __builtin_ia32_reduceps512_mask
+      {Intrinsic::x86_avx512_mask_reduce_sd, 114412}, // __builtin_ia32_reducesd_mask
+      {Intrinsic::x86_avx512_mask_reduce_ss, 114441}, // __builtin_ia32_reducess_mask
+      {Intrinsic::x86_avx512_mask_rndscale_pd_128, 114470}, // __builtin_ia32_rndscalepd_128_mask
+      {Intrinsic::x86_avx512_mask_rndscale_pd_256, 114505}, // __builtin_ia32_rndscalepd_256_mask
+      {Intrinsic::x86_avx512_mask_rndscale_pd_512, 114540}, // __builtin_ia32_rndscalepd_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ps_128, 114571}, // __builtin_ia32_rndscaleps_128_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ps_256, 114606}, // __builtin_ia32_rndscaleps_256_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ps_512, 114641}, // __builtin_ia32_rndscaleps_mask
+      {Intrinsic::x86_avx512_mask_rndscale_sd, 114672}, // __builtin_ia32_rndscalesd_round_mask
+      {Intrinsic::x86_avx512_mask_rndscale_ss, 114709}, // __builtin_ia32_rndscaless_round_mask
+      {Intrinsic::x86_sse41_round_pd, 131481}, // __builtin_ia32_roundpd
+      {Intrinsic::x86_avx_round_pd_256, 94650}, // __builtin_ia32_roundpd256
+      {Intrinsic::x86_sse41_round_ps, 131504}, // __builtin_ia32_roundps
+      {Intrinsic::x86_avx_round_ps_256, 94676}, // __builtin_ia32_roundps256
+      {Intrinsic::x86_sse41_round_sd, 131527}, // __builtin_ia32_roundsd
+      {Intrinsic::x86_sse41_round_ss, 131550}, // __builtin_ia32_roundss
+      {Intrinsic::x86_avx512_rsqrt14_pd_128, 123458}, // __builtin_ia32_rsqrt14pd128_mask
+      {Intrinsic::x86_avx512_rsqrt14_pd_256, 123491}, // __builtin_ia32_rsqrt14pd256_mask
+      {Intrinsic::x86_avx512_rsqrt14_pd_512, 123524}, // __builtin_ia32_rsqrt14pd512_mask
+      {Intrinsic::x86_avx512_rsqrt14_ps_128, 123557}, // __builtin_ia32_rsqrt14ps128_mask
+      {Intrinsic::x86_avx512_rsqrt14_ps_256, 123590}, // __builtin_ia32_rsqrt14ps256_mask
+      {Intrinsic::x86_avx512_rsqrt14_ps_512, 123623}, // __builtin_ia32_rsqrt14ps512_mask
+      {Intrinsic::x86_avx512_rsqrt14_sd, 123656}, // __builtin_ia32_rsqrt14sd_mask
+      {Intrinsic::x86_avx512_rsqrt14_ss, 123686}, // __builtin_ia32_rsqrt14ss_mask
+      {Intrinsic::x86_avx512_rsqrt28_pd, 123716}, // __builtin_ia32_rsqrt28pd_mask
+      {Intrinsic::x86_avx512_rsqrt28_ps, 123746}, // __builtin_ia32_rsqrt28ps_mask
+      {Intrinsic::x86_avx512_rsqrt28_sd, 123776}, // __builtin_ia32_rsqrt28sd_round_mask
+      {Intrinsic::x86_avx512_rsqrt28_ss, 123812}, // __builtin_ia32_rsqrt28ss_round_mask
+      {Intrinsic::x86_sse_rsqrt_ps, 128944}, // __builtin_ia32_rsqrtps
+      {Intrinsic::x86_avx_rsqrt_ps_256, 94702}, // __builtin_ia32_rsqrtps256
+      {Intrinsic::x86_sse_rsqrt_ss, 128967}, // __builtin_ia32_rsqrtss
+      {Intrinsic::x86_avx512_mask_scalef_pd_128, 114746}, // __builtin_ia32_scalefpd128_mask
+      {Intrinsic::x86_avx512_mask_scalef_pd_256, 114778}, // __builtin_ia32_scalefpd256_mask
+      {Intrinsic::x86_avx512_mask_scalef_pd_512, 114810}, // __builtin_ia32_scalefpd512_mask
+      {Intrinsic::x86_avx512_mask_scalef_ps_128, 114842}, // __builtin_ia32_scalefps128_mask
+      {Intrinsic::x86_avx512_mask_scalef_ps_256, 114874}, // __builtin_ia32_scalefps256_mask
+      {Intrinsic::x86_avx512_mask_scalef_ps_512, 114906}, // __builtin_ia32_scalefps512_mask
+      {Intrinsic::x86_avx512_mask_scalef_sd, 114938}, // __builtin_ia32_scalefsd_round_mask
+      {Intrinsic::x86_avx512_mask_scalef_ss, 114973}, // __builtin_ia32_scalefss_round_mask
+      {Intrinsic::x86_avx512_scatter_qps_512, 124054}, // __builtin_ia32_scatterdiv16sf
+      {Intrinsic::x86_avx512_scatter_qpi_512, 123995}, // __builtin_ia32_scatterdiv16si
+      {Intrinsic::x86_avx512_scatterdiv2_df, 124084}, // __builtin_ia32_scatterdiv2df
+      {Intrinsic::x86_avx512_scatterdiv2_di, 124113}, // __builtin_ia32_scatterdiv2di
+      {Intrinsic::x86_avx512_scatterdiv4_df, 124142}, // __builtin_ia32_scatterdiv4df
+      {Intrinsic::x86_avx512_scatterdiv4_di, 124171}, // __builtin_ia32_scatterdiv4di
+      {Intrinsic::x86_avx512_scatterdiv4_sf, 124200}, // __builtin_ia32_scatterdiv4sf
+      {Intrinsic::x86_avx512_scatterdiv4_si, 124229}, // __builtin_ia32_scatterdiv4si
+      {Intrinsic::x86_avx512_scatter_qpd_512, 123966}, // __builtin_ia32_scatterdiv8df
+      {Intrinsic::x86_avx512_scatter_qpq_512, 124025}, // __builtin_ia32_scatterdiv8di
+      {Intrinsic::x86_avx512_scatterdiv8_sf, 124258}, // __builtin_ia32_scatterdiv8sf
+      {Intrinsic::x86_avx512_scatterdiv8_si, 124287}, // __builtin_ia32_scatterdiv8si
+      {Intrinsic::x86_avx512_scatterpf_dpd_512, 124316}, // __builtin_ia32_scatterpfdpd
+      {Intrinsic::x86_avx512_scatterpf_dps_512, 124344}, // __builtin_ia32_scatterpfdps
+      {Intrinsic::x86_avx512_scatterpf_qpd_512, 124372}, // __builtin_ia32_scatterpfqpd
+      {Intrinsic::x86_avx512_scatterpf_qps_512, 124400}, // __builtin_ia32_scatterpfqps
+      {Intrinsic::x86_avx512_scatter_dps_512, 123936}, // __builtin_ia32_scattersiv16sf
+      {Intrinsic::x86_avx512_scatter_dpi_512, 123877}, // __builtin_ia32_scattersiv16si
+      {Intrinsic::x86_avx512_scattersiv2_df, 124428}, // __builtin_ia32_scattersiv2df
+      {Intrinsic::x86_avx512_scattersiv2_di, 124457}, // __builtin_ia32_scattersiv2di
+      {Intrinsic::x86_avx512_scattersiv4_df, 124486}, // __builtin_ia32_scattersiv4df
+      {Intrinsic::x86_avx512_scattersiv4_di, 124515}, // __builtin_ia32_scattersiv4di
+      {Intrinsic::x86_avx512_scattersiv4_sf, 124544}, // __builtin_ia32_scattersiv4sf
+      {Intrinsic::x86_avx512_scattersiv4_si, 124573}, // __builtin_ia32_scattersiv4si
+      {Intrinsic::x86_avx512_scatter_dpd_512, 123848}, // __builtin_ia32_scattersiv8df
+      {Intrinsic::x86_avx512_scatter_dpq_512, 123907}, // __builtin_ia32_scattersiv8di
+      {Intrinsic::x86_avx512_scattersiv8_sf, 124602}, // __builtin_ia32_scattersiv8sf
+      {Intrinsic::x86_avx512_scattersiv8_si, 124631}, // __builtin_ia32_scattersiv8si
+      {Intrinsic::x86_sse_sfence, 128990}, // __builtin_ia32_sfence
+      {Intrinsic::x86_sha1msg1, 128193}, // __builtin_ia32_sha1msg1
+      {Intrinsic::x86_sha1msg2, 128217}, // __builtin_ia32_sha1msg2
+      {Intrinsic::x86_sha1nexte, 128241}, // __builtin_ia32_sha1nexte
+      {Intrinsic::x86_sha1rnds4, 128266}, // __builtin_ia32_sha1rnds4
+      {Intrinsic::x86_sha256msg1, 128291}, // __builtin_ia32_sha256msg1
+      {Intrinsic::x86_sha256msg2, 128317}, // __builtin_ia32_sha256msg2
+      {Intrinsic::x86_sha256rnds2, 128343}, // __builtin_ia32_sha256rnds2
+      {Intrinsic::x86_avx512_mask_shuf_f32x4_256, 115039}, // __builtin_ia32_shuf_f32x4_256_mask
+      {Intrinsic::x86_avx512_mask_shuf_f32x4, 115008}, // __builtin_ia32_shuf_f32x4_mask
+      {Intrinsic::x86_avx512_mask_shuf_f64x2_256, 115105}, // __builtin_ia32_shuf_f64x2_256_mask
+      {Intrinsic::x86_avx512_mask_shuf_f64x2, 115074}, // __builtin_ia32_shuf_f64x2_mask
+      {Intrinsic::x86_avx512_mask_shuf_i32x4_256, 115171}, // __builtin_ia32_shuf_i32x4_256_mask
+      {Intrinsic::x86_avx512_mask_shuf_i32x4, 115140}, // __builtin_ia32_shuf_i32x4_mask
+      {Intrinsic::x86_avx512_mask_shuf_i64x2_256, 115237}, // __builtin_ia32_shuf_i64x2_256_mask
+      {Intrinsic::x86_avx512_mask_shuf_i64x2, 115206}, // __builtin_ia32_shuf_i64x2_mask
+      {Intrinsic::x86_sse2_sqrt_pd, 130735}, // __builtin_ia32_sqrtpd
+      {Intrinsic::x86_avx512_mask_sqrt_pd_128, 115272}, // __builtin_ia32_sqrtpd128_mask
+      {Intrinsic::x86_avx_sqrt_pd_256, 94728}, // __builtin_ia32_sqrtpd256
+      {Intrinsic::x86_avx512_mask_sqrt_pd_256, 115302}, // __builtin_ia32_sqrtpd256_mask
+      {Intrinsic::x86_avx512_mask_sqrt_pd_512, 115332}, // __builtin_ia32_sqrtpd512_mask
+      {Intrinsic::x86_sse_sqrt_ps, 129012}, // __builtin_ia32_sqrtps
+      {Intrinsic::x86_avx512_mask_sqrt_ps_128, 115362}, // __builtin_ia32_sqrtps128_mask
+      {Intrinsic::x86_avx_sqrt_ps_256, 94753}, // __builtin_ia32_sqrtps256
+      {Intrinsic::x86_avx512_mask_sqrt_ps_256, 115392}, // __builtin_ia32_sqrtps256_mask
+      {Intrinsic::x86_avx512_mask_sqrt_ps_512, 115422}, // __builtin_ia32_sqrtps512_mask
+      {Intrinsic::x86_sse2_sqrt_sd, 130757}, // __builtin_ia32_sqrtsd
+      {Intrinsic::x86_avx512_mask_sqrt_sd, 115452}, // __builtin_ia32_sqrtsd_round_mask
+      {Intrinsic::x86_sse_sqrt_ss, 129034}, // __builtin_ia32_sqrtss
+      {Intrinsic::x86_avx512_mask_sqrt_ss, 115485}, // __builtin_ia32_sqrtss_round_mask
+      {Intrinsic::x86_avx512_mask_store_ss, 115518}, // __builtin_ia32_storess_mask
+      {Intrinsic::x86_subborrow_u32, 132870}, // __builtin_ia32_subborrow_u32
+      {Intrinsic::x86_subborrow_u64, 132899}, // __builtin_ia32_subborrow_u64
+      {Intrinsic::x86_avx512_mask_sub_pd_512, 115546}, // __builtin_ia32_subpd512_mask
+      {Intrinsic::x86_avx512_mask_sub_ps_512, 115575}, // __builtin_ia32_subps512_mask
+      {Intrinsic::x86_avx512_mask_sub_sd_round, 115604}, // __builtin_ia32_subsd_round_mask
+      {Intrinsic::x86_avx512_mask_sub_ss_round, 115636}, // __builtin_ia32_subss_round_mask
+      {Intrinsic::x86_sse_ucomieq_ss, 129056}, // __builtin_ia32_ucomieq
+      {Intrinsic::x86_sse_ucomige_ss, 129079}, // __builtin_ia32_ucomige
+      {Intrinsic::x86_sse_ucomigt_ss, 129102}, // __builtin_ia32_ucomigt
+      {Intrinsic::x86_sse_ucomile_ss, 129125}, // __builtin_ia32_ucomile
+      {Intrinsic::x86_sse_ucomilt_ss, 129148}, // __builtin_ia32_ucomilt
+      {Intrinsic::x86_sse_ucomineq_ss, 129171}, // __builtin_ia32_ucomineq
+      {Intrinsic::x86_sse2_ucomieq_sd, 130779}, // __builtin_ia32_ucomisdeq
+      {Intrinsic::x86_sse2_ucomige_sd, 130804}, // __builtin_ia32_ucomisdge
+      {Intrinsic::x86_sse2_ucomigt_sd, 130829}, // __builtin_ia32_ucomisdgt
+      {Intrinsic::x86_sse2_ucomile_sd, 130854}, // __builtin_ia32_ucomisdle
+      {Intrinsic::x86_sse2_ucomilt_sd, 130879}, // __builtin_ia32_ucomisdlt
+      {Intrinsic::x86_sse2_ucomineq_sd, 130904}, // __builtin_ia32_ucomisdneq
+      {Intrinsic::x86_avx512_vbroadcast_sd_512, 124660}, // __builtin_ia32_vbroadcastsd512
+      {Intrinsic::x86_avx512_vbroadcast_ss_512, 124691}, // __builtin_ia32_vbroadcastss512
+      {Intrinsic::x86_avx512_vcomi_sd, 124722}, // __builtin_ia32_vcomisd
+      {Intrinsic::x86_avx512_vcomi_ss, 124745}, // __builtin_ia32_vcomiss
+      {Intrinsic::x86_vcvtph2ps_128, 132980}, // __builtin_ia32_vcvtph2ps
+      {Intrinsic::x86_vcvtph2ps_256, 133005}, // __builtin_ia32_vcvtph2ps256
+      {Intrinsic::x86_avx512_mask_vcvtph2ps_256, 115698}, // __builtin_ia32_vcvtph2ps256_mask
+      {Intrinsic::x86_avx512_mask_vcvtph2ps_512, 115731}, // __builtin_ia32_vcvtph2ps512_mask
+      {Intrinsic::x86_avx512_mask_vcvtph2ps_128, 115668}, // __builtin_ia32_vcvtph2ps_mask
+      {Intrinsic::x86_vcvtps2ph_128, 133033}, // __builtin_ia32_vcvtps2ph
+      {Intrinsic::x86_vcvtps2ph_256, 133058}, // __builtin_ia32_vcvtps2ph256
+      {Intrinsic::x86_avx512_mask_vcvtps2ph_256, 115794}, // __builtin_ia32_vcvtps2ph256_mask
+      {Intrinsic::x86_avx512_mask_vcvtps2ph_512, 115827}, // __builtin_ia32_vcvtps2ph512_mask
+      {Intrinsic::x86_avx512_mask_vcvtps2ph_128, 115764}, // __builtin_ia32_vcvtps2ph_mask
+      {Intrinsic::x86_avx512_vcvtsd2si32, 124768}, // __builtin_ia32_vcvtsd2si32
+      {Intrinsic::x86_avx512_vcvtsd2si64, 124795}, // __builtin_ia32_vcvtsd2si64
+      {Intrinsic::x86_avx512_vcvtsd2usi32, 124822}, // __builtin_ia32_vcvtsd2usi32
+      {Intrinsic::x86_avx512_vcvtsd2usi64, 124850}, // __builtin_ia32_vcvtsd2usi64
+      {Intrinsic::x86_avx512_vcvtss2si32, 124878}, // __builtin_ia32_vcvtss2si32
+      {Intrinsic::x86_avx512_vcvtss2si64, 124905}, // __builtin_ia32_vcvtss2si64
+      {Intrinsic::x86_avx512_vcvtss2usi32, 124932}, // __builtin_ia32_vcvtss2usi32
+      {Intrinsic::x86_avx512_vcvtss2usi64, 124960}, // __builtin_ia32_vcvtss2usi64
+      {Intrinsic::x86_avx512_cvttsd2si, 98226}, // __builtin_ia32_vcvttsd2si32
+      {Intrinsic::x86_avx512_cvttsd2si64, 98254}, // __builtin_ia32_vcvttsd2si64
+      {Intrinsic::x86_avx512_cvttsd2usi, 98282}, // __builtin_ia32_vcvttsd2usi32
+      {Intrinsic::x86_avx512_cvttsd2usi64, 98311}, // __builtin_ia32_vcvttsd2usi64
+      {Intrinsic::x86_avx512_cvttss2si, 98340}, // __builtin_ia32_vcvttss2si32
+      {Intrinsic::x86_avx512_cvttss2si64, 98368}, // __builtin_ia32_vcvttss2si64
+      {Intrinsic::x86_avx512_cvttss2usi, 98396}, // __builtin_ia32_vcvttss2usi32
+      {Intrinsic::x86_avx512_cvttss2usi64, 98425}, // __builtin_ia32_vcvttss2usi64
+      {Intrinsic::x86_mmx_pextr_w, 126919}, // __builtin_ia32_vec_ext_v4hi
+      {Intrinsic::x86_mmx_pinsr_w, 126947}, // __builtin_ia32_vec_set_v4hi
+      {Intrinsic::x86_fma_vfmadd_pd, 125408}, // __builtin_ia32_vfmaddpd
+      {Intrinsic::x86_avx512_mask_vfmadd_pd_128, 115860}, // __builtin_ia32_vfmaddpd128_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_pd_128, 118212}, // __builtin_ia32_vfmaddpd128_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_pd_128, 119910}, // __builtin_ia32_vfmaddpd128_maskz
+      {Intrinsic::x86_fma_vfmadd_pd_256, 125432}, // __builtin_ia32_vfmaddpd256
+      {Intrinsic::x86_avx512_mask_vfmadd_pd_256, 115892}, // __builtin_ia32_vfmaddpd256_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_pd_256, 118245}, // __builtin_ia32_vfmaddpd256_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_pd_256, 119943}, // __builtin_ia32_vfmaddpd256_maskz
+      {Intrinsic::x86_avx512_mask_vfmadd_pd_512, 115924}, // __builtin_ia32_vfmaddpd512_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_pd_512, 118278}, // __builtin_ia32_vfmaddpd512_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_pd_512, 119976}, // __builtin_ia32_vfmaddpd512_maskz
+      {Intrinsic::x86_fma_vfmadd_ps, 125459}, // __builtin_ia32_vfmaddps
+      {Intrinsic::x86_avx512_mask_vfmadd_ps_128, 115956}, // __builtin_ia32_vfmaddps128_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_ps_128, 118311}, // __builtin_ia32_vfmaddps128_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_ps_128, 120009}, // __builtin_ia32_vfmaddps128_maskz
+      {Intrinsic::x86_fma_vfmadd_ps_256, 125483}, // __builtin_ia32_vfmaddps256
+      {Intrinsic::x86_avx512_mask_vfmadd_ps_256, 115988}, // __builtin_ia32_vfmaddps256_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_ps_256, 118344}, // __builtin_ia32_vfmaddps256_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_ps_256, 120042}, // __builtin_ia32_vfmaddps256_maskz
+      {Intrinsic::x86_avx512_mask_vfmadd_ps_512, 116020}, // __builtin_ia32_vfmaddps512_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_ps_512, 118377}, // __builtin_ia32_vfmaddps512_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_ps_512, 120075}, // __builtin_ia32_vfmaddps512_maskz
+      {Intrinsic::x86_fma_vfmadd_sd, 125510}, // __builtin_ia32_vfmaddsd
+      {Intrinsic::x86_avx512_mask_vfmadd_sd, 116052}, // __builtin_ia32_vfmaddsd3_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_sd, 118410}, // __builtin_ia32_vfmaddsd3_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_sd, 120108}, // __builtin_ia32_vfmaddsd3_maskz
+      {Intrinsic::x86_fma_vfmadd_ss, 125534}, // __builtin_ia32_vfmaddss
+      {Intrinsic::x86_avx512_mask_vfmadd_ss, 116082}, // __builtin_ia32_vfmaddss3_mask
+      {Intrinsic::x86_avx512_mask3_vfmadd_ss, 118441}, // __builtin_ia32_vfmaddss3_mask3
+      {Intrinsic::x86_avx512_maskz_vfmadd_ss, 120139}, // __builtin_ia32_vfmaddss3_maskz
+      {Intrinsic::x86_fma_vfmaddsub_pd, 125558}, // __builtin_ia32_vfmaddsubpd
+      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_128, 116112}, // __builtin_ia32_vfmaddsubpd128_mask
+      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_128, 118472}, // __builtin_ia32_vfmaddsubpd128_mask3
+      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_128, 120170}, // __builtin_ia32_vfmaddsubpd128_maskz
+      {Intrinsic::x86_fma_vfmaddsub_pd_256, 125585}, // __builtin_ia32_vfmaddsubpd256
+      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_256, 116147}, // __builtin_ia32_vfmaddsubpd256_mask
+      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_256, 118508}, // __builtin_ia32_vfmaddsubpd256_mask3
+      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_256, 120206}, // __builtin_ia32_vfmaddsubpd256_maskz
+      {Intrinsic::x86_avx512_mask_vfmaddsub_pd_512, 116182}, // __builtin_ia32_vfmaddsubpd512_mask
+      {Intrinsic::x86_avx512_mask3_vfmaddsub_pd_512, 118544}, // __builtin_ia32_vfmaddsubpd512_mask3
+      {Intrinsic::x86_avx512_maskz_vfmaddsub_pd_512, 120242}, // __builtin_ia32_vfmaddsubpd512_maskz
+      {Intrinsic::x86_fma_vfmaddsub_ps, 125615}, // __builtin_ia32_vfmaddsubps
+      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_128, 116217}, // __builtin_ia32_vfmaddsubps128_mask
+      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_128, 118580}, // __builtin_ia32_vfmaddsubps128_mask3
+      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_128, 120278}, // __builtin_ia32_vfmaddsubps128_maskz
+      {Intrinsic::x86_fma_vfmaddsub_ps_256, 125642}, // __builtin_ia32_vfmaddsubps256
+      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_256, 116252}, // __builtin_ia32_vfmaddsubps256_mask
+      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_256, 118616}, // __builtin_ia32_vfmaddsubps256_mask3
+      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_256, 120314}, // __builtin_ia32_vfmaddsubps256_maskz
+      {Intrinsic::x86_avx512_mask_vfmaddsub_ps_512, 116287}, // __builtin_ia32_vfmaddsubps512_mask
+      {Intrinsic::x86_avx512_mask3_vfmaddsub_ps_512, 118652}, // __builtin_ia32_vfmaddsubps512_mask3
+      {Intrinsic::x86_avx512_maskz_vfmaddsub_ps_512, 120350}, // __builtin_ia32_vfmaddsubps512_maskz
+      {Intrinsic::x86_fma_vfmsubadd_pd, 125822}, // __builtin_ia32_vfmsubaddpd
+      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_128, 118948}, // __builtin_ia32_vfmsubaddpd128_mask3
+      {Intrinsic::x86_fma_vfmsubadd_pd_256, 125849}, // __builtin_ia32_vfmsubaddpd256
+      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_256, 118984}, // __builtin_ia32_vfmsubaddpd256_mask3
+      {Intrinsic::x86_avx512_mask3_vfmsubadd_pd_512, 119020}, // __builtin_ia32_vfmsubaddpd512_mask3
+      {Intrinsic::x86_fma_vfmsubadd_ps, 125879}, // __builtin_ia32_vfmsubaddps
+      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_128, 119056}, // __builtin_ia32_vfmsubaddps128_mask3
+      {Intrinsic::x86_fma_vfmsubadd_ps_256, 125906}, // __builtin_ia32_vfmsubaddps256
+      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_256, 119092}, // __builtin_ia32_vfmsubaddps256_mask3
+      {Intrinsic::x86_avx512_mask3_vfmsubadd_ps_512, 119128}, // __builtin_ia32_vfmsubaddps512_mask3
+      {Intrinsic::x86_fma_vfmsub_pd, 125672}, // __builtin_ia32_vfmsubpd
+      {Intrinsic::x86_avx512_mask3_vfmsub_pd_128, 118688}, // __builtin_ia32_vfmsubpd128_mask3
+      {Intrinsic::x86_fma_vfmsub_pd_256, 125696}, // __builtin_ia32_vfmsubpd256
+      {Intrinsic::x86_avx512_mask3_vfmsub_pd_256, 118721}, // __builtin_ia32_vfmsubpd256_mask3
+      {Intrinsic::x86_avx512_mask3_vfmsub_pd_512, 118754}, // __builtin_ia32_vfmsubpd512_mask3
+      {Intrinsic::x86_fma_vfmsub_ps, 125723}, // __builtin_ia32_vfmsubps
+      {Intrinsic::x86_avx512_mask3_vfmsub_ps_128, 118787}, // __builtin_ia32_vfmsubps128_mask3
+      {Intrinsic::x86_fma_vfmsub_ps_256, 125747}, // __builtin_ia32_vfmsubps256
+      {Intrinsic::x86_avx512_mask3_vfmsub_ps_256, 118820}, // __builtin_ia32_vfmsubps256_mask3
+      {Intrinsic::x86_avx512_mask3_vfmsub_ps_512, 118853}, // __builtin_ia32_vfmsubps512_mask3
+      {Intrinsic::x86_fma_vfmsub_sd, 125774}, // __builtin_ia32_vfmsubsd
+      {Intrinsic::x86_avx512_mask3_vfmsub_sd, 118886}, // __builtin_ia32_vfmsubsd3_mask3
+      {Intrinsic::x86_fma_vfmsub_ss, 125798}, // __builtin_ia32_vfmsubss
+      {Intrinsic::x86_avx512_mask3_vfmsub_ss, 118917}, // __builtin_ia32_vfmsubss3_mask3
+      {Intrinsic::x86_fma_vfnmadd_pd, 125936}, // __builtin_ia32_vfnmaddpd
+      {Intrinsic::x86_avx512_mask_vfnmadd_pd_128, 116322}, // __builtin_ia32_vfnmaddpd128_mask
+      {Intrinsic::x86_fma_vfnmadd_pd_256, 125961}, // __builtin_ia32_vfnmaddpd256
+      {Intrinsic::x86_avx512_mask_vfnmadd_pd_256, 116355}, // __builtin_ia32_vfnmaddpd256_mask
+      {Intrinsic::x86_avx512_mask_vfnmadd_pd_512, 116388}, // __builtin_ia32_vfnmaddpd512_mask
+      {Intrinsic::x86_fma_vfnmadd_ps, 125989}, // __builtin_ia32_vfnmaddps
+      {Intrinsic::x86_avx512_mask_vfnmadd_ps_128, 116421}, // __builtin_ia32_vfnmaddps128_mask
+      {Intrinsic::x86_fma_vfnmadd_ps_256, 126014}, // __builtin_ia32_vfnmaddps256
+      {Intrinsic::x86_avx512_mask_vfnmadd_ps_256, 116454}, // __builtin_ia32_vfnmaddps256_mask
+      {Intrinsic::x86_avx512_mask_vfnmadd_ps_512, 116487}, // __builtin_ia32_vfnmaddps512_mask
+      {Intrinsic::x86_fma_vfnmadd_sd, 126042}, // __builtin_ia32_vfnmaddsd
+      {Intrinsic::x86_fma_vfnmadd_ss, 126067}, // __builtin_ia32_vfnmaddss
+      {Intrinsic::x86_fma_vfnmsub_pd, 126092}, // __builtin_ia32_vfnmsubpd
+      {Intrinsic::x86_avx512_mask_vfnmsub_pd_128, 116520}, // __builtin_ia32_vfnmsubpd128_mask
+      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_128, 119164}, // __builtin_ia32_vfnmsubpd128_mask3
+      {Intrinsic::x86_fma_vfnmsub_pd_256, 126117}, // __builtin_ia32_vfnmsubpd256
+      {Intrinsic::x86_avx512_mask_vfnmsub_pd_256, 116553}, // __builtin_ia32_vfnmsubpd256_mask
+      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_256, 119198}, // __builtin_ia32_vfnmsubpd256_mask3
+      {Intrinsic::x86_avx512_mask_vfnmsub_pd_512, 116586}, // __builtin_ia32_vfnmsubpd512_mask
+      {Intrinsic::x86_avx512_mask3_vfnmsub_pd_512, 119232}, // __builtin_ia32_vfnmsubpd512_mask3
+      {Intrinsic::x86_fma_vfnmsub_ps, 126145}, // __builtin_ia32_vfnmsubps
+      {Intrinsic::x86_avx512_mask_vfnmsub_ps_128, 116619}, // __builtin_ia32_vfnmsubps128_mask
+      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_128, 119266}, // __builtin_ia32_vfnmsubps128_mask3
+      {Intrinsic::x86_fma_vfnmsub_ps_256, 126170}, // __builtin_ia32_vfnmsubps256
+      {Intrinsic::x86_avx512_mask_vfnmsub_ps_256, 116652}, // __builtin_ia32_vfnmsubps256_mask
+      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_256, 119300}, // __builtin_ia32_vfnmsubps256_mask3
+      {Intrinsic::x86_avx512_mask_vfnmsub_ps_512, 116685}, // __builtin_ia32_vfnmsubps512_mask
+      {Intrinsic::x86_avx512_mask3_vfnmsub_ps_512, 119334}, // __builtin_ia32_vfnmsubps512_mask3
+      {Intrinsic::x86_fma_vfnmsub_sd, 126198}, // __builtin_ia32_vfnmsubsd
+      {Intrinsic::x86_avx512_mask3_vfnmsub_sd, 119368}, // __builtin_ia32_vfnmsubsd3_mask3
+      {Intrinsic::x86_fma_vfnmsub_ss, 126223}, // __builtin_ia32_vfnmsubss
+      {Intrinsic::x86_avx512_mask3_vfnmsub_ss, 119400}, // __builtin_ia32_vfnmsubss3_mask3
+      {Intrinsic::x86_xop_vfrcz_pd, 133276}, // __builtin_ia32_vfrczpd
+      {Intrinsic::x86_xop_vfrcz_pd_256, 133299}, // __builtin_ia32_vfrczpd256
+      {Intrinsic::x86_xop_vfrcz_ps, 133325}, // __builtin_ia32_vfrczps
+      {Intrinsic::x86_xop_vfrcz_ps_256, 133348}, // __builtin_ia32_vfrczps256
+      {Intrinsic::x86_xop_vfrcz_sd, 133374}, // __builtin_ia32_vfrczsd
+      {Intrinsic::x86_xop_vfrcz_ss, 133397}, // __builtin_ia32_vfrczss
+      {Intrinsic::x86_xop_vpcomb, 133420}, // __builtin_ia32_vpcomb
+      {Intrinsic::x86_xop_vpcomd, 133442}, // __builtin_ia32_vpcomd
+      {Intrinsic::x86_xop_vpcomq, 133464}, // __builtin_ia32_vpcomq
+      {Intrinsic::x86_xop_vpcomub, 133486}, // __builtin_ia32_vpcomub
+      {Intrinsic::x86_xop_vpcomud, 133509}, // __builtin_ia32_vpcomud
+      {Intrinsic::x86_xop_vpcomuq, 133532}, // __builtin_ia32_vpcomuq
+      {Intrinsic::x86_xop_vpcomuw, 133555}, // __builtin_ia32_vpcomuw
+      {Intrinsic::x86_xop_vpcomw, 133578}, // __builtin_ia32_vpcomw
+      {Intrinsic::x86_avx512_mask_conflict_q_128, 101735}, // __builtin_ia32_vpconflictdi_128_mask
+      {Intrinsic::x86_avx512_mask_conflict_q_256, 101772}, // __builtin_ia32_vpconflictdi_256_mask
+      {Intrinsic::x86_avx512_mask_conflict_q_512, 101809}, // __builtin_ia32_vpconflictdi_512_mask
+      {Intrinsic::x86_avx512_mask_conflict_d_128, 101624}, // __builtin_ia32_vpconflictsi_128_mask
+      {Intrinsic::x86_avx512_mask_conflict_d_256, 101661}, // __builtin_ia32_vpconflictsi_256_mask
+      {Intrinsic::x86_avx512_mask_conflict_d_512, 101698}, // __builtin_ia32_vpconflictsi_512_mask
+      {Intrinsic::x86_avx_vperm2f128_pd_256, 94778}, // __builtin_ia32_vperm2f128_pd256
+      {Intrinsic::x86_avx_vperm2f128_ps_256, 94810}, // __builtin_ia32_vperm2f128_ps256
+      {Intrinsic::x86_avx_vperm2f128_si_256, 94842}, // __builtin_ia32_vperm2f128_si256
+      {Intrinsic::x86_avx512_mask_vpermi2var_d_128, 116718}, // __builtin_ia32_vpermi2vard128_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_d_256, 116753}, // __builtin_ia32_vpermi2vard256_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_d_512, 116788}, // __builtin_ia32_vpermi2vard512_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_hi_128, 116823}, // __builtin_ia32_vpermi2varhi128_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_hi_256, 116859}, // __builtin_ia32_vpermi2varhi256_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_hi_512, 116895}, // __builtin_ia32_vpermi2varhi512_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_pd_128, 116931}, // __builtin_ia32_vpermi2varpd128_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_pd_256, 116967}, // __builtin_ia32_vpermi2varpd256_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_pd_512, 117003}, // __builtin_ia32_vpermi2varpd512_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_ps_128, 117039}, // __builtin_ia32_vpermi2varps128_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_ps_256, 117075}, // __builtin_ia32_vpermi2varps256_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_ps_512, 117111}, // __builtin_ia32_vpermi2varps512_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_q_128, 117147}, // __builtin_ia32_vpermi2varq128_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_q_256, 117182}, // __builtin_ia32_vpermi2varq256_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_q_512, 117217}, // __builtin_ia32_vpermi2varq512_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_qi_128, 117252}, // __builtin_ia32_vpermi2varqi128_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_qi_256, 117288}, // __builtin_ia32_vpermi2varqi256_mask
+      {Intrinsic::x86_avx512_mask_vpermi2var_qi_512, 117324}, // __builtin_ia32_vpermi2varqi512_mask
+      {Intrinsic::x86_xop_vpermil2pd, 133600}, // __builtin_ia32_vpermil2pd
+      {Intrinsic::x86_xop_vpermil2pd_256, 133626}, // __builtin_ia32_vpermil2pd256
+      {Intrinsic::x86_xop_vpermil2ps, 133655}, // __builtin_ia32_vpermil2ps
+      {Intrinsic::x86_xop_vpermil2ps_256, 133681}, // __builtin_ia32_vpermil2ps256
+      {Intrinsic::x86_avx_vpermilvar_pd, 94874}, // __builtin_ia32_vpermilvarpd
+      {Intrinsic::x86_avx_vpermilvar_pd_256, 94902}, // __builtin_ia32_vpermilvarpd256
+      {Intrinsic::x86_avx512_vpermilvar_pd_512, 124988}, // __builtin_ia32_vpermilvarpd512
+      {Intrinsic::x86_avx_vpermilvar_ps, 94933}, // __builtin_ia32_vpermilvarps
+      {Intrinsic::x86_avx_vpermilvar_ps_256, 94961}, // __builtin_ia32_vpermilvarps256
+      {Intrinsic::x86_avx512_vpermilvar_ps_512, 125019}, // __builtin_ia32_vpermilvarps512
+      {Intrinsic::x86_avx512_mask_vpermt2var_d_128, 117360}, // __builtin_ia32_vpermt2vard128_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_d_128, 120386}, // __builtin_ia32_vpermt2vard128_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_d_256, 117395}, // __builtin_ia32_vpermt2vard256_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_d_256, 120422}, // __builtin_ia32_vpermt2vard256_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_d_512, 117430}, // __builtin_ia32_vpermt2vard512_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_d_512, 120458}, // __builtin_ia32_vpermt2vard512_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_hi_128, 117465}, // __builtin_ia32_vpermt2varhi128_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_128, 120494}, // __builtin_ia32_vpermt2varhi128_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_hi_256, 117501}, // __builtin_ia32_vpermt2varhi256_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_256, 120531}, // __builtin_ia32_vpermt2varhi256_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_hi_512, 117537}, // __builtin_ia32_vpermt2varhi512_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_hi_512, 120568}, // __builtin_ia32_vpermt2varhi512_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_pd_128, 117573}, // __builtin_ia32_vpermt2varpd128_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_128, 120605}, // __builtin_ia32_vpermt2varpd128_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_pd_256, 117609}, // __builtin_ia32_vpermt2varpd256_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_256, 120642}, // __builtin_ia32_vpermt2varpd256_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_pd_512, 117645}, // __builtin_ia32_vpermt2varpd512_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_pd_512, 120679}, // __builtin_ia32_vpermt2varpd512_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_ps_128, 117681}, // __builtin_ia32_vpermt2varps128_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_128, 120716}, // __builtin_ia32_vpermt2varps128_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_ps_256, 117717}, // __builtin_ia32_vpermt2varps256_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_256, 120753}, // __builtin_ia32_vpermt2varps256_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_ps_512, 117753}, // __builtin_ia32_vpermt2varps512_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_ps_512, 120790}, // __builtin_ia32_vpermt2varps512_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_q_128, 117789}, // __builtin_ia32_vpermt2varq128_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_q_128, 120827}, // __builtin_ia32_vpermt2varq128_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_q_256, 117824}, // __builtin_ia32_vpermt2varq256_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_q_256, 120863}, // __builtin_ia32_vpermt2varq256_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_q_512, 117859}, // __builtin_ia32_vpermt2varq512_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_q_512, 120899}, // __builtin_ia32_vpermt2varq512_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_qi_128, 117894}, // __builtin_ia32_vpermt2varqi128_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_128, 120935}, // __builtin_ia32_vpermt2varqi128_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_qi_256, 117930}, // __builtin_ia32_vpermt2varqi256_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_256, 120972}, // __builtin_ia32_vpermt2varqi256_maskz
+      {Intrinsic::x86_avx512_mask_vpermt2var_qi_512, 117966}, // __builtin_ia32_vpermt2varqi512_mask
+      {Intrinsic::x86_avx512_maskz_vpermt2var_qi_512, 121009}, // __builtin_ia32_vpermt2varqi512_maskz
+      {Intrinsic::x86_xop_vphaddbd, 133710}, // __builtin_ia32_vphaddbd
+      {Intrinsic::x86_xop_vphaddbq, 133734}, // __builtin_ia32_vphaddbq
+      {Intrinsic::x86_xop_vphaddbw, 133758}, // __builtin_ia32_vphaddbw
+      {Intrinsic::x86_xop_vphadddq, 133782}, // __builtin_ia32_vphadddq
+      {Intrinsic::x86_xop_vphaddubd, 133806}, // __builtin_ia32_vphaddubd
+      {Intrinsic::x86_xop_vphaddubq, 133831}, // __builtin_ia32_vphaddubq
+      {Intrinsic::x86_xop_vphaddubw, 133856}, // __builtin_ia32_vphaddubw
+      {Intrinsic::x86_xop_vphaddudq, 133881}, // __builtin_ia32_vphaddudq
+      {Intrinsic::x86_xop_vphadduwd, 133906}, // __builtin_ia32_vphadduwd
+      {Intrinsic::x86_xop_vphadduwq, 133931}, // __builtin_ia32_vphadduwq
+      {Intrinsic::x86_xop_vphaddwd, 133956}, // __builtin_ia32_vphaddwd
+      {Intrinsic::x86_xop_vphaddwq, 133980}, // __builtin_ia32_vphaddwq
+      {Intrinsic::x86_xop_vphsubbw, 134004}, // __builtin_ia32_vphsubbw
+      {Intrinsic::x86_xop_vphsubdq, 134028}, // __builtin_ia32_vphsubdq
+      {Intrinsic::x86_xop_vphsubwd, 134052}, // __builtin_ia32_vphsubwd
+      {Intrinsic::x86_xop_vpmacsdd, 134076}, // __builtin_ia32_vpmacsdd
+      {Intrinsic::x86_xop_vpmacsdqh, 134100}, // __builtin_ia32_vpmacsdqh
+      {Intrinsic::x86_xop_vpmacsdql, 134125}, // __builtin_ia32_vpmacsdql
+      {Intrinsic::x86_xop_vpmacssdd, 134150}, // __builtin_ia32_vpmacssdd
+      {Intrinsic::x86_xop_vpmacssdqh, 134175}, // __builtin_ia32_vpmacssdqh
+      {Intrinsic::x86_xop_vpmacssdql, 134201}, // __builtin_ia32_vpmacssdql
+      {Intrinsic::x86_xop_vpmacsswd, 134227}, // __builtin_ia32_vpmacsswd
+      {Intrinsic::x86_xop_vpmacssww, 134252}, // __builtin_ia32_vpmacssww
+      {Intrinsic::x86_xop_vpmacswd, 134277}, // __builtin_ia32_vpmacswd
+      {Intrinsic::x86_xop_vpmacsww, 134301}, // __builtin_ia32_vpmacsww
+      {Intrinsic::x86_xop_vpmadcsswd, 134325}, // __builtin_ia32_vpmadcsswd
+      {Intrinsic::x86_xop_vpmadcswd, 134351}, // __builtin_ia32_vpmadcswd
+      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_128, 118002}, // __builtin_ia32_vpmadd52huq128_mask
+      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_128, 121046}, // __builtin_ia32_vpmadd52huq128_maskz
+      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_256, 118037}, // __builtin_ia32_vpmadd52huq256_mask
+      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_256, 121082}, // __builtin_ia32_vpmadd52huq256_maskz
+      {Intrinsic::x86_avx512_mask_vpmadd52h_uq_512, 118072}, // __builtin_ia32_vpmadd52huq512_mask
+      {Intrinsic::x86_avx512_maskz_vpmadd52h_uq_512, 121118}, // __builtin_ia32_vpmadd52huq512_maskz
+      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_128, 118107}, // __builtin_ia32_vpmadd52luq128_mask
+      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_128, 121154}, // __builtin_ia32_vpmadd52luq128_maskz
+      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_256, 118142}, // __builtin_ia32_vpmadd52luq256_mask
+      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_256, 121190}, // __builtin_ia32_vpmadd52luq256_maskz
+      {Intrinsic::x86_avx512_mask_vpmadd52l_uq_512, 118177}, // __builtin_ia32_vpmadd52luq512_mask
+      {Intrinsic::x86_avx512_maskz_vpmadd52l_uq_512, 121226}, // __builtin_ia32_vpmadd52luq512_maskz
+      {Intrinsic::x86_avx512_mask_pmultishift_qb_128, 112574}, // __builtin_ia32_vpmultishiftqb128_mask
+      {Intrinsic::x86_avx512_mask_pmultishift_qb_256, 112612}, // __builtin_ia32_vpmultishiftqb256_mask
+      {Intrinsic::x86_avx512_mask_pmultishift_qb_512, 112650}, // __builtin_ia32_vpmultishiftqb512_mask
+      {Intrinsic::x86_xop_vpperm, 134376}, // __builtin_ia32_vpperm
+      {Intrinsic::x86_xop_vprotb, 134398}, // __builtin_ia32_vprotb
+      {Intrinsic::x86_xop_vprotbi, 134420}, // __builtin_ia32_vprotbi
+      {Intrinsic::x86_xop_vprotd, 134443}, // __builtin_ia32_vprotd
+      {Intrinsic::x86_xop_vprotdi, 134465}, // __builtin_ia32_vprotdi
+      {Intrinsic::x86_xop_vprotq, 134488}, // __builtin_ia32_vprotq
+      {Intrinsic::x86_xop_vprotqi, 134510}, // __builtin_ia32_vprotqi
+      {Intrinsic::x86_xop_vprotw, 134533}, // __builtin_ia32_vprotw
+      {Intrinsic::x86_xop_vprotwi, 134555}, // __builtin_ia32_vprotwi
+      {Intrinsic::x86_xop_vpshab, 134578}, // __builtin_ia32_vpshab
+      {Intrinsic::x86_xop_vpshad, 134600}, // __builtin_ia32_vpshad
+      {Intrinsic::x86_xop_vpshaq, 134622}, // __builtin_ia32_vpshaq
+      {Intrinsic::x86_xop_vpshaw, 134644}, // __builtin_ia32_vpshaw
+      {Intrinsic::x86_xop_vpshlb, 134666}, // __builtin_ia32_vpshlb
+      {Intrinsic::x86_xop_vpshld, 134688}, // __builtin_ia32_vpshld
+      {Intrinsic::x86_xop_vpshlq, 134710}, // __builtin_ia32_vpshlq
+      {Intrinsic::x86_xop_vpshlw, 134732}, // __builtin_ia32_vpshlw
+      {Intrinsic::x86_avx_vtestc_pd, 94992}, // __builtin_ia32_vtestcpd
+      {Intrinsic::x86_avx_vtestc_pd_256, 95016}, // __builtin_ia32_vtestcpd256
+      {Intrinsic::x86_avx_vtestc_ps, 95043}, // __builtin_ia32_vtestcps
+      {Intrinsic::x86_avx_vtestc_ps_256, 95067}, // __builtin_ia32_vtestcps256
+      {Intrinsic::x86_avx_vtestnzc_pd, 95094}, // __builtin_ia32_vtestnzcpd
+      {Intrinsic::x86_avx_vtestnzc_pd_256, 95120}, // __builtin_ia32_vtestnzcpd256
+      {Intrinsic::x86_avx_vtestnzc_ps, 95149}, // __builtin_ia32_vtestnzcps
+      {Intrinsic::x86_avx_vtestnzc_ps_256, 95175}, // __builtin_ia32_vtestnzcps256
+      {Intrinsic::x86_avx_vtestz_pd, 95204}, // __builtin_ia32_vtestzpd
+      {Intrinsic::x86_avx_vtestz_pd_256, 95228}, // __builtin_ia32_vtestzpd256
+      {Intrinsic::x86_avx_vtestz_ps, 95255}, // __builtin_ia32_vtestzps
+      {Intrinsic::x86_avx_vtestz_ps_256, 95279}, // __builtin_ia32_vtestzps256
+      {Intrinsic::x86_avx_vzeroall, 95306}, // __builtin_ia32_vzeroall
+      {Intrinsic::x86_avx_vzeroupper, 95330}, // __builtin_ia32_vzeroupper
+      {Intrinsic::x86_wrfsbase_32, 133086}, // __builtin_ia32_wrfsbase32
+      {Intrinsic::x86_wrfsbase_64, 133112}, // __builtin_ia32_wrfsbase64
+      {Intrinsic::x86_wrgsbase_32, 133138}, // __builtin_ia32_wrgsbase32
+      {Intrinsic::x86_wrgsbase_64, 133164}, // __builtin_ia32_wrgsbase64
+      {Intrinsic::x86_flags_write_u32, 125346}, // __builtin_ia32_writeeflags_u32
+      {Intrinsic::x86_flags_write_u64, 125377}, // __builtin_ia32_writeeflags_u64
+      {Intrinsic::x86_wrpkru, 133190}, // __builtin_ia32_wrpkru
+      {Intrinsic::x86_xabort, 133212}, // __builtin_ia32_xabort
+      {Intrinsic::x86_xbegin, 133234}, // __builtin_ia32_xbegin
+      {Intrinsic::x86_xend, 133256}, // __builtin_ia32_xend
+      {Intrinsic::x86_xtest, 134754}, // __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, 134775}, // __builtin_bitrev
+      {Intrinsic::xcore_getid, 134792}, // __builtin_getid
+      {Intrinsic::xcore_getps, 134808}, // __builtin_getps
+      {Intrinsic::xcore_setps, 134824}, // __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 == "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
+