https://github.com/ukalappa-mips updated 
https://github.com/llvm/llvm-project/pull/155747

>From 7dca481baec6862b8abed7a912f5666bb6caef17 Mon Sep 17 00:00:00 2001
From: Umesh Kalappa <ukalappa.m...@gmail.com>
Date: Thu, 28 Aug 2025 04:53:00 +0000
Subject: [PATCH 1/7] Added the mips extension instructions like ehb,ihb and
 pause etc. Please refer the
 
https://mips.com/wp-content/uploads/2025/06/P8700_Programmers_Reference_Manual_Rev1.84_5-31-2025.pdf
 for more information .

and files like RISCVInstrInfoXMips.td clang formatted .

No Regression found.
---
 .../RISCV/Disassembler/RISCVDisassembler.cpp  |  15 +-
 llvm/lib/Target/RISCV/RISCVFeatures.td        |  11 +-
 llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td  | 238 ++++++++++++------
 llvm/lib/Target/RISCV/RISCVProcessors.td      |   3 +-
 llvm/test/CodeGen/RISCV/features-info.ll      |   1 +
 llvm/test/MC/RISCV/xmips-invalid.s            |  11 +-
 llvm/test/MC/RISCV/xmips-valid.s              |  24 +-
 .../TargetParser/RISCVISAInfoTest.cpp         |   1 +
 8 files changed, 210 insertions(+), 94 deletions(-)

diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp 
b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index dbb16fce8390a..de1bdb4a8811c 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -656,6 +656,13 @@ static constexpr FeatureBitset XSfSystemGroup = {
     RISCV::FeatureVendorXSiFivecflushdlone,
 };
 
+static constexpr FeatureBitset XMIPSGroup = {
+    RISCV::FeatureVendorXMIPSLSP,
+    RISCV::FeatureVendorXMIPSCMov,
+    RISCV::FeatureVendorXMIPSCBOP,
+    RISCV::FeatureVendorXMIPSEXECTL,
+};
+
 static constexpr FeatureBitset XTHeadGroup = {
     RISCV::FeatureVendorXTHeadBa,      RISCV::FeatureVendorXTHeadBb,
     RISCV::FeatureVendorXTHeadBs,      RISCV::FeatureVendorXTHeadCondMov,
@@ -684,13 +691,7 @@ static constexpr DecoderListEntry DecoderList32[]{
     {DecoderTableXSfvector32, XSfVectorGroup, "SiFive vector extensions"},
     {DecoderTableXSfsystem32, XSfSystemGroup, "SiFive system extensions"},
     {DecoderTableXSfcease32, {RISCV::FeatureVendorXSfcease}, "SiFive 
sf.cease"},
-    {DecoderTableXmipslsp32, {RISCV::FeatureVendorXMIPSLSP}, "MIPS mips.lsp"},
-    {DecoderTableXmipscmov32,
-     {RISCV::FeatureVendorXMIPSCMov},
-     "MIPS mips.ccmov"},
-    {DecoderTableXmipscbop32,
-     {RISCV::FeatureVendorXMIPSCBOP},
-     "MIPS mips.pref"},
+    {DecoderTableXMIPS32, XMIPSGroup, "Mips extensions"},
     {DecoderTableXAndes32, XAndesGroup, "Andes extensions"},
     {DecoderTableXSMT32, XSMTGroup, "SpacemiT extensions"},
     // Standard Extensions
diff --git a/llvm/lib/Target/RISCV/RISCVFeatures.td 
b/llvm/lib/Target/RISCV/RISCVFeatures.td
index 3b738e4cc11a1..13e3b1b0d45de 100644
--- a/llvm/lib/Target/RISCV/RISCVFeatures.td
+++ b/llvm/lib/Target/RISCV/RISCVFeatures.td
@@ -1396,20 +1396,27 @@ def HasVendorXMIPSCMov
       AssemblerPredicate<(all_of FeatureVendorXMIPSCMov),
                          "'Xmipscmov' ('mips.ccmov' instruction)">;
 def UseCCMovInsn : Predicate<"Subtarget->useCCMovInsn()">;
+
 def FeatureVendorXMIPSLSP
     : RISCVExtension<1, 0, "MIPS optimization for hardware load-store 
bonding">;
 def HasVendorXMIPSLSP
     : Predicate<"Subtarget->hasVendorXMIPSLSP()">,
       AssemblerPredicate<(all_of FeatureVendorXMIPSLSP),
                          "'Xmipslsp' (load and store pair instructions)">;
-def FeatureVendorXMIPSCBOP
-    : RISCVExtension<1, 0, "MIPS Software Prefetch">;
+
+def FeatureVendorXMIPSCBOP : RISCVExtension<1, 0, "MIPS Software Prefetch">;
 def HasVendorXMIPSCBOP
     : Predicate<"Subtarget->hasVendorXMIPSCBOP()">,
       AssemblerPredicate<(all_of FeatureVendorXMIPSCBOP),
                          "'Xmipscbop' (MIPS hardware prefetch)">;
 def NoVendorXMIPSCBOP : Predicate<"!Subtarget->hasVendorXMIPSCBOP()">;
 
+def FeatureVendorXMIPSEXECTL : RISCVExtension<1, 0, "MIPS extensions">;
+def HasVendorXMIPSEXECTL
+    : Predicate<"Subtarget->hasVendorXMIPSEXT()">,
+      AssemblerPredicate<(all_of FeatureVendorXMIPSEXECTL),
+                         "'Xmipsexectl' (Mips extensions)">;
+
 // WCH / Nanjing Qinheng Microelectronics Extension(s)
 
 def FeatureVendorXwchc
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td 
b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
index 889ea98022572..0d1999f329234 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
@@ -47,13 +47,13 @@ class LDPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rd1;
   bits<5> rd2;
 
-  let Inst{31-27} = rd2;
-  let Inst{26-23} = imm7{6-3};
-  let Inst{22-20} = 0b000;
-  let Inst{19-15} = rs1;
-  let Inst{14-12} = 0b100;
-  let Inst{11-7} = rd1;
-  let Inst{6-0} = OPC_CUSTOM_0.Value;
+  let Inst{31 - 27} = rd2;
+  let Inst{26 - 23} = imm7{6 - 3};
+  let Inst{22 - 20} = 0b000;
+  let Inst{19 - 15} = rs1;
+  let Inst{14 - 12} = 0b100;
+  let Inst{11 - 7} = rd1;
+  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
 }
 
 // Load word pair format.
@@ -64,13 +64,13 @@ class LWPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rd1;
   bits<5> rd2;
 
-  let Inst{31-27} = rd2;
-  let Inst{26-22} = imm7{6-2};
-  let Inst{21-20} = 0b01;
-  let Inst{19-15} = rs1;
-  let Inst{14-12} = 0b100;
-  let Inst{11-7} = rd1;
-  let Inst{6-0} = OPC_CUSTOM_0.Value;
+  let Inst{31 - 27} = rd2;
+  let Inst{26 - 22} = imm7{6 - 2};
+  let Inst{21 - 20} = 0b01;
+  let Inst{19 - 15} = rs1;
+  let Inst{14 - 12} = 0b100;
+  let Inst{11 - 7} = rd1;
+  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
 }
 
 // Store double pair format.
@@ -81,14 +81,14 @@ class SDPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rs2;
   bits<5> rs1;
 
-  let Inst{31-27} = rs3;
-  let Inst{26-25} = imm7{6-5};
-  let Inst{24-20} = rs2;
-  let Inst{19-15} = rs1;
-  let Inst{14-12} = 0b101;
-  let Inst{11-10} = imm7{4-3};
-  let Inst{9-7} = 0b000;
-  let Inst{6-0} = OPC_CUSTOM_0.Value;
+  let Inst{31 - 27} = rs3;
+  let Inst{26 - 25} = imm7{6 - 5};
+  let Inst{24 - 20} = rs2;
+  let Inst{19 - 15} = rs1;
+  let Inst{14 - 12} = 0b101;
+  let Inst{11 - 10} = imm7{4 - 3};
+  let Inst{9 - 7} = 0b000;
+  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
 }
 
 // Store word pair format.
@@ -99,89 +99,167 @@ class SWPFormat<dag outs, dag ins, string opcodestr, 
string argstr>
   bits<5> rs2;
   bits<5> rs1;
 
-  let Inst{31-27} = rs3;
-  let Inst{26-25} = imm7{6-5};
-  let Inst{24-20} = rs2;
-  let Inst{19-15} = rs1;
-  let Inst{14-12} = 0b101;
-  let Inst{11-9} = imm7{4-2};
-  let Inst{8-7} = 0b01;
-  let Inst{6-0} = OPC_CUSTOM_0.Value;
+  let Inst{31 - 27} = rs3;
+  let Inst{26 - 25} = imm7{6 - 5};
+  let Inst{24 - 20} = rs2;
+  let Inst{19 - 15} = rs1;
+  let Inst{14 - 12} = 0b101;
+  let Inst{11 - 9} = imm7{4 - 2};
+  let Inst{8 - 7} = 0b01;
+  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
 }
 
 // Prefetch format.
-let hasSideEffects = 0, mayLoad = 1, mayStore = 1 in
-class Mips_prefetch_ri<dag outs, dag ins, string opcodestr, string argstr>
+let hasSideEffects = 0, mayLoad = 1,
+    mayStore = 1 in class
+        Mips_prefetch_ri<dag outs, dag ins, string opcodestr, string argstr>
     : RVInst<outs, ins, opcodestr, argstr, [], InstFormatI> {
   bits<9> imm9;
   bits<5> rs1;
   bits<5> hint;
 
-  let Inst{31-29} = 0b000;
-  let Inst{28-20} = imm9;
-  let Inst{19-15} = rs1;
-  let Inst{14-12} = 0b000;
-  let Inst{11-7} = hint;
-  let Inst{6-0} = OPC_CUSTOM_0.Value;
+  let Inst{31 - 29} = 0b000;
+  let Inst{28 - 20} = imm9;
+  let Inst{19 - 15} = rs1;
+  let Inst{14 - 12} = 0b000;
+  let Inst{11 - 7} = hint;
+  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
+}
+
+// MIPS Ext Insns
+let hasSideEffects = 1, mayLoad = 0,
+    mayStore = 0 in class MIPSExtInst_ri<bits<6> shimm5, string opcodestr>
+    : RVInstIShift<0b00000, 0b001, OPC_OP_IMM, (outs), (ins), opcodestr, ""> {
+  let shamt = shimm5;
+  let rd = 0;
+  let rs1 = 0;
 }
 
 
//===----------------------------------------------------------------------===//
 // MIPS extensions
 
//===----------------------------------------------------------------------===//
-let Predicates = [HasVendorXMIPSCBOP] ,DecoderNamespace = "Xmipscbop" in {
-  def MIPS_PREF : Mips_prefetch_ri<(outs), (ins GPR:$rs1, uimm9:$imm9, 
uimm5:$hint),
-                                    "mips.pref", "$hint, ${imm9}(${rs1})">,
-                   Sched<[]>;
+let Predicates = [HasVendorXMIPSCBOP], DecoderNamespace = "XMIPS" in {
+  def MIPS_PREF : Mips_prefetch_ri<(outs),
+                                   (ins GPR
+                                    : $rs1, uimm9
+                                    : $imm9, uimm5
+                                    : $hint),
+                                   "mips.pref", "$hint, ${imm9}(${rs1})">,
+                  Sched<[]>;
+}
+
+let Predicates = [HasVendorXMIPSEXECTL], DecoderNamespace = "XMIPS" in {
+  def MIPS_EHB : MIPSExtInst_ri<0b000011, "mips.ehb">;
+  def MIPS_IHB : MIPSExtInst_ri<0b000001, "mips.ihb">;
+  def MIPS_PAUSE : MIPSExtInst_ri<0b000101, "mips.pause">;
 }
 
 let Predicates = [HasVendorXMIPSCBOP] in {
   // Prefetch Data Write.
-  def : Pat<(prefetch (AddrRegImm9  (XLenVT GPR:$rs1), uimm9:$imm9),
+  def : Pat<(prefetch(AddrRegImm9(XLenVT GPR
+                                  : $rs1),
+                      uimm9
+                      : $imm9),
              (i32 1), timm, (i32 1)),
-            (MIPS_PREF GPR:$rs1, uimm9:$imm9, 9)>;
+            (MIPS_PREF GPR
+             : $rs1, uimm9
+             : $imm9, 9)>;
   // Prefetch Data Read.
-  def : Pat<(prefetch (AddrRegImm9 (XLenVT GPR:$rs1), uimm9:$imm9),
+  def : Pat<(prefetch(AddrRegImm9(XLenVT GPR
+                                  : $rs1),
+                      uimm9
+                      : $imm9),
              (i32 0), timm, (i32 1)),
-            (MIPS_PREF GPR:$rs1, uimm9:$imm9, 8)>;
+            (MIPS_PREF GPR
+             : $rs1, uimm9
+             : $imm9, 8)>;
 }
 
-let Predicates = [HasVendorXMIPSCMov], hasSideEffects = 0, mayLoad = 0, 
mayStore = 0,
-                 DecoderNamespace = "Xmipscmov" in {
-def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0, (outs GPR:$rd),
-                          (ins GPR:$rs1, GPR:$rs2, GPR:$rs3),
-                          "mips.ccmov", "$rd, $rs2, $rs1, $rs3">,
-                 Sched<[]>;
+let Predicates = [HasVendorXMIPSCMov], hasSideEffects = 0, mayLoad = 0,
+    mayStore = 0, DecoderNamespace = "XMIPS" in {
+  def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0,
+                            (outs GPR
+                             : $rd),
+                            (ins GPR
+                             : $rs1, GPR
+                             : $rs2, GPR
+                             : $rs3),
+                            "mips.ccmov", "$rd, $rs2, $rs1, $rs3">,
+                   Sched<[]>;
 }
 
 let Predicates = [UseCCMovInsn] in {
-def : Pat<(select (riscv_setne (XLenVT GPR:$rs2)),
-                  (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)),
-          (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
-def : Pat<(select (riscv_seteq (XLenVT GPR:$rs2)),
-                  (XLenVT GPR:$rs3), (XLenVT GPR:$rs1)),
-          (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
-
-def : Pat<(select (XLenVT GPR:$rs2), (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)),
-          (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
+  def : Pat<(select(riscv_setne(XLenVT GPR
+                                : $rs2)),
+             (XLenVT GPR
+              : $rs1),
+             (XLenVT GPR
+              : $rs3)),
+            (MIPS_CCMOV GPR
+             : $rs1, GPR
+             : $rs2, GPR
+             : $rs3)>;
+  def : Pat<(select(riscv_seteq(XLenVT GPR
+                                : $rs2)),
+             (XLenVT GPR
+              : $rs3),
+             (XLenVT GPR
+              : $rs1)),
+            (MIPS_CCMOV GPR
+             : $rs1, GPR
+             : $rs2, GPR
+             : $rs3)>;
+
+  def : Pat<(select(XLenVT GPR
+                    : $rs2),
+             (XLenVT GPR
+              : $rs1),
+             (XLenVT GPR
+              : $rs3)),
+            (MIPS_CCMOV GPR
+             : $rs1, GPR
+             : $rs2, GPR
+             : $rs3)>;
 }
 
 let Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0,
-                 DecoderNamespace = "Xmipslsp" in {
-let mayLoad = 1, mayStore = 0 in {
-def MIPS_LWP : LWPFormat<(outs GPR:$rd1, GPR:$rd2), (ins GPR:$rs1, 
uimm7_lsb00:$imm7),
-                         "mips.lwp", "$rd1, $rd2, ${imm7}(${rs1})">,
-               Sched<[WriteLDW, WriteLDW, ReadMemBase]>;
-def MIPS_LDP : LDPFormat<(outs GPR:$rd1, GPR:$rd2), (ins GPR:$rs1, 
uimm7_lsb000:$imm7),
-                         "mips.ldp", "$rd1, $rd2, ${imm7}(${rs1})">,
-               Sched<[WriteLDD, WriteLDD, ReadMemBase]>;
-} // mayLoad = 1, mayStore = 0
-
-let mayLoad = 0, mayStore = 1 in {
-def MIPS_SWP : SWPFormat<(outs), (ins GPR:$rs2, GPR:$rs3, GPR:$rs1, 
uimm7_lsb00:$imm7),
-                         "mips.swp", "$rs2, $rs3, ${imm7}(${rs1})">,
-               Sched<[WriteSTW, ReadStoreData, ReadStoreData, ReadMemBase]>;
-def MIPS_SDP : SDPFormat<(outs), (ins GPR:$rs2, GPR:$rs3, GPR:$rs1, 
uimm7_lsb000:$imm7),
-                         "mips.sdp", "$rs2, $rs3, ${imm7}(${rs1})">,
-               Sched<[WriteSTD, ReadStoreData, ReadStoreData, ReadMemBase]>;
-} // mayLoad = 0, mayStore = 1
-} // Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0, DecoderNamespace = 
"Xmipslsp"
+    DecoderNamespace = "XMIPS" in {
+  let mayLoad = 1, mayStore = 0 in {
+    def MIPS_LWP : LWPFormat<(outs GPR
+                              : $rd1, GPR
+                              : $rd2),
+                             (ins GPR
+                              : $rs1, uimm7_lsb00
+                              : $imm7),
+                             "mips.lwp", "$rd1, $rd2, ${imm7}(${rs1})">,
+                   Sched<[WriteLDW, WriteLDW, ReadMemBase]>;
+    def MIPS_LDP : LDPFormat<(outs GPR
+                              : $rd1, GPR
+                              : $rd2),
+                             (ins GPR
+                              : $rs1, uimm7_lsb000
+                              : $imm7),
+                             "mips.ldp", "$rd1, $rd2, ${imm7}(${rs1})">,
+                   Sched<[WriteLDD, WriteLDD, ReadMemBase]>;
+  } // mayLoad = 1, mayStore = 0
+
+  let mayLoad = 0, mayStore = 1 in {
+    def MIPS_SWP : SWPFormat<(outs),
+                             (ins GPR
+                              : $rs2, GPR
+                              : $rs3, GPR
+                              : $rs1, uimm7_lsb00
+                              : $imm7),
+                             "mips.swp", "$rs2, $rs3, ${imm7}(${rs1})">,
+                   Sched<[WriteSTW, ReadStoreData, ReadStoreData, 
ReadMemBase]>;
+    def MIPS_SDP : SDPFormat<(outs),
+                             (ins GPR
+                              : $rs2, GPR
+                              : $rs3, GPR
+                              : $rs1, uimm7_lsb000
+                              : $imm7),
+                             "mips.sdp", "$rs2, $rs3, ${imm7}(${rs1})">,
+                   Sched<[WriteSTD, ReadStoreData, ReadStoreData, 
ReadMemBase]>;
+  } // mayLoad = 0, mayStore = 1
+} // Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0, DecoderNamespace =
+  // "XMIPS"
diff --git a/llvm/lib/Target/RISCV/RISCVProcessors.td 
b/llvm/lib/Target/RISCV/RISCVProcessors.td
index f89d94f41b69f..7ef11bd32ca12 100644
--- a/llvm/lib/Target/RISCV/RISCVProcessors.td
+++ b/llvm/lib/Target/RISCV/RISCVProcessors.td
@@ -121,7 +121,8 @@ def MIPS_P8700 : RISCVProcessorModel<"mips-p8700",
                                       FeatureStdExtZicsr,
                                       FeatureVendorXMIPSCMov,
                                       FeatureVendorXMIPSLSP,
-                                      FeatureVendorXMIPSCBOP],
+                                      FeatureVendorXMIPSCBOP,
+                                     FeatureVendorXMIPSEXECTL],
                                      [TuneMIPSP8700]>;
 
 def ROCKET_RV32 : RISCVProcessorModel<"rocket-rv32",
diff --git a/llvm/test/CodeGen/RISCV/features-info.ll 
b/llvm/test/CodeGen/RISCV/features-info.ll
index f966f800589b7..9999032762811 100644
--- a/llvm/test/CodeGen/RISCV/features-info.ll
+++ b/llvm/test/CodeGen/RISCV/features-info.ll
@@ -198,6 +198,7 @@
 ; CHECK-NEXT:   xcvsimd                          - 'XCVsimd' (CORE-V SIMD ALU).
 ; CHECK-NEXT:   xmipscbop                        - 'XMIPSCBOP' (MIPS Software 
Prefetch).
 ; CHECK-NEXT:   xmipscmov                        - 'XMIPSCMov' (MIPS 
conditional move instruction (mips.ccmov)).
+; CHECK-NEXT:   mipsexectl                       - 'XMIPSEXECTL' (MIPS 
extensions).
 ; CHECK-NEXT:   xmipslsp                         - 'XMIPSLSP' (MIPS 
optimization for hardware load-store bonding).
 ; CHECK-NEXT:   xsfcease                         - 'XSfcease' (SiFive sf.cease 
Instruction).
 ; CHECK-NEXT:   xsfmm128t                        - 'XSfmm128t' (TE=128 
configuration).
diff --git a/llvm/test/MC/RISCV/xmips-invalid.s 
b/llvm/test/MC/RISCV/xmips-invalid.s
index a17d2e347f8d9..b63e3a8bdcdf1 100644
--- a/llvm/test/MC/RISCV/xmips-invalid.s
+++ b/llvm/test/MC/RISCV/xmips-invalid.s
@@ -1,5 +1,14 @@
 # RUN: not llvm-mc -triple=riscv64 < %s 2>&1 | FileCheck %s 
-check-prefixes=CHECK-FEATURE
-# RUN: not llvm-mc -triple=riscv64 -mattr=+xmipslsp,+xmipscmov,+Xmipscbop < %s 
2>&1 | FileCheck %s
+# RUN: not llvm-mc -triple=riscv64 
-mattr=+xmipslsp,+xmipscmov,+xmipscbop,+xmipsexectl < %s 2>&1 | FileCheck %s
+
+mips.pause 10
+# CHECK: error: invalid operand for instruction
+
+mips.ehb 10
+# CHECK: error: invalid operand for instruction 
+
+mips.ihb 10
+# CHECK: error: invalid operand for instruction
 
 mips.pref   8, 512(a0)
 # CHECK: error: immediate offset must be in the range [0, 511]
diff --git a/llvm/test/MC/RISCV/xmips-valid.s b/llvm/test/MC/RISCV/xmips-valid.s
index c5755ee81b499..1c193e610d247 100644
--- a/llvm/test/MC/RISCV/xmips-valid.s
+++ b/llvm/test/MC/RISCV/xmips-valid.s
@@ -1,9 +1,27 @@
-# RUN: llvm-mc %s -triple=riscv64 -mattr=+xmipslsp,+xmipscmov,+xmipscbop -M 
no-aliases -show-encoding \
+# RUN: llvm-mc %s -triple=riscv64 
-mattr=+xmipslsp,+Xmipscmov,+xmipscbop,+xmipsexectl  -M no-aliases 
-show-encoding \
 # RUN:   | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s
-# RUN: llvm-mc -filetype=obj -triple=riscv64 
-mattr=+xmipslsp,+xmipscmov,+xmipscbop < %s \
-# RUN:   | llvm-objdump --mattr=+xmipslsp,+xmipscmov,+xmipscbop -M no-aliases 
-d - \
+# RUN: llvm-mc -filetype=obj -triple=riscv64 
-mattr=+xmipslsp,+xmipscmov,+xmipscbop,+xmipsexectl < %s \
+# RUN:   | llvm-objdump --mattr=+xmipslsp,+xmipscmov,+xmipscbop,+xmipsexectl 
-M no-aliases -d - \
 # RUN:   | FileCheck -check-prefix=CHECK-DIS %s
 
+# CHECK-INST: mips.pause
+# CHECK-ENC:  encoding: [0x13,0x10,0x50,0x00]
+mips.pause
+
+# CHECK-DIS: mips.pause
+
+# CHECK-INST: mips.ehb
+# CHECK-ENC:  encoding: [0x13,0x10,0x30,0x00]
+mips.ehb
+
+# CHECK-DIS: mips.ehb
+
+# CHECK-INST: mips.ihb
+# CHECK-ENC:  encoding: [0x13,0x10,0x10,0x00]
+mips.ihb
+
+# CHECK-DIS: mips.ihb
+
 # CHECK-INST: mips.pref 8, 511(a0)
 # CHECK-ENC:  encoding: [0x0b,0x04,0xf5,0x1f]
 mips.pref      8, 511(a0)
diff --git a/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp 
b/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
index 9cee4ff776da9..1ece678a464ff 100644
--- a/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+++ b/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
@@ -1146,6 +1146,7 @@ R"(All available -march extensions for RISC-V
     xcvsimd              1.0
     xmipscbop            1.0
     xmipscmov            1.0
+    xmipsexectl          1.0
     xmipslsp             1.0
     xsfcease             1.0
     xsfmm128t            0.6

>From 0f8330adcad0ad6afc9a5584aecc35d2f69daac2 Mon Sep 17 00:00:00 2001
From: Umesh Kalappa <ukalappa.m...@gmail.com>
Date: Thu, 28 Aug 2025 10:24:45 +0000
Subject: [PATCH 2/7] Reformatted changes with clang-format and testcase fix.

---
 .../Driver/print-supported-extensions-riscv.c |   1 +
 llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td  | 229 +++++++-----------
 2 files changed, 84 insertions(+), 146 deletions(-)

diff --git a/clang/test/Driver/print-supported-extensions-riscv.c 
b/clang/test/Driver/print-supported-extensions-riscv.c
index f9a4929017d0e..8ba1ff91e774f 100644
--- a/clang/test/Driver/print-supported-extensions-riscv.c
+++ b/clang/test/Driver/print-supported-extensions-riscv.c
@@ -175,6 +175,7 @@
 // CHECK-NEXT:     xcvsimd              1.0       'XCVsimd' (CORE-V SIMD ALU)
 // CHECK-NEXT:     xmipscbop            1.0       'XMIPSCBOP' (MIPS Software 
Prefetch)
 // CHECK-NEXT:     xmipscmov            1.0       'XMIPSCMov' (MIPS 
conditional move instruction (mips.ccmov))
+// CHECK-NEXT:     xmipsexectl          1.0       'XMIPSEXECTL' (MIPS 
extensions)
 // CHECK-NEXT:     xmipslsp             1.0       'XMIPSLSP' (MIPS 
optimization for hardware load-store bonding)
 // CHECK-NEXT:     xsfcease             1.0       'XSfcease' (SiFive sf.cease 
Instruction)
 // CHECK-NEXT:     xsfmm128t            0.6       'XSfmm128t' (TE=128 
configuration)
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td 
b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
index 0d1999f329234..b37e03d2473b3 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
@@ -47,13 +47,13 @@ class LDPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rd1;
   bits<5> rd2;
 
-  let Inst{31 - 27} = rd2;
-  let Inst{26 - 23} = imm7{6 - 3};
-  let Inst{22 - 20} = 0b000;
-  let Inst{19 - 15} = rs1;
-  let Inst{14 - 12} = 0b100;
-  let Inst{11 - 7} = rd1;
-  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
+  let Inst{31-27} = rd2;
+  let Inst{26-23} = imm7{6-3};
+  let Inst{22-20} = 0b000;
+  let Inst{19-15} = rs1;
+  let Inst{14-12} = 0b100;
+  let Inst{11-7} = rd1;
+  let Inst{6-0} = OPC_CUSTOM_0.Value;
 }
 
 // Load word pair format.
@@ -64,13 +64,13 @@ class LWPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rd1;
   bits<5> rd2;
 
-  let Inst{31 - 27} = rd2;
-  let Inst{26 - 22} = imm7{6 - 2};
-  let Inst{21 - 20} = 0b01;
-  let Inst{19 - 15} = rs1;
-  let Inst{14 - 12} = 0b100;
-  let Inst{11 - 7} = rd1;
-  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
+  let Inst{31-27} = rd2;
+  let Inst{26-22} = imm7{6-2};
+  let Inst{21-20} = 0b01;
+  let Inst{19-15} = rs1;
+  let Inst{14-12} = 0b100;
+  let Inst{11-7} = rd1;
+  let Inst{6-0} = OPC_CUSTOM_0.Value;
 }
 
 // Store double pair format.
@@ -81,14 +81,14 @@ class SDPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rs2;
   bits<5> rs1;
 
-  let Inst{31 - 27} = rs3;
-  let Inst{26 - 25} = imm7{6 - 5};
-  let Inst{24 - 20} = rs2;
-  let Inst{19 - 15} = rs1;
-  let Inst{14 - 12} = 0b101;
-  let Inst{11 - 10} = imm7{4 - 3};
-  let Inst{9 - 7} = 0b000;
-  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
+  let Inst{31-27} = rs3;
+  let Inst{26-25} = imm7{6-5};
+  let Inst{24-20} = rs2;
+  let Inst{19-15} = rs1;
+  let Inst{14-12} = 0b101;
+  let Inst{11-10} = imm7{4-3};
+  let Inst{9-7} = 0b000;
+  let Inst{6-0} = OPC_CUSTOM_0.Value;
 }
 
 // Store word pair format.
@@ -99,34 +99,33 @@ class SWPFormat<dag outs, dag ins, string opcodestr, string 
argstr>
   bits<5> rs2;
   bits<5> rs1;
 
-  let Inst{31 - 27} = rs3;
-  let Inst{26 - 25} = imm7{6 - 5};
-  let Inst{24 - 20} = rs2;
-  let Inst{19 - 15} = rs1;
-  let Inst{14 - 12} = 0b101;
-  let Inst{11 - 9} = imm7{4 - 2};
-  let Inst{8 - 7} = 0b01;
-  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
+  let Inst{31-27} = rs3;
+  let Inst{26-25} = imm7{6-5};
+  let Inst{24-20} = rs2;
+  let Inst{19-15} = rs1;
+  let Inst{14-12} = 0b101;
+  let Inst{11-9} = imm7{4-2};
+  let Inst{8-7} = 0b01;
+  let Inst{6-0} = OPC_CUSTOM_0.Value;
 }
 
 // Prefetch format.
-let hasSideEffects = 0, mayLoad = 1,
-    mayStore = 1 in class
-        Mips_prefetch_ri<dag outs, dag ins, string opcodestr, string argstr>
+let hasSideEffects = 0, mayLoad = 1, mayStore = 1 in
+class Mips_prefetch_ri<dag outs, dag ins, string opcodestr, string argstr>
     : RVInst<outs, ins, opcodestr, argstr, [], InstFormatI> {
   bits<9> imm9;
   bits<5> rs1;
   bits<5> hint;
 
-  let Inst{31 - 29} = 0b000;
-  let Inst{28 - 20} = imm9;
-  let Inst{19 - 15} = rs1;
-  let Inst{14 - 12} = 0b000;
-  let Inst{11 - 7} = hint;
-  let Inst{6 - 0} = OPC_CUSTOM_0.Value;
+  let Inst{31-29} = 0b000;
+  let Inst{28-20} = imm9;
+  let Inst{19-15} = rs1;
+  let Inst{14-12} = 0b000;
+  let Inst{11-7} = hint;
+  let Inst{6-0} = OPC_CUSTOM_0.Value;
 }
 
-// MIPS Ext Insns
+// MIPS Ext Insns Fromat.
 let hasSideEffects = 1, mayLoad = 0,
     mayStore = 0 in class MIPSExtInst_ri<bits<6> shimm5, string opcodestr>
     : RVInstIShift<0b00000, 0b001, OPC_OP_IMM, (outs), (ins), opcodestr, ""> {
@@ -138,128 +137,66 @@ let hasSideEffects = 1, mayLoad = 0,
 
//===----------------------------------------------------------------------===//
 // MIPS extensions
 
//===----------------------------------------------------------------------===//
-let Predicates = [HasVendorXMIPSCBOP], DecoderNamespace = "XMIPS" in {
-  def MIPS_PREF : Mips_prefetch_ri<(outs),
-                                   (ins GPR
-                                    : $rs1, uimm9
-                                    : $imm9, uimm5
-                                    : $hint),
-                                   "mips.pref", "$hint, ${imm9}(${rs1})">,
-                  Sched<[]>;
-}
-
 let Predicates = [HasVendorXMIPSEXECTL], DecoderNamespace = "XMIPS" in {
   def MIPS_EHB : MIPSExtInst_ri<0b000011, "mips.ehb">;
   def MIPS_IHB : MIPSExtInst_ri<0b000001, "mips.ihb">;
   def MIPS_PAUSE : MIPSExtInst_ri<0b000101, "mips.pause">;
 }
 
+let Predicates = [HasVendorXMIPSCBOP] ,DecoderNamespace = "XMIPS" in {
+  def MIPS_PREF : Mips_prefetch_ri<(outs), (ins GPR:$rs1, uimm9:$imm9, 
uimm5:$hint),
+                                    "mips.pref", "$hint, ${imm9}(${rs1})">,
+                   Sched<[]>;
+}
+
 let Predicates = [HasVendorXMIPSCBOP] in {
   // Prefetch Data Write.
-  def : Pat<(prefetch(AddrRegImm9(XLenVT GPR
-                                  : $rs1),
-                      uimm9
-                      : $imm9),
+  def : Pat<(prefetch (AddrRegImm9  (XLenVT GPR:$rs1), uimm9:$imm9),
              (i32 1), timm, (i32 1)),
-            (MIPS_PREF GPR
-             : $rs1, uimm9
-             : $imm9, 9)>;
+            (MIPS_PREF GPR:$rs1, uimm9:$imm9, 9)>;
   // Prefetch Data Read.
-  def : Pat<(prefetch(AddrRegImm9(XLenVT GPR
-                                  : $rs1),
-                      uimm9
-                      : $imm9),
+  def : Pat<(prefetch (AddrRegImm9 (XLenVT GPR:$rs1), uimm9:$imm9),
              (i32 0), timm, (i32 1)),
-            (MIPS_PREF GPR
-             : $rs1, uimm9
-             : $imm9, 8)>;
+            (MIPS_PREF GPR:$rs1, uimm9:$imm9, 8)>;
 }
 
-let Predicates = [HasVendorXMIPSCMov], hasSideEffects = 0, mayLoad = 0,
-    mayStore = 0, DecoderNamespace = "XMIPS" in {
-  def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0,
-                            (outs GPR
-                             : $rd),
-                            (ins GPR
-                             : $rs1, GPR
-                             : $rs2, GPR
-                             : $rs3),
-                            "mips.ccmov", "$rd, $rs2, $rs1, $rs3">,
-                   Sched<[]>;
+let Predicates = [HasVendorXMIPSCMov], hasSideEffects = 0, mayLoad = 0, 
mayStore = 0,
+                 DecoderNamespace = "XMIPS" in {
+def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0, (outs GPR:$rd),
+                          (ins GPR:$rs1, GPR:$rs2, GPR:$rs3),
+                          "mips.ccmov", "$rd, $rs2, $rs1, $rs3">,
+                 Sched<[]>;
 }
 
 let Predicates = [UseCCMovInsn] in {
-  def : Pat<(select(riscv_setne(XLenVT GPR
-                                : $rs2)),
-             (XLenVT GPR
-              : $rs1),
-             (XLenVT GPR
-              : $rs3)),
-            (MIPS_CCMOV GPR
-             : $rs1, GPR
-             : $rs2, GPR
-             : $rs3)>;
-  def : Pat<(select(riscv_seteq(XLenVT GPR
-                                : $rs2)),
-             (XLenVT GPR
-              : $rs3),
-             (XLenVT GPR
-              : $rs1)),
-            (MIPS_CCMOV GPR
-             : $rs1, GPR
-             : $rs2, GPR
-             : $rs3)>;
-
-  def : Pat<(select(XLenVT GPR
-                    : $rs2),
-             (XLenVT GPR
-              : $rs1),
-             (XLenVT GPR
-              : $rs3)),
-            (MIPS_CCMOV GPR
-             : $rs1, GPR
-             : $rs2, GPR
-             : $rs3)>;
+def : Pat<(select (riscv_setne (XLenVT GPR:$rs2)),
+                  (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)),
+          (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
+def : Pat<(select (riscv_seteq (XLenVT GPR:$rs2)),
+                  (XLenVT GPR:$rs3), (XLenVT GPR:$rs1)),
+          (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
+
+def : Pat<(select (XLenVT GPR:$rs2), (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)),
+          (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>;
 }
 
 let Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0,
-    DecoderNamespace = "XMIPS" in {
-  let mayLoad = 1, mayStore = 0 in {
-    def MIPS_LWP : LWPFormat<(outs GPR
-                              : $rd1, GPR
-                              : $rd2),
-                             (ins GPR
-                              : $rs1, uimm7_lsb00
-                              : $imm7),
-                             "mips.lwp", "$rd1, $rd2, ${imm7}(${rs1})">,
-                   Sched<[WriteLDW, WriteLDW, ReadMemBase]>;
-    def MIPS_LDP : LDPFormat<(outs GPR
-                              : $rd1, GPR
-                              : $rd2),
-                             (ins GPR
-                              : $rs1, uimm7_lsb000
-                              : $imm7),
-                             "mips.ldp", "$rd1, $rd2, ${imm7}(${rs1})">,
-                   Sched<[WriteLDD, WriteLDD, ReadMemBase]>;
-  } // mayLoad = 1, mayStore = 0
-
-  let mayLoad = 0, mayStore = 1 in {
-    def MIPS_SWP : SWPFormat<(outs),
-                             (ins GPR
-                              : $rs2, GPR
-                              : $rs3, GPR
-                              : $rs1, uimm7_lsb00
-                              : $imm7),
-                             "mips.swp", "$rs2, $rs3, ${imm7}(${rs1})">,
-                   Sched<[WriteSTW, ReadStoreData, ReadStoreData, 
ReadMemBase]>;
-    def MIPS_SDP : SDPFormat<(outs),
-                             (ins GPR
-                              : $rs2, GPR
-                              : $rs3, GPR
-                              : $rs1, uimm7_lsb000
-                              : $imm7),
-                             "mips.sdp", "$rs2, $rs3, ${imm7}(${rs1})">,
-                   Sched<[WriteSTD, ReadStoreData, ReadStoreData, 
ReadMemBase]>;
-  } // mayLoad = 0, mayStore = 1
-} // Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0, DecoderNamespace =
-  // "XMIPS"
+                 DecoderNamespace = "XMIPS" in {
+let mayLoad = 1, mayStore = 0 in {
+def MIPS_LWP : LWPFormat<(outs GPR:$rd1, GPR:$rd2), (ins GPR:$rs1, 
uimm7_lsb00:$imm7),
+                         "mips.lwp", "$rd1, $rd2, ${imm7}(${rs1})">,
+               Sched<[WriteLDW, WriteLDW, ReadMemBase]>;
+def MIPS_LDP : LDPFormat<(outs GPR:$rd1, GPR:$rd2), (ins GPR:$rs1, 
uimm7_lsb000:$imm7),
+                         "mips.ldp", "$rd1, $rd2, ${imm7}(${rs1})">,
+               Sched<[WriteLDD, WriteLDD, ReadMemBase]>;
+} // mayLoad = 1, mayStore = 0
+
+let mayLoad = 0, mayStore = 1 in {
+def MIPS_SWP : SWPFormat<(outs), (ins GPR:$rs2, GPR:$rs3, GPR:$rs1, 
uimm7_lsb00:$imm7),
+                         "mips.swp", "$rs2, $rs3, ${imm7}(${rs1})">,
+               Sched<[WriteSTW, ReadStoreData, ReadStoreData, ReadMemBase]>;
+def MIPS_SDP : SDPFormat<(outs), (ins GPR:$rs2, GPR:$rs3, GPR:$rs1, 
uimm7_lsb000:$imm7),
+                         "mips.sdp", "$rs2, $rs3, ${imm7}(${rs1})">,
+               Sched<[WriteSTD, ReadStoreData, ReadStoreData, ReadMemBase]>;
+} // mayLoad = 0, mayStore = 1
+} // Predicates = [HasVendorXMIPSLSP], hasSideEffects = 0, DecoderNamespace = 
"XMIPS"

>From 4f1d89b6df86c693542b541a278d0e5da31df488 Mon Sep 17 00:00:00 2001
From: UmeshKalappa <103930015+ukalappa-m...@users.noreply.github.com>
Date: Fri, 29 Aug 2025 09:18:41 +0530
Subject: [PATCH 3/7] Update llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td

Co-authored-by: Craig Topper <craig.top...@sifive.com>
---
 llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td 
b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
index b37e03d2473b3..e7dae66722506 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
@@ -126,8 +126,8 @@ class Mips_prefetch_ri<dag outs, dag ins, string opcodestr, 
string argstr>
 }
 
 // MIPS Ext Insns Fromat.
-let hasSideEffects = 1, mayLoad = 0,
-    mayStore = 0 in class MIPSExtInst_ri<bits<6> shimm5, string opcodestr>
+let hasSideEffects = 1, mayLoad = 0, mayStore = 0 in
+class MIPSExtInst_ri<bits<6> shimm5, string opcodestr>
     : RVInstIShift<0b00000, 0b001, OPC_OP_IMM, (outs), (ins), opcodestr, ""> {
   let shamt = shimm5;
   let rd = 0;

>From f7b5025add15d67b9d79347da7cd7f5dac10fdd5 Mon Sep 17 00:00:00 2001
From: UmeshKalappa <103930015+ukalappa-m...@users.noreply.github.com>
Date: Fri, 29 Aug 2025 09:18:53 +0530
Subject: [PATCH 4/7] Update llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td

Co-authored-by: Craig Topper <craig.top...@sifive.com>
---
 llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td 
b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
index e7dae66722506..a862774234998 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
@@ -143,7 +143,7 @@ let Predicates = [HasVendorXMIPSEXECTL], DecoderNamespace = 
"XMIPS" in {
   def MIPS_PAUSE : MIPSExtInst_ri<0b000101, "mips.pause">;
 }
 
-let Predicates = [HasVendorXMIPSCBOP] ,DecoderNamespace = "XMIPS" in {
+let Predicates = [HasVendorXMIPSCBOP], DecoderNamespace = "XMIPS" in {
   def MIPS_PREF : Mips_prefetch_ri<(outs), (ins GPR:$rs1, uimm9:$imm9, 
uimm5:$hint),
                                     "mips.pref", "$hint, ${imm9}(${rs1})">,
                    Sched<[]>;

>From dd0e1581fed77a950c365c02130b8d9b383584a1 Mon Sep 17 00:00:00 2001
From: UmeshKalappa <103930015+ukalappa-m...@users.noreply.github.com>
Date: Fri, 29 Aug 2025 09:19:05 +0530
Subject: [PATCH 5/7] Update llvm/test/MC/RISCV/xmips-valid.s

Co-authored-by: Craig Topper <craig.top...@sifive.com>
---
 llvm/test/MC/RISCV/xmips-valid.s | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/test/MC/RISCV/xmips-valid.s b/llvm/test/MC/RISCV/xmips-valid.s
index 1c193e610d247..d5f5ab06d2df0 100644
--- a/llvm/test/MC/RISCV/xmips-valid.s
+++ b/llvm/test/MC/RISCV/xmips-valid.s
@@ -1,4 +1,4 @@
-# RUN: llvm-mc %s -triple=riscv64 
-mattr=+xmipslsp,+Xmipscmov,+xmipscbop,+xmipsexectl  -M no-aliases 
-show-encoding \
+# RUN: llvm-mc %s -triple=riscv64 
-mattr=+xmipslsp,+xmipscmov,+xmipscbop,+xmipsexectl  -M no-aliases 
-show-encoding \
 # RUN:   | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s
 # RUN: llvm-mc -filetype=obj -triple=riscv64 
-mattr=+xmipslsp,+xmipscmov,+xmipscbop,+xmipsexectl < %s \
 # RUN:   | llvm-objdump --mattr=+xmipslsp,+xmipscmov,+xmipscbop,+xmipsexectl 
-M no-aliases -d - \

>From 3d8f1d1b03292b2554a3e9579570e257592a322a Mon Sep 17 00:00:00 2001
From: Umesh Kalappa <ukalappa.m...@gmail.com>
Date: Fri, 29 Aug 2025 04:20:33 +0000
Subject: [PATCH 6/7] Updated the code to address the comments

---
 llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td | 2 +-
 llvm/lib/Target/RISCV/RISCVProcessors.td     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td 
b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
index a862774234998..b00d844e14064 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
@@ -125,7 +125,7 @@ class Mips_prefetch_ri<dag outs, dag ins, string opcodestr, 
string argstr>
   let Inst{6-0} = OPC_CUSTOM_0.Value;
 }
 
-// MIPS Ext Insns Fromat.
+// MIPS Custom Barrier Insns Format.
 let hasSideEffects = 1, mayLoad = 0, mayStore = 0 in
 class MIPSExtInst_ri<bits<6> shimm5, string opcodestr>
     : RVInstIShift<0b00000, 0b001, OPC_OP_IMM, (outs), (ins), opcodestr, ""> {
diff --git a/llvm/lib/Target/RISCV/RISCVProcessors.td 
b/llvm/lib/Target/RISCV/RISCVProcessors.td
index 7ef11bd32ca12..36d63ed23b925 100644
--- a/llvm/lib/Target/RISCV/RISCVProcessors.td
+++ b/llvm/lib/Target/RISCV/RISCVProcessors.td
@@ -122,7 +122,7 @@ def MIPS_P8700 : RISCVProcessorModel<"mips-p8700",
                                       FeatureVendorXMIPSCMov,
                                       FeatureVendorXMIPSLSP,
                                       FeatureVendorXMIPSCBOP,
-                                     FeatureVendorXMIPSEXECTL],
+                                      FeatureVendorXMIPSEXECTL],
                                      [TuneMIPSP8700]>;
 
 def ROCKET_RV32 : RISCVProcessorModel<"rocket-rv32",

>From 1b6005d145134f340ce1fad743440db5dd48aad6 Mon Sep 17 00:00:00 2001
From: UmeshKalappa <103930015+ukalappa-m...@users.noreply.github.com>
Date: Fri, 29 Aug 2025 12:21:29 +0530
Subject: [PATCH 7/7] Update llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td

Co-authored-by: Craig Topper <craig.top...@sifive.com>
---
 llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td 
b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
index b00d844e14064..fcd3386e105b1 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td
@@ -161,7 +161,7 @@ let Predicates = [HasVendorXMIPSCBOP] in {
 }
 
 let Predicates = [HasVendorXMIPSCMov], hasSideEffects = 0, mayLoad = 0, 
mayStore = 0,
-                 DecoderNamespace = "XMIPS" in {
+    DecoderNamespace = "XMIPS" in {
 def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0, (outs GPR:$rd),
                           (ins GPR:$rs1, GPR:$rs2, GPR:$rs3),
                           "mips.ccmov", "$rd, $rs2, $rs1, $rs3">,

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to