diff --git a/valgrind-3.17.0-s390_insn_as_string.patch b/valgrind-3.17.0-s390_insn_as_string.patch
new file mode 100644
index 0000000..39c956c
--- /dev/null
+++ b/valgrind-3.17.0-s390_insn_as_string.patch
@@ -0,0 +1,54 @@
+commit 45873298ff2d17accc65654d64758360616aade5
+Author: Andreas Arnez <arnez@linux.ibm.com>
+Date:   Tue Mar 30 18:10:43 2021 +0200
+
+    s390x: Add missing UNOP insns to s390_insn_as_string
+    
+    Some unary operator insns are not handled by s390_insn_as_string().  If
+    they are encountered while the appropriate trace flag is set, a vpanic
+    occurs.  Fix this: add handling for the missing insns.
+
+diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c
+index 8762975b2..6e0734ae0 100644
+--- a/VEX/priv/host_s390_defs.c
++++ b/VEX/priv/host_s390_defs.c
+@@ -7860,12 +7860,24 @@ s390_insn_as_string(const s390_insn *insn)
+          op = "v-vunpacku";
+          break;
+ 
+-      case S390_VEC_FLOAT_NEG:
+-         op = "v-vfloatneg";
++      case S390_VEC_ABS:
++         op = "v-vabs";
+          break;
+ 
+-      case S390_VEC_FLOAT_SQRT:
+-         op = "v-vfloatsqrt";
++      case S390_VEC_COUNT_LEADING_ZEROES:
++         op = "v-vclz";
++         break;
++
++      case S390_VEC_COUNT_TRAILING_ZEROES:
++         op = "v-vctz";
++         break;
++
++      case S390_VEC_COUNT_ONES:
++         op = "v-vpopct";
++         break;
++
++      case S390_VEC_FLOAT_NEG:
++         op = "v-vfloatneg";
+          break;
+ 
+       case S390_VEC_FLOAT_ABS:
+@@ -7876,6 +7888,10 @@ s390_insn_as_string(const s390_insn *insn)
+          op = "v-vfloatnabs";
+          break;
+ 
++      case S390_VEC_FLOAT_SQRT:
++         op = "v-vfloatsqrt";
++         break;
++
+       default:
+          goto fail;
+       }
diff --git a/valgrind.spec b/valgrind.spec
index 5aeaedd..ecaad4a 100644
--- a/valgrind.spec
+++ b/valgrind.spec
@@ -106,6 +106,10 @@ Patch6: valgrind-3.17.0-ppc64-isa-3.1.patch
 # Reduced precision Missing Integer based outer tests
 Patch7: valgrind-3.17.0-ppc64-isa-3.1-tests.patch
 
+# commit 45873298ff2d17accc65654d64758360616aade5
+# s390x: Add missing UNOP insns to s390_insn_as_string
+Patch8: valgrind-3.17.0-s390_insn_as_string.patch
+
 BuildRequires: make
 BuildRequires: glibc-devel
 
@@ -248,6 +252,7 @@ Valgrind User Manual for details.
 %patch6 -p1
 %patch7 -p1
 
+%patch8 -p1
 
 %build
 # LTO triggers undefined symbols in valgrind.  Valgrind has a --enable-lto
@@ -473,6 +478,9 @@ fi
 %endif
 
 %changelog
+* Tue May  4 2021 Mark Wielaard <mjw@fedoraproject.org>
+- Add valgrind-3.17.0-s390_insn_as_string.patch
+
 * Tue May  4 2021 Mark Wielaard <mjw@fedoraproject.org> - 3.17.0-3
 - Add valgrind-3.17.0-ppc64-isa-3.1{,tests}.patch