]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
s390x: Simplify interface of vector format functions
authorAndreas Arnez <arnez@linux.ibm.com>
Fri, 13 Feb 2026 11:38:52 +0000 (12:38 +0100)
committerAndreas Arnez <arnez@linux.ibm.com>
Fri, 13 Feb 2026 11:38:52 +0000 (12:38 +0100)
Same as with the non-vector instructions, simplify the interface of the
vector format functions.

VEX/priv/guest_s390_toIR.c

index 28ee237456a9b2d0adced631ebbb3e95c802eadd..c66c3133625cbbaad3ee7fa624bd91c99157d29b 100644 (file)
@@ -182,12 +182,7 @@ typedef enum {
 #define SSa_d1(insn) (((insn) >> 32) & 0xfff)
 #define SSa_b2(insn) (((insn) >> 28) & 0xf)
 #define SSa_d2(insn) (((insn) >> 16) & 0xfff)
-#define VRX_v1(insn) (((insn) >> 52) & 0xf)
-#define VRX_x2(insn) (((insn) >> 48) & 0xf)
-#define VRX_b2(insn) (((insn) >> 44) & 0xf)
-#define VRX_d2(insn) (((insn) >> 32) & 0xfff)
-#define VRX_m3(insn) (((insn) >> 28) & 0xf)
-#define VRX_rxb(insn) (((insn) >> 24) & 0xf)
+#define V_rxb(insn) (((insn) >> 24) & 0xf)
 #define VRR_v1(insn) (((insn) >> 52) & 0xf)
 #define VRR_v2(insn) (((insn) >> 48) & 0xf)
 #define VRR_r2(insn) (((insn) >> 48) & 0xf)
@@ -196,89 +191,32 @@ typedef enum {
 #define VRR_m5(insn) (((insn) >> 36) & 0xf)
 #define VRR_m4(insn) (((insn) >> 28) & 0xf)
 #define VRR_v4(insn) (((insn) >> 28) & 0xf)
-#define VRR_rxb(insn) (((insn) >> 24) & 0xf)
 #define VRRa_v1(insn) (((insn) >> 52) & 0xf)
 #define VRRa_v2(insn) (((insn) >> 48) & 0xf)
 #define VRRa_v3(insn) (((insn) >> 44) & 0xf)
 #define VRRa_m5(insn) (((insn) >> 36) & 0xf)
 #define VRRa_m4(insn) (((insn) >> 32) & 0xf)
 #define VRRa_m3(insn) (((insn) >> 28) & 0xf)
-#define VRRa_rxb(insn) (((insn) >> 24) & 0xf)
 #define VRRd_v1(insn) (((insn) >> 52) & 0xf)
 #define VRRd_v2(insn) (((insn) >> 48) & 0xf)
 #define VRRd_v3(insn) (((insn) >> 44) & 0xf)
 #define VRRd_m5(insn) (((insn) >> 40) & 0xf)
 #define VRRd_m6(insn) (((insn) >> 36) & 0xf)
 #define VRRd_v4(insn) (((insn) >> 28) & 0xf)
-#define VRRd_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRRe_v1(insn) (((insn) >> 52) & 0xf)
-#define VRRe_v2(insn) (((insn) >> 48) & 0xf)
-#define VRRe_v3(insn) (((insn) >> 44) & 0xf)
-#define VRRe_m6(insn) (((insn) >> 40) & 0xf)
-#define VRRe_m5(insn) (((insn) >> 32) & 0xf)
-#define VRRe_v4(insn) (((insn) >> 28) & 0xf)
-#define VRRe_rxb(insn) (((insn) >> 24) & 0xf)
 #define VRIa_v1(insn) (((insn) >> 52) & 0xf)
 #define VRIa_v3(insn) (((insn) >> 48) & 0xf)
 #define VRIa_i2(insn) (((insn) >> 32) & 0xffff)
 #define VRIa_m3(insn) (((insn) >> 28) & 0xf)
-#define VRIa_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRIb_v1(insn) (((insn) >> 52) & 0xf)
-#define VRIb_i2(insn) (((insn) >> 40) & 0xff)
-#define VRIb_i3(insn) (((insn) >> 32) & 0xff)
-#define VRIb_m4(insn) (((insn) >> 28) & 0xf)
-#define VRIb_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRIc_v1(insn) (((insn) >> 52) & 0xf)
-#define VRIc_v3(insn) (((insn) >> 48) & 0xf)
-#define VRIc_i2(insn) (((insn) >> 32) & 0xffff)
-#define VRIc_m4(insn) (((insn) >> 28) & 0xf)
-#define VRIc_rxb(insn) (((insn) >> 24) & 0xf)
 #define VRId_v1(insn) (((insn) >> 52) & 0xf)
 #define VRId_v2(insn) (((insn) >> 48) & 0xf)
 #define VRId_v3(insn) (((insn) >> 44) & 0xf)
 #define VRId_i4(insn) (((insn) >> 32) & 0xff)
 #define VRId_m5(insn) (((insn) >> 28) & 0xf)
-#define VRId_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRIe_v1(insn) (((insn) >> 52) & 0xf)
-#define VRIe_v2(insn) (((insn) >> 48) & 0xf)
-#define VRIe_i3(insn) (((insn) >> 36) & 0xfff)
-#define VRIe_m5(insn) (((insn) >> 32) & 0xf)
-#define VRIe_m4(insn) (((insn) >> 28) & 0xf)
-#define VRIe_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRSa_v1(insn) (((insn) >> 52) & 0xf)
-#define VRSa_v3(insn) (((insn) >> 48) & 0xf)
-#define VRSa_b2(insn) (((insn) >> 44) & 0xf)
-#define VRSa_d2(insn) (((insn) >> 32) & 0xfff)
-#define VRSa_m4(insn) (((insn) >> 28) & 0xf)
-#define VRSa_rxb(insn) (((insn) >> 24) & 0xf)
 #define VRSb_v1(insn) (((insn) >> 52) & 0xf)
 #define VRSb_r3(insn) (((insn) >> 48) & 0xf)
 #define VRSb_b2(insn) (((insn) >> 44) & 0xf)
 #define VRSb_d2(insn) (((insn) >> 32) & 0xfff)
 #define VRSb_m4(insn) (((insn) >> 28) & 0xf)
-#define VRSb_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRSc_r1(insn) (((insn) >> 52) & 0xf)
-#define VRSc_v3(insn) (((insn) >> 48) & 0xf)
-#define VRSc_b2(insn) (((insn) >> 44) & 0xf)
-#define VRSc_d2(insn) (((insn) >> 32) & 0xfff)
-#define VRSc_m4(insn) (((insn) >> 28) & 0xf)
-#define VRSc_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRSd_r3(insn) (((insn) >> 48) & 0xf)
-#define VRSd_b2(insn) (((insn) >> 44) & 0xf)
-#define VRSd_d2(insn) (((insn) >> 32) & 0xfff)
-#define VRSd_v1(insn) (((insn) >> 28) & 0xf)
-#define VRSd_rxb(insn) (((insn) >> 24) & 0xf)
-#define VSI_i3(insn) (((insn) >> 48) & 0xff)
-#define VSI_b2(insn) (((insn) >> 44) & 0xf)
-#define VSI_d2(insn) (((insn) >> 32) & 0xfff)
-#define VSI_v1(insn) (((insn) >> 28) & 0xf)
-#define VSI_rxb(insn) (((insn) >> 24) & 0xf)
-#define VRV_v1(insn) (((insn) >> 52) & 0xf)
-#define VRV_x2(insn) (((insn) >> 48) & 0xf)
-#define VRV_b2(insn) (((insn) >> 44) & 0xf)
-#define VRV_d2(insn) (((insn) >> 32) & 0xfff)
-#define VRV_m3(insn) (((insn) >> 28) & 0xf)
-#define VRV_rxb(insn) (((insn) >> 24) & 0xf)
 
 
 /*------------------------------------------------------------*/
@@ -2989,9 +2927,14 @@ s390_format_SIL(void (*irgen)(UShort i2, IRTemp op1addr), ULong ovl)
 }
 
 static void
-s390_format_VRX(void (*irgen)(UChar v1, IRTemp op2addr, UChar m3),
-                UChar v1, UChar x2, UChar b2, UShort d2, UChar m3, UChar rxb)
+s390_format_VRX(void (*irgen)(UChar v1, IRTemp op2addr, UChar m3), ULong ovl)
 {
+   UChar  v1      = (ovl >> 52) & 0xf;
+   UChar  x2      = (ovl >> 48) & 0xf;
+   UChar  b2      = (ovl >> 44) & 0xf;
+   UShort d2      = (ovl >> 32) & 0xfff;
+   UChar  m3      = (ovl >> 28) & 0xf;
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3009,9 +2952,12 @@ s390_format_VRX(void (*irgen)(UChar v1, IRTemp op2addr, UChar m3),
 
 
 static void
-s390_format_VRR_VV(void (*irgen)(UChar v1, UChar v2),
-                   UChar v1, UChar v2, UChar rxb)
+s390_format_VRR_VV(void (*irgen)(UChar v1, UChar v2), ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar v2  = VRR_v2(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3024,9 +2970,13 @@ s390_format_VRR_VV(void (*irgen)(UChar v1, UChar v2),
 
 
 static void
-s390_format_VRR_VVV(void (*irgen)(UChar v1, UChar v2, UChar v3),
-                    UChar v1, UChar v2, UChar v3, UChar rxb)
+s390_format_VRR_VVV(void (*irgen)(UChar v1, UChar v2, UChar v3), ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar v2  = VRR_v2(ovl);
+   UChar v3  = VRR_v3(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3038,11 +2988,16 @@ s390_format_VRR_VVV(void (*irgen)(UChar v1, UChar v2, UChar v3),
    irgen(v1, v2, v3);
 }
 
-
 static void
 s390_format_VRR_VVVM(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4),
-                     UChar v1, UChar v2, UChar v3, UChar m4, UChar rxb)
+                     ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar v2  = VRR_v2(ovl);
+   UChar v3  = VRR_v3(ovl);
+   UChar m4  = VRR_m4(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3054,11 +3009,17 @@ s390_format_VRR_VVVM(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4),
    irgen(v1, v2, v3, m4);
 }
 
-
 static void
-s390_format_VRR_VVVMM(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4, UChar m5),
-                      UChar v1, UChar v2, UChar v3, UChar m4, UChar m5, UChar rxb)
+s390_format_VRR_VVVMM(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4, UChar m5), ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar v2  = VRR_v2(ovl);
+   UChar v3  = VRR_v3(ovl);
+   UChar m4  = VRR_m4(ovl);
+   UChar m5  = VRR_m5(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3070,11 +3031,16 @@ s390_format_VRR_VVVMM(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4, UCha
    irgen(v1, v2, v3, m4, m5);
 }
 
-
 static void
 s390_format_VRR_VVVV(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar v4),
-                     UChar v1, UChar v2, UChar v3, UChar v4, UChar rxb)
+                     ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar v2  = VRR_v2(ovl);
+   UChar v3  = VRR_v3(ovl);
+   UChar v4  = VRR_v4(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3087,11 +3053,14 @@ s390_format_VRR_VVVV(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar v4),
    irgen(v1, v2, v3, v4);
 }
 
-
 static void
-s390_format_VRR_VRR(void (*irgen)(UChar v1, UChar r2, UChar r3),
-                    UChar v1, UChar r2, UChar r3, UChar rxb)
+s390_format_VRR_VRR(void (*irgen)(UChar v1, UChar r2, UChar r3), ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar r2  = VRR_r2(ovl);
+   UChar r3  = VRR_r3(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3103,9 +3072,13 @@ s390_format_VRR_VRR(void (*irgen)(UChar v1, UChar r2, UChar r3),
 
 
 static void
-s390_format_VRR_VVM(void (*irgen)(UChar v1, UChar v2, UChar m3),
-                    UChar v1, UChar v2, UChar m3, UChar rxb)
+s390_format_VRR_VVM(void (*irgen)(UChar v1, UChar v2, UChar m3), ULong ovl)
 {
+   UChar v1  = VRRa_v1(ovl);
+   UChar v2  = VRRa_v2(ovl);
+   UChar m3  = VRRa_m3(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3118,9 +3091,12 @@ s390_format_VRR_VVM(void (*irgen)(UChar v1, UChar v2, UChar m3),
 
 
 static void
-s390_format_VRIa0(void (*irgen)(UChar v1, UShort i2),
-                  UChar v1, UShort i2, UChar rxb)
+s390_format_VRIa0(void (*irgen)(UChar v1, UShort i2), ULong ovl)
 {
+   UChar  v1  = VRIa_v1(ovl);
+   UShort i2  = VRIa_i2(ovl);
+   UChar  rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3133,8 +3109,14 @@ s390_format_VRIa0(void (*irgen)(UChar v1, UShort i2),
 
 static void
 s390_format_VRIb(void (*irgen)(UChar v1, UChar i2, UChar i3, UChar m4),
-                 UChar v1, UChar i2, UChar i3, UChar m4, UChar rxb)
+                 ULong ovl)
 {
+   UChar  v1  = (ovl >> 52) & 0xf;
+   UShort i2  = (ovl >> 40) & 0xff;
+   UChar  i3  = (ovl >> 32) & 0xff;
+   UChar  m4  = (ovl >> 28) & 0xf;
+   UChar  rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3146,9 +3128,13 @@ s390_format_VRIb(void (*irgen)(UChar v1, UChar i2, UChar i3, UChar m4),
 
 
 static void
-s390_format_VRIa(void (*irgen)(UChar v1, UShort i2, UChar m3),
-                 UChar v1, UShort i2, UChar m3, UChar rxb)
+s390_format_VRIa(void (*irgen)(UChar v1, UShort i2, UChar m3), ULong ovl)
 {
+   UChar  v1  = VRIa_v1(ovl);
+   UShort i2  = VRIa_i2(ovl);
+   UChar  m3  = VRIa_m3(ovl);
+   UChar  rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3161,8 +3147,14 @@ s390_format_VRIa(void (*irgen)(UChar v1, UShort i2, UChar m3),
 
 static void
 s390_format_VRIc(void (*irgen)(UChar v1, UChar v3, UShort i2, UChar m4),
-                 UChar v1, UChar v3, UShort i2, UChar m4, UChar rxb)
+                 ULong ovl)
 {
+   UChar  v1  = (ovl >> 52) & 0xf;
+   UChar  v3  = (ovl >> 48) & 0xf;
+   UShort i2  = (ovl >> 32) & 0xffff;
+   UChar  m4  = (ovl >> 28) & 0xf;
+   UChar  rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3174,9 +3166,16 @@ s390_format_VRIc(void (*irgen)(UChar v1, UChar v3, UShort i2, UChar m4),
 }
 
 static void
-s390_format_VRIe(void (*irgen)(UChar v1, UChar v2, UShort i3, UChar m4, UChar m5),
-                 UChar v1, UChar v2, UShort i3, UChar m4, UChar m5, UChar rxb)
+s390_format_VRIe(
+   void (*irgen)(UChar v1, UChar v2, UShort i3, UChar m4, UChar m5), ULong ovl)
 {
+   UChar  v1  = (ovl >> 52) & 0xf;
+   UChar  v2  = (ovl >> 48) & 0xf;
+   UShort i3  = (ovl >> 36) & 0xfff;
+   UChar  m4  = (ovl >> 28) & 0xf;
+   UChar  m5  = (ovl >> 32) & 0xf;
+   UChar  rxb = V_rxb(ovl);
+
    if (!s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3189,8 +3188,14 @@ s390_format_VRIe(void (*irgen)(UChar v1, UChar v2, UShort i3, UChar m4, UChar m5
 
 static void
 s390_format_VRSc(void (*irgen)(UChar r1, IRTemp op2addr, UChar v3, UChar m4),
-                 UChar r1, UChar b2, UShort d2, UChar v3, UChar m4, UChar rxb)
+                 ULong ovl)
 {
+   UChar  r1      = (ovl >> 52) & 0xf;
+   UChar  b2      = (ovl >> 44) & 0xf;
+   UShort d2      = (ovl >> 32) & 0xfff;
+   UChar  v3      = (ovl >> 48) & 0xf;
+   UChar  m4      = (ovl >> 28) & 0xf;
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3206,9 +3211,13 @@ s390_format_VRSc(void (*irgen)(UChar r1, IRTemp op2addr, UChar v3, UChar m4),
 }
 
 static void
-s390_format_VRSd(void (*irgen)(UChar v1, UChar r3, IRTemp op2addr),
-                 UChar v1, UChar r3, UChar b2, UShort d2, UChar rxb)
+s390_format_VRSd(void (*irgen)(UChar v1, UChar r3, IRTemp op2addr), ULong ovl)
 {
+   UChar  r3      = (ovl >> 48) & 0xf;
+   UChar  b2      = (ovl >> 44) & 0xf;
+   UShort d2      = (ovl >> 32) & 0xfff;
+   UChar  v1      = (ovl >> 28) & 0xf;
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3226,8 +3235,14 @@ s390_format_VRSd(void (*irgen)(UChar v1, UChar r3, IRTemp op2addr),
 
 static void
 s390_format_VRSa(void (*irgen)(UChar v1, IRTemp op2addr, UChar v3, UChar m4),
-                 UChar v1, UChar b2, UShort d2, UChar v3, UChar m4, UChar rxb)
+                 ULong ovl)
 {
+   UChar  v1      = (ovl >> 52) & 0xf;
+   UChar  b2      = (ovl >> 44) & 0xf;
+   UShort d2      = (ovl >> 32) & 0xfff;
+   UChar  v3      = (ovl >> 48) & 0xf;
+   UChar  m4      = (ovl >> 28) & 0xf;
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3246,8 +3261,14 @@ s390_format_VRSa(void (*irgen)(UChar v1, IRTemp op2addr, UChar v3, UChar m4),
 
 static void
 s390_format_VRSbm(void (*irgen)(UChar v1, IRTemp op2addr, UChar r3, UChar m4),
-                  UChar v1, UChar b2, UShort d2, UChar r3, UChar m4, UChar rxb)
-{
+                  ULong ovl)
+{
+   UChar  v1      = VRSb_v1(ovl);
+   UChar  b2      = VRSb_b2(ovl);
+   UShort d2      = VRSb_d2(ovl);
+   UChar  r3      = VRSb_r3(ovl);
+   UChar  m4      = VRSb_m4(ovl);
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3264,9 +3285,13 @@ s390_format_VRSbm(void (*irgen)(UChar v1, IRTemp op2addr, UChar r3, UChar m4),
 
 
 static void
-s390_format_VRSb(void (*irgen)(UChar v1, IRTemp op2addr, UChar r3),
-                 UChar v1, UChar b2, UShort d2, UChar r3, UChar rxb)
+s390_format_VRSb(void (*irgen)(UChar v1, IRTemp op2addr, UChar r3), ULong ovl)
 {
+   UChar  v1      = VRSb_v1(ovl);
+   UChar  b2      = VRSb_b2(ovl);
+   UShort d2      = VRSb_d2(ovl);
+   UChar  r3      = VRSb_r3(ovl);
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3283,10 +3308,15 @@ s390_format_VRSb(void (*irgen)(UChar v1, IRTemp op2addr, UChar r3),
 
 
 static void
-s390_format_VRV(void (*irgen)(UChar v1, IRTemp op2addr, UChar m3),
-                UChar v1, UChar v2, UChar b2, UShort d2, UChar m3, UChar rxb,
+s390_format_VRV(void (*irgen)(UChar v1, IRTemp op2addr, UChar m3), ULong ovl,
                 IRType type)
 {
+   UChar  v1      = (ovl >> 52) & 0xf;
+   UChar  v2      = (ovl >> 48) & 0xf;
+   UChar  b2      = (ovl >> 44) & 0xf;
+   UShort d2      = (ovl >> 32) & 0xfff;
+   UChar  m3      = (ovl >> 28) & 0xf;
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (! s390_host_has_vx) {
@@ -3313,13 +3343,44 @@ s390_format_VRV(void (*irgen)(UChar v1, IRTemp op2addr, UChar m3),
    irgen(v1, op2addr, m3);
 }
 
+static void
+s390_format_VRRd_VVVVMM(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar v4, UChar m5, UChar m6),
+   ULong ovl)
+{
+   UChar v1  = VRRd_v1(ovl);
+   UChar v2  = VRRd_v2(ovl);
+   UChar v3  = VRRd_v3(ovl);
+   UChar v4  = VRRd_v4(ovl);
+   UChar m5  = VRRd_m5(ovl);
+   UChar m6  = VRRd_m6(ovl);
+   UChar rxb = V_rxb(ovl);
+
+   if (! s390_host_has_vx) {
+      emulation_failure(EmFail_S390X_vx);
+      return;
+   }
+
+   v1  = s390_vr_getVRindex(v1, 1, rxb);
+   v2  = s390_vr_getVRindex(v2, 2, rxb);
+   v3  = s390_vr_getVRindex(v3, 3, rxb);
+   v4  = s390_vr_getVRindex(v4, 4, rxb);
+   irgen(v1, v2, v3, v4, m5, m6);
+}
 
 static void
-s390_format_VRR_VVVVMM(void (*irgen)(UChar v1, UChar v2, UChar v3,
-                                     UChar v4, UChar m5, UChar m6),
-                       UChar v1, UChar v2, UChar v3, UChar v4, UChar m5,
-                       UChar m6, UChar rxb)
+s390_format_VRRe_VVVVMM(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar v4, UChar m5, UChar m6),
+   ULong ovl)
 {
+   UChar v1  = (ovl >> 52) & 0xf;
+   UChar v2  = (ovl >> 48) & 0xf;
+   UChar v3  = (ovl >> 44) & 0xf;
+   UChar m6  = (ovl >> 40) & 0xf;
+   UChar m5  = (ovl >> 32) & 0xf;
+   UChar v4  = (ovl >> 28) & 0xf;
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3334,10 +3395,15 @@ s390_format_VRR_VVVVMM(void (*irgen)(UChar v1, UChar v2, UChar v3,
 
 
 static void
-s390_format_VRR_VVMM(void (*irgen)(UChar v1, UChar v2, UChar m3,
-                                   UChar m5),
-                     UChar v1, UChar v2, UChar m3, UChar m5, UChar rxb)
+s390_format_VRR_VVMM(void (*irgen)(UChar v1, UChar v2, UChar m3, UChar m5),
+                     ULong ovl)
 {
+   UChar v1  = VRR_v1(ovl);
+   UChar v2  = VRR_v2(ovl);
+   UChar m3  = VRR_m4(ovl);
+   UChar m5  = VRR_m5(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3348,11 +3414,17 @@ s390_format_VRR_VVMM(void (*irgen)(UChar v1, UChar v2, UChar m3,
    irgen(v1, v2, m3, m5);
 }
 
-
 static void
-s390_format_VRIdm(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar i4, UChar m5),
-                  UChar v1, UChar v2, UChar v3, UChar i4, UChar m5, UChar rxb)
+s390_format_VRIdm(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar i4, UChar m5), ULong ovl)
 {
+   UChar v1  = VRId_v1(ovl);
+   UChar v2  = VRId_v2(ovl);
+   UChar v3  = VRId_v3(ovl);
+   UChar i4  = VRId_i4(ovl);
+   UChar m5  = VRId_m5(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3364,11 +3436,16 @@ s390_format_VRIdm(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar i4, UChar m5
    irgen(v1, v2, v3, i4, m5);
 }
 
-
 static void
 s390_format_VRId(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar i4),
-                 UChar v1, UChar v2, UChar v3, UChar i4, UChar rxb)
+                 ULong ovl)
 {
+   UChar v1  = VRId_v1(ovl);
+   UChar v2  = VRId_v2(ovl);
+   UChar v3  = VRId_v3(ovl);
+   UChar i4  = VRId_i4(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3380,13 +3457,17 @@ s390_format_VRId(void (*irgen)(UChar v1, UChar v2, UChar v3, UChar i4),
    irgen(v1, v2, v3, i4);
 }
 
-
 static void
-s390_format_VRRd_VVVVM(void (*irgen)(UChar v1, UChar v2, UChar v3,
-                                     UChar v4, UChar m5),
-                       UChar v1, UChar v2, UChar v3, UChar v4, UChar m5,
-                       UChar rxb)
+s390_format_VRRd_VVVVM(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar v4, UChar m5), ULong ovl)
 {
+   UChar v1  = VRRd_v1(ovl);
+   UChar v2  = VRRd_v2(ovl);
+   UChar v3  = VRRd_v3(ovl);
+   UChar v4  = VRRd_v4(ovl);
+   UChar m5  = VRRd_m5(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (! s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3399,13 +3480,17 @@ s390_format_VRRd_VVVVM(void (*irgen)(UChar v1, UChar v2, UChar v3,
    irgen(v1, v2, v3, v4, m5);
 }
 
-
 static void
-s390_format_VRRa_VVMMM(void (*irgen)(UChar v1, UChar v2, UChar m3,
-                                     UChar m4, UChar m5),
-                       UChar v1, UChar v2, UChar m3, UChar m4, UChar m5,
-                       UChar rxb)
+s390_format_VRRa_VVMMM(
+   void (*irgen)(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5), ULong ovl)
 {
+   UChar v1  = VRRa_v1(ovl);
+   UChar v2  = VRRa_v2(ovl);
+   UChar m3  = VRRa_m3(ovl);
+   UChar m4  = VRRa_m4(ovl);
+   UChar m5  = VRRa_m5(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (!s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3417,11 +3502,16 @@ s390_format_VRRa_VVMMM(void (*irgen)(UChar v1, UChar v2, UChar m3,
 }
 
 static void
-s390_format_VRRa_VVVMM(void (*irgen)(UChar v1, UChar v2, UChar v3,
-                                     UChar m4, UChar m5),
-                       UChar v1, UChar v2, UChar v3, UChar m4, UChar m5,
-                       UChar rxb)
+s390_format_VRRa_VVVMM(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4, UChar m5), ULong ovl)
 {
+   UChar v1  = VRRa_v1(ovl);
+   UChar v2  = VRRa_v2(ovl);
+   UChar v3  = VRRa_v3(ovl);
+   UChar m4  = VRRa_m3(ovl);
+   UChar m5  = VRRa_m4(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (!s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3434,10 +3524,15 @@ s390_format_VRRa_VVVMM(void (*irgen)(UChar v1, UChar v2, UChar v3,
 }
 
 static void
-s390_format_VRRa_VVMM(void (*irgen)(UChar v1, UChar v2, UChar m3,
-                                            UChar m4),
-                      UChar v1, UChar v2, UChar m3, UChar m4, UChar rxb)
+s390_format_VRRa_VVMM(void (*irgen)(UChar v1, UChar v2, UChar m3, UChar m4),
+                      ULong ovl)
 {
+   UChar v1  = VRRa_v1(ovl);
+   UChar v2  = VRRa_v2(ovl);
+   UChar m3  = VRRa_m3(ovl);
+   UChar m4  = VRRa_m4(ovl);
+   UChar rxb = V_rxb(ovl);
+
    if (!s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3449,29 +3544,18 @@ s390_format_VRRa_VVMM(void (*irgen)(UChar v1, UChar v2, UChar m3,
 }
 
 static void
-s390_format_VRRa_VVVMMM(void (*irgen)(UChar v1, UChar v2, UChar v3,
-                                      UChar m4, UChar m5, UChar m6),
-                        UChar v1, UChar v2, UChar v3, UChar m4, UChar m5,
-                        UChar m6, UChar rxb)
+s390_format_VRRa_VVVMMM(
+   void (*irgen)(UChar v1, UChar v2, UChar v3, UChar m4, UChar m5, UChar m6),
+   ULong ovl)
 {
-   if (!s390_host_has_vx) {
-      emulation_failure(EmFail_S390X_vx);
-      return;
-   }
-
-   v1 = s390_vr_getVRindex(v1, 1, rxb);
-   v2 = s390_vr_getVRindex(v2, 2, rxb);
-   v3 = s390_vr_getVRindex(v3, 3, rxb);
-   irgen(v1, v2, v3, m4, m5, m6);
-}
+   UChar v1  = VRRa_v1(ovl);
+   UChar v2  = VRRa_v2(ovl);
+   UChar v3  = VRRa_v3(ovl);
+   UChar m4  = VRRa_m3(ovl);
+   UChar m5  = VRRa_m4(ovl);
+   UChar m6  = VRRa_m5(ovl);
+   UChar rxb = V_rxb(ovl);
 
-
-static void
-s390_format_VRRa_VVVMMM2(void (*irgen)(UChar v1, UChar v2, UChar v3,
-                                       UChar m4, UChar m5, UChar m6),
-                         UChar v1, UChar v2, UChar v3, UChar m4, UChar m5,
-                         UChar m6, UChar rxb)
-{
    if (!s390_host_has_vx) {
       emulation_failure(EmFail_S390X_vx);
       return;
@@ -3484,9 +3568,13 @@ s390_format_VRRa_VVVMMM2(void (*irgen)(UChar v1, UChar v2, UChar v3,
 }
 
 static void
-s390_format_VSI(void (*irgen)(UChar v1, IRTemp op2addr, UChar i3),
-                UChar i3, UChar b2, UShort d2, UChar v1, UChar rxb)
+s390_format_VSI(void (*irgen)(UChar v1, IRTemp op2addr, UChar i3), ULong ovl)
 {
+   UChar  i3      = (ovl >> 48) & 0xff;
+   UChar  b2      = (ovl >> 44) & 0xf;
+   UShort d2      = (ovl >> 32) & 0xfff;
+   UChar  v1      = (ovl >> 28) & 0xf;
+   UChar  rxb     = V_rxb(ovl);
    IRTemp op2addr = newTemp(Ity_I64);
 
    if (!s390_host_has_vx) {
@@ -19038,84 +19126,39 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
                            goto ok;
    case 0xe300000000cfULL: s390_format_RXY(s390_irgen_CLHF, ovl);
                            goto ok;
+   case 0xe60000000001ULL: s390_format_VRX(s390_irgen_VLEBRH, ovl);
+                           goto ok;
+   case 0xe60000000002ULL: s390_format_VRX(s390_irgen_VLEBRG, ovl);
+                           goto ok;
+   case 0xe60000000003ULL: s390_format_VRX(s390_irgen_VLEBRF, ovl);
                            goto ok;
-   case 0xe60000000001ULL: s390_format_VRX(s390_irgen_VLEBRH, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000002ULL: s390_format_VRX(s390_irgen_VLEBRG, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000003ULL: s390_format_VRX(s390_irgen_VLEBRF, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000004ULL: s390_format_VRX(s390_irgen_VLLEBRZ, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000005ULL: s390_format_VRX(s390_irgen_VLBRREP, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000006ULL: s390_format_VRX(s390_irgen_VLBR, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000007ULL: s390_format_VRX(s390_irgen_VLER, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe60000000009ULL: s390_format_VRX(s390_irgen_VSTEBRH, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe6000000000aULL: s390_format_VRX(s390_irgen_VSTEBRG, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe6000000000bULL: s390_format_VRX(s390_irgen_VSTEBRF, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe6000000000eULL: s390_format_VRX(s390_irgen_VSTBR, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe6000000000fULL: s390_format_VRX(s390_irgen_VSTER, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
+   case 0xe60000000004ULL: s390_format_VRX(s390_irgen_VLLEBRZ, ovl);
+                           goto ok;
+   case 0xe60000000005ULL: s390_format_VRX(s390_irgen_VLBRREP, ovl);
+                           goto ok;
+   case 0xe60000000006ULL: s390_format_VRX(s390_irgen_VLBR, ovl);
+                           goto ok;
+   case 0xe60000000007ULL: s390_format_VRX(s390_irgen_VLER, ovl);
+                           goto ok;
+   case 0xe60000000009ULL: s390_format_VRX(s390_irgen_VSTEBRH, ovl);
+                           goto ok;
+   case 0xe6000000000aULL: s390_format_VRX(s390_irgen_VSTEBRG, ovl);
+                           goto ok;
+   case 0xe6000000000bULL: s390_format_VRX(s390_irgen_VSTEBRF, ovl);
+                           goto ok;
+   case 0xe6000000000eULL: s390_format_VRX(s390_irgen_VSTBR, ovl);
+                           goto ok;
+   case 0xe6000000000fULL: s390_format_VRX(s390_irgen_VSTER, ovl);
                            goto ok;
    case 0xe60000000034ULL: /* VPKZ */ goto unimplemented;
-   case 0xe60000000035ULL: s390_format_VSI(s390_irgen_VLRL, VSI_i3(ovl),
-                                           VSI_b2(ovl), VSI_d2(ovl),
-                                           VSI_v1(ovl), VSI_rxb(ovl));
+   case 0xe60000000035ULL: s390_format_VSI(s390_irgen_VLRL, ovl);
                            goto ok;
-   case 0xe60000000037ULL: s390_format_VRSd(s390_irgen_VLRLR, VRSd_v1(ovl),
-                                            VRSd_r3(ovl), VRSd_b2(ovl),
-                                            VRSd_d2(ovl), VRSd_rxb(ovl));
+   case 0xe60000000037ULL: s390_format_VRSd(s390_irgen_VLRLR, ovl);
                            goto ok;
    case 0xe6000000003cULL: /* VUPKZ */ goto unimplemented;
-   case 0xe6000000003dULL: s390_format_VSI(s390_irgen_VSTRL, VSI_i3(ovl),
-                                           VSI_b2(ovl), VSI_d2(ovl),
-                                           VSI_v1(ovl), VSI_rxb(ovl));
+   case 0xe6000000003dULL: s390_format_VSI(s390_irgen_VSTRL, ovl);
                            goto ok;
-   case 0xe6000000003fULL: s390_format_VRSd(s390_irgen_VSTRLR, VRSd_v1(ovl),
-                                            VRSd_r3(ovl), VRSd_b2(ovl),
-                                            VRSd_d2(ovl), VRSd_rxb(ovl));
+   case 0xe6000000003fULL: s390_format_VRSd(s390_irgen_VSTRLR, ovl);
                            goto ok;
    case 0xe60000000049ULL: /* VLIP */ goto unimplemented;
    case 0xe6000000004aULL: /* VCVDQ */ goto unimplemented;
@@ -19124,22 +19167,14 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
    case 0xe60000000051ULL: /* VCLZDP */ goto unimplemented;
    case 0xe60000000052ULL: /* VCVBG */ goto unimplemented;
    case 0xe60000000054ULL: /* VUPKZH */ goto unimplemented;
-   case 0xe60000000055ULL: s390_format_VRRa_VVMM(s390_irgen_VCNF,
-                                                 VRRa_v1(ovl), VRRa_v2(ovl),
-                                                 VRRa_m3(ovl), VRRa_m4(ovl),
-                                                 VRRa_rxb(ovl));  goto ok;
-   case 0xe60000000056ULL: s390_format_VRRa_VVMM(s390_irgen_VCLFNH,
-                                                 VRRa_v1(ovl), VRRa_v2(ovl),
-                                                 VRRa_m3(ovl), VRRa_m4(ovl),
-                                                 VRRa_rxb(ovl));  goto ok;
-   case 0xe6000000005dULL: s390_format_VRRa_VVMM(s390_irgen_VCFN,
-                                                 VRRa_v1(ovl), VRRa_v2(ovl),
-                                                 VRRa_m3(ovl), VRRa_m4(ovl),
-                                                 VRRa_rxb(ovl));  goto ok;
-   case 0xe6000000005eULL: s390_format_VRRa_VVMM(s390_irgen_VCLFNL,
-                                                 VRRa_v1(ovl), VRRa_v2(ovl),
-                                                 VRRa_m3(ovl), VRRa_m4(ovl),
-                                                 VRRa_rxb(ovl));  goto ok;
+   case 0xe60000000055ULL: s390_format_VRRa_VVMM(s390_irgen_VCNF, ovl);
+                           goto ok;
+   case 0xe60000000056ULL: s390_format_VRRa_VVMM(s390_irgen_VCLFNH, ovl);
+                           goto ok;
+   case 0xe6000000005dULL: s390_format_VRRa_VVMM(s390_irgen_VCFN, ovl);
+                           goto ok;
+   case 0xe6000000005eULL: s390_format_VRRa_VVMM(s390_irgen_VCLFNL, ovl);
+                           goto ok;
    case 0xe60000000058ULL: /* VCVD */ goto unimplemented;
    case 0xe60000000059ULL: /* VSRP */ goto unimplemented;
    case 0xe6000000005aULL: /* VCVDG */ goto unimplemented;
@@ -19150,11 +19185,8 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
    case 0xe60000000071ULL: /* VAP */ goto unimplemented;
    case 0xe60000000072ULL: /* VSRPR */ goto unimplemented;
    case 0xe60000000073ULL: /* VSP */ goto unimplemented;
-   case 0xe60000000075ULL: s390_format_VRRa_VVVMM(s390_irgen_VCRNF,
-                                                  VRRa_v1(ovl), VRRa_v2(ovl),
-                                                  VRRa_v3(ovl),
-                                                  VRRa_m3(ovl), VRRa_m4(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
+   case 0xe60000000075ULL: s390_format_VRRa_VVVMM(s390_irgen_VCRNF, ovl);
+                           goto ok;
    case 0xe60000000077ULL: /* VCP */ goto unimplemented;
    case 0xe60000000078ULL: /* VMP */ goto unimplemented;
    case 0xe60000000079ULL: /* VMSP */ goto unimplemented;
@@ -19165,588 +19197,315 @@ s390_decode_6byte_and_irgen(const UChar *bytes)
    case 0xe6000000007dULL: /* VCSPH */ goto unimplemented;
    case 0xe6000000007eULL: /* VSDP */ goto unimplemented;
    case 0xe6000000007fULL: /* VTZ */ goto unimplemented;
-   case 0xe70000000000ULL: s390_format_VRX(s390_irgen_VLEB, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000001ULL: s390_format_VRX(s390_irgen_VLEH, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000002ULL: s390_format_VRX(s390_irgen_VLEG, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000003ULL: s390_format_VRX(s390_irgen_VLEF, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000004ULL: s390_format_VRX(s390_irgen_VLLEZ, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000005ULL: s390_format_VRX(s390_irgen_VLREP, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000006ULL: s390_format_VRX(s390_irgen_VL, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000007ULL: s390_format_VRX(s390_irgen_VLBB, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000008ULL: s390_format_VRX(s390_irgen_VSTEB, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000009ULL: s390_format_VRX(s390_irgen_VSTEH, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe7000000000aULL: s390_format_VRX(s390_irgen_VSTEG, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe7000000000bULL: s390_format_VRX(s390_irgen_VSTEF, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe7000000000eULL: s390_format_VRX(s390_irgen_VST, VRX_v1(ovl),
-                                           VRX_x2(ovl), VRX_b2(ovl),
-                                           VRX_d2(ovl), VRX_m3(ovl),
-                                           VRX_rxb(ovl));
-                           goto ok;
-   case 0xe70000000012ULL: s390_format_VRV(s390_irgen_VGEG, VRV_v1(ovl),
-                                           VRV_x2(ovl), VRV_b2(ovl),
-                                           VRV_d2(ovl), VRV_m3(ovl),
-                                           VRV_rxb(ovl), Ity_I64);
-                           goto ok;
-   case 0xe70000000013ULL: s390_format_VRV(s390_irgen_VGEF, VRV_v1(ovl),
-                                           VRV_x2(ovl), VRV_b2(ovl),
-                                           VRV_d2(ovl), VRV_m3(ovl),
-                                           VRV_rxb(ovl), Ity_I32);
-                           goto ok;
-   case 0xe7000000001aULL: s390_format_VRV(s390_irgen_VSCEG, VRV_v1(ovl),
-                                           VRV_x2(ovl), VRV_b2(ovl),
-                                           VRV_d2(ovl), VRV_m3(ovl),
-                                           VRV_rxb(ovl), Ity_I64);
-                           goto ok;
-   case 0xe7000000001bULL: s390_format_VRV(s390_irgen_VSCEF, VRV_v1(ovl),
-                                           VRV_x2(ovl), VRV_b2(ovl),
-                                           VRV_d2(ovl), VRV_m3(ovl),
-                                           VRV_rxb(ovl), Ity_I32);
-                           goto ok;
-   case 0xe70000000021ULL: s390_format_VRSc(s390_irgen_VLGV, VRSc_r1(ovl),
-                                            VRSc_b2(ovl), VRSc_d2(ovl),
-                                            VRSc_v3(ovl), VRSc_m4(ovl),
-                                            VRSc_rxb(ovl));
-                           goto ok;
-   case 0xe70000000022ULL: s390_format_VRSbm(s390_irgen_VLVG, VRSb_v1(ovl),
-                                             VRSb_b2(ovl), VRSb_d2(ovl),
-                                             VRSb_r3(ovl), VRSb_m4(ovl),
-                                             VRSb_rxb(ovl));
+   case 0xe70000000000ULL: s390_format_VRX(s390_irgen_VLEB, ovl);
+                           goto ok;
+   case 0xe70000000001ULL: s390_format_VRX(s390_irgen_VLEH, ovl);
+                           goto ok;
+   case 0xe70000000002ULL: s390_format_VRX(s390_irgen_VLEG, ovl);
+                           goto ok;
+   case 0xe70000000003ULL: s390_format_VRX(s390_irgen_VLEF, ovl);
+                           goto ok;
+   case 0xe70000000004ULL: s390_format_VRX(s390_irgen_VLLEZ, ovl);
+                           goto ok;
+   case 0xe70000000005ULL: s390_format_VRX(s390_irgen_VLREP, ovl);
+                           goto ok;
+   case 0xe70000000006ULL: s390_format_VRX(s390_irgen_VL, ovl);
+                           goto ok;
+   case 0xe70000000007ULL: s390_format_VRX(s390_irgen_VLBB, ovl);
+                           goto ok;
+   case 0xe70000000008ULL: s390_format_VRX(s390_irgen_VSTEB, ovl);
+                           goto ok;
+   case 0xe70000000009ULL: s390_format_VRX(s390_irgen_VSTEH, ovl);
+                           goto ok;
+   case 0xe7000000000aULL: s390_format_VRX(s390_irgen_VSTEG, ovl);
+                           goto ok;
+   case 0xe7000000000bULL: s390_format_VRX(s390_irgen_VSTEF, ovl);
+                           goto ok;
+   case 0xe7000000000eULL: s390_format_VRX(s390_irgen_VST, ovl);
+                           goto ok;
+   case 0xe70000000012ULL: s390_format_VRV(s390_irgen_VGEG, ovl, Ity_I64);
+                           goto ok;
+   case 0xe70000000013ULL: s390_format_VRV(s390_irgen_VGEF, ovl, Ity_I32);
+                           goto ok;
+   case 0xe7000000001aULL: s390_format_VRV(s390_irgen_VSCEG, ovl, Ity_I64);
+                           goto ok;
+   case 0xe7000000001bULL: s390_format_VRV(s390_irgen_VSCEF, ovl, Ity_I32);
+                           goto ok;
+   case 0xe70000000021ULL: s390_format_VRSc(s390_irgen_VLGV, ovl);
+                           goto ok;
+   case 0xe70000000022ULL: s390_format_VRSbm(s390_irgen_VLVG, ovl);
                            goto ok;
    case 0xe70000000027ULL: s390_format_RXE(s390_irgen_LCBB, ovl);
                            goto ok;
-   case 0xe70000000030ULL: s390_format_VRSa(s390_irgen_VESL, VRSa_v1(ovl),
-                                            VRSa_b2(ovl), VRSa_d2(ovl),
-                                            VRSa_v3(ovl), VRSa_m4(ovl),
-                                            VRSa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000033ULL: s390_format_VRSa(s390_irgen_VERLL, VRSa_v1(ovl),
-                                            VRSa_b2(ovl), VRSa_d2(ovl),
-                                            VRSa_v3(ovl), VRSa_m4(ovl),
-                                            VRSa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000036ULL: s390_format_VRSa(s390_irgen_VLM, VRSa_v1(ovl),
-                                            VRSa_b2(ovl), VRSa_d2(ovl),
-                                            VRSa_v3(ovl), VRSa_m4(ovl),
-                                            VRSa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000037ULL: s390_format_VRSb(s390_irgen_VLL, VRSb_v1(ovl),
-                                            VRSb_b2(ovl), VRSb_d2(ovl),
-                                            VRSb_r3(ovl), VRSb_rxb(ovl));
-                           goto ok;
-   case 0xe70000000038ULL: s390_format_VRSa(s390_irgen_VESRL, VRSa_v1(ovl),
-                                            VRSa_b2(ovl), VRSa_d2(ovl),
-                                            VRSa_v3(ovl), VRSa_m4(ovl),
-                                            VRSa_rxb(ovl));
-                           goto ok;
-   case 0xe7000000003aULL: s390_format_VRSa(s390_irgen_VESRA, VRSa_v1(ovl),
-                                            VRSa_b2(ovl), VRSa_d2(ovl),
-                                            VRSa_v3(ovl), VRSa_m4(ovl),
-                                            VRSa_rxb(ovl));
-                           goto ok;
-   case 0xe7000000003eULL: s390_format_VRSa(s390_irgen_VSTM, VRSa_v1(ovl),
-                                            VRSa_b2(ovl), VRSa_d2(ovl),
-                                            VRSa_v3(ovl), VRSa_m4(ovl),
-                                            VRSa_rxb(ovl));
-                           goto ok;
-   case 0xe7000000003fULL: s390_format_VRSb(s390_irgen_VSTL, VRSb_v1(ovl),
-                                            VRSb_b2(ovl), VRSb_d2(ovl),
-                                            VRSb_r3(ovl), VRSb_rxb(ovl));
-                           goto ok;
-   case 0xe70000000040ULL: s390_format_VRIa(s390_irgen_VLEIB, VRIa_v1(ovl),
-                                            VRIa_i2(ovl), VRIa_m3(ovl),
-                                            VRIa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000041ULL: s390_format_VRIa(s390_irgen_VLEIH, VRIa_v1(ovl),
-                                            VRIa_i2(ovl), VRIa_m3(ovl),
-                                            VRIa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000042ULL: s390_format_VRIa(s390_irgen_VLEIG, VRIa_v1(ovl),
-                                            VRIa_i2(ovl), VRIa_m3(ovl),
-                                            VRIa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000043ULL: s390_format_VRIa(s390_irgen_VLEIF, VRIa_v1(ovl),
-                                            VRIa_i2(ovl), VRIa_m3(ovl),
-                                            VRIa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000044ULL: s390_format_VRIa0(s390_irgen_VGBM, VRIa_v1(ovl),
-                                             VRIa_i2(ovl), VRIa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000045ULL: s390_format_VRIa(s390_irgen_VREPI, VRIa_v1(ovl),
-                                            VRIa_i2(ovl), VRIa_m3(ovl),
-                                            VRIa_rxb(ovl));
-                           goto ok;
-   case 0xe70000000046ULL: s390_format_VRIb(s390_irgen_VGM, VRIb_v1(ovl),
-                                            VRIb_i2(ovl), VRIb_i3(ovl),
-                                            VRIb_m4(ovl), VRIb_rxb(ovl));
-                           goto ok;
-   case 0xe7000000004aULL: s390_format_VRIe(s390_irgen_VFTCI, VRIe_v1(ovl),
-                                            VRIe_v2(ovl), VRIe_i3(ovl),
-                                            VRIe_m4(ovl), VRIe_m5(ovl),
-                                            VRIe_rxb(ovl));
-                           goto ok;
-   case 0xe7000000004dULL: s390_format_VRIc(s390_irgen_VREP, VRIc_v1(ovl),
-                                            VRIc_v3(ovl), VRIc_i2(ovl),
-                                            VRIc_m4(ovl), VRIc_rxb(ovl));
-                           goto ok;
-   case 0xe70000000050ULL: s390_format_VRR_VVM(s390_irgen_VPOPCT, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000052ULL: s390_format_VRR_VVM(s390_irgen_VCTZ, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe70000000053ULL: s390_format_VRR_VVM(s390_irgen_VCLZ, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
+   case 0xe70000000030ULL: s390_format_VRSa(s390_irgen_VESL, ovl);
+                           goto ok;
+   case 0xe70000000033ULL: s390_format_VRSa(s390_irgen_VERLL, ovl);
+                           goto ok;
+   case 0xe70000000036ULL: s390_format_VRSa(s390_irgen_VLM, ovl);
+                           goto ok;
+   case 0xe70000000037ULL: s390_format_VRSb(s390_irgen_VLL, ovl);
+                           goto ok;
+   case 0xe70000000038ULL: s390_format_VRSa(s390_irgen_VESRL, ovl);
+                           goto ok;
+   case 0xe7000000003aULL: s390_format_VRSa(s390_irgen_VESRA, ovl);
+                           goto ok;
+   case 0xe7000000003eULL: s390_format_VRSa(s390_irgen_VSTM, ovl);
+                           goto ok;
+   case 0xe7000000003fULL: s390_format_VRSb(s390_irgen_VSTL, ovl);
+                           goto ok;
+   case 0xe70000000040ULL: s390_format_VRIa(s390_irgen_VLEIB, ovl);
+                           goto ok;
+   case 0xe70000000041ULL: s390_format_VRIa(s390_irgen_VLEIH, ovl);
+                           goto ok;
+   case 0xe70000000042ULL: s390_format_VRIa(s390_irgen_VLEIG, ovl);
+                           goto ok;
+   case 0xe70000000043ULL: s390_format_VRIa(s390_irgen_VLEIF, ovl);
+                           goto ok;
+   case 0xe70000000044ULL: s390_format_VRIa0(s390_irgen_VGBM, ovl);
+                           goto ok;
+   case 0xe70000000045ULL: s390_format_VRIa(s390_irgen_VREPI, ovl);
+                           goto ok;
+   case 0xe70000000046ULL: s390_format_VRIb(s390_irgen_VGM, ovl);
+                           goto ok;
+   case 0xe7000000004aULL: s390_format_VRIe(s390_irgen_VFTCI, ovl);
+                           goto ok;
+   case 0xe7000000004dULL: s390_format_VRIc(s390_irgen_VREP, ovl);
+                           goto ok;
+   case 0xe70000000050ULL: s390_format_VRR_VVM(s390_irgen_VPOPCT, ovl);
+                           goto ok;
+   case 0xe70000000052ULL: s390_format_VRR_VVM(s390_irgen_VCTZ, ovl);
+                           goto ok;
+   case 0xe70000000053ULL: s390_format_VRR_VVM(s390_irgen_VCLZ, ovl);
+                           goto ok;
    case 0xe70000000054ULL: /* VGEM */ goto unimplemented;
-   case 0xe70000000056ULL: s390_format_VRR_VV(s390_irgen_VLR, VRR_v1(ovl),
-                                              VRR_v2(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe7000000005cULL: s390_format_VRR_VVMM(s390_irgen_VISTR, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_m4(ovl),
-                                                VRR_m5(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe7000000005fULL: s390_format_VRR_VVM(s390_irgen_VSEG, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe70000000060ULL: s390_format_VRR_VVVM(s390_irgen_VMRL, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000061ULL: s390_format_VRR_VVVM(s390_irgen_VMRH, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000062ULL: s390_format_VRR_VRR(s390_irgen_VLVGP, VRR_v1(ovl),
-                                               VRR_r2(ovl), VRR_r3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000064ULL: s390_format_VRR_VVVM(s390_irgen_VSUM, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000065ULL: s390_format_VRR_VVVM(s390_irgen_VSUMG, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000066ULL: s390_format_VRR_VVV(s390_irgen_VCKSM, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000067ULL: s390_format_VRR_VVVM(s390_irgen_VSUMQ, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000068ULL: s390_format_VRR_VVV(s390_irgen_VN, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000069ULL: s390_format_VRR_VVV(s390_irgen_VNC, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000006aULL: s390_format_VRR_VVV(s390_irgen_VO, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000006bULL: s390_format_VRR_VVV(s390_irgen_VNO, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000006cULL: s390_format_VRR_VVV(s390_irgen_VNX, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000006dULL: s390_format_VRR_VVV(s390_irgen_VX, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000006eULL: s390_format_VRR_VVV(s390_irgen_VNN, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000006fULL: s390_format_VRR_VVV(s390_irgen_VOC, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000070ULL: s390_format_VRR_VVVM(s390_irgen_VESLV, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000072ULL: s390_format_VRIdm(s390_irgen_VERIM, VRId_v1(ovl),
-                                             VRId_v2(ovl), VRId_v3(ovl),
-                                             VRId_i4(ovl), VRId_m5(ovl),
-                                             VRId_rxb(ovl));
-                           goto ok;
-   case 0xe70000000073ULL: s390_format_VRR_VVVM(s390_irgen_VERLLV, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000074ULL: s390_format_VRR_VVV(s390_irgen_VSL, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000075ULL: s390_format_VRR_VVV(s390_irgen_VSLB, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000077ULL: s390_format_VRId(s390_irgen_VSLDB, VRId_v1(ovl),
-                                            VRId_v2(ovl), VRId_v3(ovl),
-                                            VRId_i4(ovl), VRId_rxb(ovl));
-                           goto ok;
-   case 0xe70000000078ULL: s390_format_VRR_VVVM(s390_irgen_VESRLV, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe7000000007aULL: s390_format_VRR_VVVM(s390_irgen_VESRAV, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe7000000007cULL: s390_format_VRR_VVV(s390_irgen_VSRL, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000007dULL: s390_format_VRR_VVV(s390_irgen_VSRLB, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000007eULL: s390_format_VRR_VVV(s390_irgen_VSRA, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe7000000007fULL: s390_format_VRR_VVV(s390_irgen_VSRAB, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000080ULL: s390_format_VRR_VVVMM(s390_irgen_VFEE, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_r3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe70000000081ULL: s390_format_VRR_VVVMM(s390_irgen_VFENE, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_r3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe70000000082ULL: s390_format_VRR_VVVMM(s390_irgen_VFAE, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_r3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe70000000084ULL: s390_format_VRR_VVVM(s390_irgen_VPDI, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_r3(ovl),
-                                               VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000085ULL: s390_format_VRR_VVV(s390_irgen_VBPERM, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_rxb(ovl));  goto ok;
-   case 0xe70000000086ULL: s390_format_VRId(s390_irgen_VSLD, VRId_v1(ovl),
-                                            VRId_v2(ovl), VRId_v3(ovl),
-                                            VRId_i4(ovl), VRId_rxb(ovl));
-                           goto ok;
-   case 0xe70000000087ULL: s390_format_VRId(s390_irgen_VSRD, VRId_v1(ovl),
-                                            VRId_v2(ovl), VRId_v3(ovl),
-                                            VRId_i4(ovl), VRId_rxb(ovl));
+   case 0xe70000000056ULL: s390_format_VRR_VV(s390_irgen_VLR, ovl);
+                           goto ok;
+   case 0xe7000000005cULL: s390_format_VRR_VVMM(s390_irgen_VISTR, ovl);
+                           goto ok;
+   case 0xe7000000005fULL: s390_format_VRR_VVM(s390_irgen_VSEG, ovl);
+                           goto ok;
+   case 0xe70000000060ULL: s390_format_VRR_VVVM(s390_irgen_VMRL, ovl);
+                           goto ok;
+   case 0xe70000000061ULL: s390_format_VRR_VVVM(s390_irgen_VMRH, ovl);
+                           goto ok;
+   case 0xe70000000062ULL: s390_format_VRR_VRR(s390_irgen_VLVGP, ovl);
+                           goto ok;
+   case 0xe70000000064ULL: s390_format_VRR_VVVM(s390_irgen_VSUM, ovl);
+                           goto ok;
+   case 0xe70000000065ULL: s390_format_VRR_VVVM(s390_irgen_VSUMG, ovl);
+                           goto ok;
+   case 0xe70000000066ULL: s390_format_VRR_VVV(s390_irgen_VCKSM, ovl);
+                           goto ok;
+   case 0xe70000000067ULL: s390_format_VRR_VVVM(s390_irgen_VSUMQ, ovl);
+                           goto ok;
+   case 0xe70000000068ULL: s390_format_VRR_VVV(s390_irgen_VN, ovl);
+                           goto ok;
+   case 0xe70000000069ULL: s390_format_VRR_VVV(s390_irgen_VNC, ovl);
+                           goto ok;
+   case 0xe7000000006aULL: s390_format_VRR_VVV(s390_irgen_VO, ovl);
+                           goto ok;
+   case 0xe7000000006bULL: s390_format_VRR_VVV(s390_irgen_VNO, ovl);
+                           goto ok;
+   case 0xe7000000006cULL: s390_format_VRR_VVV(s390_irgen_VNX, ovl);
+                           goto ok;
+   case 0xe7000000006dULL: s390_format_VRR_VVV(s390_irgen_VX, ovl);
+                           goto ok;
+   case 0xe7000000006eULL: s390_format_VRR_VVV(s390_irgen_VNN, ovl);
+                           goto ok;
+   case 0xe7000000006fULL: s390_format_VRR_VVV(s390_irgen_VOC, ovl);
+                           goto ok;
+   case 0xe70000000070ULL: s390_format_VRR_VVVM(s390_irgen_VESLV, ovl);
+                           goto ok;
+   case 0xe70000000072ULL: s390_format_VRIdm(s390_irgen_VERIM, ovl);
+                           goto ok;
+   case 0xe70000000073ULL: s390_format_VRR_VVVM(s390_irgen_VERLLV, ovl);
+                           goto ok;
+   case 0xe70000000074ULL: s390_format_VRR_VVV(s390_irgen_VSL, ovl);
+                           goto ok;
+   case 0xe70000000075ULL: s390_format_VRR_VVV(s390_irgen_VSLB, ovl);
+                           goto ok;
+   case 0xe70000000077ULL: s390_format_VRId(s390_irgen_VSLDB, ovl);
+                           goto ok;
+   case 0xe70000000078ULL: s390_format_VRR_VVVM(s390_irgen_VESRLV, ovl);
+                           goto ok;
+   case 0xe7000000007aULL: s390_format_VRR_VVVM(s390_irgen_VESRAV, ovl);
+                           goto ok;
+   case 0xe7000000007cULL: s390_format_VRR_VVV(s390_irgen_VSRL, ovl);
+                           goto ok;
+   case 0xe7000000007dULL: s390_format_VRR_VVV(s390_irgen_VSRLB, ovl);
+                           goto ok;
+   case 0xe7000000007eULL: s390_format_VRR_VVV(s390_irgen_VSRA, ovl);
+                           goto ok;
+   case 0xe7000000007fULL: s390_format_VRR_VVV(s390_irgen_VSRAB, ovl);
+                           goto ok;
+   case 0xe70000000080ULL: s390_format_VRR_VVVMM(s390_irgen_VFEE, ovl);
+                           goto ok;
+   case 0xe70000000081ULL: s390_format_VRR_VVVMM(s390_irgen_VFENE, ovl);
+                           goto ok;
+   case 0xe70000000082ULL: s390_format_VRR_VVVMM(s390_irgen_VFAE, ovl);
+                           goto ok;
+   case 0xe70000000084ULL: s390_format_VRR_VVVM(s390_irgen_VPDI, ovl);
+                           goto ok;
+   case 0xe70000000085ULL: s390_format_VRR_VVV(s390_irgen_VBPERM, ovl);
+                           goto ok;
+   case 0xe70000000086ULL: s390_format_VRId(s390_irgen_VSLD, ovl);
+                           goto ok;
+   case 0xe70000000087ULL: s390_format_VRId(s390_irgen_VSRD, ovl);
                            goto ok;
    case 0xe70000000088ULL: /* VEVAL */ goto unimplemented;
    case 0xe70000000089ULL: /* VBLEND */ goto unimplemented;
-   case 0xe7000000008aULL: s390_format_VRR_VVVVMM(s390_irgen_VSTRC, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_m6(ovl), VRRd_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe7000000008bULL: s390_format_VRR_VVVVMM(s390_irgen_VSTRS, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_m6(ovl), VRRd_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe7000000008cULL: s390_format_VRR_VVVV(s390_irgen_VPERM, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_v4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe7000000008dULL: s390_format_VRR_VVVV(s390_irgen_VSEL, VRR_v1(ovl),
-                                               VRR_v2(ovl), VRR_v3(ovl),
-                                               VRR_v4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe7000000008eULL: s390_format_VRR_VVVVMM(s390_irgen_VFMS, VRRe_v1(ovl),
-                                                  VRRe_v2(ovl), VRRe_v3(ovl),
-                                                  VRRe_v4(ovl), VRRe_m5(ovl),
-                                                  VRRe_m6(ovl), VRRe_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe7000000008fULL: s390_format_VRR_VVVVMM(s390_irgen_VFMA, VRRe_v1(ovl),
-                                                  VRRe_v2(ovl), VRRe_v3(ovl),
-                                                  VRRe_v4(ovl), VRRe_m5(ovl),
-                                                  VRRe_m6(ovl), VRRe_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe70000000094ULL: s390_format_VRR_VVVM(s390_irgen_VPK, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe70000000095ULL: s390_format_VRR_VVVMM(s390_irgen_VPKLS, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_v3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe70000000097ULL: s390_format_VRR_VVVMM(s390_irgen_VPKS, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_v3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe7000000009eULL: s390_format_VRR_VVVVMM(s390_irgen_VFNMS, VRRe_v1(ovl),
-                                                  VRRe_v2(ovl), VRRe_v3(ovl),
-                                                  VRRe_v4(ovl), VRRe_m5(ovl),
-                                                  VRRe_m6(ovl), VRRe_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe7000000009fULL: s390_format_VRR_VVVVMM(s390_irgen_VFNMA, VRRe_v1(ovl),
-                                                  VRRe_v2(ovl), VRRe_v3(ovl),
-                                                  VRRe_v4(ovl), VRRe_m5(ovl),
-                                                  VRRe_m6(ovl), VRRe_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe700000000a1ULL: s390_format_VRR_VVVM(s390_irgen_VMLH, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a2ULL: s390_format_VRR_VVVM(s390_irgen_VML, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a3ULL: s390_format_VRR_VVVM(s390_irgen_VMH, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a4ULL: s390_format_VRR_VVVM(s390_irgen_VMLE, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a5ULL: s390_format_VRR_VVVM(s390_irgen_VMLO, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a6ULL: s390_format_VRR_VVVM(s390_irgen_VME, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a7ULL: s390_format_VRR_VVVM(s390_irgen_VMO, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000a9ULL: s390_format_VRRd_VVVVM(s390_irgen_VMALH, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000aaULL: s390_format_VRRd_VVVVM(s390_irgen_VMAL, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000abULL: s390_format_VRRd_VVVVM(s390_irgen_VMAH, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000acULL: s390_format_VRRd_VVVVM(s390_irgen_VMALE, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000adULL: s390_format_VRRd_VVVVM(s390_irgen_VMALO, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000aeULL: s390_format_VRRd_VVVVM(s390_irgen_VMAE, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000afULL: s390_format_VRRd_VVVVM(s390_irgen_VMAO, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
+   case 0xe7000000008aULL: s390_format_VRRd_VVVVMM(s390_irgen_VSTRC, ovl);
+                           goto ok;
+   case 0xe7000000008bULL: s390_format_VRRd_VVVVMM(s390_irgen_VSTRS, ovl);
+                           goto ok;
+   case 0xe7000000008cULL: s390_format_VRR_VVVV(s390_irgen_VPERM, ovl);
+                           goto ok;
+   case 0xe7000000008dULL: s390_format_VRR_VVVV(s390_irgen_VSEL, ovl);
+                           goto ok;
+   case 0xe7000000008eULL: s390_format_VRRe_VVVVMM(s390_irgen_VFMS, ovl);
+                           goto ok;
+   case 0xe7000000008fULL: s390_format_VRRe_VVVVMM(s390_irgen_VFMA, ovl);
+                           goto ok;
+   case 0xe70000000094ULL: s390_format_VRR_VVVM(s390_irgen_VPK, ovl);
+                           goto ok;
+   case 0xe70000000095ULL: s390_format_VRR_VVVMM(s390_irgen_VPKLS, ovl);
+                           goto ok;
+   case 0xe70000000097ULL: s390_format_VRR_VVVMM(s390_irgen_VPKS, ovl);
+                           goto ok;
+   case 0xe7000000009eULL: s390_format_VRRe_VVVVMM(s390_irgen_VFNMS, ovl);
+                           goto ok;
+   case 0xe7000000009fULL: s390_format_VRRe_VVVVMM(s390_irgen_VFNMA, ovl);
+                           goto ok;
+   case 0xe700000000a1ULL: s390_format_VRR_VVVM(s390_irgen_VMLH, ovl);
+                           goto ok;
+   case 0xe700000000a2ULL: s390_format_VRR_VVVM(s390_irgen_VML, ovl);
+                           goto ok;
+   case 0xe700000000a3ULL: s390_format_VRR_VVVM(s390_irgen_VMH, ovl);
+                           goto ok;
+   case 0xe700000000a4ULL: s390_format_VRR_VVVM(s390_irgen_VMLE, ovl);
+                           goto ok;
+   case 0xe700000000a5ULL: s390_format_VRR_VVVM(s390_irgen_VMLO, ovl);
+                           goto ok;
+   case 0xe700000000a6ULL: s390_format_VRR_VVVM(s390_irgen_VME, ovl);
+                           goto ok;
+   case 0xe700000000a7ULL: s390_format_VRR_VVVM(s390_irgen_VMO, ovl);
+                           goto ok;
+   case 0xe700000000a9ULL: s390_format_VRRd_VVVVM(s390_irgen_VMALH, ovl);
+                           goto ok;
+   case 0xe700000000aaULL: s390_format_VRRd_VVVVM(s390_irgen_VMAL, ovl);
+                           goto ok;
+   case 0xe700000000abULL: s390_format_VRRd_VVVVM(s390_irgen_VMAH, ovl);
+                           goto ok;
+   case 0xe700000000acULL: s390_format_VRRd_VVVVM(s390_irgen_VMALE, ovl);
+                           goto ok;
+   case 0xe700000000adULL: s390_format_VRRd_VVVVM(s390_irgen_VMALO, ovl);
+                           goto ok;
+   case 0xe700000000aeULL: s390_format_VRRd_VVVVM(s390_irgen_VMAE, ovl);
+                           goto ok;
+   case 0xe700000000afULL: s390_format_VRRd_VVVVM(s390_irgen_VMAO, ovl);
+                           goto ok;
    case 0xe700000000b0ULL: /* VDL */ goto unimplemented;
    case 0xe700000000b1ULL: /* VRL */ goto unimplemented;
    case 0xe700000000b2ULL: /* VD */ goto unimplemented;
    case 0xe700000000b3ULL: /* VR */ goto unimplemented;
-   case 0xe700000000b4ULL: s390_format_VRR_VVVM(s390_irgen_VGFM, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000b8ULL: s390_format_VRR_VVVVMM(s390_irgen_VMSL, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_m6(ovl), VRRd_rxb(ovl)
-                                                  );  goto ok;
-   case 0xe700000000b9ULL: s390_format_VRRd_VVVVM(s390_irgen_VACCC, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000bbULL: s390_format_VRRd_VVVVM(s390_irgen_VAC, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000bcULL: s390_format_VRRd_VVVVM(s390_irgen_VGFMA, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000bdULL: s390_format_VRRd_VVVVM(s390_irgen_VSBCBI, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000bfULL: s390_format_VRRd_VVVVM(s390_irgen_VSBI, VRRd_v1(ovl),
-                                                  VRRd_v2(ovl), VRRd_v3(ovl),
-                                                  VRRd_v4(ovl), VRRd_m5(ovl),
-                                                  VRRd_rxb(ovl));  goto ok;
-   case 0xe700000000c0ULL: s390_format_VRRa_VVMMM(s390_irgen_VCLGD, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000c1ULL: s390_format_VRRa_VVMMM(s390_irgen_VCDLG, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000c2ULL: s390_format_VRRa_VVMMM(s390_irgen_VCGD, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000c3ULL: s390_format_VRRa_VVMMM(s390_irgen_VCDG, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000c4ULL: s390_format_VRRa_VVMM(s390_irgen_VFLL, VRRa_v1(ovl),
-                                                 VRRa_v2(ovl), VRRa_m3(ovl),
-                                                 VRRa_m4(ovl), VRRa_rxb(ovl)
-                                                 ); goto ok;
-   case 0xe700000000c5ULL: s390_format_VRRa_VVMMM(s390_irgen_VFLR, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000c7ULL: s390_format_VRRa_VVMMM(s390_irgen_VFI, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000caULL: s390_format_VRRa_VVMM(s390_irgen_WFK, VRRa_v1(ovl),
-                                                 VRRa_v2(ovl), VRRa_m3(ovl),
-                                                 VRRa_m4(ovl), VRRa_rxb(ovl)
-                                                 ); goto ok;
-   case 0xe700000000cbULL: s390_format_VRRa_VVMM(s390_irgen_WFC, VRRa_v1(ovl),
-                                                 VRRa_v2(ovl), VRRa_m3(ovl),
-                                                 VRRa_m4(ovl), VRRa_rxb(ovl)
-                                                 ); goto ok;
-   case 0xe700000000ccULL: s390_format_VRRa_VVMMM(s390_irgen_VFPSO, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_m3(ovl),
-                                                  VRRa_m4(ovl), VRRa_m5(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000ceULL: s390_format_VRRa_VVMM(s390_irgen_VFSQ, VRRa_v1(ovl),
-                                                 VRRa_v2(ovl), VRRa_m3(ovl),
-                                                 VRRa_m4(ovl),
-                                                 VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000d4ULL: s390_format_VRR_VVM(s390_irgen_VUPLL, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000d5ULL: s390_format_VRR_VVM(s390_irgen_VUPLH, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000d6ULL: s390_format_VRR_VVM(s390_irgen_VUPL, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000d7ULL: s390_format_VRR_VVM(s390_irgen_VUPH, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000d8ULL: s390_format_VRR_VV(s390_irgen_VTM, VRR_v1(ovl),
-                                              VRR_v2(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000d9ULL: s390_format_VRR_VVM(s390_irgen_VECL, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000dbULL: s390_format_VRR_VVM(s390_irgen_VEC, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000deULL: s390_format_VRR_VVM(s390_irgen_VLC, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000dfULL: s390_format_VRR_VVM(s390_irgen_VLP, VRRa_v1(ovl),
-                                               VRRa_v2(ovl), VRRa_m3(ovl),
-                                               VRRa_rxb(ovl));  goto ok;
-   case 0xe700000000e2ULL: s390_format_VRRa_VVVMM(s390_irgen_VFS, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_v3(ovl),
-                                                  VRRa_m3(ovl), VRRa_m4(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000e3ULL: s390_format_VRRa_VVVMM(s390_irgen_VFA, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_v3(ovl),
-                                                  VRRa_m3(ovl), VRRa_m4(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000e5ULL: s390_format_VRRa_VVVMM(s390_irgen_VFD, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_v3(ovl),
-                                                  VRRa_m3(ovl), VRRa_m4(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000e7ULL: s390_format_VRRa_VVVMM(s390_irgen_VFM, VRRa_v1(ovl),
-                                                  VRRa_v2(ovl), VRRa_v3(ovl),
-                                                  VRRa_m3(ovl), VRRa_m4(ovl),
-                                                  VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000e8ULL: s390_format_VRRa_VVVMMM(s390_irgen_VFCE, VRRa_v1(ovl),
-                                                   VRRa_v2(ovl), VRRa_v3(ovl),
-                                                   VRRa_m3(ovl), VRRa_m4(ovl),
-                                                   VRRa_m5(ovl),
-                                                   VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000eaULL: s390_format_VRRa_VVVMMM(s390_irgen_VFCHE, VRRa_v1(ovl),
-                                                   VRRa_v2(ovl), VRRa_v3(ovl),
-                                                   VRRa_m3(ovl), VRRa_m4(ovl),
-                                                   VRRa_m5(ovl),
-                                                   VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000ebULL: s390_format_VRRa_VVVMMM(s390_irgen_VFCH, VRRa_v1(ovl),
-                                                   VRRa_v2(ovl), VRRa_v3(ovl),
-                                                   VRRa_m3(ovl), VRRa_m4(ovl),
-                                                   VRRa_m5(ovl),
-                                                   VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000eeULL: s390_format_VRRa_VVVMMM2(s390_irgen_VFMIN, VRRa_v1(ovl),
-                                                    VRRa_v2(ovl), VRRa_v3(ovl),
-                                                    VRRa_m3(ovl), VRRa_m4(ovl),
-                                                    VRRa_m5(ovl),
-                                                    VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000efULL: s390_format_VRRa_VVVMMM2(s390_irgen_VFMAX, VRRa_v1(ovl),
-                                                    VRRa_v2(ovl), VRRa_v3(ovl),
-                                                    VRRa_m3(ovl), VRRa_m4(ovl),
-                                                    VRRa_m5(ovl),
-                                                    VRRa_rxb(ovl)); goto ok;
-   case 0xe700000000f0ULL: s390_format_VRR_VVVM(s390_irgen_VAVGL, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000f1ULL: s390_format_VRR_VVVM(s390_irgen_VACC, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000f2ULL: s390_format_VRR_VVVM(s390_irgen_VAVG, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000f3ULL: s390_format_VRR_VVVM(s390_irgen_VA, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000f5ULL: s390_format_VRR_VVVM(s390_irgen_VSCBI, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000f7ULL: s390_format_VRR_VVVM(s390_irgen_VS, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000f8ULL: s390_format_VRR_VVVMM(s390_irgen_VCEQ, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_v3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe700000000f9ULL: s390_format_VRR_VVVMM(s390_irgen_VCHL, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_v3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe700000000fbULL: s390_format_VRR_VVVMM(s390_irgen_VCH, VRR_v1(ovl),
-                                                 VRR_v2(ovl), VRR_v3(ovl),
-                                                 VRR_m4(ovl), VRR_m5(ovl), VRR_rxb(ovl)
-                                                 );  goto ok;
-   case 0xe700000000fcULL: s390_format_VRR_VVVM(s390_irgen_VMNL, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000fdULL: s390_format_VRR_VVVM(s390_irgen_VMXL, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000feULL: s390_format_VRR_VVVM(s390_irgen_VMN, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
-   case 0xe700000000ffULL: s390_format_VRR_VVVM(s390_irgen_VMX, VRR_v1(ovl),
-                                                VRR_v2(ovl), VRR_v3(ovl),
-                                                VRR_m4(ovl), VRR_rxb(ovl));  goto ok;
+   case 0xe700000000b4ULL: s390_format_VRR_VVVM(s390_irgen_VGFM, ovl);
+                           goto ok;
+   case 0xe700000000b8ULL: s390_format_VRRd_VVVVMM(s390_irgen_VMSL, ovl);
+                           goto ok;
+   case 0xe700000000b9ULL: s390_format_VRRd_VVVVM(s390_irgen_VACCC, ovl);
+                           goto ok;
+   case 0xe700000000bbULL: s390_format_VRRd_VVVVM(s390_irgen_VAC, ovl);
+                           goto ok;
+   case 0xe700000000bcULL: s390_format_VRRd_VVVVM(s390_irgen_VGFMA, ovl);
+                           goto ok;
+   case 0xe700000000bdULL: s390_format_VRRd_VVVVM(s390_irgen_VSBCBI, ovl);
+                           goto ok;
+   case 0xe700000000bfULL: s390_format_VRRd_VVVVM(s390_irgen_VSBI, ovl);
+                           goto ok;
+   case 0xe700000000c0ULL: s390_format_VRRa_VVMMM(s390_irgen_VCLGD, ovl);
+                           goto ok;
+   case 0xe700000000c1ULL: s390_format_VRRa_VVMMM(s390_irgen_VCDLG, ovl);
+                           goto ok;
+   case 0xe700000000c2ULL: s390_format_VRRa_VVMMM(s390_irgen_VCGD, ovl);
+                           goto ok;
+   case 0xe700000000c3ULL: s390_format_VRRa_VVMMM(s390_irgen_VCDG, ovl);
+                           goto ok;
+   case 0xe700000000c4ULL: s390_format_VRRa_VVMM(s390_irgen_VFLL, ovl);
+                           goto ok;
+   case 0xe700000000c5ULL: s390_format_VRRa_VVMMM(s390_irgen_VFLR, ovl);
+                           goto ok;
+   case 0xe700000000c7ULL: s390_format_VRRa_VVMMM(s390_irgen_VFI, ovl);
+                           goto ok;
+   case 0xe700000000caULL: s390_format_VRRa_VVMM(s390_irgen_WFK, ovl);
+                           goto ok;
+   case 0xe700000000cbULL: s390_format_VRRa_VVMM(s390_irgen_WFC, ovl);
+                           goto ok;
+   case 0xe700000000ccULL: s390_format_VRRa_VVMMM(s390_irgen_VFPSO, ovl);
+                           goto ok;
+   case 0xe700000000ceULL: s390_format_VRRa_VVMM(s390_irgen_VFSQ, ovl);
+                           goto ok;
+   case 0xe700000000d4ULL: s390_format_VRR_VVM(s390_irgen_VUPLL, ovl);
+                           goto ok;
+   case 0xe700000000d5ULL: s390_format_VRR_VVM(s390_irgen_VUPLH, ovl);
+                           goto ok;
+   case 0xe700000000d6ULL: s390_format_VRR_VVM(s390_irgen_VUPL, ovl);
+                           goto ok;
+   case 0xe700000000d7ULL: s390_format_VRR_VVM(s390_irgen_VUPH, ovl);
+                           goto ok;
+   case 0xe700000000d8ULL: s390_format_VRR_VV(s390_irgen_VTM, ovl);
+                           goto ok;
+   case 0xe700000000d9ULL: s390_format_VRR_VVM(s390_irgen_VECL, ovl);
+                           goto ok;
+   case 0xe700000000dbULL: s390_format_VRR_VVM(s390_irgen_VEC, ovl);
+                           goto ok;
+   case 0xe700000000deULL: s390_format_VRR_VVM(s390_irgen_VLC, ovl);
+                           goto ok;
+   case 0xe700000000dfULL: s390_format_VRR_VVM(s390_irgen_VLP, ovl);
+                           goto ok;
+   case 0xe700000000e2ULL: s390_format_VRRa_VVVMM(s390_irgen_VFS, ovl);
+                           goto ok;
+   case 0xe700000000e3ULL: s390_format_VRRa_VVVMM(s390_irgen_VFA, ovl);
+                           goto ok;
+   case 0xe700000000e5ULL: s390_format_VRRa_VVVMM(s390_irgen_VFD, ovl);
+                           goto ok;
+   case 0xe700000000e7ULL: s390_format_VRRa_VVVMM(s390_irgen_VFM, ovl);
+                           goto ok;
+   case 0xe700000000e8ULL: s390_format_VRRa_VVVMMM(s390_irgen_VFCE, ovl);
+                           goto ok;
+   case 0xe700000000eaULL: s390_format_VRRa_VVVMMM(s390_irgen_VFCHE, ovl);
+                           goto ok;
+   case 0xe700000000ebULL: s390_format_VRRa_VVVMMM(s390_irgen_VFCH, ovl);
+                           goto ok;
+   case 0xe700000000eeULL: s390_format_VRRa_VVVMMM(s390_irgen_VFMIN, ovl);
+                           goto ok;
+   case 0xe700000000efULL: s390_format_VRRa_VVVMMM(s390_irgen_VFMAX, ovl);
+                           goto ok;
+   case 0xe700000000f0ULL: s390_format_VRR_VVVM(s390_irgen_VAVGL, ovl);
+                           goto ok;
+   case 0xe700000000f1ULL: s390_format_VRR_VVVM(s390_irgen_VACC, ovl);
+                           goto ok;
+   case 0xe700000000f2ULL: s390_format_VRR_VVVM(s390_irgen_VAVG, ovl);
+                           goto ok;
+   case 0xe700000000f3ULL: s390_format_VRR_VVVM(s390_irgen_VA, ovl);
+                           goto ok;
+   case 0xe700000000f5ULL: s390_format_VRR_VVVM(s390_irgen_VSCBI, ovl);
+                           goto ok;
+   case 0xe700000000f7ULL: s390_format_VRR_VVVM(s390_irgen_VS, ovl);
+                           goto ok;
+   case 0xe700000000f8ULL: s390_format_VRR_VVVMM(s390_irgen_VCEQ, ovl);
+                           goto ok;
+   case 0xe700000000f9ULL: s390_format_VRR_VVVMM(s390_irgen_VCHL, ovl);
+                           goto ok;
+   case 0xe700000000fbULL: s390_format_VRR_VVVMM(s390_irgen_VCH, ovl);
+                           goto ok;
+   case 0xe700000000fcULL: s390_format_VRR_VVVM(s390_irgen_VMNL, ovl);
+                           goto ok;
+   case 0xe700000000fdULL: s390_format_VRR_VVVM(s390_irgen_VMXL, ovl);
+                           goto ok;
+   case 0xe700000000feULL: s390_format_VRR_VVVM(s390_irgen_VMN, ovl);
+                           goto ok;
+   case 0xe700000000ffULL: s390_format_VRR_VVVM(s390_irgen_VMX, ovl);
+                           goto ok;
    case 0xeb0000000004ULL: s390_format_RSY(s390_irgen_LMG, ovl);
                            goto ok;
    case 0xeb000000000aULL: s390_format_RSY(s390_irgen_SRAG, ovl);