#include "ARMBaseInstrInfo.h"
#include "ARMSubtarget.h"
#include "ARMTargetMachine.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"

#include "gtest/gtest.h"

using namespace llvm;

TEST(MachineInstructionDoubleWidthResult, IsCorrect) {
  using namespace ARM;

  auto DoubleWidthResult = [](unsigned Opcode) {
    switch (Opcode) {
    default:
      break;
    case MVE_VMULLBp16:
    case MVE_VMULLBp8:
    case MVE_VMULLBs16:
    case MVE_VMULLBs32:
    case MVE_VMULLBs8:
    case MVE_VMULLBu16:
    case MVE_VMULLBu32:
    case MVE_VMULLBu8:
    case MVE_VMULLTp16:
    case MVE_VMULLTp8:
    case MVE_VMULLTs16:
    case MVE_VMULLTs32:
    case MVE_VMULLTs8:
    case MVE_VMULLTu16:
    case MVE_VMULLTu32:
    case MVE_VMULLTu8:
    case MVE_VQDMULL_qr_s16bh:
    case MVE_VQDMULL_qr_s16th:
    case MVE_VQDMULL_qr_s32bh:
    case MVE_VQDMULL_qr_s32th:
    case MVE_VQDMULLs16bh:
    case MVE_VQDMULLs16th:
    case MVE_VQDMULLs32bh:
    case MVE_VQDMULLs32th:
    case MVE_VMOVLs16bh:
    case MVE_VMOVLs16th:
    case MVE_VMOVLs8bh:
    case MVE_VMOVLs8th:
    case MVE_VMOVLu16bh:
    case MVE_VMOVLu16th:
    case MVE_VMOVLu8bh:
    case MVE_VMOVLu8th:
    case MVE_VSHLL_imms16bh:
    case MVE_VSHLL_imms16th:
    case MVE_VSHLL_imms8bh:
    case MVE_VSHLL_imms8th:
    case MVE_VSHLL_immu16bh:
    case MVE_VSHLL_immu16th:
    case MVE_VSHLL_immu8bh:
    case MVE_VSHLL_immu8th:
    case MVE_VSHLL_lws16bh:
    case MVE_VSHLL_lws16th:
    case MVE_VSHLL_lws8bh:
    case MVE_VSHLL_lws8th:
    case MVE_VSHLL_lwu16bh:
    case MVE_VSHLL_lwu16th:
    case MVE_VSHLL_lwu8bh:
    case MVE_VSHLL_lwu8th:
      return true;
    }
    return false;
  };

  LLVMInitializeARMTargetInfo();
  LLVMInitializeARMTarget();
  LLVMInitializeARMTargetMC();

  auto TT(Triple::normalize("thumbv8.1m.main-none-none-eabi"));
  std::string Error;
  const Target *T = TargetRegistry::lookupTarget(TT, Error);
  if (!T) {
    dbgs() << Error;
    GTEST_SKIP();
  }

  TargetOptions Options;
  auto TM = std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine *>(
      T->createTargetMachine(TT, "generic", "", Options, std::nullopt,
                             std::nullopt, CodeGenOptLevel::Default)));
  ARMSubtarget ST(TM->getTargetTriple(), std::string(TM->getTargetCPU()),
                  std::string(TM->getTargetFeatureString()),
                  *static_cast<const ARMBaseTargetMachine *>(TM.get()), false);
  const ARMBaseInstrInfo *TII = ST.getInstrInfo();
  auto MII = TM->getMCInstrInfo();

  for (unsigned i = 0; i < ARM::INSTRUCTION_LIST_END; ++i) {
    const MCInstrDesc &Desc = TII->get(i);

    uint64_t Flags = Desc.TSFlags;
    if ((Flags & ARMII::DomainMask) != ARMII::DomainMVE)
      continue;

    bool Valid = (Flags & ARMII::DoubleWidthResult) != 0;
    ASSERT_EQ(DoubleWidthResult(i), Valid)
              << MII->getName(i)
              << ": mismatched expectation for tail-predicated safety\n";
  }
}

TEST(MachineInstructionHorizontalReduction, IsCorrect) {
  using namespace ARM;

  auto HorizontalReduction = [](unsigned Opcode) {
    switch (Opcode) {
    default:
      break;
    case MVE_VABAVs16:
    case MVE_VABAVs32:
    case MVE_VABAVs8:
    case MVE_VABAVu16:
    case MVE_VABAVu32:
    case MVE_VABAVu8:
    case MVE_VADDLVs32acc:
    case MVE_VADDLVs32no_acc:
    case MVE_VADDLVu32acc:
    case MVE_VADDLVu32no_acc:
    case MVE_VADDVs16acc:
    case MVE_VADDVs16no_acc:
    case MVE_VADDVs32acc:
    case MVE_VADDVs32no_acc:
    case MVE_VADDVs8acc:
    case MVE_VADDVs8no_acc:
    case MVE_VADDVu16acc:
    case MVE_VADDVu16no_acc:
    case MVE_VADDVu32acc:
    case MVE_VADDVu32no_acc:
    case MVE_VADDVu8acc:
    case MVE_VADDVu8no_acc:
    case MVE_VMAXAVs16:
    case MVE_VMAXAVs32:
    case MVE_VMAXAVs8:
    case MVE_VMAXNMAVf16:
    case MVE_VMAXNMAVf32:
    case MVE_VMAXNMVf16:
    case MVE_VMAXNMVf32:
    case MVE_VMAXVs16:
    case MVE_VMAXVs32:
    case MVE_VMAXVs8:
    case MVE_VMAXVu16:
    case MVE_VMAXVu32:
    case MVE_VMAXVu8:
    case MVE_VMINAVs16:
    case MVE_VMINAVs32:
    case MVE_VMINAVs8:
    case MVE_VMINNMAVf16:
    case MVE_VMINNMAVf32:
    case MVE_VMINNMVf16:
    case MVE_VMINNMVf32:
    case MVE_VMINVs16:
    case MVE_VMINVs32:
    case MVE_VMINVs8:
    case MVE_VMINVu16:
    case MVE_VMINVu32:
    case MVE_VMINVu8:
    case MVE_VMLADAVas16:
    case MVE_VMLADAVas32:
    case MVE_VMLADAVas8:
    case MVE_VMLADAVau16:
    case MVE_VMLADAVau32:
    case MVE_VMLADAVau8:
    case MVE_VMLADAVaxs16:
    case MVE_VMLADAVaxs32:
    case MVE_VMLADAVaxs8:
    case MVE_VMLADAVs16:
    case MVE_VMLADAVs32:
    case MVE_VMLADAVs8:
    case MVE_VMLADAVu16:
    case MVE_VMLADAVu32:
    case MVE_VMLADAVu8:
    case MVE_VMLADAVxs16:
    case MVE_VMLADAVxs32:
    case MVE_VMLADAVxs8:
    case MVE_VMLALDAVas16:
    case MVE_VMLALDAVas32:
    case MVE_VMLALDAVau16:
    case MVE_VMLALDAVau32:
    case MVE_VMLALDAVaxs16:
    case MVE_VMLALDAVaxs32:
    case MVE_VMLALDAVs16:
    case MVE_VMLALDAVs32:
    case MVE_VMLALDAVu16:
    case MVE_VMLALDAVu32:
    case MVE_VMLALDAVxs16:
    case MVE_VMLALDAVxs32:
    case MVE_VMLSDAVas16:
    case MVE_VMLSDAVas32:
    case MVE_VMLSDAVas8:
    case MVE_VMLSDAVaxs16:
    case MVE_VMLSDAVaxs32:
    case MVE_VMLSDAVaxs8:
    case MVE_VMLSDAVs16:
    case MVE_VMLSDAVs32:
    case MVE_VMLSDAVs8:
    case MVE_VMLSDAVxs16:
    case MVE_VMLSDAVxs32:
    case MVE_VMLSDAVxs8:
    case MVE_VMLSLDAVas16:
    case MVE_VMLSLDAVas32:
    case MVE_VMLSLDAVaxs16:
    case MVE_VMLSLDAVaxs32:
    case MVE_VMLSLDAVs16:
    case MVE_VMLSLDAVs32:
    case MVE_VMLSLDAVxs16:
    case MVE_VMLSLDAVxs32:
    case MVE_VRMLALDAVHas32:
    case MVE_VRMLALDAVHau32:
    case MVE_VRMLALDAVHaxs32:
    case MVE_VRMLALDAVHs32:
    case MVE_VRMLALDAVHu32:
    case MVE_VRMLALDAVHxs32:
    case MVE_VRMLSLDAVHas32:
    case MVE_VRMLSLDAVHaxs32:
    case MVE_VRMLSLDAVHs32:
    case MVE_VRMLSLDAVHxs32:
      return true;
    }
    return false;
  };

  LLVMInitializeARMTargetInfo();
  LLVMInitializeARMTarget();
  LLVMInitializeARMTargetMC();

  auto TT(Triple::normalize("thumbv8.1m.main-none-none-eabi"));
  std::string Error;
  const Target *T = TargetRegistry::lookupTarget(TT, Error);
  if (!T) {
    dbgs() << Error;
    GTEST_SKIP();
  }

  TargetOptions Options;
  auto TM = std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine *>(
      T->createTargetMachine(TT, "generic", "", Options, std::nullopt,
                             std::nullopt, CodeGenOptLevel::Default)));
  ARMSubtarget ST(TM->getTargetTriple(), std::string(TM->getTargetCPU()),
                  std::string(TM->getTargetFeatureString()),
                  *static_cast<const ARMBaseTargetMachine *>(TM.get()), false);
  const ARMBaseInstrInfo *TII = ST.getInstrInfo();
  auto MII = TM->getMCInstrInfo();

  for (unsigned i = 0; i < ARM::INSTRUCTION_LIST_END; ++i) {
    const MCInstrDesc &Desc = TII->get(i);

    uint64_t Flags = Desc.TSFlags;
    if ((Flags & ARMII::DomainMask) != ARMII::DomainMVE)
      continue;
    bool Valid = (Flags & ARMII::HorizontalReduction) != 0;
    ASSERT_EQ(HorizontalReduction(i), Valid)
              << MII->getName(i)
              << ": mismatched expectation for tail-predicated safety\n";
  }
}

TEST(MachineInstructionRetainsPreviousHalfElement, IsCorrect) {
  using namespace ARM;

  auto RetainsPreviousHalfElement = [](unsigned Opcode) {
    switch (Opcode) {
    default:
      break;
    case MVE_VMOVNi16bh:
    case MVE_VMOVNi16th:
    case MVE_VMOVNi32bh:
    case MVE_VMOVNi32th:
    case MVE_VQMOVNs16bh:
    case MVE_VQMOVNs16th:
    case MVE_VQMOVNs32bh:
    case MVE_VQMOVNs32th:
    case MVE_VQMOVNu16bh:
    case MVE_VQMOVNu16th:
    case MVE_VQMOVNu32bh:
    case MVE_VQMOVNu32th:
    case MVE_VQMOVUNs16bh:
    case MVE_VQMOVUNs16th:
    case MVE_VQMOVUNs32bh:
    case MVE_VQMOVUNs32th:
    case MVE_VQRSHRNbhs16:
    case MVE_VQRSHRNbhs32:
    case MVE_VQRSHRNbhu16:
    case MVE_VQRSHRNbhu32:
    case MVE_VQRSHRNths16:
    case MVE_VQRSHRNths32:
    case MVE_VQRSHRNthu16:
    case MVE_VQRSHRNthu32:
    case MVE_VQRSHRUNs16bh:
    case MVE_VQRSHRUNs16th:
    case MVE_VQRSHRUNs32bh:
    case MVE_VQRSHRUNs32th:
    case MVE_VQSHRNbhs16:
    case MVE_VQSHRNbhs32:
    case MVE_VQSHRNbhu16:
    case MVE_VQSHRNbhu32:
    case MVE_VQSHRNths16:
    case MVE_VQSHRNths32:
    case MVE_VQSHRNthu16:
    case MVE_VQSHRNthu32:
    case MVE_VQSHRUNs16bh:
    case MVE_VQSHRUNs16th:
    case MVE_VQSHRUNs32bh:
    case MVE_VQSHRUNs32th:
    case MVE_VRSHRNi16bh:
    case MVE_VRSHRNi16th:
    case MVE_VRSHRNi32bh:
    case MVE_VRSHRNi32th:
    case MVE_VSHRNi16bh:
    case MVE_VSHRNi16th:
    case MVE_VSHRNi32bh:
    case MVE_VSHRNi32th:
    case MVE_VCVTf16f32bh:
    case MVE_VCVTf16f32th:
    case MVE_VCVTf32f16bh:
    case MVE_VCVTf32f16th:
      return true;
    }
    return false;
  };

  LLVMInitializeARMTargetInfo();
  LLVMInitializeARMTarget();
  LLVMInitializeARMTargetMC();

  auto TT(Triple::normalize("thumbv8.1m.main-none-none-eabi"));
  std::string Error;
  const Target *T = TargetRegistry::lookupTarget(TT, Error);
  if (!T) {
    dbgs() << Error;
    GTEST_SKIP();
  }

  TargetOptions Options;
  auto TM = std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine *>(
      T->createTargetMachine(TT, "generic", "", Options, std::nullopt,
                             std::nullopt, CodeGenOptLevel::Default)));
  ARMSubtarget ST(TM->getTargetTriple(), std::string(TM->getTargetCPU()),
                  std::string(TM->getTargetFeatureString()),
                  *static_cast<const ARMBaseTargetMachine *>(TM.get()), false);
  const ARMBaseInstrInfo *TII = ST.getInstrInfo();
  auto MII = TM->getMCInstrInfo();

  for (unsigned i = 0; i < ARM::INSTRUCTION_LIST_END; ++i) {
    const MCInstrDesc &Desc = TII->get(i);

    uint64_t Flags = Desc.TSFlags;
    if ((Flags & ARMII::DomainMask) != ARMII::DomainMVE)
      continue;

    bool Valid = (Flags & ARMII::RetainsPreviousHalfElement) != 0;
    ASSERT_EQ(RetainsPreviousHalfElement(i), Valid)
              << MII->getName(i)
              << ": mismatched expectation for tail-predicated safety\n";
  }
}
// Test for instructions that aren't immediately obviously valid within a
// tail-predicated loop. This should be marked up in their tablegen
// descriptions. Currently we, conservatively, disallow:
// - cross beat carries.
// - complex operations.
// - horizontal operations with exchange.
// - byte swapping.
// - interleaved memory instructions.
// TODO: Add to this list once we can handle them safely.
TEST(MachineInstrValidTailPredication, IsCorrect) {

  using namespace ARM;

  auto IsValidTPOpcode = [](unsigned Opcode) {
    switch (Opcode) {
    default:
      return false;
    case MVE_ASRLi:
    case MVE_ASRLr:
    case MVE_LSRL:
    case MVE_LSLLi:
    case MVE_LSLLr:
    case MVE_SQRSHR:
    case MVE_SQRSHRL:
    case MVE_SQSHL:
    case MVE_SQSHLL:
    case MVE_SRSHR:
    case MVE_SRSHRL:
    case MVE_UQRSHL:
    case MVE_UQRSHLL:
    case MVE_UQSHL:
    case MVE_UQSHLL:
    case MVE_URSHR:
    case MVE_URSHRL:
    case MVE_VABDf16:
    case MVE_VABDf32:
    case MVE_VABDs16:
    case MVE_VABDs32:
    case MVE_VABDs8:
    case MVE_VABDu16:
    case MVE_VABDu32:
    case MVE_VABDu8:
    case MVE_VABSf16:
    case MVE_VABSf32:
    case MVE_VABSs16:
    case MVE_VABSs32:
    case MVE_VABSs8:
    case MVE_VADD_qr_f16:
    case MVE_VADD_qr_f32:
    case MVE_VADD_qr_i16:
    case MVE_VADD_qr_i32:
    case MVE_VADD_qr_i8:
    case MVE_VADDVs16acc:
    case MVE_VADDVs16no_acc:
    case MVE_VADDVs32acc:
    case MVE_VADDVs32no_acc:
    case MVE_VADDVs8acc:
    case MVE_VADDVs8no_acc:
    case MVE_VADDVu16acc:
    case MVE_VADDVu16no_acc:
    case MVE_VADDVu32acc:
    case MVE_VADDVu32no_acc:
    case MVE_VADDVu8acc:
    case MVE_VADDVu8no_acc:
    case MVE_VADDf16:
    case MVE_VADDf32:
    case MVE_VADDi16:
    case MVE_VADDi32:
    case MVE_VADDi8:
    case MVE_VAND:
    case MVE_VBIC:
    case MVE_VBICimmi16:
    case MVE_VBICimmi32:
    case MVE_VBRSR16:
    case MVE_VBRSR32:
    case MVE_VBRSR8:
    case MVE_VCLSs16:
    case MVE_VCLSs32:
    case MVE_VCLSs8:
    case MVE_VCLZs16:
    case MVE_VCLZs32:
    case MVE_VCLZs8:
    case MVE_VCMPf16:
    case MVE_VCMPf16r:
    case MVE_VCMPf32:
    case MVE_VCMPf32r:
    case MVE_VCMPi16:
    case MVE_VCMPi16r:
    case MVE_VCMPi32:
    case MVE_VCMPi32r:
    case MVE_VCMPi8:
    case MVE_VCMPi8r:
    case MVE_VCMPs16:
    case MVE_VCMPs16r:
    case MVE_VCMPs32:
    case MVE_VCMPs32r:
    case MVE_VCMPs8:
    case MVE_VCMPs8r:
    case MVE_VCMPu16:
    case MVE_VCMPu16r:
    case MVE_VCMPu32:
    case MVE_VCMPu32r:
    case MVE_VCMPu8:
    case MVE_VCMPu8r:
    case MVE_VCTP16:
    case MVE_VCTP32:
    case MVE_VCTP64:
    case MVE_VCTP8:
    case MVE_VCVTf16s16_fix:
    case MVE_VCVTf16s16n:
    case MVE_VCVTf16u16_fix:
    case MVE_VCVTf16u16n:
    case MVE_VCVTf32s32_fix:
    case MVE_VCVTf32s32n:
    case MVE_VCVTf32u32_fix:
    case MVE_VCVTf32u32n:
    case MVE_VCVTs16f16_fix:
    case MVE_VCVTs16f16a:
    case MVE_VCVTs16f16m:
    case MVE_VCVTs16f16n:
    case MVE_VCVTs16f16p:
    case MVE_VCVTs16f16z:
    case MVE_VCVTs32f32_fix:
    case MVE_VCVTs32f32a:
    case MVE_VCVTs32f32m:
    case MVE_VCVTs32f32n:
    case MVE_VCVTs32f32p:
    case MVE_VCVTs32f32z:
    case MVE_VCVTu16f16_fix:
    case MVE_VCVTu16f16a:
    case MVE_VCVTu16f16m:
    case MVE_VCVTu16f16n:
    case MVE_VCVTu16f16p:
    case MVE_VCVTu16f16z:
    case MVE_VCVTu32f32_fix:
    case MVE_VCVTu32f32a:
    case MVE_VCVTu32f32m:
    case MVE_VCVTu32f32n:
    case MVE_VCVTu32f32p:
    case MVE_VCVTu32f32z:
    case MVE_VDDUPu16:
    case MVE_VDDUPu32:
    case MVE_VDDUPu8:
    case MVE_VDUP16:
    case MVE_VDUP32:
    case MVE_VDUP8:
    case MVE_VDWDUPu16:
    case MVE_VDWDUPu32:
    case MVE_VDWDUPu8:
    case MVE_VEOR:
    case MVE_VFMA_qr_Sf16:
    case MVE_VFMA_qr_Sf32:
    case MVE_VFMA_qr_f16:
    case MVE_VFMA_qr_f32:
    case MVE_VFMAf16:
    case MVE_VFMAf32:
    case MVE_VFMSf16:
    case MVE_VFMSf32:
    case MVE_VMAXAs16:
    case MVE_VMAXAs32:
    case MVE_VMAXAs8:
    case MVE_VMAXs16:
    case MVE_VMAXs32:
    case MVE_VMAXs8:
    case MVE_VMAXu16:
    case MVE_VMAXu32:
    case MVE_VMAXu8:
    case MVE_VMAXNMf16:
    case MVE_VMAXNMf32:
    case MVE_VMAXNMAf16:
    case MVE_VMAXNMAf32:
    case MVE_VMINAs16:
    case MVE_VMINAs32:
    case MVE_VMINAs8:
    case MVE_VMINs16:
    case MVE_VMINs32:
    case MVE_VMINs8:
    case MVE_VMINu16:
    case MVE_VMINu32:
    case MVE_VMINu8:
    case MVE_VMINNMf16:
    case MVE_VMINNMf32:
    case MVE_VMINNMAf16:
    case MVE_VMINNMAf32:
    case MVE_VMLADAVas16:
    case MVE_VMLADAVas32:
    case MVE_VMLADAVas8:
    case MVE_VMLADAVau16:
    case MVE_VMLADAVau32:
    case MVE_VMLADAVau8:
    case MVE_VMLADAVs16:
    case MVE_VMLADAVs32:
    case MVE_VMLADAVs8:
    case MVE_VMLADAVu16:
    case MVE_VMLADAVu32:
    case MVE_VMLADAVu8:
    case MVE_VMLALDAVs16:
    case MVE_VMLALDAVs32:
    case MVE_VMLALDAVu16:
    case MVE_VMLALDAVu32:
    case MVE_VMLALDAVas16:
    case MVE_VMLALDAVas32:
    case MVE_VMLALDAVau16:
    case MVE_VMLALDAVau32:
    case MVE_VMLSDAVas16:
    case MVE_VMLSDAVas32:
    case MVE_VMLSDAVas8:
    case MVE_VMLSDAVs16:
    case MVE_VMLSDAVs32:
    case MVE_VMLSDAVs8:
    case MVE_VMLSLDAVas16:
    case MVE_VMLSLDAVas32:
    case MVE_VMLSLDAVs16:
    case MVE_VMLSLDAVs32:
    case MVE_VRMLALDAVHas32:
    case MVE_VRMLALDAVHau32:
    case MVE_VRMLALDAVHs32:
    case MVE_VRMLALDAVHu32:
    case MVE_VRMLSLDAVHas32:
    case MVE_VRMLSLDAVHs32:
    case MVE_VMLAS_qr_i16:
    case MVE_VMLAS_qr_i32:
    case MVE_VMLAS_qr_i8:
    case MVE_VMLA_qr_i16:
    case MVE_VMLA_qr_i32:
    case MVE_VMLA_qr_i8:
    case MVE_VHADD_qr_s16:
    case MVE_VHADD_qr_s32:
    case MVE_VHADD_qr_s8:
    case MVE_VHADD_qr_u16:
    case MVE_VHADD_qr_u32:
    case MVE_VHADD_qr_u8:
    case MVE_VHADDs16:
    case MVE_VHADDs32:
    case MVE_VHADDs8:
    case MVE_VHADDu16:
    case MVE_VHADDu32:
    case MVE_VHADDu8:
    case MVE_VHSUB_qr_s16:
    case MVE_VHSUB_qr_s32:
    case MVE_VHSUB_qr_s8:
    case MVE_VHSUB_qr_u16:
    case MVE_VHSUB_qr_u32:
    case MVE_VHSUB_qr_u8:
    case MVE_VHSUBs16:
    case MVE_VHSUBs32:
    case MVE_VHSUBs8:
    case MVE_VHSUBu16:
    case MVE_VHSUBu32:
    case MVE_VHSUBu8:
    case MVE_VIDUPu16:
    case MVE_VIDUPu32:
    case MVE_VIDUPu8:
    case MVE_VIWDUPu16:
    case MVE_VIWDUPu32:
    case MVE_VIWDUPu8:
    case MVE_VLD20_8:
    case MVE_VLD21_8:
    case MVE_VLD20_16:
    case MVE_VLD21_16:
    case MVE_VLD20_32:
    case MVE_VLD21_32:
    case MVE_VLD20_8_wb:
    case MVE_VLD21_8_wb:
    case MVE_VLD20_16_wb:
    case MVE_VLD21_16_wb:
    case MVE_VLD20_32_wb:
    case MVE_VLD21_32_wb:
    case MVE_VLD40_8:
    case MVE_VLD41_8:
    case MVE_VLD42_8:
    case MVE_VLD43_8:
    case MVE_VLD40_16:
    case MVE_VLD41_16:
    case MVE_VLD42_16:
    case MVE_VLD43_16:
    case MVE_VLD40_32:
    case MVE_VLD41_32:
    case MVE_VLD42_32:
    case MVE_VLD43_32:
    case MVE_VLD40_8_wb:
    case MVE_VLD41_8_wb:
    case MVE_VLD42_8_wb:
    case MVE_VLD43_8_wb:
    case MVE_VLD40_16_wb:
    case MVE_VLD41_16_wb:
    case MVE_VLD42_16_wb:
    case MVE_VLD43_16_wb:
    case MVE_VLD40_32_wb:
    case MVE_VLD41_32_wb:
    case MVE_VLD42_32_wb:
    case MVE_VLD43_32_wb:
    case MVE_VLDRBS16:
    case MVE_VLDRBS16_post:
    case MVE_VLDRBS16_pre:
    case MVE_VLDRBS16_rq:
    case MVE_VLDRBS32:
    case MVE_VLDRBS32_post:
    case MVE_VLDRBS32_pre:
    case MVE_VLDRBS32_rq:
    case MVE_VLDRBU16:
    case MVE_VLDRBU16_post:
    case MVE_VLDRBU16_pre:
    case MVE_VLDRBU16_rq:
    case MVE_VLDRBU32:
    case MVE_VLDRBU32_post:
    case MVE_VLDRBU32_pre:
    case MVE_VLDRBU32_rq:
    case MVE_VLDRBU8:
    case MVE_VLDRBU8_post:
    case MVE_VLDRBU8_pre:
    case MVE_VLDRBU8_rq:
    case MVE_VLDRDU64_qi:
    case MVE_VLDRDU64_qi_pre:
    case MVE_VLDRDU64_rq:
    case MVE_VLDRDU64_rq_u:
    case MVE_VLDRHS32:
    case MVE_VLDRHS32_post:
    case MVE_VLDRHS32_pre:
    case MVE_VLDRHS32_rq:
    case MVE_VLDRHS32_rq_u:
    case MVE_VLDRHU16:
    case MVE_VLDRHU16_post:
    case MVE_VLDRHU16_pre:
    case MVE_VLDRHU16_rq:
    case MVE_VLDRHU16_rq_u:
    case MVE_VLDRHU32:
    case MVE_VLDRHU32_post:
    case MVE_VLDRHU32_pre:
    case MVE_VLDRHU32_rq:
    case MVE_VLDRHU32_rq_u:
    case MVE_VLDRWU32:
    case MVE_VLDRWU32_post:
    case MVE_VLDRWU32_pre:
    case MVE_VLDRWU32_qi:
    case MVE_VLDRWU32_qi_pre:
    case MVE_VLDRWU32_rq:
    case MVE_VLDRWU32_rq_u:
    case MVE_VMOVimmf32:
    case MVE_VMOVimmi16:
    case MVE_VMOVimmi32:
    case MVE_VMOVimmi64:
    case MVE_VMOVimmi8:
    case MVE_VMOVNi16bh:
    case MVE_VMOVNi16th:
    case MVE_VMOVNi32bh:
    case MVE_VMOVNi32th:
    case MVE_VMULLBp16:
    case MVE_VMULLBp8:
    case MVE_VMULLBs16:
    case MVE_VMULLBs32:
    case MVE_VMULLBs8:
    case MVE_VMULLBu16:
    case MVE_VMULLBu32:
    case MVE_VMULLBu8:
    case MVE_VMULLTp16:
    case MVE_VMULLTp8:
    case MVE_VMULLTs16:
    case MVE_VMULLTs32:
    case MVE_VMULLTs8:
    case MVE_VMULLTu16:
    case MVE_VMULLTu32:
    case MVE_VMULLTu8:
    case MVE_VMUL_qr_f16:
    case MVE_VMUL_qr_f32:
    case MVE_VMUL_qr_i16:
    case MVE_VMUL_qr_i32:
    case MVE_VMUL_qr_i8:
    case MVE_VMULf16:
    case MVE_VMULf32:
    case MVE_VMULi16:
    case MVE_VMULi8:
    case MVE_VMULi32:
    case MVE_VMULHs32:
    case MVE_VMULHs16:
    case MVE_VMULHs8:
    case MVE_VMULHu32:
    case MVE_VMULHu16:
    case MVE_VMULHu8:
    case MVE_VMVN:
    case MVE_VMVNimmi16:
    case MVE_VMVNimmi32:
    case MVE_VNEGf16:
    case MVE_VNEGf32:
    case MVE_VNEGs16:
    case MVE_VNEGs32:
    case MVE_VNEGs8:
    case MVE_VORN:
    case MVE_VORR:
    case MVE_VORRimmi16:
    case MVE_VORRimmi32:
    case MVE_VPST:
    case MVE_VPTv16i8:
    case MVE_VPTv8i16:
    case MVE_VPTv4i32:
    case MVE_VPTv16i8r:
    case MVE_VPTv8i16r:
    case MVE_VPTv4i32r:
    case MVE_VPTv16s8:
    case MVE_VPTv8s16:
    case MVE_VPTv4s32:
    case MVE_VPTv16s8r:
    case MVE_VPTv8s16r:
    case MVE_VPTv4s32r:
    case MVE_VPTv16u8:
    case MVE_VPTv8u16:
    case MVE_VPTv4u32:
    case MVE_VPTv16u8r:
    case MVE_VPTv8u16r:
    case MVE_VPTv4u32r:
    case MVE_VPTv8f16:
    case MVE_VPTv4f32:
    case MVE_VPTv8f16r:
    case MVE_VPTv4f32r:
    case MVE_VQABSs16:
    case MVE_VQABSs32:
    case MVE_VQABSs8:
    case MVE_VQADD_qr_s16:
    case MVE_VQADD_qr_s32:
    case MVE_VQADD_qr_s8:
    case MVE_VQADD_qr_u16:
    case MVE_VQADD_qr_u32:
    case MVE_VQADD_qr_u8:
    case MVE_VQADDs16:
    case MVE_VQADDs32:
    case MVE_VQADDs8:
    case MVE_VQADDu16:
    case MVE_VQADDu32:
    case MVE_VQADDu8:
    case MVE_VQDMULH_qr_s16:
    case MVE_VQDMULH_qr_s32:
    case MVE_VQDMULH_qr_s8:
    case MVE_VQDMULHi16:
    case MVE_VQDMULHi32:
    case MVE_VQDMULHi8:
    case MVE_VQDMULL_qr_s16bh:
    case MVE_VQDMULL_qr_s16th:
    case MVE_VQDMULL_qr_s32bh:
    case MVE_VQDMULL_qr_s32th:
    case MVE_VQDMULLs16bh:
    case MVE_VQDMULLs16th:
    case MVE_VQDMULLs32bh:
    case MVE_VQDMULLs32th:
    case MVE_VQRDMULH_qr_s16:
    case MVE_VQRDMULH_qr_s32:
    case MVE_VQRDMULH_qr_s8:
    case MVE_VQRDMULHi16:
    case MVE_VQRDMULHi32:
    case MVE_VQRDMULHi8:
    case MVE_VQNEGs16:
    case MVE_VQNEGs32:
    case MVE_VQNEGs8:
    case MVE_VQMOVNs16bh:
    case MVE_VQMOVNs16th:
    case MVE_VQMOVNs32bh:
    case MVE_VQMOVNs32th:
    case MVE_VQMOVNu16bh:
    case MVE_VQMOVNu16th:
    case MVE_VQMOVNu32bh:
    case MVE_VQMOVNu32th:
    case MVE_VQMOVUNs16bh:
    case MVE_VQMOVUNs16th:
    case MVE_VQMOVUNs32bh:
    case MVE_VQMOVUNs32th:
    case MVE_VQRSHL_by_vecs16:
    case MVE_VQRSHL_by_vecs32:
    case MVE_VQRSHL_by_vecs8:
    case MVE_VQRSHL_by_vecu16:
    case MVE_VQRSHL_by_vecu32:
    case MVE_VQRSHL_by_vecu8:
    case MVE_VQRSHL_qrs16:
    case MVE_VQRSHL_qrs32:
    case MVE_VQRSHL_qrs8:
    case MVE_VQRSHL_qru16:
    case MVE_VQRSHL_qru8:
    case MVE_VQRSHL_qru32:
    case MVE_VQSHLU_imms16:
    case MVE_VQSHLU_imms32:
    case MVE_VQSHLU_imms8:
    case MVE_VQSHLimms16:
    case MVE_VQSHLimms32:
    case MVE_VQSHLimms8:
    case MVE_VQSHLimmu16:
    case MVE_VQSHLimmu32:
    case MVE_VQSHLimmu8:
    case MVE_VQSHL_by_vecs16:
    case MVE_VQSHL_by_vecs32:
    case MVE_VQSHL_by_vecs8:
    case MVE_VQSHL_by_vecu16:
    case MVE_VQSHL_by_vecu32:
    case MVE_VQSHL_by_vecu8:
    case MVE_VQSHL_qrs16:
    case MVE_VQSHL_qrs32:
    case MVE_VQSHL_qrs8:
    case MVE_VQSHL_qru16:
    case MVE_VQSHL_qru32:
    case MVE_VQSHL_qru8:
    case MVE_VQRSHRNbhs16:
    case MVE_VQRSHRNbhs32:
    case MVE_VQRSHRNbhu16:
    case MVE_VQRSHRNbhu32:
    case MVE_VQRSHRNths16:
    case MVE_VQRSHRNths32:
    case MVE_VQRSHRNthu16:
    case MVE_VQRSHRNthu32:
    case MVE_VQRSHRUNs16bh:
    case MVE_VQRSHRUNs16th:
    case MVE_VQRSHRUNs32bh:
    case MVE_VQRSHRUNs32th:
    case MVE_VQSHRNbhs16:
    case MVE_VQSHRNbhs32:
    case MVE_VQSHRNbhu16:
    case MVE_VQSHRNbhu32:
    case MVE_VQSHRNths16:
    case MVE_VQSHRNths32:
    case MVE_VQSHRNthu16:
    case MVE_VQSHRNthu32:
    case MVE_VQSHRUNs16bh:
    case MVE_VQSHRUNs16th:
    case MVE_VQSHRUNs32bh:
    case MVE_VQSHRUNs32th:
    case MVE_VQSUB_qr_s16:
    case MVE_VQSUB_qr_s32:
    case MVE_VQSUB_qr_s8:
    case MVE_VQSUB_qr_u16:
    case MVE_VQSUB_qr_u32:
    case MVE_VQSUB_qr_u8:
    case MVE_VQSUBs16:
    case MVE_VQSUBs32:
    case MVE_VQSUBs8:
    case MVE_VQSUBu16:
    case MVE_VQSUBu32:
    case MVE_VQSUBu8:
    case MVE_VRHADDs16:
    case MVE_VRHADDs32:
    case MVE_VRHADDs8:
    case MVE_VRHADDu16:
    case MVE_VRHADDu32:
    case MVE_VRHADDu8:
    case MVE_VRINTf16A:
    case MVE_VRINTf16M:
    case MVE_VRINTf16N:
    case MVE_VRINTf16P:
    case MVE_VRINTf16X:
    case MVE_VRINTf16Z:
    case MVE_VRINTf32A:
    case MVE_VRINTf32M:
    case MVE_VRINTf32N:
    case MVE_VRINTf32P:
    case MVE_VRINTf32X:
    case MVE_VRINTf32Z:
    case MVE_VRMULHs32:
    case MVE_VRMULHs16:
    case MVE_VRMULHs8:
    case MVE_VRMULHu32:
    case MVE_VRMULHu16:
    case MVE_VRMULHu8:
    case MVE_VRSHL_by_vecs16:
    case MVE_VRSHL_by_vecs32:
    case MVE_VRSHL_by_vecs8:
    case MVE_VRSHL_by_vecu16:
    case MVE_VRSHL_by_vecu32:
    case MVE_VRSHL_by_vecu8:
    case MVE_VRSHL_qrs16:
    case MVE_VRSHL_qrs32:
    case MVE_VRSHL_qrs8:
    case MVE_VRSHL_qru16:
    case MVE_VRSHL_qru32:
    case MVE_VRSHL_qru8:
    case MVE_VRSHR_imms16:
    case MVE_VRSHR_imms32:
    case MVE_VRSHR_imms8:
    case MVE_VRSHR_immu16:
    case MVE_VRSHR_immu32:
    case MVE_VRSHR_immu8:
    case MVE_VRSHRNi16bh:
    case MVE_VRSHRNi16th:
    case MVE_VRSHRNi32bh:
    case MVE_VRSHRNi32th:
    case MVE_VSHL_by_vecs16:
    case MVE_VSHL_by_vecs32:
    case MVE_VSHL_by_vecs8:
    case MVE_VSHL_by_vecu16:
    case MVE_VSHL_by_vecu32:
    case MVE_VSHL_by_vecu8:
    case MVE_VSHL_immi16:
    case MVE_VSHL_immi32:
    case MVE_VSHL_immi8:
    case MVE_VSHL_qrs16:
    case MVE_VSHL_qrs32:
    case MVE_VSHL_qrs8:
    case MVE_VSHL_qru16:
    case MVE_VSHL_qru32:
    case MVE_VSHL_qru8:
    case MVE_VSHR_imms16:
    case MVE_VSHR_imms32:
    case MVE_VSHR_imms8:
    case MVE_VSHR_immu16:
    case MVE_VSHR_immu32:
    case MVE_VSHR_immu8:
    case MVE_VSHRNi16bh:
    case MVE_VSHRNi16th:
    case MVE_VSHRNi32bh:
    case MVE_VSHRNi32th:
    case MVE_VSLIimm16:
    case MVE_VSLIimm32:
    case MVE_VSLIimm8:
    case MVE_VSRIimm16:
    case MVE_VSRIimm32:
    case MVE_VSRIimm8:
    case MVE_VSTRB16:
    case MVE_VSTRB16_post:
    case MVE_VSTRB16_pre:
    case MVE_VSTRB16_rq:
    case MVE_VSTRB32:
    case MVE_VSTRB32_post:
    case MVE_VSTRB32_pre:
    case MVE_VSTRB32_rq:
    case MVE_VSTRB8_rq:
    case MVE_VSTRBU8:
    case MVE_VSTRBU8_post:
    case MVE_VSTRBU8_pre:
    case MVE_VSTRD64_qi:
    case MVE_VSTRD64_qi_pre:
    case MVE_VSTRD64_rq:
    case MVE_VSTRD64_rq_u:
    case MVE_VSTRH16_rq:
    case MVE_VSTRH16_rq_u:
    case MVE_VSTRH32:
    case MVE_VSTRH32_post:
    case MVE_VSTRH32_pre:
    case MVE_VSTRH32_rq:
    case MVE_VSTRH32_rq_u:
    case MVE_VSTRHU16:
    case MVE_VSTRHU16_post:
    case MVE_VSTRHU16_pre:
    case MVE_VSTRW32_qi:
    case MVE_VSTRW32_qi_pre:
    case MVE_VSTRW32_rq:
    case MVE_VSTRW32_rq_u:
    case MVE_VSTRWU32:
    case MVE_VSTRWU32_post:
    case MVE_VSTRWU32_pre:
    case MVE_VSUB_qr_f16:
    case MVE_VSUB_qr_f32:
    case MVE_VSUB_qr_i16:
    case MVE_VSUB_qr_i32:
    case MVE_VSUB_qr_i8:
    case MVE_VSUBf16:
    case MVE_VSUBf32:
    case MVE_VSUBi16:
    case MVE_VSUBi32:
    case MVE_VSUBi8:
    case VLDR_P0_off:
    case VLDR_P0_post:
    case VLDR_P0_pre:
    case VLDR_VPR_off:
    case VLDR_VPR_post:
    case VLDR_VPR_pre:
    case VSTR_P0_off:
    case VSTR_P0_post:
    case VSTR_P0_pre:
    case VSTR_VPR_off:
    case VSTR_VPR_post:
    case VSTR_VPR_pre:
    case VMRS_P0:
    case VMRS_VPR:
      return true;
    }
  };

  LLVMInitializeARMTargetInfo();
  LLVMInitializeARMTarget();
  LLVMInitializeARMTargetMC();

  auto TT(Triple::normalize("thumbv8.1m.main-none-none-eabi"));
  std::string Error;
  const Target *T = TargetRegistry::lookupTarget(TT, Error);
  if (!T) {
    dbgs() << Error;
    GTEST_SKIP();
  }

  TargetOptions Options;
  auto TM = std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine *>(
      T->createTargetMachine(TT, "generic", "", Options, std::nullopt,
                             std::nullopt, CodeGenOptLevel::Default)));
  ARMSubtarget ST(TM->getTargetTriple(), std::string(TM->getTargetCPU()),
                  std::string(TM->getTargetFeatureString()),
                  *static_cast<const ARMBaseTargetMachine *>(TM.get()), false);

  auto MII = TM->getMCInstrInfo();
  for (unsigned i = 0; i < ARM::INSTRUCTION_LIST_END; ++i) {
    uint64_t Flags = MII->get(i).TSFlags;
    if ((Flags & ARMII::DomainMask) != ARMII::DomainMVE)
      continue;
    bool Valid = (Flags & ARMII::ValidForTailPredication) != 0;
    ASSERT_EQ(IsValidTPOpcode(i), Valid)
              << MII->getName(i)
              << ": mismatched expectation for tail-predicated safety\n";
  }
}

TEST(MachineInstr, HasSideEffects) {
  using namespace ARM;
  std::set<unsigned> UnpredictableOpcodes = {
      // MVE Instructions
      MVE_VCTP8,
      MVE_VCTP16,
      MVE_VCTP32,
      MVE_VCTP64,
      MVE_VPST,
      MVE_VPTv16i8,
      MVE_VPTv8i16,
      MVE_VPTv4i32,
      MVE_VPTv16i8r,
      MVE_VPTv8i16r,
      MVE_VPTv4i32r,
      MVE_VPTv16s8,
      MVE_VPTv8s16,
      MVE_VPTv4s32,
      MVE_VPTv16s8r,
      MVE_VPTv8s16r,
      MVE_VPTv4s32r,
      MVE_VPTv16u8,
      MVE_VPTv8u16,
      MVE_VPTv4u32,
      MVE_VPTv16u8r,
      MVE_VPTv8u16r,
      MVE_VPTv4u32r,
      MVE_VPTv8f16,
      MVE_VPTv4f32,
      MVE_VPTv8f16r,
      MVE_VPTv4f32r,
      MVE_VADC,
      MVE_VADCI,
      MVE_VSBC,
      MVE_VSBCI,
      MVE_VSHLC,
      // FP Instructions
      FLDMXIA,
      FLDMXDB_UPD,
      FLDMXIA_UPD,
      FSTMXDB_UPD,
      FSTMXIA,
      FSTMXIA_UPD,
      VLDR_FPCXTNS_off,
      VLDR_FPCXTNS_off,
      VLDR_FPCXTNS_post,
      VLDR_FPCXTNS_pre,
      VLDR_FPCXTS_off,
      VLDR_FPCXTS_post,
      VLDR_FPCXTS_pre,
      VLDR_FPSCR_NZCVQC_off,
      VLDR_FPSCR_NZCVQC_post,
      VLDR_FPSCR_NZCVQC_pre,
      VLDR_FPSCR_off,
      VLDR_FPSCR_post,
      VLDR_FPSCR_pre,
      VLDR_P0_off,
      VLDR_P0_post,
      VLDR_P0_pre,
      VLDR_VPR_off,
      VLDR_VPR_post,
      VLDR_VPR_pre,
      VLLDM,
      VLSTM,
      VMRS,
      VMRS_FPCXTNS,
      VMRS_FPCXTS,
      VMRS_FPEXC,
      VMRS_FPINST,
      VMRS_FPINST2,
      VMRS_FPSCR_NZCVQC,
      VMRS_FPSID,
      VMRS_MVFR0,
      VMRS_MVFR1,
      VMRS_MVFR2,
      VMRS_P0,
      VMRS_VPR,
      VMSR,
      VMSR_FPCXTNS,
      VMSR_FPCXTS,
      VMSR_FPEXC,
      VMSR_FPINST,
      VMSR_FPINST2,
      VMSR_FPSCR_NZCVQC,
      VMSR_FPSID,
      VMSR_P0,
      VMSR_VPR,
      VSCCLRMD,
      VSCCLRMS,
      VSTR_FPCXTNS_off,
      VSTR_FPCXTNS_post,
      VSTR_FPCXTNS_pre,
      VSTR_FPCXTS_off,
      VSTR_FPCXTS_post,
      VSTR_FPCXTS_pre,
      VSTR_FPSCR_NZCVQC_off,
      VSTR_FPSCR_NZCVQC_post,
      VSTR_FPSCR_NZCVQC_pre,
      VSTR_FPSCR_off,
      VSTR_FPSCR_post,
      VSTR_FPSCR_pre,
      VSTR_P0_off,
      VSTR_P0_post,
      VSTR_P0_pre,
      VSTR_VPR_off,
      VSTR_VPR_post,
      VSTR_VPR_pre,
  };

  LLVMInitializeARMTargetInfo();
  LLVMInitializeARMTarget();
  LLVMInitializeARMTargetMC();

  auto TT(Triple::normalize("thumbv8.1m.main-none-none-eabi"));
  std::string Error;
  const Target *T = TargetRegistry::lookupTarget(TT, Error);
  if (!T) {
    dbgs() << Error;
    GTEST_SKIP();
  }

  TargetOptions Options;
  auto TM = std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine *>(
      T->createTargetMachine(TT, "generic", "", Options, std::nullopt,
                             std::nullopt, CodeGenOptLevel::Default)));
  ARMSubtarget ST(TM->getTargetTriple(), std::string(TM->getTargetCPU()),
                  std::string(TM->getTargetFeatureString()),
                  *static_cast<const ARMBaseTargetMachine *>(TM.get()), false);
  const ARMBaseInstrInfo *TII = ST.getInstrInfo();
  auto MII = TM->getMCInstrInfo();

  for (unsigned Op = 0; Op < ARM::INSTRUCTION_LIST_END; ++Op) {
    const MCInstrDesc &Desc = TII->get(Op);
    if ((Desc.TSFlags &
         (ARMII::DomainMVE | ARMII::DomainVFP | ARMII::DomainNEONA8)) == 0)
      continue;
    if (UnpredictableOpcodes.count(Op))
      continue;

    ASSERT_FALSE(Desc.hasUnmodeledSideEffects())
        << MII->getName(Op) << " has unexpected side effects";
  }
}

TEST(MachineInstr, MVEVecSize) {
  using namespace ARM;
  auto MVEVecSize = [](unsigned Opcode) {
    switch (Opcode) {
    default:
    dbgs() << Opcode << "\n";
      llvm_unreachable("Unexpected MVE instruction!");
    case MVE_ASRLi:
    case MVE_ASRLr:
    case MVE_LSLLi:
    case MVE_LSLLr:
    case MVE_LSRL:
    case MVE_SQRSHR:
    case MVE_SQRSHRL:
    case MVE_SQSHL:
    case MVE_SQSHLL:
    case MVE_SRSHR:
    case MVE_SRSHRL:
    case MVE_UQRSHL:
    case MVE_UQRSHLL:
    case MVE_UQSHL:
    case MVE_UQSHLL:
    case MVE_URSHR:
    case MVE_URSHRL:
    case MVE_VABAVs8:
    case MVE_VABAVu8:
    case MVE_VABDs8:
    case MVE_VABDu8:
    case MVE_VABSs8:
    case MVE_VADDVs8acc:
    case MVE_VADDVs8no_acc:
    case MVE_VADDVu8acc:
    case MVE_VADDVu8no_acc:
    case MVE_VADD_qr_i8:
    case MVE_VADDi8:
    case MVE_VBRSR8:
    case MVE_VCADDi8:
    case MVE_VCLSs8:
    case MVE_VCLZs8:
    case MVE_VCMPi8:
    case MVE_VCMPi8r:
    case MVE_VCMPs8:
    case MVE_VCMPs8r:
    case MVE_VCMPu8:
    case MVE_VCMPu8r:
    case MVE_VCTP8:
    case MVE_VDDUPu8:
    case MVE_VDUP8:
    case MVE_VDWDUPu8:
    case MVE_VHADD_qr_s8:
    case MVE_VHADD_qr_u8:
    case MVE_VHADDs8:
    case MVE_VHADDu8:
    case MVE_VHCADDs8:
    case MVE_VHSUB_qr_s8:
    case MVE_VHSUB_qr_u8:
    case MVE_VHSUBs8:
    case MVE_VHSUBu8:
    case MVE_VIDUPu8:
    case MVE_VIWDUPu8:
    case MVE_VLD20_8:
    case MVE_VLD20_8_wb:
    case MVE_VLD21_8:
    case MVE_VLD21_8_wb:
    case MVE_VLD40_8:
    case MVE_VLD40_8_wb:
    case MVE_VLD41_8:
    case MVE_VLD41_8_wb:
    case MVE_VLD42_8:
    case MVE_VLD42_8_wb:
    case MVE_VLD43_8:
    case MVE_VLD43_8_wb:
    case MVE_VLDRBU8:
    case MVE_VLDRBU8_post:
    case MVE_VLDRBU8_pre:
    case MVE_VLDRBU8_rq:
    case MVE_VMAXAVs8:
    case MVE_VMAXAs8:
    case MVE_VMAXVs8:
    case MVE_VMAXVu8:
    case MVE_VMAXs8:
    case MVE_VMAXu8:
    case MVE_VMINAVs8:
    case MVE_VMINAs8:
    case MVE_VMINVs8:
    case MVE_VMINVu8:
    case MVE_VMINs8:
    case MVE_VMINu8:
    case MVE_VMLADAVas8:
    case MVE_VMLADAVau8:
    case MVE_VMLADAVaxs8:
    case MVE_VMLADAVs8:
    case MVE_VMLADAVu8:
    case MVE_VMLADAVxs8:
    case MVE_VMLAS_qr_i8:
    case MVE_VMLA_qr_i8:
    case MVE_VMLSDAVas8:
    case MVE_VMLSDAVaxs8:
    case MVE_VMLSDAVs8:
    case MVE_VMLSDAVxs8:
    case MVE_VMOV_from_lane_s8:
    case MVE_VMOV_from_lane_u8:
    case MVE_VMOV_to_lane_8:
    case MVE_VMOVimmi8:
    case MVE_VMULHs8:
    case MVE_VMULHu8:
    case MVE_VMUL_qr_i8:
    case MVE_VMULi8:
    case MVE_VNEGs8:
    case MVE_VPTv16i8:
    case MVE_VPTv16i8r:
    case MVE_VPTv16s8:
    case MVE_VPTv16s8r:
    case MVE_VPTv16u8:
    case MVE_VPTv16u8r:
    case MVE_VQABSs8:
    case MVE_VQADD_qr_s8:
    case MVE_VQADD_qr_u8:
    case MVE_VQADDs8:
    case MVE_VQADDu8:
    case MVE_VQDMLADHXs8:
    case MVE_VQDMLADHs8:
    case MVE_VQDMLAH_qrs8:
    case MVE_VQDMLASH_qrs8:
    case MVE_VQDMLSDHXs8:
    case MVE_VQDMLSDHs8:
    case MVE_VQDMULH_qr_s8:
    case MVE_VQDMULHi8:
    case MVE_VQNEGs8:
    case MVE_VQRDMLADHXs8:
    case MVE_VQRDMLADHs8:
    case MVE_VQRDMLAH_qrs8:
    case MVE_VQRDMLASH_qrs8:
    case MVE_VQRDMLSDHXs8:
    case MVE_VQRDMLSDHs8:
    case MVE_VQRDMULH_qr_s8:
    case MVE_VQRDMULHi8:
    case MVE_VQRSHL_by_vecs8:
    case MVE_VQRSHL_by_vecu8:
    case MVE_VQRSHL_qrs8:
    case MVE_VQRSHL_qru8:
    case MVE_VQSHLU_imms8:
    case MVE_VQSHL_by_vecs8:
    case MVE_VQSHL_by_vecu8:
    case MVE_VQSHL_qrs8:
    case MVE_VQSHL_qru8:
    case MVE_VQSHLimms8:
    case MVE_VQSHLimmu8:
    case MVE_VQSUB_qr_s8:
    case MVE_VQSUB_qr_u8:
    case MVE_VQSUBs8:
    case MVE_VQSUBu8:
    case MVE_VRHADDs8:
    case MVE_VRHADDu8:
    case MVE_VRMULHs8:
    case MVE_VRMULHu8:
    case MVE_VRSHL_by_vecs8:
    case MVE_VRSHL_by_vecu8:
    case MVE_VRSHL_qrs8:
    case MVE_VRSHL_qru8:
    case MVE_VRSHR_imms8:
    case MVE_VRSHR_immu8:
    case MVE_VSHL_by_vecs8:
    case MVE_VSHL_by_vecu8:
    case MVE_VSHL_immi8:
    case MVE_VSHL_qru8:
    case MVE_VSHL_qrs8:
    case MVE_VSHR_imms8:
    case MVE_VSHR_immu8:
    case MVE_VSLIimm8:
    case MVE_VSRIimm8:
    case MVE_VST20_8:
    case MVE_VST20_8_wb:
    case MVE_VST21_8:
    case MVE_VST21_8_wb:
    case MVE_VST40_8:
    case MVE_VST40_8_wb:
    case MVE_VST41_8:
    case MVE_VST41_8_wb:
    case MVE_VST42_8:
    case MVE_VST42_8_wb:
    case MVE_VST43_8:
    case MVE_VST43_8_wb:
    case MVE_VSTRB8_rq:
    case MVE_VSTRBU8:
    case MVE_VSTRBU8_post:
    case MVE_VSTRBU8_pre:
    case MVE_VSUB_qr_i8:
    case MVE_VSUBi8:
    case MVE_VAND:
    case MVE_VBIC:
    case MVE_VEOR:
    case MVE_VMVN:
    case MVE_VORN:
    case MVE_VORR:
    case MVE_VPNOT:
    case MVE_VPSEL:
    case MVE_VPST:
    case MQPRCopy:
      return 0;
    case MVE_VABAVs16:
    case MVE_VABAVu16:
    case MVE_VABDf16:
    case MVE_VABDs16:
    case MVE_VABDu16:
    case MVE_VABSf16:
    case MVE_VABSs16:
    case MVE_VADDVs16acc:
    case MVE_VADDVs16no_acc:
    case MVE_VADDVu16acc:
    case MVE_VADDVu16no_acc:
    case MVE_VADD_qr_f16:
    case MVE_VADD_qr_i16:
    case MVE_VADDf16:
    case MVE_VADDi16:
    case MVE_VBICimmi16:
    case MVE_VBRSR16:
    case MVE_VCADDf16:
    case MVE_VCADDi16:
    case MVE_VCLSs16:
    case MVE_VCLZs16:
    case MVE_VCMLAf16:
    case MVE_VCMPf16:
    case MVE_VCMPf16r:
    case MVE_VCMPi16:
    case MVE_VCMPi16r:
    case MVE_VCMPs16:
    case MVE_VCMPs16r:
    case MVE_VCMPu16:
    case MVE_VCMPu16r:
    case MVE_VCMULf16:
    case MVE_VCTP16:
    case MVE_VCVTf16s16_fix:
    case MVE_VCVTf16s16n:
    case MVE_VCVTf16u16_fix:
    case MVE_VCVTf16u16n:
    case MVE_VCVTs16f16_fix:
    case MVE_VCVTs16f16a:
    case MVE_VCVTs16f16m:
    case MVE_VCVTs16f16n:
    case MVE_VCVTs16f16p:
    case MVE_VCVTs16f16z:
    case MVE_VCVTu16f16_fix:
    case MVE_VCVTu16f16a:
    case MVE_VCVTu16f16m:
    case MVE_VCVTu16f16n:
    case MVE_VCVTu16f16p:
    case MVE_VCVTu16f16z:
    case MVE_VDDUPu16:
    case MVE_VDUP16:
    case MVE_VDWDUPu16:
    case MVE_VFMA_qr_Sf16:
    case MVE_VFMA_qr_f16:
    case MVE_VFMAf16:
    case MVE_VFMSf16:
    case MVE_VHADD_qr_s16:
    case MVE_VHADD_qr_u16:
    case MVE_VHADDs16:
    case MVE_VHADDu16:
    case MVE_VHCADDs16:
    case MVE_VHSUB_qr_s16:
    case MVE_VHSUB_qr_u16:
    case MVE_VHSUBs16:
    case MVE_VHSUBu16:
    case MVE_VIDUPu16:
    case MVE_VIWDUPu16:
    case MVE_VLD20_16:
    case MVE_VLD20_16_wb:
    case MVE_VLD21_16:
    case MVE_VLD21_16_wb:
    case MVE_VLD40_16:
    case MVE_VLD40_16_wb:
    case MVE_VLD41_16:
    case MVE_VLD41_16_wb:
    case MVE_VLD42_16:
    case MVE_VLD42_16_wb:
    case MVE_VLD43_16:
    case MVE_VLD43_16_wb:
    case MVE_VLDRBS16:
    case MVE_VLDRBS16_post:
    case MVE_VLDRBS16_pre:
    case MVE_VLDRBS16_rq:
    case MVE_VLDRBU16:
    case MVE_VLDRBU16_post:
    case MVE_VLDRBU16_pre:
    case MVE_VLDRBU16_rq:
    case MVE_VLDRHU16:
    case MVE_VLDRHU16_post:
    case MVE_VLDRHU16_pre:
    case MVE_VLDRHU16_rq:
    case MVE_VLDRHU16_rq_u:
    case MVE_VMAXAVs16:
    case MVE_VMAXAs16:
    case MVE_VMAXNMAVf16:
    case MVE_VMAXNMAf16:
    case MVE_VMAXNMVf16:
    case MVE_VMAXNMf16:
    case MVE_VMAXVs16:
    case MVE_VMAXVu16:
    case MVE_VMAXs16:
    case MVE_VMAXu16:
    case MVE_VMINAVs16:
    case MVE_VMINAs16:
    case MVE_VMINNMAVf16:
    case MVE_VMINNMAf16:
    case MVE_VMINNMVf16:
    case MVE_VMINNMf16:
    case MVE_VMINVs16:
    case MVE_VMINVu16:
    case MVE_VMINs16:
    case MVE_VMINu16:
    case MVE_VMLADAVas16:
    case MVE_VMLADAVau16:
    case MVE_VMLADAVaxs16:
    case MVE_VMLADAVs16:
    case MVE_VMLADAVu16:
    case MVE_VMLADAVxs16:
    case MVE_VMLALDAVas16:
    case MVE_VMLALDAVau16:
    case MVE_VMLALDAVaxs16:
    case MVE_VMLALDAVs16:
    case MVE_VMLALDAVu16:
    case MVE_VMLALDAVxs16:
    case MVE_VMLAS_qr_i16:
    case MVE_VMLA_qr_i16:
    case MVE_VMLSDAVas16:
    case MVE_VMLSDAVaxs16:
    case MVE_VMLSDAVs16:
    case MVE_VMLSDAVxs16:
    case MVE_VMLSLDAVas16:
    case MVE_VMLSLDAVaxs16:
    case MVE_VMLSLDAVs16:
    case MVE_VMLSLDAVxs16:
    case MVE_VMOVNi16bh:
    case MVE_VMOVNi16th:
    case MVE_VMOV_from_lane_s16:
    case MVE_VMOV_from_lane_u16:
    case MVE_VMOV_to_lane_16:
    case MVE_VMOVimmi16:
    case MVE_VMOVLs8bh:
    case MVE_VMOVLs8th:
    case MVE_VMOVLu8bh:
    case MVE_VMOVLu8th:
    case MVE_VMULLBp8:
    case MVE_VMULLBs8:
    case MVE_VMULLBu8:
    case MVE_VMULLTp8:
    case MVE_VMULLTs8:
    case MVE_VMULLTu8:
    case MVE_VMULHs16:
    case MVE_VMULHu16:
    case MVE_VMUL_qr_f16:
    case MVE_VMUL_qr_i16:
    case MVE_VMULf16:
    case MVE_VMULi16:
    case MVE_VMVNimmi16:
    case MVE_VNEGf16:
    case MVE_VNEGs16:
    case MVE_VORRimmi16:
    case MVE_VPTv8f16:
    case MVE_VPTv8f16r:
    case MVE_VPTv8i16:
    case MVE_VPTv8i16r:
    case MVE_VPTv8s16:
    case MVE_VPTv8s16r:
    case MVE_VPTv8u16:
    case MVE_VPTv8u16r:
    case MVE_VQABSs16:
    case MVE_VQADD_qr_s16:
    case MVE_VQADD_qr_u16:
    case MVE_VQADDs16:
    case MVE_VQADDu16:
    case MVE_VQDMLADHXs16:
    case MVE_VQDMLADHs16:
    case MVE_VQDMLAH_qrs16:
    case MVE_VQDMLASH_qrs16:
    case MVE_VQDMLSDHXs16:
    case MVE_VQDMLSDHs16:
    case MVE_VQDMULH_qr_s16:
    case MVE_VQDMULHi16:
    case MVE_VQDMULL_qr_s16bh:
    case MVE_VQDMULL_qr_s16th:
    case MVE_VQDMULLs16bh:
    case MVE_VQDMULLs16th:
    case MVE_VQMOVNs16bh:
    case MVE_VQMOVNs16th:
    case MVE_VQMOVNu16bh:
    case MVE_VQMOVNu16th:
    case MVE_VQMOVUNs16bh:
    case MVE_VQMOVUNs16th:
    case MVE_VQNEGs16:
    case MVE_VQRDMLADHXs16:
    case MVE_VQRDMLADHs16:
    case MVE_VQRDMLAH_qrs16:
    case MVE_VQRDMLASH_qrs16:
    case MVE_VQRDMLSDHXs16:
    case MVE_VQRDMLSDHs16:
    case MVE_VQRDMULH_qr_s16:
    case MVE_VQRDMULHi16:
    case MVE_VQRSHL_by_vecs16:
    case MVE_VQRSHL_by_vecu16:
    case MVE_VQRSHL_qrs16:
    case MVE_VQRSHL_qru16:
    case MVE_VQRSHRNbhs16:
    case MVE_VQRSHRNbhu16:
    case MVE_VQRSHRNths16:
    case MVE_VQRSHRNthu16:
    case MVE_VQRSHRUNs16bh:
    case MVE_VQRSHRUNs16th:
    case MVE_VQSHLU_imms16:
    case MVE_VQSHL_by_vecs16:
    case MVE_VQSHL_by_vecu16:
    case MVE_VQSHL_qrs16:
    case MVE_VQSHL_qru16:
    case MVE_VQSHLimms16:
    case MVE_VQSHLimmu16:
    case MVE_VQSHRNbhs16:
    case MVE_VQSHRNbhu16:
    case MVE_VQSHRNths16:
    case MVE_VQSHRNthu16:
    case MVE_VQSHRUNs16bh:
    case MVE_VQSHRUNs16th:
    case MVE_VQSUB_qr_s16:
    case MVE_VQSUB_qr_u16:
    case MVE_VQSUBs16:
    case MVE_VQSUBu16:
    case MVE_VREV16_8:
    case MVE_VRHADDs16:
    case MVE_VRHADDu16:
    case MVE_VRINTf16A:
    case MVE_VRINTf16M:
    case MVE_VRINTf16N:
    case MVE_VRINTf16P:
    case MVE_VRINTf16X:
    case MVE_VRINTf16Z:
    case MVE_VRMULHs16:
    case MVE_VRMULHu16:
    case MVE_VRSHL_by_vecs16:
    case MVE_VRSHL_by_vecu16:
    case MVE_VRSHL_qrs16:
    case MVE_VRSHL_qru16:
    case MVE_VRSHRNi16bh:
    case MVE_VRSHRNi16th:
    case MVE_VRSHR_imms16:
    case MVE_VRSHR_immu16:
    case MVE_VSHLL_imms8bh:
    case MVE_VSHLL_imms8th:
    case MVE_VSHLL_immu8bh:
    case MVE_VSHLL_immu8th:
    case MVE_VSHLL_lws8bh:
    case MVE_VSHLL_lws8th:
    case MVE_VSHLL_lwu8bh:
    case MVE_VSHLL_lwu8th:
    case MVE_VSHL_by_vecs16:
    case MVE_VSHL_by_vecu16:
    case MVE_VSHL_immi16:
    case MVE_VSHL_qrs16:
    case MVE_VSHL_qru16:
    case MVE_VSHRNi16bh:
    case MVE_VSHRNi16th:
    case MVE_VSHR_imms16:
    case MVE_VSHR_immu16:
    case MVE_VSLIimm16:
    case MVE_VSRIimm16:
    case MVE_VST20_16:
    case MVE_VST20_16_wb:
    case MVE_VST21_16:
    case MVE_VST21_16_wb:
    case MVE_VST40_16:
    case MVE_VST40_16_wb:
    case MVE_VST41_16:
    case MVE_VST41_16_wb:
    case MVE_VST42_16:
    case MVE_VST42_16_wb:
    case MVE_VST43_16:
    case MVE_VST43_16_wb:
    case MVE_VSTRB16:
    case MVE_VSTRB16_post:
    case MVE_VSTRB16_pre:
    case MVE_VSTRB16_rq:
    case MVE_VSTRH16_rq:
    case MVE_VSTRH16_rq_u:
    case MVE_VSTRHU16:
    case MVE_VSTRHU16_post:
    case MVE_VSTRHU16_pre:
    case MVE_VSUB_qr_f16:
    case MVE_VSUB_qr_i16:
    case MVE_VSUBf16:
    case MVE_VSUBi16:
      return 1;
    case MVE_VABAVs32:
    case MVE_VABAVu32:
    case MVE_VABDf32:
    case MVE_VABDs32:
    case MVE_VABDu32:
    case MVE_VABSf32:
    case MVE_VABSs32:
    case MVE_VADC:
    case MVE_VADCI:
    case MVE_VADDLVs32acc:
    case MVE_VADDLVs32no_acc:
    case MVE_VADDLVu32acc:
    case MVE_VADDLVu32no_acc:
    case MVE_VADDVs32acc:
    case MVE_VADDVs32no_acc:
    case MVE_VADDVu32acc:
    case MVE_VADDVu32no_acc:
    case MVE_VADD_qr_f32:
    case MVE_VADD_qr_i32:
    case MVE_VADDf32:
    case MVE_VADDi32:
    case MVE_VBICimmi32:
    case MVE_VBRSR32:
    case MVE_VCADDf32:
    case MVE_VCADDi32:
    case MVE_VCLSs32:
    case MVE_VCLZs32:
    case MVE_VCMLAf32:
    case MVE_VCMPf32:
    case MVE_VCMPf32r:
    case MVE_VCMPi32:
    case MVE_VCMPi32r:
    case MVE_VCMPs32:
    case MVE_VCMPs32r:
    case MVE_VCMPu32:
    case MVE_VCMPu32r:
    case MVE_VCMULf32:
    case MVE_VCTP32:
    case MVE_VCVTf16f32bh:
    case MVE_VCVTf16f32th:
    case MVE_VCVTf32f16bh:
    case MVE_VCVTf32f16th:
    case MVE_VCVTf32s32_fix:
    case MVE_VCVTf32s32n:
    case MVE_VCVTf32u32_fix:
    case MVE_VCVTf32u32n:
    case MVE_VCVTs32f32_fix:
    case MVE_VCVTs32f32a:
    case MVE_VCVTs32f32m:
    case MVE_VCVTs32f32n:
    case MVE_VCVTs32f32p:
    case MVE_VCVTs32f32z:
    case MVE_VCVTu32f32_fix:
    case MVE_VCVTu32f32a:
    case MVE_VCVTu32f32m:
    case MVE_VCVTu32f32n:
    case MVE_VCVTu32f32p:
    case MVE_VCVTu32f32z:
    case MVE_VDDUPu32:
    case MVE_VDUP32:
    case MVE_VDWDUPu32:
    case MVE_VFMA_qr_Sf32:
    case MVE_VFMA_qr_f32:
    case MVE_VFMAf32:
    case MVE_VFMSf32:
    case MVE_VHADD_qr_s32:
    case MVE_VHADD_qr_u32:
    case MVE_VHADDs32:
    case MVE_VHADDu32:
    case MVE_VHCADDs32:
    case MVE_VHSUB_qr_s32:
    case MVE_VHSUB_qr_u32:
    case MVE_VHSUBs32:
    case MVE_VHSUBu32:
    case MVE_VIDUPu32:
    case MVE_VIWDUPu32:
    case MVE_VLD20_32:
    case MVE_VLD20_32_wb:
    case MVE_VLD21_32:
    case MVE_VLD21_32_wb:
    case MVE_VLD40_32:
    case MVE_VLD40_32_wb:
    case MVE_VLD41_32:
    case MVE_VLD41_32_wb:
    case MVE_VLD42_32:
    case MVE_VLD42_32_wb:
    case MVE_VLD43_32:
    case MVE_VLD43_32_wb:
    case MVE_VLDRBS32:
    case MVE_VLDRBS32_post:
    case MVE_VLDRBS32_pre:
    case MVE_VLDRBS32_rq:
    case MVE_VLDRBU32:
    case MVE_VLDRBU32_post:
    case MVE_VLDRBU32_pre:
    case MVE_VLDRBU32_rq:
    case MVE_VLDRHS32:
    case MVE_VLDRHS32_post:
    case MVE_VLDRHS32_pre:
    case MVE_VLDRHS32_rq:
    case MVE_VLDRHS32_rq_u:
    case MVE_VLDRHU32:
    case MVE_VLDRHU32_post:
    case MVE_VLDRHU32_pre:
    case MVE_VLDRHU32_rq:
    case MVE_VLDRHU32_rq_u:
    case MVE_VLDRWU32:
    case MVE_VLDRWU32_post:
    case MVE_VLDRWU32_pre:
    case MVE_VLDRWU32_qi:
    case MVE_VLDRWU32_qi_pre:
    case MVE_VLDRWU32_rq:
    case MVE_VLDRWU32_rq_u:
    case MVE_VMAXAVs32:
    case MVE_VMAXAs32:
    case MVE_VMAXNMAVf32:
    case MVE_VMAXNMAf32:
    case MVE_VMAXNMVf32:
    case MVE_VMAXNMf32:
    case MVE_VMAXVs32:
    case MVE_VMAXVu32:
    case MVE_VMAXs32:
    case MVE_VMAXu32:
    case MVE_VMINAVs32:
    case MVE_VMINAs32:
    case MVE_VMINNMAVf32:
    case MVE_VMINNMAf32:
    case MVE_VMINNMVf32:
    case MVE_VMINNMf32:
    case MVE_VMINVs32:
    case MVE_VMINVu32:
    case MVE_VMINs32:
    case MVE_VMINu32:
    case MVE_VMLADAVas32:
    case MVE_VMLADAVau32:
    case MVE_VMLADAVaxs32:
    case MVE_VMLADAVs32:
    case MVE_VMLADAVu32:
    case MVE_VMLADAVxs32:
    case MVE_VMLALDAVas32:
    case MVE_VMLALDAVau32:
    case MVE_VMLALDAVaxs32:
    case MVE_VMLALDAVs32:
    case MVE_VMLALDAVu32:
    case MVE_VMLALDAVxs32:
    case MVE_VMLAS_qr_i32:
    case MVE_VMLA_qr_i32:
    case MVE_VMLSDAVas32:
    case MVE_VMLSDAVaxs32:
    case MVE_VMLSDAVs32:
    case MVE_VMLSDAVxs32:
    case MVE_VMLSLDAVas32:
    case MVE_VMLSLDAVaxs32:
    case MVE_VMLSLDAVs32:
    case MVE_VMLSLDAVxs32:
    case MVE_VMOVNi32bh:
    case MVE_VMOVNi32th:
    case MVE_VMOV_from_lane_32:
    case MVE_VMOV_q_rr:
    case MVE_VMOV_rr_q:
    case MVE_VMOV_to_lane_32:
    case MVE_VMOVimmf32:
    case MVE_VMOVimmi32:
    case MVE_VMOVLs16bh:
    case MVE_VMOVLs16th:
    case MVE_VMOVLu16bh:
    case MVE_VMOVLu16th:
    case MVE_VMULHs32:
    case MVE_VMULHu32:
    case MVE_VMULLBp16:
    case MVE_VMULLBs16:
    case MVE_VMULLBu16:
    case MVE_VMULLTp16:
    case MVE_VMULLTs16:
    case MVE_VMULLTu16:
    case MVE_VMUL_qr_f32:
    case MVE_VMUL_qr_i32:
    case MVE_VMULf32:
    case MVE_VMULi32:
    case MVE_VMVNimmi32:
    case MVE_VNEGf32:
    case MVE_VNEGs32:
    case MVE_VORRimmi32:
    case MVE_VPTv4f32:
    case MVE_VPTv4f32r:
    case MVE_VPTv4i32:
    case MVE_VPTv4i32r:
    case MVE_VPTv4s32:
    case MVE_VPTv4s32r:
    case MVE_VPTv4u32:
    case MVE_VPTv4u32r:
    case MVE_VQABSs32:
    case MVE_VQADD_qr_s32:
    case MVE_VQADD_qr_u32:
    case MVE_VQADDs32:
    case MVE_VQADDu32:
    case MVE_VQDMLADHXs32:
    case MVE_VQDMLADHs32:
    case MVE_VQDMLAH_qrs32:
    case MVE_VQDMLASH_qrs32:
    case MVE_VQDMLSDHXs32:
    case MVE_VQDMLSDHs32:
    case MVE_VQDMULH_qr_s32:
    case MVE_VQDMULHi32:
    case MVE_VQDMULL_qr_s32bh:
    case MVE_VQDMULL_qr_s32th:
    case MVE_VQDMULLs32bh:
    case MVE_VQDMULLs32th:
    case MVE_VQMOVNs32bh:
    case MVE_VQMOVNs32th:
    case MVE_VQMOVNu32bh:
    case MVE_VQMOVNu32th:
    case MVE_VQMOVUNs32bh:
    case MVE_VQMOVUNs32th:
    case MVE_VQNEGs32:
    case MVE_VQRDMLADHXs32:
    case MVE_VQRDMLADHs32:
    case MVE_VQRDMLAH_qrs32:
    case MVE_VQRDMLASH_qrs32:
    case MVE_VQRDMLSDHXs32:
    case MVE_VQRDMLSDHs32:
    case MVE_VQRDMULH_qr_s32:
    case MVE_VQRDMULHi32:
    case MVE_VQRSHL_by_vecs32:
    case MVE_VQRSHL_by_vecu32:
    case MVE_VQRSHL_qrs32:
    case MVE_VQRSHL_qru32:
    case MVE_VQRSHRNbhs32:
    case MVE_VQRSHRNbhu32:
    case MVE_VQRSHRNths32:
    case MVE_VQRSHRNthu32:
    case MVE_VQRSHRUNs32bh:
    case MVE_VQRSHRUNs32th:
    case MVE_VQSHLU_imms32:
    case MVE_VQSHL_by_vecs32:
    case MVE_VQSHL_by_vecu32:
    case MVE_VQSHL_qrs32:
    case MVE_VQSHL_qru32:
    case MVE_VQSHLimms32:
    case MVE_VQSHLimmu32:
    case MVE_VQSHRNbhs32:
    case MVE_VQSHRNbhu32:
    case MVE_VQSHRNths32:
    case MVE_VQSHRNthu32:
    case MVE_VQSHRUNs32bh:
    case MVE_VQSHRUNs32th:
    case MVE_VQSUB_qr_s32:
    case MVE_VQSUB_qr_u32:
    case MVE_VQSUBs32:
    case MVE_VQSUBu32:
    case MVE_VREV32_16:
    case MVE_VREV32_8:
    case MVE_VRHADDs32:
    case MVE_VRHADDu32:
    case MVE_VRINTf32A:
    case MVE_VRINTf32M:
    case MVE_VRINTf32N:
    case MVE_VRINTf32P:
    case MVE_VRINTf32X:
    case MVE_VRINTf32Z:
    case MVE_VRMLALDAVHas32:
    case MVE_VRMLALDAVHau32:
    case MVE_VRMLALDAVHaxs32:
    case MVE_VRMLALDAVHs32:
    case MVE_VRMLALDAVHu32:
    case MVE_VRMLALDAVHxs32:
    case MVE_VRMLSLDAVHas32:
    case MVE_VRMLSLDAVHaxs32:
    case MVE_VRMLSLDAVHs32:
    case MVE_VRMLSLDAVHxs32:
    case MVE_VRMULHs32:
    case MVE_VRMULHu32:
    case MVE_VRSHL_by_vecs32:
    case MVE_VRSHL_by_vecu32:
    case MVE_VRSHL_qrs32:
    case MVE_VRSHL_qru32:
    case MVE_VRSHRNi32bh:
    case MVE_VRSHRNi32th:
    case MVE_VRSHR_imms32:
    case MVE_VRSHR_immu32:
    case MVE_VSBC:
    case MVE_VSBCI:
    case MVE_VSHLC:
    case MVE_VSHLL_imms16bh:
    case MVE_VSHLL_imms16th:
    case MVE_VSHLL_immu16bh:
    case MVE_VSHLL_immu16th:
    case MVE_VSHLL_lws16bh:
    case MVE_VSHLL_lws16th:
    case MVE_VSHLL_lwu16bh:
    case MVE_VSHLL_lwu16th:
    case MVE_VSHL_by_vecs32:
    case MVE_VSHL_by_vecu32:
    case MVE_VSHL_immi32:
    case MVE_VSHL_qrs32:
    case MVE_VSHL_qru32:
    case MVE_VSHRNi32bh:
    case MVE_VSHRNi32th:
    case MVE_VSHR_imms32:
    case MVE_VSHR_immu32:
    case MVE_VSLIimm32:
    case MVE_VSRIimm32:
    case MVE_VST20_32:
    case MVE_VST20_32_wb:
    case MVE_VST21_32:
    case MVE_VST21_32_wb:
    case MVE_VST40_32:
    case MVE_VST40_32_wb:
    case MVE_VST41_32:
    case MVE_VST41_32_wb:
    case MVE_VST42_32:
    case MVE_VST42_32_wb:
    case MVE_VST43_32:
    case MVE_VST43_32_wb:
    case MVE_VSTRB32:
    case MVE_VSTRB32_post:
    case MVE_VSTRB32_pre:
    case MVE_VSTRB32_rq:
    case MVE_VSTRH32:
    case MVE_VSTRH32_post:
    case MVE_VSTRH32_pre:
    case MVE_VSTRH32_rq:
    case MVE_VSTRH32_rq_u:
    case MVE_VSTRW32_qi:
    case MVE_VSTRW32_qi_pre:
    case MVE_VSTRW32_rq:
    case MVE_VSTRW32_rq_u:
    case MVE_VSTRWU32:
    case MVE_VSTRWU32_post:
    case MVE_VSTRWU32_pre:
    case MVE_VSUB_qr_f32:
    case MVE_VSUB_qr_i32:
    case MVE_VSUBf32:
    case MVE_VSUBi32:
      return 2;
    case MVE_VCTP64:
    case MVE_VLDRDU64_qi:
    case MVE_VLDRDU64_qi_pre:
    case MVE_VLDRDU64_rq:
    case MVE_VLDRDU64_rq_u:
    case MVE_VMULLBs32:
    case MVE_VMULLBu32:
    case MVE_VMULLTs32:
    case MVE_VMULLTu32:
    case MVE_VMOVimmi64:
    case MVE_VREV64_16:
    case MVE_VREV64_32:
    case MVE_VREV64_8:
    case MVE_VSTRD64_qi:
    case MVE_VSTRD64_qi_pre:
    case MVE_VSTRD64_rq:
    case MVE_VSTRD64_rq_u:
      return 3;
    }
  };
  LLVMInitializeARMTargetInfo();
  LLVMInitializeARMTarget();
  LLVMInitializeARMTargetMC();

  auto TT(Triple::normalize("thumbv8.1m.main-none-none-eabi"));
  std::string Error;
  const Target *T = TargetRegistry::lookupTarget(TT, Error);
  if (!T) {
    dbgs() << Error;
    GTEST_SKIP();
  }

  TargetOptions Options;
  auto TM = std::unique_ptr<LLVMTargetMachine>(static_cast<LLVMTargetMachine *>(
      T->createTargetMachine(TT, "generic", "", Options, std::nullopt,
                             std::nullopt, CodeGenOptLevel::Default)));
  ARMSubtarget ST(TM->getTargetTriple(), std::string(TM->getTargetCPU()),
                  std::string(TM->getTargetFeatureString()),
                  *static_cast<const ARMBaseTargetMachine *>(TM.get()), false);

  auto MII = TM->getMCInstrInfo();
  for (unsigned i = 0; i < ARM::INSTRUCTION_LIST_END; ++i) {
    uint64_t Flags = MII->get(i).TSFlags;
    if ((Flags & ARMII::DomainMask) != ARMII::DomainMVE)
      continue;
    int Size = (Flags & ARMII::VecSize) >> ARMII::VecSizeShift;
    ASSERT_EQ(MVEVecSize(i), Size)
              << MII->getName(i)
              << ": mismatched expectation for MVE vec size\n";
  }
}
