diff --git a/hdl/chisel/src/kelvin/scalar/Decode.scala b/hdl/chisel/src/kelvin/scalar/Decode.scala
index 02402c8..6144608 100644
--- a/hdl/chisel/src/kelvin/scalar/Decode.scala
+++ b/hdl/chisel/src/kelvin/scalar/Decode.scala
@@ -706,6 +706,7 @@
     if (p.enableRvv) {
       io.lsu(i).bits.elemWidth.get := io.inst(i).bits.inst(14,12)
       io.lsu(i).bits.nfields.get := io.inst(i).bits.inst(31,29)
+      io.lsu(i).bits.umop.get := io.inst(i).bits.inst(24,20)
     }
 
     // -------------------------------------------------------------------------
@@ -1201,6 +1202,7 @@
   if (p.enableRvv) {
     io.lsu.bits.elemWidth.get := io.inst.bits.inst(14,12)
     io.lsu.bits.nfields.get := io.inst.bits.inst(31,29)
+    io.lsu.bits.umop.get := io.inst.bits.inst(24,20)
   }
 
   // MLU opcode.
diff --git a/hdl/chisel/src/kelvin/scalar/Lsu.scala b/hdl/chisel/src/kelvin/scalar/Lsu.scala
index 693815b..0e603fd 100644
--- a/hdl/chisel/src/kelvin/scalar/Lsu.scala
+++ b/hdl/chisel/src/kelvin/scalar/Lsu.scala
@@ -142,6 +142,16 @@
   val pc = UInt(32.W)
   val elemWidth = Option.when(p.enableRvv) { UInt(3.W) }
   val nfields = Option.when(p.enableRvv) { UInt(3.W) }
+  val umop = Option.when(p.enableRvv) { UInt(5.W) }
+
+  def isMaskOperation(): Bool = {
+    if (p.enableRvv) {
+      (umop.get === "b01011".U) &&
+      op.isOneOf(LsuOp.VLOAD_UNIT, LsuOp.VSTORE_UNIT)
+    } else {
+      false.B
+    }
+  }
 
   override def toPrintable: Printable = {
     cf"LsuCmd(store -> ${store}, addr -> 0x${addr}%x, op -> ${op}, " +
@@ -188,11 +198,15 @@
     }
     if (p.enableRvv) {
       result.elemWidth.get := cmd.elemWidth.get
-      result.nfields.get := cmd.nfields.get
-      // Treat fractional LMULs as LMUL=1
-      val effectiveLmul = Mux(rvvState.get.bits.lmul(2),
-                              0.U(2.W), rvvState.get.bits.lmul(1, 0))
+      val effectiveLmul = MuxCase(rvvState.get.bits.lmul(1, 0), Seq(
+        // Treat fractional LMULs as LMUL=1
+        (rvvState.get.bits.lmul(2)) -> 0.U(2.W),
+        // If mask operation, always force LMUL=1.
+        (cmd.isMaskOperation()) -> 0.U(2.W),
+      ))
       result.lmul.get := 1.U(1.W) << effectiveLmul
+      // If mask operation, force fields to zero
+      result.nfields.get := Mux(cmd.isMaskOperation(), 0.U, cmd.nfields.get)
     }
 
     result
