diff --git a/src/arch/arm/isa/insts/sve.isa b/src/arch/arm/isa/insts/sve.isa
index 647ceaf..e5e9e24 100644
--- a/src/arch/arm/isa/insts/sve.isa
+++ b/src/arch/arm/isa/insts/sve.isa
@@ -4278,7 +4278,9 @@
             bool negSrc1 = (srcElem1 < 0);
             bool negSrc2 = (srcElem2 < 0);
             if ((negDest != negSrc1) && (negSrc1 == negSrc2)) {
-                destElem = (Element)1 << (sizeof(Element) * 8 - 1);
+                destElem = static_cast<Element>(
+                    (Element)1 << (sizeof(Element) * 8 - 1)
+                    );
                 if (negDest)
                     destElem -= 1;
             }
@@ -4293,7 +4295,9 @@
         bool negSrc = (srcElem1 < 0);
         bool posCount = ((count * imm) >= 0);
         if ((negDest != negSrc) && (negSrc == posCount)) {
-            destElem = (%(dstType)s)1 << (sizeof(%(dstType)s) * 8 - 1);
+            destElem = static_cast<%(dstType)s>(
+                (%(dstType)s)1 << (sizeof(%(dstType)s) * 8 - 1)
+                );
             if (negDest)
                 destElem -= 1;
         }
@@ -4350,7 +4354,9 @@
         bool negSrc = (srcElem1 < 0);
         bool negCount = ((count * imm) < 0);
         if ((negDest != negSrc) && (negSrc == negCount)) {
-            destElem = (%(dstType)s)1 << (sizeof(%(dstType)s) * 8 - 1);
+            destElem = static_cast<%(dstType)s>(
+                (%(dstType)s)1 << (sizeof(%(dstType)s) * 8 - 1)
+                );
             if (negDest)
                 destElem -= 1;
         }
@@ -4407,7 +4413,9 @@
         bool negSrc1 = (srcElem1 < 0);
         bool posSrc2 = (srcElem2 >= 0);
         if ((negDest != negSrc1) && (negSrc1 == posSrc2)) {
-            destElem = (Element)1 << (sizeof(Element) * 8 - 1);
+            destElem = static_cast<Element>(
+                (Element)1 << (sizeof(Element) * 8 - 1)
+                );
             if (negDest)
                 destElem -= 1;
         }
diff --git a/src/base/bitfield.hh b/src/base/bitfield.hh
index d696715..ec1ffce 100644
--- a/src/base/bitfield.hh
+++ b/src/base/bitfield.hh
@@ -182,7 +182,7 @@
     assert(size <= sizeof(T));
 
     T output = 0;
-    for (auto byte = 0; byte < size; byte++, val >>= 8) {
+    for (auto byte = 0; byte < size; byte++, val = static_cast<T>(val >> 8)) {
         output = (output << 8) | reverseLookUpTable[val & 0xFF];
     }
 
