Revert "Introduce a number of MSA instructions for MIPS64"

This reverts commit dcabc8b740bf3066d59348ffdf21c164d2b27cb4.


Reason:
FAILING TESTS
valgrind-test-art-host-gtest-assembler_mips64_test32
ninja: build stopped: subcommand failed.
19:36:36 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

Change-Id: If658375528d2a0f34bb6b22b6565fab1d863b3f5
diff --git a/compiler/utils/assembler_test.h b/compiler/utils/assembler_test.h
index d265a44..5c48759 100644
--- a/compiler/utils/assembler_test.h
+++ b/compiler/utils/assembler_test.h
@@ -42,10 +42,7 @@
   kUseQuaternaryName,
 };
 
-// For use in the template as the default type to get a nonvector registers version.
-struct NoVectorRegs {};
-
-template<typename Ass, typename Reg, typename FPReg, typename Imm, typename VecReg = NoVectorRegs>
+template<typename Ass, typename Reg, typename FPReg, typename Imm>
 class AssemblerTest : public testing::Test {
  public:
   Ass* GetAssembler() {
@@ -149,8 +146,7 @@
                                               std::string (AssemblerTest::*GetName1)(const Reg1&),
                                               std::string (AssemblerTest::*GetName2)(const Reg2&),
                                               const std::string& fmt,
-                                              int bias = 0,
-                                              int multiplier = 1) {
+                                              int bias = 0) {
     std::string str;
     std::vector<int64_t> imms = CreateImmediateValuesBits(abs(imm_bits), (imm_bits > 0));
 
@@ -158,7 +154,7 @@
       for (auto reg2 : reg2_registers) {
         for (int64_t imm : imms) {
           ImmType new_imm = CreateImmediate(imm);
-          (assembler_.get()->*f)(*reg1, *reg2, new_imm * multiplier + bias);
+          (assembler_.get()->*f)(*reg1, *reg2, new_imm + bias);
           std::string base = fmt;
 
           std::string reg1_string = (this->*GetName1)(*reg1);
@@ -176,7 +172,7 @@
           size_t imm_index = base.find(IMM_TOKEN);
           if (imm_index != std::string::npos) {
             std::ostringstream sreg;
-            sreg << imm * multiplier + bias;
+            sreg << imm + bias;
             std::string imm_string = sreg.str();
             base.replace(imm_index, ConstexprStrLen(IMM_TOKEN), imm_string);
           }
@@ -542,69 +538,6 @@
     return str;
   }
 
-  std::string RepeatVV(void (Ass::*f)(VecReg, VecReg), const std::string& fmt) {
-    return RepeatTemplatedRegisters<VecReg, VecReg>(f,
-                                                    GetVectorRegisters(),
-                                                    GetVectorRegisters(),
-                                                    &AssemblerTest::GetVecRegName,
-                                                    &AssemblerTest::GetVecRegName,
-                                                    fmt);
-  }
-
-  std::string RepeatVVV(void (Ass::*f)(VecReg, VecReg, VecReg), const std::string& fmt) {
-    return RepeatTemplatedRegisters<VecReg, VecReg, VecReg>(f,
-                                                            GetVectorRegisters(),
-                                                            GetVectorRegisters(),
-                                                            GetVectorRegisters(),
-                                                            &AssemblerTest::GetVecRegName,
-                                                            &AssemblerTest::GetVecRegName,
-                                                            &AssemblerTest::GetVecRegName,
-                                                            fmt);
-  }
-
-  std::string RepeatVR(void (Ass::*f)(VecReg, Reg), const std::string& fmt) {
-    return RepeatTemplatedRegisters<VecReg, Reg>(
-        f,
-        GetVectorRegisters(),
-        GetRegisters(),
-        &AssemblerTest::GetVecRegName,
-        &AssemblerTest::GetRegName<RegisterView::kUsePrimaryName>,
-        fmt);
-  }
-
-  template <typename ImmType>
-  std::string RepeatVRIb(void (Ass::*f)(VecReg, Reg, ImmType),
-                         int imm_bits,
-                         const std::string& fmt,
-                         int bias = 0,
-                         int multiplier = 1) {
-    return RepeatTemplatedRegistersImmBits<VecReg, Reg, ImmType>(
-        f,
-        imm_bits,
-        GetVectorRegisters(),
-        GetRegisters(),
-        &AssemblerTest::GetVecRegName,
-        &AssemblerTest::GetRegName<RegisterView::kUsePrimaryName>,
-        fmt,
-        bias,
-        multiplier);
-  }
-
-  template <typename ImmType>
-  std::string RepeatVVIb(void (Ass::*f)(VecReg, VecReg, ImmType),
-                         int imm_bits,
-                         const std::string& fmt,
-                         int bias = 0) {
-    return RepeatTemplatedRegistersImmBits<VecReg, VecReg, ImmType>(f,
-                                                                    imm_bits,
-                                                                    GetVectorRegisters(),
-                                                                    GetVectorRegisters(),
-                                                                    &AssemblerTest::GetVecRegName,
-                                                                    &AssemblerTest::GetVecRegName,
-                                                                    fmt,
-                                                                    bias);
-  }
-
   // This is intended to be run as a test.
   bool CheckTools() {
     return test_helper_->CheckTools();
@@ -619,11 +552,6 @@
     UNREACHABLE();
   }
 
-  virtual std::vector<VecReg*> GetVectorRegisters() {
-    UNIMPLEMENTED(FATAL) << "Architecture does not support vector registers";
-    UNREACHABLE();
-  }
-
   // Secondary register names are the secondary view on registers, e.g., 32b on 64b systems.
   virtual std::string GetSecondaryRegisterName(const Reg& reg ATTRIBUTE_UNUSED) {
     UNIMPLEMENTED(FATAL) << "Architecture does not support secondary registers";
@@ -1043,12 +971,6 @@
     return sreg.str();
   }
 
-  std::string GetVecRegName(const VecReg& reg) {
-    std::ostringstream sreg;
-    sreg << reg;
-    return sreg.str();
-  }
-
   // If the assembly file needs a header, return it in a sub-class.
   virtual const char* GetAssemblyHeader() {
     return nullptr;
diff --git a/compiler/utils/mips64/assembler_mips64.cc b/compiler/utils/mips64/assembler_mips64.cc
index c14315a..39eb589 100644
--- a/compiler/utils/mips64/assembler_mips64.cc
+++ b/compiler/utils/mips64/assembler_mips64.cc
@@ -184,106 +184,6 @@
   Emit(encoding);
 }
 
-void Mips64Assembler::EmitMsa3R(int operation,
-                                int df,
-                                VectorRegister wt,
-                                VectorRegister ws,
-                                VectorRegister wd,
-                                int minor_opcode) {
-  CHECK_NE(wt, kNoVectorRegister);
-  CHECK_NE(ws, kNoVectorRegister);
-  CHECK_NE(wd, kNoVectorRegister);
-  uint32_t encoding = static_cast<uint32_t>(kMsaMajorOpcode) << kOpcodeShift |
-                      operation << kMsaOperationShift |
-                      df << kDfShift |
-                      static_cast<uint32_t>(wt) << kWtShift |
-                      static_cast<uint32_t>(ws) << kWsShift |
-                      static_cast<uint32_t>(wd) << kWdShift |
-                      minor_opcode;
-  Emit(encoding);
-}
-
-void Mips64Assembler::EmitMsaBIT(int operation,
-                                 int df_m,
-                                 VectorRegister ws,
-                                 VectorRegister wd,
-                                 int minor_opcode) {
-  CHECK_NE(ws, kNoVectorRegister);
-  CHECK_NE(wd, kNoVectorRegister);
-  uint32_t encoding = static_cast<uint32_t>(kMsaMajorOpcode) << kOpcodeShift |
-                      operation << kMsaOperationShift |
-                      df_m << kDfMShift |
-                      static_cast<uint32_t>(ws) << kWsShift |
-                      static_cast<uint32_t>(wd) << kWdShift |
-                      minor_opcode;
-  Emit(encoding);
-}
-
-void Mips64Assembler::EmitMsaELM(int operation,
-                                 int df_n,
-                                 VectorRegister ws,
-                                 VectorRegister wd,
-                                 int minor_opcode) {
-  CHECK_NE(ws, kNoVectorRegister);
-  CHECK_NE(wd, kNoVectorRegister);
-  uint32_t encoding = static_cast<uint32_t>(kMsaMajorOpcode) << kOpcodeShift |
-                      operation << kMsaELMOperationShift |
-                      df_n << kDfNShift |
-                      static_cast<uint32_t>(ws) << kWsShift |
-                      static_cast<uint32_t>(wd) << kWdShift |
-                      minor_opcode;
-  Emit(encoding);
-}
-
-void Mips64Assembler::EmitMsaMI10(int s10,
-                                  GpuRegister rs,
-                                  VectorRegister wd,
-                                  int minor_opcode,
-                                  int df) {
-  CHECK_NE(rs, kNoGpuRegister);
-  CHECK_NE(wd, kNoVectorRegister);
-  CHECK(IsUint<10>(s10)) << s10;
-  uint32_t encoding = static_cast<uint32_t>(kMsaMajorOpcode) << kOpcodeShift |
-                      s10 << kS10Shift |
-                      static_cast<uint32_t>(rs) << kWsShift |
-                      static_cast<uint32_t>(wd) << kWdShift |
-                      minor_opcode << kS10MinorShift |
-                      df;
-  Emit(encoding);
-}
-
-void Mips64Assembler::EmitMsa2R(int operation,
-                                int df,
-                                VectorRegister ws,
-                                VectorRegister wd,
-                                int minor_opcode) {
-  CHECK_NE(ws, kNoVectorRegister);
-  CHECK_NE(wd, kNoVectorRegister);
-  uint32_t encoding = static_cast<uint32_t>(kMsaMajorOpcode) << kOpcodeShift |
-                      operation << kMsa2ROperationShift |
-                      df << kDf2RShift |
-                      static_cast<uint32_t>(ws) << kWsShift |
-                      static_cast<uint32_t>(wd) << kWdShift |
-                      minor_opcode;
-  Emit(encoding);
-}
-
-void Mips64Assembler::EmitMsa2RF(int operation,
-                                 int df,
-                                 VectorRegister ws,
-                                 VectorRegister wd,
-                                 int minor_opcode) {
-  CHECK_NE(ws, kNoVectorRegister);
-  CHECK_NE(wd, kNoVectorRegister);
-  uint32_t encoding = static_cast<uint32_t>(kMsaMajorOpcode) << kOpcodeShift |
-                      operation << kMsa2RFOperationShift |
-                      df << kDf2RShift |
-                      static_cast<uint32_t>(ws) << kWsShift |
-                      static_cast<uint32_t>(wd) << kWdShift |
-                      minor_opcode;
-  Emit(encoding);
-}
-
 void Mips64Assembler::Addu(GpuRegister rd, GpuRegister rs, GpuRegister rt) {
   EmitR(0, rs, rt, rd, 0, 0x21);
 }
@@ -1180,378 +1080,6 @@
   Nor(rd, rs, ZERO);
 }
 
-// TODO: Check for MSA presence in Mips64InstructionSetFeatures for each MSA instruction.
-
-void Mips64Assembler::AndV(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x0, wt, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::OrV(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x1, wt, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::NorV(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x2, wt, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::XorV(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x3, wt, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::AddvB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x0, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::AddvH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x1, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::AddvW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x2, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::AddvD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x3, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::SubvB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x0, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::SubvH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x1, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::SubvW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x2, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::SubvD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x3, wt, ws, wd, 0xe);
-}
-
-void Mips64Assembler::MulvB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x0, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::MulvH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x1, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::MulvW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x2, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::MulvD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x3, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_sB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x4, 0x0, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_sH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x4, 0x1, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_sW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x4, 0x2, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_sD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x4, 0x3, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_uB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x5, 0x0, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_uH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x5, 0x1, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_uW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x5, 0x2, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Div_uD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x5, 0x3, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_sB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x6, 0x0, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_sH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x6, 0x1, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_sW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x6, 0x2, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_sD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x6, 0x3, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_uB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x7, 0x0, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_uH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x7, 0x1, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_uW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x7, 0x2, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::Mod_uD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x7, 0x3, wt, ws, wd, 0x12);
-}
-
-void Mips64Assembler::FaddW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x0, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FaddD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x1, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FsubW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x2, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FsubD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x3, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FmulW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x0, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FmulD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x1, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FdivW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x2, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::FdivD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x3, wt, ws, wd, 0x1b);
-}
-
-void Mips64Assembler::Ffint_sW(VectorRegister wd, VectorRegister ws) {
-  EmitMsa2RF(0x19e, 0x0, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::Ffint_sD(VectorRegister wd, VectorRegister ws) {
-  EmitMsa2RF(0x19e, 0x1, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::Ftint_sW(VectorRegister wd, VectorRegister ws) {
-  EmitMsa2RF(0x19c, 0x0, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::Ftint_sD(VectorRegister wd, VectorRegister ws) {
-  EmitMsa2RF(0x19c, 0x1, ws, wd, 0x1e);
-}
-
-void Mips64Assembler::SllB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x0, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SllH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x1, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SllW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x2, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SllD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x0, 0x3, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SraB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x0, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SraH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x1, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SraW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x2, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SraD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x1, 0x3, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SrlB(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x2, 0x0, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SrlH(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x2, 0x1, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SrlW(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x2, 0x2, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SrlD(VectorRegister wd, VectorRegister ws, VectorRegister wt) {
-  EmitMsa3R(0x2, 0x3, wt, ws, wd, 0xd);
-}
-
-void Mips64Assembler::SlliB(VectorRegister wd, VectorRegister ws, int shamt3) {
-  CHECK(IsUint<3>(shamt3)) << shamt3;
-  EmitMsaBIT(0x0, shamt3 | kMsaDfMByteMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SlliH(VectorRegister wd, VectorRegister ws, int shamt4) {
-  CHECK(IsUint<4>(shamt4)) << shamt4;
-  EmitMsaBIT(0x0, shamt4 | kMsaDfMHalfwordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SlliW(VectorRegister wd, VectorRegister ws, int shamt5) {
-  CHECK(IsUint<5>(shamt5)) << shamt5;
-  EmitMsaBIT(0x0, shamt5 | kMsaDfMWordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SlliD(VectorRegister wd, VectorRegister ws, int shamt6) {
-  CHECK(IsUint<6>(shamt6)) << shamt6;
-  EmitMsaBIT(0x0, shamt6 | kMsaDfMDoublewordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SraiB(VectorRegister wd, VectorRegister ws, int shamt3) {
-  CHECK(IsUint<3>(shamt3)) << shamt3;
-  EmitMsaBIT(0x1, shamt3 | kMsaDfMByteMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SraiH(VectorRegister wd, VectorRegister ws, int shamt4) {
-  CHECK(IsUint<4>(shamt4)) << shamt4;
-  EmitMsaBIT(0x1, shamt4 | kMsaDfMHalfwordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SraiW(VectorRegister wd, VectorRegister ws, int shamt5) {
-  CHECK(IsUint<5>(shamt5)) << shamt5;
-  EmitMsaBIT(0x1, shamt5 | kMsaDfMWordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SraiD(VectorRegister wd, VectorRegister ws, int shamt6) {
-  CHECK(IsUint<6>(shamt6)) << shamt6;
-  EmitMsaBIT(0x1, shamt6 | kMsaDfMDoublewordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SrliB(VectorRegister wd, VectorRegister ws, int shamt3) {
-  CHECK(IsUint<3>(shamt3)) << shamt3;
-  EmitMsaBIT(0x2, shamt3 | kMsaDfMByteMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SrliH(VectorRegister wd, VectorRegister ws, int shamt4) {
-  CHECK(IsUint<4>(shamt4)) << shamt4;
-  EmitMsaBIT(0x2, shamt4 | kMsaDfMHalfwordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SrliW(VectorRegister wd, VectorRegister ws, int shamt5) {
-  CHECK(IsUint<5>(shamt5)) << shamt5;
-  EmitMsaBIT(0x2, shamt5 | kMsaDfMWordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::SrliD(VectorRegister wd, VectorRegister ws, int shamt6) {
-  CHECK(IsUint<6>(shamt6)) << shamt6;
-  EmitMsaBIT(0x2, shamt6 | kMsaDfMDoublewordMask, ws, wd, 0x9);
-}
-
-void Mips64Assembler::MoveV(VectorRegister wd, VectorRegister ws) {
-  EmitMsaBIT(0x1, 0x3e, ws, wd, 0x19);
-}
-
-void Mips64Assembler::SplatiB(VectorRegister wd, VectorRegister ws, int n4) {
-  CHECK(IsUint<4>(n4)) << n4;
-  EmitMsaELM(0x1, n4 | kMsaDfNByteMask, ws, wd, 0x19);
-}
-
-void Mips64Assembler::SplatiH(VectorRegister wd, VectorRegister ws, int n3) {
-  CHECK(IsUint<3>(n3)) << n3;
-  EmitMsaELM(0x1, n3 | kMsaDfNHalfwordMask, ws, wd, 0x19);
-}
-
-void Mips64Assembler::SplatiW(VectorRegister wd, VectorRegister ws, int n2) {
-  CHECK(IsUint<2>(n2)) << n2;
-  EmitMsaELM(0x1, n2 | kMsaDfNWordMask, ws, wd, 0x19);
-}
-
-void Mips64Assembler::SplatiD(VectorRegister wd, VectorRegister ws, int n1) {
-  CHECK(IsUint<1>(n1)) << n1;
-  EmitMsaELM(0x1, n1 | kMsaDfNDoublewordMask, ws, wd, 0x19);
-}
-
-void Mips64Assembler::FillB(VectorRegister wd, GpuRegister rs) {
-  EmitMsa2R(0xc0, 0x0, static_cast<VectorRegister>(rs), wd, 0x1e);
-}
-
-void Mips64Assembler::FillH(VectorRegister wd, GpuRegister rs) {
-  EmitMsa2R(0xc0, 0x1, static_cast<VectorRegister>(rs), wd, 0x1e);
-}
-
-void Mips64Assembler::FillW(VectorRegister wd, GpuRegister rs) {
-  EmitMsa2R(0xc0, 0x2, static_cast<VectorRegister>(rs), wd, 0x1e);
-}
-
-void Mips64Assembler::FillD(VectorRegister wd, GpuRegister rs) {
-  EmitMsa2R(0xc0, 0x3, static_cast<VectorRegister>(rs), wd, 0x1e);
-}
-
-void Mips64Assembler::LdB(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<10>(offset)) << offset;
-  EmitMsaMI10(offset & kMsaS10Mask, rs, wd, 0x8, 0x0);
-}
-
-void Mips64Assembler::LdH(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<11>(offset)) << offset;
-  CHECK_ALIGNED(offset, kMips64HalfwordSize);
-  EmitMsaMI10((offset >> TIMES_2) & kMsaS10Mask, rs, wd, 0x8, 0x1);
-}
-
-void Mips64Assembler::LdW(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<12>(offset)) << offset;
-  CHECK_ALIGNED(offset, kMips64WordSize);
-  EmitMsaMI10((offset >> TIMES_4) & kMsaS10Mask, rs, wd, 0x8, 0x2);
-}
-
-void Mips64Assembler::LdD(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<13>(offset)) << offset;
-  CHECK_ALIGNED(offset, kMips64DoublewordSize);
-  EmitMsaMI10((offset >> TIMES_8) & kMsaS10Mask, rs, wd, 0x8, 0x3);
-}
-
-void Mips64Assembler::StB(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<10>(offset)) << offset;
-  EmitMsaMI10(offset & kMsaS10Mask, rs, wd, 0x9, 0x0);
-}
-
-void Mips64Assembler::StH(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<11>(offset)) << offset;
-  CHECK_ALIGNED(offset, kMips64HalfwordSize);
-  EmitMsaMI10((offset >> TIMES_2) & kMsaS10Mask, rs, wd, 0x9, 0x1);
-}
-
-void Mips64Assembler::StW(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<12>(offset)) << offset;
-  CHECK_ALIGNED(offset, kMips64WordSize);
-  EmitMsaMI10((offset >> TIMES_4) & kMsaS10Mask, rs, wd, 0x9, 0x2);
-}
-
-void Mips64Assembler::StD(VectorRegister wd, GpuRegister rs, int offset) {
-  CHECK(IsInt<13>(offset)) << offset;
-  CHECK_ALIGNED(offset, kMips64DoublewordSize);
-  EmitMsaMI10((offset >> TIMES_8) & kMsaS10Mask, rs, wd, 0x9, 0x3);
-}
-
 void Mips64Assembler::LoadConst32(GpuRegister rd, int32_t value) {
   TemplateLoadConst32(this, rd, value);
 }
diff --git a/compiler/utils/mips64/assembler_mips64.h b/compiler/utils/mips64/assembler_mips64.h
index 1839ca3..8bbe862 100644
--- a/compiler/utils/mips64/assembler_mips64.h
+++ b/compiler/utils/mips64/assembler_mips64.h
@@ -266,7 +266,6 @@
   }
 }
 
-static constexpr size_t kMips64HalfwordSize = 2;
 static constexpr size_t kMips64WordSize = 4;
 static constexpr size_t kMips64DoublewordSize = 8;
 
@@ -645,101 +644,6 @@
   void Clear(GpuRegister rd);
   void Not(GpuRegister rd, GpuRegister rs);
 
-  // MSA instructions.
-  void AndV(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void OrV(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void NorV(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void XorV(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-
-  void AddvB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void AddvH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void AddvW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void AddvD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SubvB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SubvH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SubvW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SubvD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void MulvB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void MulvH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void MulvW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void MulvD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_sB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_sH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_sW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_sD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_uB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_uH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_uW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Div_uD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_sB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_sH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_sW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_sD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_uB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_uH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_uW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void Mod_uD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-
-  void FaddW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FaddD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FsubW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FsubD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FmulW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FmulD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FdivW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void FdivD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-
-  void Ffint_sW(VectorRegister wd, VectorRegister ws);
-  void Ffint_sD(VectorRegister wd, VectorRegister ws);
-  void Ftint_sW(VectorRegister wd, VectorRegister ws);
-  void Ftint_sD(VectorRegister wd, VectorRegister ws);
-
-  void SllB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SllH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SllW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SllD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SraB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SraH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SraW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SraD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SrlB(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SrlH(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SrlW(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-  void SrlD(VectorRegister wd, VectorRegister ws, VectorRegister wt);
-
-  // Immediate shift instructions, where shamtN denotes shift amount (must be between 0 and 2^N-1).
-  void SlliB(VectorRegister wd, VectorRegister ws, int shamt3);
-  void SlliH(VectorRegister wd, VectorRegister ws, int shamt4);
-  void SlliW(VectorRegister wd, VectorRegister ws, int shamt5);
-  void SlliD(VectorRegister wd, VectorRegister ws, int shamt6);
-  void SraiB(VectorRegister wd, VectorRegister ws, int shamt3);
-  void SraiH(VectorRegister wd, VectorRegister ws, int shamt4);
-  void SraiW(VectorRegister wd, VectorRegister ws, int shamt5);
-  void SraiD(VectorRegister wd, VectorRegister ws, int shamt6);
-  void SrliB(VectorRegister wd, VectorRegister ws, int shamt3);
-  void SrliH(VectorRegister wd, VectorRegister ws, int shamt4);
-  void SrliW(VectorRegister wd, VectorRegister ws, int shamt5);
-  void SrliD(VectorRegister wd, VectorRegister ws, int shamt6);
-
-  void MoveV(VectorRegister wd, VectorRegister ws);
-  void SplatiB(VectorRegister wd, VectorRegister ws, int n4);
-  void SplatiH(VectorRegister wd, VectorRegister ws, int n3);
-  void SplatiW(VectorRegister wd, VectorRegister ws, int n2);
-  void SplatiD(VectorRegister wd, VectorRegister ws, int n1);
-  void FillB(VectorRegister wd, GpuRegister rs);
-  void FillH(VectorRegister wd, GpuRegister rs);
-  void FillW(VectorRegister wd, GpuRegister rs);
-  void FillD(VectorRegister wd, GpuRegister rs);
-
-  void LdB(VectorRegister wd, GpuRegister rs, int offset);
-  void LdH(VectorRegister wd, GpuRegister rs, int offset);
-  void LdW(VectorRegister wd, GpuRegister rs, int offset);
-  void LdD(VectorRegister wd, GpuRegister rs, int offset);
-  void StB(VectorRegister wd, GpuRegister rs, int offset);
-  void StH(VectorRegister wd, GpuRegister rs, int offset);
-  void StW(VectorRegister wd, GpuRegister rs, int offset);
-  void StD(VectorRegister wd, GpuRegister rs, int offset);
-
   // Higher level composite instructions.
   int InstrCountForLoadReplicatedConst32(int64_t);
   void LoadConst32(GpuRegister rd, int32_t value);
@@ -1396,17 +1300,6 @@
   void EmitFR(int opcode, int fmt, FpuRegister ft, FpuRegister fs, FpuRegister fd, int funct);
   void EmitFI(int opcode, int fmt, FpuRegister rt, uint16_t imm);
   void EmitBcondc(BranchCondition cond, GpuRegister rs, GpuRegister rt, uint32_t imm16_21);
-  void EmitMsa3R(int operation,
-                 int df,
-                 VectorRegister wt,
-                 VectorRegister ws,
-                 VectorRegister wd,
-                 int minor_opcode);
-  void EmitMsaBIT(int operation, int df_m, VectorRegister ws, VectorRegister wd, int minor_opcode);
-  void EmitMsaELM(int operation, int df_n, VectorRegister ws, VectorRegister wd, int minor_opcode);
-  void EmitMsaMI10(int s10, GpuRegister rs, VectorRegister wd, int minor_opcode, int df);
-  void EmitMsa2R(int operation, int df, VectorRegister ws, VectorRegister wd, int minor_opcode);
-  void EmitMsa2RF(int operation, int df, VectorRegister ws, VectorRegister wd, int minor_opcode);
 
   void Buncond(Mips64Label* label);
   void Bcond(Mips64Label* label,
diff --git a/compiler/utils/mips64/assembler_mips64_test.cc b/compiler/utils/mips64/assembler_mips64_test.cc
index 7979127..96a02c4 100644
--- a/compiler/utils/mips64/assembler_mips64_test.cc
+++ b/compiler/utils/mips64/assembler_mips64_test.cc
@@ -37,14 +37,12 @@
 class AssemblerMIPS64Test : public AssemblerTest<mips64::Mips64Assembler,
                                                  mips64::GpuRegister,
                                                  mips64::FpuRegister,
-                                                 uint32_t,
-                                                 mips64::VectorRegister> {
+                                                 uint32_t> {
  public:
   typedef AssemblerTest<mips64::Mips64Assembler,
                         mips64::GpuRegister,
                         mips64::FpuRegister,
-                        uint32_t,
-                        mips64::VectorRegister> Base;
+                        uint32_t> Base;
 
  protected:
   // Get the typically used name for this architecture, e.g., aarch64, x86-64, ...
@@ -62,7 +60,7 @@
     // (and MIPS32R6) with the GNU assembler don't have correct final offsets in PC-relative
     // branches in the .text section and so they require a relocation pass (there's a relocation
     // section, .rela.text, that has the needed info to fix up the branches).
-    return " -march=mips64r6 -mmsa -Wa,--no-warn -Wl,-Ttext=0 -Wl,-e0 -nostdlib";
+    return " -march=mips64r6 -Wa,--no-warn -Wl,-Ttext=0 -Wl,-e0 -nostdlib";
   }
 
   void Pad(std::vector<uint8_t>& data) OVERRIDE {
@@ -178,39 +176,6 @@
       fp_registers_.push_back(new mips64::FpuRegister(mips64::F29));
       fp_registers_.push_back(new mips64::FpuRegister(mips64::F30));
       fp_registers_.push_back(new mips64::FpuRegister(mips64::F31));
-
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W0));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W1));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W2));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W3));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W4));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W5));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W6));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W7));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W8));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W9));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W10));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W11));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W12));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W13));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W14));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W15));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W16));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W17));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W18));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W19));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W20));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W21));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W22));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W23));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W24));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W25));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W26));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W27));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W28));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W29));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W30));
-      vec_registers_.push_back(new mips64::VectorRegister(mips64::W31));
     }
   }
 
@@ -228,10 +193,6 @@
     return fp_registers_;
   }
 
-  std::vector<mips64::VectorRegister*> GetVectorRegisters() OVERRIDE {
-    return vec_registers_;
-  }
-
   uint32_t CreateImmediate(int64_t imm_value) OVERRIDE {
     return imm_value;
   }
@@ -311,7 +272,6 @@
   std::map<mips64::GpuRegister, std::string, MIPS64CpuRegisterCompare> secondary_register_names_;
 
   std::vector<mips64::FpuRegister*> fp_registers_;
-  std::vector<mips64::VectorRegister*> vec_registers_;
 };
 
 
@@ -2414,370 +2374,6 @@
   EXPECT_EQ(tester.GetPathsCovered(), art::mips64::kLoadConst64PathAllPaths);
 }
 
-// MSA instructions.
-
-TEST_F(AssemblerMIPS64Test, AndV) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::AndV, "and.v ${reg1}, ${reg2}, ${reg3}"), "and.v");
-}
-
-TEST_F(AssemblerMIPS64Test, OrV) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::OrV, "or.v ${reg1}, ${reg2}, ${reg3}"), "or.v");
-}
-
-TEST_F(AssemblerMIPS64Test, NorV) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::NorV, "nor.v ${reg1}, ${reg2}, ${reg3}"), "nor.v");
-}
-
-TEST_F(AssemblerMIPS64Test, XorV) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::XorV, "xor.v ${reg1}, ${reg2}, ${reg3}"), "xor.v");
-}
-
-TEST_F(AssemblerMIPS64Test, AddvB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::AddvB, "addv.b ${reg1}, ${reg2}, ${reg3}"),
-            "addv.b");
-}
-
-TEST_F(AssemblerMIPS64Test, AddvH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::AddvH, "addv.h ${reg1}, ${reg2}, ${reg3}"),
-            "addv.h");
-}
-
-TEST_F(AssemblerMIPS64Test, AddvW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::AddvW, "addv.w ${reg1}, ${reg2}, ${reg3}"),
-            "addv.w");
-}
-
-TEST_F(AssemblerMIPS64Test, AddvD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::AddvD, "addv.d ${reg1}, ${reg2}, ${reg3}"),
-            "addv.d");
-}
-
-TEST_F(AssemblerMIPS64Test, SubvB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SubvB, "subv.b ${reg1}, ${reg2}, ${reg3}"),
-            "subv.b");
-}
-
-TEST_F(AssemblerMIPS64Test, SubvH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SubvH, "subv.h ${reg1}, ${reg2}, ${reg3}"),
-            "subv.h");
-}
-
-TEST_F(AssemblerMIPS64Test, SubvW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SubvW, "subv.w ${reg1}, ${reg2}, ${reg3}"),
-            "subv.w");
-}
-
-TEST_F(AssemblerMIPS64Test, SubvD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SubvD, "subv.d ${reg1}, ${reg2}, ${reg3}"),
-            "subv.d");
-}
-
-TEST_F(AssemblerMIPS64Test, MulvB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::MulvB, "mulv.b ${reg1}, ${reg2}, ${reg3}"),
-            "mulv.b");
-}
-
-TEST_F(AssemblerMIPS64Test, MulvH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::MulvH, "mulv.h ${reg1}, ${reg2}, ${reg3}"),
-            "mulv.h");
-}
-
-TEST_F(AssemblerMIPS64Test, MulvW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::MulvW, "mulv.w ${reg1}, ${reg2}, ${reg3}"),
-            "mulv.w");
-}
-
-TEST_F(AssemblerMIPS64Test, MulvD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::MulvD, "mulv.d ${reg1}, ${reg2}, ${reg3}"),
-            "mulv.d");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_sB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_sB, "div_s.b ${reg1}, ${reg2}, ${reg3}"),
-            "div_s.b");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_sH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_sH, "div_s.h ${reg1}, ${reg2}, ${reg3}"),
-            "div_s.h");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_sW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_sW, "div_s.w ${reg1}, ${reg2}, ${reg3}"),
-            "div_s.w");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_sD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_sD, "div_s.d ${reg1}, ${reg2}, ${reg3}"),
-            "div_s.d");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_uB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_uB, "div_u.b ${reg1}, ${reg2}, ${reg3}"),
-            "div_u.b");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_uH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_uH, "div_u.h ${reg1}, ${reg2}, ${reg3}"),
-            "div_u.h");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_uW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_uW, "div_u.w ${reg1}, ${reg2}, ${reg3}"),
-            "div_u.w");
-}
-
-TEST_F(AssemblerMIPS64Test, Div_uD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Div_uD, "div_u.d ${reg1}, ${reg2}, ${reg3}"),
-            "div_u.d");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_sB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_sB, "mod_s.b ${reg1}, ${reg2}, ${reg3}"),
-            "mod_s.b");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_sH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_sH, "mod_s.h ${reg1}, ${reg2}, ${reg3}"),
-            "mod_s.h");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_sW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_sW, "mod_s.w ${reg1}, ${reg2}, ${reg3}"),
-            "mod_s.w");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_sD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_sD, "mod_s.d ${reg1}, ${reg2}, ${reg3}"),
-            "mod_s.d");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_uB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_uB, "mod_u.b ${reg1}, ${reg2}, ${reg3}"),
-            "mod_u.b");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_uH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_uH, "mod_u.h ${reg1}, ${reg2}, ${reg3}"),
-            "mod_u.h");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_uW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_uW, "mod_u.w ${reg1}, ${reg2}, ${reg3}"),
-            "mod_u.w");
-}
-
-TEST_F(AssemblerMIPS64Test, Mod_uD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::Mod_uD, "mod_u.d ${reg1}, ${reg2}, ${reg3}"),
-            "mod_u.d");
-}
-
-TEST_F(AssemblerMIPS64Test, FaddW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FaddW, "fadd.w ${reg1}, ${reg2}, ${reg3}"),
-            "fadd.w");
-}
-
-TEST_F(AssemblerMIPS64Test, FaddD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FaddD, "fadd.d ${reg1}, ${reg2}, ${reg3}"),
-            "fadd.d");
-}
-
-TEST_F(AssemblerMIPS64Test, FsubW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FsubW, "fsub.w ${reg1}, ${reg2}, ${reg3}"),
-            "fsub.w");
-}
-
-TEST_F(AssemblerMIPS64Test, FsubD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FsubD, "fsub.d ${reg1}, ${reg2}, ${reg3}"),
-            "fsub.d");
-}
-
-TEST_F(AssemblerMIPS64Test, FmulW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FmulW, "fmul.w ${reg1}, ${reg2}, ${reg3}"),
-            "fmul.w");
-}
-
-TEST_F(AssemblerMIPS64Test, FmulD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FmulD, "fmul.d ${reg1}, ${reg2}, ${reg3}"),
-            "fmul.d");
-}
-
-TEST_F(AssemblerMIPS64Test, FdivW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FdivW, "fdiv.w ${reg1}, ${reg2}, ${reg3}"),
-            "fdiv.w");
-}
-
-TEST_F(AssemblerMIPS64Test, FdivD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::FdivD, "fdiv.d ${reg1}, ${reg2}, ${reg3}"),
-            "fdiv.d");
-}
-
-TEST_F(AssemblerMIPS64Test, Ffint_sW) {
-  DriverStr(RepeatVV(&mips64::Mips64Assembler::Ffint_sW, "ffint_s.w ${reg1}, ${reg2}"),
-            "ffint_s.w");
-}
-
-TEST_F(AssemblerMIPS64Test, Ffint_sD) {
-  DriverStr(RepeatVV(&mips64::Mips64Assembler::Ffint_sD, "ffint_s.d ${reg1}, ${reg2}"),
-            "ffint_s.d");
-}
-
-TEST_F(AssemblerMIPS64Test, Ftint_sW) {
-  DriverStr(RepeatVV(&mips64::Mips64Assembler::Ftint_sW, "ftint_s.w ${reg1}, ${reg2}"),
-            "ftint_s.w");
-}
-
-TEST_F(AssemblerMIPS64Test, Ftint_sD) {
-  DriverStr(RepeatVV(&mips64::Mips64Assembler::Ftint_sD, "ftint_s.d ${reg1}, ${reg2}"),
-            "ftint_s.d");
-}
-
-TEST_F(AssemblerMIPS64Test, SllB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SllB, "sll.b ${reg1}, ${reg2}, ${reg3}"), "sll.b");
-}
-
-TEST_F(AssemblerMIPS64Test, SllH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SllH, "sll.h ${reg1}, ${reg2}, ${reg3}"), "sll.h");
-}
-
-TEST_F(AssemblerMIPS64Test, SllW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SllW, "sll.w ${reg1}, ${reg2}, ${reg3}"), "sll.w");
-}
-
-TEST_F(AssemblerMIPS64Test, SllD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SllD, "sll.d ${reg1}, ${reg2}, ${reg3}"), "sll.d");
-}
-
-TEST_F(AssemblerMIPS64Test, SraB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SraB, "sra.b ${reg1}, ${reg2}, ${reg3}"), "sra.b");
-}
-
-TEST_F(AssemblerMIPS64Test, SraH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SraH, "sra.h ${reg1}, ${reg2}, ${reg3}"), "sra.h");
-}
-
-TEST_F(AssemblerMIPS64Test, SraW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SraW, "sra.w ${reg1}, ${reg2}, ${reg3}"), "sra.w");
-}
-
-TEST_F(AssemblerMIPS64Test, SraD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SraD, "sra.d ${reg1}, ${reg2}, ${reg3}"), "sra.d");
-}
-
-TEST_F(AssemblerMIPS64Test, SrlB) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SrlB, "srl.b ${reg1}, ${reg2}, ${reg3}"), "srl.b");
-}
-
-TEST_F(AssemblerMIPS64Test, SrlH) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SrlH, "srl.h ${reg1}, ${reg2}, ${reg3}"), "srl.h");
-}
-
-TEST_F(AssemblerMIPS64Test, SrlW) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SrlW, "srl.w ${reg1}, ${reg2}, ${reg3}"), "srl.w");
-}
-
-TEST_F(AssemblerMIPS64Test, SrlD) {
-  DriverStr(RepeatVVV(&mips64::Mips64Assembler::SrlD, "srl.d ${reg1}, ${reg2}, ${reg3}"), "srl.d");
-}
-
-TEST_F(AssemblerMIPS64Test, SlliB) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SlliB, 3, "slli.b ${reg1}, ${reg2}, {imm}"),
-            "slli.b");
-}
-
-TEST_F(AssemblerMIPS64Test, SlliH) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SlliH, 4, "slli.h ${reg1}, ${reg2}, {imm}"),
-            "slli.h");
-}
-
-TEST_F(AssemblerMIPS64Test, SlliW) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SlliW, 5, "slli.w ${reg1}, ${reg2}, {imm}"),
-            "slli.w");
-}
-
-TEST_F(AssemblerMIPS64Test, SlliD) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SlliD, 6, "slli.d ${reg1}, ${reg2}, {imm}"),
-            "slli.d");
-}
-
-TEST_F(AssemblerMIPS64Test, MoveV) {
-  DriverStr(RepeatVV(&mips64::Mips64Assembler::MoveV, "move.v ${reg1}, ${reg2}"), "move.v");
-}
-
-TEST_F(AssemblerMIPS64Test, SplatiB) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SplatiB, 4, "splati.b ${reg1}, ${reg2}[{imm}]"),
-            "splati.b");
-}
-
-TEST_F(AssemblerMIPS64Test, SplatiH) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SplatiH, 3, "splati.h ${reg1}, ${reg2}[{imm}]"),
-            "splati.h");
-}
-
-TEST_F(AssemblerMIPS64Test, SplatiW) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SplatiW, 2, "splati.w ${reg1}, ${reg2}[{imm}]"),
-            "splati.w");
-}
-
-TEST_F(AssemblerMIPS64Test, SplatiD) {
-  DriverStr(RepeatVVIb(&mips64::Mips64Assembler::SplatiD, 1, "splati.d ${reg1}, ${reg2}[{imm}]"),
-            "splati.d");
-}
-
-TEST_F(AssemblerMIPS64Test, FillB) {
-  DriverStr(RepeatVR(&mips64::Mips64Assembler::FillB, "fill.b ${reg1}, ${reg2}"), "fill.b");
-}
-
-TEST_F(AssemblerMIPS64Test, FillH) {
-  DriverStr(RepeatVR(&mips64::Mips64Assembler::FillH, "fill.h ${reg1}, ${reg2}"), "fill.h");
-}
-
-TEST_F(AssemblerMIPS64Test, FillW) {
-  DriverStr(RepeatVR(&mips64::Mips64Assembler::FillW, "fill.w ${reg1}, ${reg2}"), "fill.w");
-}
-
-TEST_F(AssemblerMIPS64Test, FillD) {
-  DriverStr(RepeatVR(&mips64::Mips64Assembler::FillD, "fill.d ${reg1}, ${reg2}"), "fill.d");
-}
-
-TEST_F(AssemblerMIPS64Test, LdB) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::LdB, -10, "ld.b ${reg1}, {imm}(${reg2})"), "ld.b");
-}
-
-TEST_F(AssemblerMIPS64Test, LdH) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::LdH, -10, "ld.h ${reg1}, {imm}(${reg2})", 0, 2),
-            "ld.h");
-}
-
-TEST_F(AssemblerMIPS64Test, LdW) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::LdW, -10, "ld.w ${reg1}, {imm}(${reg2})", 0, 4),
-            "ld.w");
-}
-
-TEST_F(AssemblerMIPS64Test, LdD) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::LdD, -10, "ld.d ${reg1}, {imm}(${reg2})", 0, 8),
-            "ld.d");
-}
-
-TEST_F(AssemblerMIPS64Test, StB) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::StB, -10, "st.b ${reg1}, {imm}(${reg2})"), "st.b");
-}
-
-TEST_F(AssemblerMIPS64Test, StH) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::StH, -10, "st.h ${reg1}, {imm}(${reg2})", 0, 2),
-            "st.h");
-}
-
-TEST_F(AssemblerMIPS64Test, StW) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::StW, -10, "st.w ${reg1}, {imm}(${reg2})", 0, 4),
-            "st.w");
-}
-
-TEST_F(AssemblerMIPS64Test, StD) {
-  DriverStr(RepeatVRIb(&mips64::Mips64Assembler::StD, -10, "st.d ${reg1}, {imm}(${reg2})", 0, 8),
-            "st.d");
-}
-
 #undef __
 
 }  // namespace art
diff --git a/compiler/utils/mips64/constants_mips64.h b/compiler/utils/mips64/constants_mips64.h
index 5ae9c73..f57498d 100644
--- a/compiler/utils/mips64/constants_mips64.h
+++ b/compiler/utils/mips64/constants_mips64.h
@@ -51,35 +51,8 @@
   kFdShift = 6,
   kFdBits = 5,
 
-  kMsaOperationShift = 23,
-  kMsaELMOperationShift = 22,
-  kMsa2ROperationShift = 18,
-  kMsa2RFOperationShift = 17,
-  kDfShift = 21,
-  kDfMShift = 16,
-  kDf2RShift = 16,
-  kDfNShift = 16,
-  kWtShift = 16,
-  kWtBits = 5,
-  kWsShift = 11,
-  kWsBits = 5,
-  kWdShift = 6,
-  kWdBits = 5,
-  kS10Shift = 16,
-  kS10MinorShift = 2,
-
   kBranchOffsetMask = 0x0000ffff,
   kJumpOffsetMask = 0x03ffffff,
-  kMsaMajorOpcode = 0x1e,
-  kMsaDfMByteMask = 0x70,
-  kMsaDfMHalfwordMask = 0x60,
-  kMsaDfMWordMask = 0x40,
-  kMsaDfMDoublewordMask = 0x00,
-  kMsaDfNByteMask = 0x00,
-  kMsaDfNHalfwordMask = 0x20,
-  kMsaDfNWordMask = 0x30,
-  kMsaDfNDoublewordMask = 0x38,
-  kMsaS10Mask = 0x3ff,
 };
 
 enum ScaleFactor {
diff --git a/disassembler/disassembler_mips.cc b/disassembler/disassembler_mips.cc
index fc6c18b..1f6b874 100644
--- a/disassembler/disassembler_mips.cc
+++ b/disassembler/disassembler_mips.cc
@@ -43,7 +43,6 @@
 static const uint32_t kOpcodeShift = 26;
 
 static const uint32_t kCop1 = (17 << kOpcodeShift);
-static const uint32_t kMsa = (30 << kOpcodeShift);  // MSA major opcode.
 
 static const uint32_t kITypeMask = (0x3f << kOpcodeShift);
 static const uint32_t kJTypeMask = (0x3f << kOpcodeShift);
@@ -52,8 +51,6 @@
 static const uint32_t kSpecial2Mask = (0x3f << kOpcodeShift);
 static const uint32_t kSpecial3Mask = (0x3f << kOpcodeShift);
 static const uint32_t kFpMask = kRTypeMask;
-static const uint32_t kMsaMask = kRTypeMask;
-static const uint32_t kMsaSpecialMask = (0x3f << kOpcodeShift);
 
 static const MipsInstruction gMipsInstructions[] = {
   // "sll r0, r0, 0" is the canonical "nop", used in delay slots.
@@ -420,36 +417,6 @@
   { kFpMask, kCop1 | 0x10, "sel", "fadt" },
   { kFpMask, kCop1 | 0x1e, "max", "fadt" },
   { kFpMask, kCop1 | 0x1c, "min", "fadt" },
-
-  // MSA instructions.
-  { kMsaMask | (0x1f << 21), kMsa | (0x0 << 21) | 0x1e, "and.v", "kmn" },
-  { kMsaMask | (0x1f << 21), kMsa | (0x1 << 21) | 0x1e, "or.v", "kmn" },
-  { kMsaMask | (0x1f << 21), kMsa | (0x2 << 21) | 0x1e, "nor.v", "kmn" },
-  { kMsaMask | (0x1f << 21), kMsa | (0x3 << 21) | 0x1e, "xor.v", "kmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x0 << 23) | 0xe, "addv", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x1 << 23) | 0xe, "subv", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x0 << 23) | 0x12, "mulv", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x4 << 23) | 0x12, "div_s", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x5 << 23) | 0x12, "div_u", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x6 << 23) | 0x12, "mod_s", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x7 << 23) | 0x12, "mod_u", "Vkmn" },
-  { kMsaMask | (0xf << 22), kMsa | (0x0 << 22) | 0x1b, "fadd", "Ukmn" },
-  { kMsaMask | (0xf << 22), kMsa | (0x1 << 22) | 0x1b, "fsub", "Ukmn" },
-  { kMsaMask | (0xf << 22), kMsa | (0x2 << 22) | 0x1b, "fmul", "Ukmn" },
-  { kMsaMask | (0xf << 22), kMsa | (0x3 << 22) | 0x1b, "fdiv", "Ukmn" },
-  { kMsaMask | (0x1ff << 17), kMsa | (0x19e << 17) | 0x1e, "ffint_s", "ukm" },
-  { kMsaMask | (0x1ff << 17), kMsa | (0x19c << 17) | 0x1e, "ftint_s", "ukm" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x0 << 23) | 0xd, "sll", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x1 << 23) | 0xd, "sra", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x2 << 23) | 0xd, "srl", "Vkmn" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x0 << 23) | 0x9, "slli", "kmW" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x1 << 23) | 0x9, "srai", "kmW" },
-  { kMsaMask | (0x7 << 23), kMsa | (0x2 << 23) | 0x9, "srli", "kmW" },
-  { kMsaMask | (0x3ff << 16), kMsa | (0xbe << 16) | 0x19, "move.v", "km" },
-  { kMsaMask | (0xf << 22), kMsa | (0x1 << 22) | 0x19, "splati", "kX" },
-  { kMsaMask | (0xff << 18), kMsa | (0xc0 << 18) | 0x1e, "fill", "vkD" },
-  { kMsaSpecialMask | (0xf << 2), kMsa | (0x8 << 2), "ld", "kw" },
-  { kMsaSpecialMask | (0xf << 2), kMsa | (0x9 << 2), "st", "kw" },
 };
 
 static uint32_t ReadU32(const uint8_t* ptr) {
@@ -592,111 +559,6 @@
           case 't': args << 'f' << rt; break;
           case 'Z': args << (rd + 1); break;  // sz ([d]ext size).
           case 'z': args << (rd - sa + 1); break;  // sz ([d]ins, dinsu size).
-          case 'k': args << 'w' << sa; break;
-          case 'm': args << 'w' << rd; break;
-          case 'n': args << 'w' << rt; break;
-          case 'U':  // MSA 1-bit df (word/doubleword), position 21.
-            {
-              int32_t df = (instruction >> 21) & 0x1;
-              switch (df) {
-                case 0: opcode += ".w"; break;
-                case 1: opcode += ".d"; break;
-              }
-              continue;  // No ", ".
-            }
-          case 'u':  // MSA 1-bit df (word/doubleword), position 16.
-            {
-              int32_t df = (instruction >> 16) & 0x1;
-              switch (df) {
-                case 0: opcode += ".w"; break;
-                case 1: opcode += ".d"; break;
-              }
-              continue;  // No ", ".
-            }
-          case 'V':  // MSA 2-bit df, position 21.
-            {
-              int32_t df = (instruction >> 21) & 0x3;
-              switch (df) {
-                case 0: opcode += ".b"; break;
-                case 1: opcode += ".h"; break;
-                case 2: opcode += ".w"; break;
-                case 3: opcode += ".d"; break;
-              }
-              continue;  // No ", ".
-            }
-          case 'v':  // MSA 2-bit df, position 16.
-            {
-              int32_t df = (instruction >> 16) & 0x3;
-              switch (df) {
-                case 0: opcode += ".b"; break;
-                case 1: opcode += ".h"; break;
-                case 2: opcode += ".w"; break;
-                case 3: opcode += ".d"; break;
-              }
-              continue;  // No ", ".
-            }
-          case 'W':  // MSA df/m.
-            {
-              int32_t df_m = (instruction >> 16) & 0x7f;
-              if ((df_m & (0x1 << 6)) == 0) {
-                opcode += ".d";
-                args << (df_m & 0x3f);
-                break;
-              }
-              if ((df_m & (0x1 << 5)) == 0) {
-                opcode += ".w";
-                args << (df_m & 0x1f);
-                break;
-              }
-              if ((df_m & (0x1 << 4)) == 0) {
-                opcode += ".h";
-                args << (df_m & 0xf);
-                break;
-              }
-              if ((df_m & (0x1 << 3)) == 0) {
-                opcode += ".b";
-                args << (df_m & 0x7);
-              }
-              break;
-            }
-          case 'w':  // MSA +x(rs).
-            {
-              int32_t df = instruction & 0x3;
-              int32_t s10 = (instruction >> 16) & 0x3ff;
-              s10 -= (s10 & 0x200) << 1;  // Sign-extend s10.
-              switch (df) {
-                case 0: opcode += ".b"; break;
-                case 1: opcode += ".h"; break;
-                case 2: opcode += ".w"; break;
-                case 3: opcode += ".d"; break;
-              }
-              args << StringPrintf("%+d(r%d)", s10 << df, rd);
-              break;
-            }
-          case 'X':  // MSA df/n - ws[x].
-            {
-              int32_t df_n = (instruction >> 16) & 0x3f;
-              if ((df_n & (0x3 << 4)) == 0) {
-                opcode += ".b";
-                args << 'w' << rd << '[' << (df_n & 0xf) << ']';
-                break;
-              }
-              if ((df_n & (0x3 << 3)) == 0) {
-                opcode += ".h";
-                args << 'w' << rd << '[' << (df_n & 0x7) << ']';
-                break;
-              }
-              if ((df_n & (0x3 << 2)) == 0) {
-                opcode += ".w";
-                args << 'w' << rd << '[' << (df_n & 0x3) << ']';
-                break;
-              }
-              if ((df_n & (0x3 << 1)) == 0) {
-                opcode += ".d";
-                args << 'w' << rd << '[' << (df_n & 0x1) << ']';
-              }
-              break;
-            }
         }
         if (*(args_fmt + 1)) {
           args << ", ";
diff --git a/runtime/arch/mips64/registers_mips64.cc b/runtime/arch/mips64/registers_mips64.cc
index 1ee2cdd..4959208 100644
--- a/runtime/arch/mips64/registers_mips64.cc
+++ b/runtime/arch/mips64/registers_mips64.cc
@@ -46,14 +46,5 @@
   return os;
 }
 
-std::ostream& operator<<(std::ostream& os, const VectorRegister& rhs) {
-  if (rhs >= W0 && rhs < kNumberOfVectorRegisters) {
-    os << "w" << static_cast<int>(rhs);
-  } else {
-    os << "VectorRegister[" << static_cast<int>(rhs) << "]";
-  }
-  return os;
-}
-
 }  // namespace mips64
 }  // namespace art
diff --git a/runtime/arch/mips64/registers_mips64.h b/runtime/arch/mips64/registers_mips64.h
index 30de2cc..81fae72 100644
--- a/runtime/arch/mips64/registers_mips64.h
+++ b/runtime/arch/mips64/registers_mips64.h
@@ -107,45 +107,6 @@
 };
 std::ostream& operator<<(std::ostream& os, const FpuRegister& rhs);
 
-// Values for vector registers.
-enum VectorRegister {
-  W0  =  0,
-  W1  =  1,
-  W2  =  2,
-  W3  =  3,
-  W4  =  4,
-  W5  =  5,
-  W6  =  6,
-  W7  =  7,
-  W8  =  8,
-  W9  =  9,
-  W10 = 10,
-  W11 = 11,
-  W12 = 12,
-  W13 = 13,
-  W14 = 14,
-  W15 = 15,
-  W16 = 16,
-  W17 = 17,
-  W18 = 18,
-  W19 = 19,
-  W20 = 20,
-  W21 = 21,
-  W22 = 22,
-  W23 = 23,
-  W24 = 24,
-  W25 = 25,
-  W26 = 26,
-  W27 = 27,
-  W28 = 28,
-  W29 = 29,
-  W30 = 30,
-  W31 = 31,
-  kNumberOfVectorRegisters = 32,
-  kNoVectorRegister = -1,
-};
-std::ostream& operator<<(std::ostream& os, const VectorRegister& rhs);
-
 }  // namespace mips64
 }  // namespace art