aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2017-01-02 16:40:29 +0100
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2017-02-23 18:27:38 +0100
commit64025b4ec97fe8e932c367c6cb719e5fcf2448e8 (patch)
treef554076ffd3f22091fffb3c0cdf1d1b5305a32cd /gas
parent14bc53a81471e0b550de1c24d4d5266f676aacc3 (diff)
downloadgdb-64025b4ec97fe8e932c367c6cb719e5fcf2448e8.zip
gdb-64025b4ec97fe8e932c367c6cb719e5fcf2448e8.tar.gz
gdb-64025b4ec97fe8e932c367c6cb719e5fcf2448e8.tar.bz2
S/390: Add support for new cpu architecture - arch12.
This adds support of new instructions to the S/390 specific parts. The important feature of the new instruction set is the support of single and extended precision floating point vector operations. Note: arch12 is NOT the official name of the new CPU. It just continues the series of archXX options supported as alternate names. The archXX terminology refers to the edition number of the Principle of Operations manual. The official CPU name will be added later while keeping support of the arch12 for backwards compatibility. No testsuite regressions. Committed to mainline. Bye, -Andreas- opcodes/ChangeLog: 2017-02-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * s390-mkopc.c (main): Accept arch12 as cpu string and vx2 as facility. * s390-opc.c: Add new operand description macros, new instruction types, instruction masks, and new .insn instruction types. * s390-opc.txt: Add new arch12 instructions. include/ChangeLog: 2017-02-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * opcode/s390.h (enum s390_opcode_cpu_val): New value S390_OPCODE_ARCH12. (S390_INSTR_FLAG_VX2): New macro definition. gas/ChangeLog: 2017-02-23 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/tc-s390.c (s390_parse_cpu): New entry for arch12. * doc/as.texinfo: Document arch12 as cpu type. * doc/c-s390.texi: Likewise. * testsuite/gas/s390/s390.exp: Run arch12 specific tests. * testsuite/gas/s390/zarch-arch12.d: New test. * testsuite/gas/s390/zarch-arch12.s: New test. * testsuite/gas/s390/zarch-z13.d: Rename some mnemonics in the output patterns.
Diffstat (limited to 'gas')
-rw-r--r--gas/config/tc-s390.c8
-rw-r--r--gas/doc/as.texinfo2
-rw-r--r--gas/doc/c-s390.texi6
-rw-r--r--gas/testsuite/gas/s390/s390.exp1
-rw-r--r--gas/testsuite/gas/s390/zarch-arch12.d200
-rw-r--r--gas/testsuite/gas/s390/zarch-arch12.s194
-rw-r--r--gas/testsuite/gas/s390/zarch-z13.d12
7 files changed, 411 insertions, 12 deletions
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 25cc4ef..e3ff9cc 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -289,7 +289,9 @@ s390_parse_cpu (const char * arg,
{ STRING_COMMA_LEN ("zEC12"), STRING_COMMA_LEN ("arch10"),
S390_INSTR_FLAG_HTM },
{ STRING_COMMA_LEN ("z13"), STRING_COMMA_LEN ("arch11"),
- S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX }
+ S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
+ { STRING_COMMA_LEN ("arch12"), STRING_COMMA_LEN (""),
+ S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX | S390_INSTR_FLAG_VX2 }
};
static struct
{
@@ -301,7 +303,9 @@ s390_parse_cpu (const char * arg,
{ "htm", S390_INSTR_FLAG_HTM, TRUE },
{ "nohtm", S390_INSTR_FLAG_HTM, FALSE },
{ "vx", S390_INSTR_FLAG_VX, TRUE },
- { "novx", S390_INSTR_FLAG_VX, FALSE }
+ { "novx", S390_INSTR_FLAG_VX, FALSE },
+ { "vx2", S390_INSTR_FLAG_VX2, TRUE },
+ { "novx2", S390_INSTR_FLAG_VX2, FALSE }
};
unsigned int icpu;
char *ilp_bak;
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 0af8569e..8c7fdfd 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -1733,7 +1733,7 @@ Specify which s390 processor variant is the target, @samp{g5} (or
@samp{arch3}), @samp{g6}, @samp{z900} (or @samp{arch5}), @samp{z990} (or
@samp{arch6}), @samp{z9-109}, @samp{z9-ec} (or @samp{arch7}), @samp{z10} (or
@samp{arch8}), @samp{z196} (or @samp{arch9}), @samp{zEC12} (or @samp{arch10}),
-or @samp{z13} (or @samp{arch11}).
+@samp{z13} (or @samp{arch11}), or @samp{arch12}.
@item -mregnames
@itemx -mno-regnames
Allow or disallow symbolic names for registers.
diff --git a/gas/doc/c-s390.texi b/gas/doc/c-s390.texi
index 1ecdcf8..2f417cb 100644
--- a/gas/doc/c-s390.texi
+++ b/gas/doc/c-s390.texi
@@ -14,11 +14,11 @@
@cindex s390 support
The s390 version of @code{@value{AS}} supports two architectures modes
-and ten chip levels. The architecture modes are the Enterprise System
+and eleven chip levels. The architecture modes are the Enterprise System
Architecture (ESA) and the newer z/Architecture mode. The chip levels
are g5 (or arch3), g6, z900 (or arch5), z990 (or arch6), z9-109, z9-ec
-(or arch7), z10 (or arch8), z196 (or arch9), zEC12 (or arch10), and
-z13 (or arch11).
+(or arch7), z10 (or arch8), z196 (or arch9), zEC12 (or arch10), z13
+(or arch11), and arch12.
@menu
* s390 Options:: Command-line Options.
diff --git a/gas/testsuite/gas/s390/s390.exp b/gas/testsuite/gas/s390/s390.exp
index bd9dd7d..e6d0754 100644
--- a/gas/testsuite/gas/s390/s390.exp
+++ b/gas/testsuite/gas/s390/s390.exp
@@ -28,6 +28,7 @@ if [expr [istarget "s390-*-*"] || [istarget "s390x-*-*"]] then {
run_dump_test "zarch-z196" "{as -m64} {as -march=z196}"
run_dump_test "zarch-zEC12" "{as -m64} {as -march=zEC12}"
run_dump_test "zarch-z13" "{as -m64} {as -march=z13}"
+ run_dump_test "zarch-arch12" "{as -m64} {as -march=arch12}"
run_dump_test "zarch-reloc" "{as -m64}"
run_dump_test "zarch-operands" "{as -m64} {as -march=z9-109}"
run_dump_test "zarch-machine" "{as -m64} {as -march=z900}"
diff --git a/gas/testsuite/gas/s390/zarch-arch12.d b/gas/testsuite/gas/s390/zarch-arch12.d
new file mode 100644
index 0000000..bc2ce18
--- /dev/null
+++ b/gas/testsuite/gas/s390/zarch-arch12.d
@@ -0,0 +1,200 @@
+#name: s390x opcode
+#objdump: -dr
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+.* <foo>:
+.*: e7 f1 40 00 06 85 [ ]*vbperm %v15,%v17,%v20
+.*: e7 f6 9f a0 60 04 [ ]*vllezlf %v15,4000\(%r6,%r9\)
+.*: e7 f1 4d c0 87 b8 [ ]*vmsl %v15,%v17,%v20,%v24,13,12
+.*: e7 f1 43 d0 87 b8 [ ]*vmslg %v15,%v17,%v20,%v24,13
+.*: e7 f1 40 00 06 6c [ ]*vnx %v15,%v17,%v20
+.*: e7 f1 40 00 06 6e [ ]*vnn %v15,%v17,%v20
+.*: e7 f1 40 00 06 6f [ ]*voc %v15,%v17,%v20
+.*: e7 f1 00 00 04 50 [ ]*vpopctb %v15,%v17
+.*: e7 f1 00 00 14 50 [ ]*vpopcth %v15,%v17
+.*: e7 f1 00 00 24 50 [ ]*vpopctf %v15,%v17
+.*: e7 f1 00 00 34 50 [ ]*vpopctg %v15,%v17
+.*: e7 f1 40 00 26 e3 [ ]*vfasb %v15,%v17,%v20
+.*: e7 f1 40 08 26 e3 [ ]*wfasb %v15,%v17,%v20
+.*: e7 f1 40 08 46 e3 [ ]*wfaxb %v15,%v17,%v20
+.*: e7 f1 00 00 24 cb [ ]*wfcsb %v15,%v17
+.*: e7 f1 00 00 44 cb [ ]*wfcxb %v15,%v17
+.*: e7 f1 00 00 24 ca [ ]*wfksb %v15,%v17
+.*: e7 f1 00 00 44 ca [ ]*wfkxb %v15,%v17
+.*: e7 f1 40 00 26 e8 [ ]*vfcesb %v15,%v17,%v20
+.*: e7 f1 40 10 26 e8 [ ]*vfcesbs %v15,%v17,%v20
+.*: e7 f1 40 08 26 e8 [ ]*wfcesb %v15,%v17,%v20
+.*: e7 f1 40 18 26 e8 [ ]*wfcesbs %v15,%v17,%v20
+.*: e7 f1 40 08 46 e8 [ ]*wfcexb %v15,%v17,%v20
+.*: e7 f1 40 18 46 e8 [ ]*wfcexbs %v15,%v17,%v20
+.*: e7 f1 40 04 26 e8 [ ]*vfkesb %v15,%v17,%v20
+.*: e7 f1 40 14 26 e8 [ ]*vfkesbs %v15,%v17,%v20
+.*: e7 f1 40 0c 26 e8 [ ]*wfkesb %v15,%v17,%v20
+.*: e7 f1 40 1c 26 e8 [ ]*wfkesbs %v15,%v17,%v20
+.*: e7 f1 40 04 36 e8 [ ]*vfkedb %v15,%v17,%v20
+.*: e7 f1 40 14 36 e8 [ ]*vfkedbs %v15,%v17,%v20
+.*: e7 f1 40 0c 36 e8 [ ]*wfkedb %v15,%v17,%v20
+.*: e7 f1 40 1c 36 e8 [ ]*wfkedbs %v15,%v17,%v20
+.*: e7 f1 40 0c 46 e8 [ ]*wfkexb %v15,%v17,%v20
+.*: e7 f1 40 1c 46 e8 [ ]*wfkexbs %v15,%v17,%v20
+.*: e7 f1 40 00 26 eb [ ]*vfchsb %v15,%v17,%v20
+.*: e7 f1 40 10 26 eb [ ]*vfchsbs %v15,%v17,%v20
+.*: e7 f1 40 08 26 eb [ ]*wfchsb %v15,%v17,%v20
+.*: e7 f1 40 18 26 eb [ ]*wfchsbs %v15,%v17,%v20
+.*: e7 f1 40 08 46 eb [ ]*wfchxb %v15,%v17,%v20
+.*: e7 f1 40 18 46 eb [ ]*wfchxbs %v15,%v17,%v20
+.*: e7 f1 40 04 26 eb [ ]*vfkhsb %v15,%v17,%v20
+.*: e7 f1 40 14 26 eb [ ]*vfkhsbs %v15,%v17,%v20
+.*: e7 f1 40 0c 26 eb [ ]*wfkhsb %v15,%v17,%v20
+.*: e7 f1 40 1c 26 eb [ ]*wfkhsbs %v15,%v17,%v20
+.*: e7 f1 40 04 36 eb [ ]*vfkhdb %v15,%v17,%v20
+.*: e7 f1 40 14 36 eb [ ]*vfkhdbs %v15,%v17,%v20
+.*: e7 f1 40 0c 36 eb [ ]*wfkhdb %v15,%v17,%v20
+.*: e7 f1 40 1c 36 eb [ ]*wfkhdbs %v15,%v17,%v20
+.*: e7 f1 40 0c 46 eb [ ]*wfkhxb %v15,%v17,%v20
+.*: e7 f1 40 1c 46 eb [ ]*wfkhxbs %v15,%v17,%v20
+.*: e7 f1 40 00 26 ea [ ]*vfchesb %v15,%v17,%v20
+.*: e7 f1 40 10 26 ea [ ]*vfchesbs %v15,%v17,%v20
+.*: e7 f1 40 08 26 ea [ ]*wfchesb %v15,%v17,%v20
+.*: e7 f1 40 18 26 ea [ ]*wfchesbs %v15,%v17,%v20
+.*: e7 f1 40 08 46 ea [ ]*wfchexb %v15,%v17,%v20
+.*: e7 f1 40 18 46 ea [ ]*wfchexbs %v15,%v17,%v20
+.*: e7 f1 40 04 26 ea [ ]*vfkhesb %v15,%v17,%v20
+.*: e7 f1 40 14 26 ea [ ]*vfkhesbs %v15,%v17,%v20
+.*: e7 f1 40 0c 26 ea [ ]*wfkhesb %v15,%v17,%v20
+.*: e7 f1 40 1c 26 ea [ ]*wfkhesbs %v15,%v17,%v20
+.*: e7 f1 40 04 36 ea [ ]*vfkhedb %v15,%v17,%v20
+.*: e7 f1 40 14 36 ea [ ]*vfkhedbs %v15,%v17,%v20
+.*: e7 f1 40 0c 36 ea [ ]*wfkhedb %v15,%v17,%v20
+.*: e7 f1 40 1c 36 ea [ ]*wfkhedbs %v15,%v17,%v20
+.*: e7 f1 40 0c 46 ea [ ]*wfkhexb %v15,%v17,%v20
+.*: e7 f1 40 1c 46 ea [ ]*wfkhexbs %v15,%v17,%v20
+.*: e7 f1 40 00 26 e5 [ ]*vfdsb %v15,%v17,%v20
+.*: e7 f1 40 08 26 e5 [ ]*wfdsb %v15,%v17,%v20
+.*: e7 f1 40 08 46 e5 [ ]*wfdxb %v15,%v17,%v20
+.*: e7 f1 00 cd 24 c7 [ ]*wfisb %v15,%v17,5,12
+.*: e7 f1 00 cd 24 c7 [ ]*wfisb %v15,%v17,5,12
+.*: e7 f1 00 cd 44 c7 [ ]*wfixb %v15,%v17,5,12
+.*: e7 f1 00 0c d4 c4 [ ]*vfll %v15,%v17,13,12
+.*: e7 f1 00 00 24 c4 [ ]*vflls %v15,%v17
+.*: e7 f1 00 08 24 c4 [ ]*wflls %v15,%v17
+.*: e7 f1 00 08 34 c4 [ ]*wflld %v15,%v17
+.*: e7 f1 00 bc d4 c5 [ ]*vflr %v15,%v17,13,12,11
+.*: e7 f1 00 cd 34 c5 [ ]*wflrd %v15,%v17,5,12
+.*: e7 f1 00 cd 34 c5 [ ]*wflrd %v15,%v17,5,12
+.*: e7 f1 00 cd 44 c5 [ ]*wflrx %v15,%v17,5,12
+.*: e7 f1 40 bc d6 ef [ ]*vfmax %v15,%v17,%v20,13,12,11
+.*: e7 f1 40 d0 26 ef [ ]*vfmaxsb %v15,%v17,%v20,13
+.*: e7 f1 40 d0 36 ef [ ]*vfmaxdb %v15,%v17,%v20,13
+.*: e7 f1 40 d8 26 ef [ ]*wfmaxsb %v15,%v17,%v20,13
+.*: e7 f1 40 d8 36 ef [ ]*wfmaxdb %v15,%v17,%v20,13
+.*: e7 f1 40 d8 46 ef [ ]*wfmaxxb %v15,%v17,%v20,13
+.*: e7 f1 40 bc d6 ee [ ]*vfmin %v15,%v17,%v20,13,12,11
+.*: e7 f1 40 d0 26 ee [ ]*vfminsb %v15,%v17,%v20,13
+.*: e7 f1 40 d0 36 ee [ ]*vfmindb %v15,%v17,%v20,13
+.*: e7 f1 40 d8 26 ee [ ]*wfminsb %v15,%v17,%v20,13
+.*: e7 f1 40 d8 36 ee [ ]*wfmindb %v15,%v17,%v20,13
+.*: e7 f1 40 d8 46 ee [ ]*wfminxb %v15,%v17,%v20,13
+.*: e7 f1 40 00 26 e7 [ ]*vfmsb %v15,%v17,%v20
+.*: e7 f1 40 08 26 e7 [ ]*wfmsb %v15,%v17,%v20
+.*: e7 f1 40 08 46 e7 [ ]*wfmxb %v15,%v17,%v20
+.*: e7 f1 42 00 87 8f [ ]*vfmasb %v15,%v17,%v20,%v24
+.*: e7 f1 42 08 87 8f [ ]*wfmasb %v15,%v17,%v20,%v24
+.*: e7 f1 44 08 87 8f [ ]*wfmaxb %v15,%v17,%v20,%v24
+.*: e7 f1 42 00 87 8e [ ]*vfmssb %v15,%v17,%v20,%v24
+.*: e7 f1 42 08 87 8e [ ]*wfmssb %v15,%v17,%v20,%v24
+.*: e7 f1 44 08 87 8e [ ]*wfmsxb %v15,%v17,%v20,%v24
+.*: e7 f1 4c 0d 87 9f [ ]*vfnma %v15,%v17,%v20,%v24,13,12
+.*: e7 f1 42 00 87 9f [ ]*vfnmasb %v15,%v17,%v20,%v24
+.*: e7 f1 42 08 87 9f [ ]*wfnmasb %v15,%v17,%v20,%v24
+.*: e7 f1 43 00 87 9f [ ]*vfnmadb %v15,%v17,%v20,%v24
+.*: e7 f1 43 08 87 9f [ ]*wfnmadb %v15,%v17,%v20,%v24
+.*: e7 f1 44 08 87 9f [ ]*wfnmaxb %v15,%v17,%v20,%v24
+.*: e7 f1 4c 0d 87 9e [ ]*vfnms %v15,%v17,%v20,%v24,13,12
+.*: e7 f1 42 00 87 9e [ ]*vfnmssb %v15,%v17,%v20,%v24
+.*: e7 f1 42 08 87 9e [ ]*wfnmssb %v15,%v17,%v20,%v24
+.*: e7 f1 43 00 87 9e [ ]*vfnmsdb %v15,%v17,%v20,%v24
+.*: e7 f1 43 08 87 9e [ ]*wfnmsdb %v15,%v17,%v20,%v24
+.*: e7 f1 44 08 87 9e [ ]*wfnmsxb %v15,%v17,%v20,%v24
+.*: e7 f1 00 d0 24 cc [ ]*vfpsosb %v15,%v17,13
+.*: e7 f1 00 d8 24 cc [ ]*wfpsosb %v15,%v17,13
+.*: e7 f1 00 00 24 cc [ ]*vflcsb %v15,%v17
+.*: e7 f1 00 08 24 cc [ ]*wflcsb %v15,%v17
+.*: e7 f1 00 10 24 cc [ ]*vflnsb %v15,%v17
+.*: e7 f1 00 18 24 cc [ ]*wflnsb %v15,%v17
+.*: e7 f1 00 20 24 cc [ ]*vflpsb %v15,%v17
+.*: e7 f1 00 28 24 cc [ ]*wflpsb %v15,%v17
+.*: e7 f1 00 d8 44 cc [ ]*wfpsoxb %v15,%v17,13
+.*: e7 f1 00 08 44 cc [ ]*wflcxb %v15,%v17
+.*: e7 f1 00 18 44 cc [ ]*wflnxb %v15,%v17
+.*: e7 f1 00 28 44 cc [ ]*wflpxb %v15,%v17
+.*: e7 f1 00 00 24 ce [ ]*vfsqsb %v15,%v17
+.*: e7 f1 00 08 24 ce [ ]*wfsqsb %v15,%v17
+.*: e7 f1 00 08 44 ce [ ]*wfsqxb %v15,%v17
+.*: e7 f1 40 00 26 e2 [ ]*vfssb %v15,%v17,%v20
+.*: e7 f1 40 08 26 e2 [ ]*wfssb %v15,%v17,%v20
+.*: e7 f1 40 08 46 e2 [ ]*wfsxb %v15,%v17,%v20
+.*: e7 f1 ff d0 24 4a [ ]*vftcisb %v15,%v17,4093
+.*: e7 f1 ff d8 24 4a [ ]*wftcisb %v15,%v17,4093
+.*: e7 f1 ff d8 44 4a [ ]*wftcixb %v15,%v17,4093
+.*: e3 69 b8 f0 fd 38 [ ]*agh %r6,-10000\(%r9,%r11\)
+.*: e3 d6 98 f0 fd 47 [ ]*binh -10000\(%r6,%r9\)
+.*: e3 f6 98 f0 fd 47 [ ]*bi -10000\(%r6,%r9\)
+.*: e3 16 98 f0 fd 47 [ ]*bio -10000\(%r6,%r9\)
+.*: e3 26 98 f0 fd 47 [ ]*bih -10000\(%r6,%r9\)
+.*: e3 26 98 f0 fd 47 [ ]*bih -10000\(%r6,%r9\)
+.*: e3 36 98 f0 fd 47 [ ]*binle -10000\(%r6,%r9\)
+.*: e3 46 98 f0 fd 47 [ ]*bil -10000\(%r6,%r9\)
+.*: e3 46 98 f0 fd 47 [ ]*bil -10000\(%r6,%r9\)
+.*: e3 56 98 f0 fd 47 [ ]*binhe -10000\(%r6,%r9\)
+.*: e3 66 98 f0 fd 47 [ ]*bilh -10000\(%r6,%r9\)
+.*: e3 76 98 f0 fd 47 [ ]*bine -10000\(%r6,%r9\)
+.*: e3 76 98 f0 fd 47 [ ]*bine -10000\(%r6,%r9\)
+.*: e3 86 98 f0 fd 47 [ ]*bie -10000\(%r6,%r9\)
+.*: e3 86 98 f0 fd 47 [ ]*bie -10000\(%r6,%r9\)
+.*: e3 96 98 f0 fd 47 [ ]*binlh -10000\(%r6,%r9\)
+.*: e3 a6 98 f0 fd 47 [ ]*bihe -10000\(%r6,%r9\)
+.*: e3 b6 98 f0 fd 47 [ ]*binl -10000\(%r6,%r9\)
+.*: e3 b6 98 f0 fd 47 [ ]*binl -10000\(%r6,%r9\)
+.*: e3 c6 98 f0 fd 47 [ ]*bile -10000\(%r6,%r9\)
+.*: e3 d6 98 f0 fd 47 [ ]*binh -10000\(%r6,%r9\)
+.*: e3 d6 98 f0 fd 47 [ ]*binh -10000\(%r6,%r9\)
+.*: e3 e6 98 f0 fd 47 [ ]*bino -10000\(%r6,%r9\)
+.*: b9 ec b0 69 [ ]*mgrk %r6,%r9,%r11
+.*: e3 69 b8 f0 fd 84 [ ]*mg %r6,-10000\(%r9,%r11\)
+.*: e3 69 b8 f0 fd 3c [ ]*mgh %r6,-10000\(%r9,%r11\)
+.*: b9 fd b0 69 [ ]*msrkc %r6,%r9,%r11
+.*: b9 ed b0 69 [ ]*msgrkc %r6,%r9,%r11
+.*: e3 69 b8 f0 fd 53 [ ]*msc %r6,-10000\(%r9,%r11\)
+.*: e3 69 b8 f0 fd 83 [ ]*msgc %r6,-10000\(%r9,%r11\)
+.*: e3 69 b8 f0 fd 39 [ ]*sgh %r6,-10000\(%r9,%r11\)
+.*: e6 06 9f a0 f0 37 [ ]*vlrlr %v15,%r6,4000\(%r9\)
+.*: e6 fd 6f a0 f0 35 [ ]*vlrl %v15,4000\(%r6\),253
+.*: e6 06 9f a0 f0 3f [ ]*vstrlr %v15,%r6,4000\(%r9\)
+.*: e6 fd 6f a0 f0 3d [ ]*vstrl %v15,4000\(%r6\),253
+.*: e6 f1 40 cf d6 71 [ ]*vap %v15,%v17,%v20,253,12
+.*: e6 0f 10 d0 02 77 [ ]*vcp %v15,%v17,13
+.*: e6 6f 00 d0 00 50 [ ]*vcvb %r6,%v15,13
+.*: e6 6f 00 d0 00 52 [ ]*vcvbg %r6,%v15,13
+.*: e6 f6 00 cf d0 58 [ ]*vcvd %v15,%r6,253,12
+.*: e6 f6 00 cf d0 5a [ ]*vcvdg %v15,%r6,253,12
+.*: e6 f1 40 cf d6 7a [ ]*vdp %v15,%v17,%v20,253,12
+.*: e6 f0 ff fd c0 49 [ ]*vlip %v15,65533,12
+.*: e6 f1 40 cf d6 78 [ ]*vmp %v15,%v17,%v20,253,12
+.*: e6 f1 40 cf d6 79 [ ]*vmsp %v15,%v17,%v20,253,12
+.*: e6 fd 6f a0 f0 34 [ ]*vpkz %v15,4000\(%r6\),253
+.*: e6 f1 fc bf d4 5b [ ]*vpsop %v15,%v17,253,252,11
+.*: e6 f1 40 cf d6 7b [ ]*vrp %v15,%v17,%v20,253,12
+.*: e6 f1 40 cf d6 7e [ ]*vsdp %v15,%v17,%v20,253,12
+.*: e6 f1 fc bf d4 59 [ ]*vsrp %v15,%v17,253,252,11
+.*: e6 f1 40 cf d6 73 [ ]*vsp %v15,%v17,%v20,253,12
+.*: e6 0f 00 00 00 5f [ ]*vtp %v15
+.*: e6 fd 6f a0 f0 3c [ ]*vupkz %v15,4000\(%r6\),253
+.*: e3 69 b8 f0 fd 4c [ ]*lgg %r6,-10000\(%r9,%r11\)
+.*: e3 69 b8 f0 fd 48 [ ]*llgfsg %r6,-10000\(%r9,%r11\)
+.*: e3 69 b8 f0 fd 4d [ ]*lgsc %r6,-10000\(%r9,%r11\)
+.*: e3 69 b8 f0 fd 49 [ ]*stgsc %r6,-10000\(%r9,%r11\)
+.*: b9 29 90 6b [ ]*kma %r6,%r9,%r11
diff --git a/gas/testsuite/gas/s390/zarch-arch12.s b/gas/testsuite/gas/s390/zarch-arch12.s
new file mode 100644
index 0000000..6ebd2fd
--- /dev/null
+++ b/gas/testsuite/gas/s390/zarch-arch12.s
@@ -0,0 +1,194 @@
+.text
+foo:
+ vbperm %v15,%v17,%v20
+ vllezlf %v15,4000(%r6,%r9)
+ vmsl %v15,%v17,%v20,%v24,13,12
+ vmslg %v15,%v17,%v20,%v24,13
+ vnx %v15,%v17,%v20
+ vnn %v15,%v17,%v20
+ voc %v15,%v17,%v20
+ vpopctb %v15,%v17
+ vpopcth %v15,%v17
+ vpopctf %v15,%v17
+ vpopctg %v15,%v17
+ vfasb %v15,%v17,%v20
+ wfasb %v15,%v17,%v20
+ wfaxb %v15,%v17,%v20
+ wfcsb %v15,%v17
+ wfcxb %v15,%v17
+ wfksb %v15,%v17
+ wfkxb %v15,%v17
+ vfcesb %v15,%v17,%v20
+ vfcesbs %v15,%v17,%v20
+ wfcesb %v15,%v17,%v20
+ wfcesbs %v15,%v17,%v20
+ wfcexb %v15,%v17,%v20
+ wfcexbs %v15,%v17,%v20
+ vfkesb %v15,%v17,%v20
+ vfkesbs %v15,%v17,%v20
+ wfkesb %v15,%v17,%v20
+ wfkesbs %v15,%v17,%v20
+ vfkedb %v15,%v17,%v20
+ vfkedbs %v15,%v17,%v20
+ wfkedb %v15,%v17,%v20
+ wfkedbs %v15,%v17,%v20
+ wfkexb %v15,%v17,%v20
+ wfkexbs %v15,%v17,%v20
+ vfchsb %v15,%v17,%v20
+ vfchsbs %v15,%v17,%v20
+ wfchsb %v15,%v17,%v20
+ wfchsbs %v15,%v17,%v20
+ wfchxb %v15,%v17,%v20
+ wfchxbs %v15,%v17,%v20
+ vfkhsb %v15,%v17,%v20
+ vfkhsbs %v15,%v17,%v20
+ wfkhsb %v15,%v17,%v20
+ wfkhsbs %v15,%v17,%v20
+ vfkhdb %v15,%v17,%v20
+ vfkhdbs %v15,%v17,%v20
+ wfkhdb %v15,%v17,%v20
+ wfkhdbs %v15,%v17,%v20
+ wfkhxb %v15,%v17,%v20
+ wfkhxbs %v15,%v17,%v20
+ vfchesb %v15,%v17,%v20
+ vfchesbs %v15,%v17,%v20
+ wfchesb %v15,%v17,%v20
+ wfchesbs %v15,%v17,%v20
+ wfchexb %v15,%v17,%v20
+ wfchexbs %v15,%v17,%v20
+ vfkhesb %v15,%v17,%v20
+ vfkhesbs %v15,%v17,%v20
+ wfkhesb %v15,%v17,%v20
+ wfkhesbs %v15,%v17,%v20
+ vfkhedb %v15,%v17,%v20
+ vfkhedbs %v15,%v17,%v20
+ wfkhedb %v15,%v17,%v20
+ wfkhedbs %v15,%v17,%v20
+ wfkhexb %v15,%v17,%v20
+ wfkhexbs %v15,%v17,%v20
+ vfdsb %v15,%v17,%v20
+ wfdsb %v15,%v17,%v20
+ wfdxb %v15,%v17,%v20
+ vfisb %v15,%v17,13,12
+ wfisb %v15,%v17,13,12
+ wfixb %v15,%v17,13,12
+ vfll %v15,%v17,13,12
+ vflls %v15,%v17
+ wflls %v15,%v17
+ wflld %v15,%v17
+ vflr %v15,%v17,13,12,11
+ vflrd %v15,%v17,13,12
+ wflrd %v15,%v17,13,12
+ wflrx %v15,%v17,13,12
+ vfmax %v15,%v17,%v20,13,12,11
+ vfmaxsb %v15,%v17,%v20,13
+ vfmaxdb %v15,%v17,%v20,13
+ wfmaxsb %v15,%v17,%v20,13
+ wfmaxdb %v15,%v17,%v20,13
+ wfmaxxb %v15,%v17,%v20,13
+ vfmin %v15,%v17,%v20,13,12,11
+ vfminsb %v15,%v17,%v20,13
+ vfmindb %v15,%v17,%v20,13
+ wfminsb %v15,%v17,%v20,13
+ wfmindb %v15,%v17,%v20,13
+ wfminxb %v15,%v17,%v20,13
+ vfmsb %v15,%v17,%v20
+ wfmsb %v15,%v17,%v20
+ wfmxb %v15,%v17,%v20
+ vfmasb %v15,%v17,%v20,%v24
+ wfmasb %v15,%v17,%v20,%v24
+ wfmaxb %v15,%v17,%v20,%v24
+ vfmssb %v15,%v17,%v20,%v24
+ wfmssb %v15,%v17,%v20,%v24
+ wfmsxb %v15,%v17,%v20,%v24
+ vfnma %v15,%v17,%v20,%v24,13,12
+ vfnmasb %v15,%v17,%v20,%v24
+ wfnmasb %v15,%v17,%v20,%v24
+ vfnmadb %v15,%v17,%v20,%v24
+ wfnmadb %v15,%v17,%v20,%v24
+ wfnmaxb %v15,%v17,%v20,%v24
+ vfnms %v15,%v17,%v20,%v24,13,12
+ vfnmssb %v15,%v17,%v20,%v24
+ wfnmssb %v15,%v17,%v20,%v24
+ vfnmsdb %v15,%v17,%v20,%v24
+ wfnmsdb %v15,%v17,%v20,%v24
+ wfnmsxb %v15,%v17,%v20,%v24
+ vfpsosb %v15,%v17,13
+ wfpsosb %v15,%v17,13
+ vflcsb %v15,%v17
+ wflcsb %v15,%v17
+ vflnsb %v15,%v17
+ wflnsb %v15,%v17
+ vflpsb %v15,%v17
+ wflpsb %v15,%v17
+ wfpsoxb %v15,%v17,13
+ wflcxb %v15,%v17
+ wflnxb %v15,%v17
+ wflpxb %v15,%v17
+ vfsqsb %v15,%v17
+ wfsqsb %v15,%v17
+ wfsqxb %v15,%v17
+ vfssb %v15,%v17,%v20
+ wfssb %v15,%v17,%v20
+ wfsxb %v15,%v17,%v20
+ vftcisb %v15,%v17,4093
+ wftcisb %v15,%v17,4093
+ wftcixb %v15,%v17,4093
+ agh %r6,-10000(%r9,%r11)
+ bic 13,-10000(%r6,%r9)
+ bi -10000(%r6,%r9)
+ bio -10000(%r6,%r9)
+ bih -10000(%r6,%r9)
+ bip -10000(%r6,%r9)
+ binle -10000(%r6,%r9)
+ bil -10000(%r6,%r9)
+ bim -10000(%r6,%r9)
+ binhe -10000(%r6,%r9)
+ bilh -10000(%r6,%r9)
+ bine -10000(%r6,%r9)
+ binz -10000(%r6,%r9)
+ bie -10000(%r6,%r9)
+ biz -10000(%r6,%r9)
+ binlh -10000(%r6,%r9)
+ bihe -10000(%r6,%r9)
+ binl -10000(%r6,%r9)
+ binm -10000(%r6,%r9)
+ bile -10000(%r6,%r9)
+ binh -10000(%r6,%r9)
+ binp -10000(%r6,%r9)
+ bino -10000(%r6,%r9)
+ mgrk %r6,%r9,%r11
+ mg %r6,-10000(%r9,%r11)
+ mgh %r6,-10000(%r9,%r11)
+ msrkc %r6,%r9,%r11
+ msgrkc %r6,%r9,%r11
+ msc %r6,-10000(%r9,%r11)
+ msgc %r6,-10000(%r9,%r11)
+ sgh %r6,-10000(%r9,%r11)
+ vlrlr %v15,%r6,4000(%r9)
+ vlrl %v15,4000(%r6),253
+ vstrlr %v15,%r6,4000(%r9)
+ vstrl %v15,4000(%r6),253
+ vap %v15,%v17,%v20,253,12
+ vcp %v15,%v17,13
+ vcvb %r6,%v15,13
+ vcvbg %r6,%v15,13
+ vcvd %v15,%r6,253,12
+ vcvdg %v15,%r6,253,12
+ vdp %v15,%v17,%v20,253,12
+ vlip %v15,65533,12
+ vmp %v15,%v17,%v20,253,12
+ vmsp %v15,%v17,%v20,253,12
+ vpkz %v15,4000(%r6),253
+ vpsop %v15,%v17,253,252,11
+ vrp %v15,%v17,%v20,253,12
+ vsdp %v15,%v17,%v20,253,12
+ vsrp %v15,%v17,253,252,11
+ vsp %v15,%v17,%v20,253,12
+ vtp %v15
+ vupkz %v15,4000(%r6),253
+ lgg %r6,-10000(%r9,%r11)
+ llgfsg %r6,-10000(%r9,%r11)
+ lgsc %r6,-10000(%r9,%r11)
+ stgsc %r6,-10000(%r9,%r11)
+ kma %r6,%r9,%r11
diff --git a/gas/testsuite/gas/s390/zarch-z13.d b/gas/testsuite/gas/s390/zarch-z13.d
index 7a4583a..c8d8ce8 100644
--- a/gas/testsuite/gas/s390/zarch-z13.d
+++ b/gas/testsuite/gas/s390/zarch-z13.d
@@ -513,12 +513,12 @@ Disassembly of section .text:
.*: e7 f1 00 bc d4 c7 [ ]*vfi %v15,%v17,13,12,11
.*: e7 f1 00 cd 34 c7 [ ]*wfidb %v15,%v17,5,12
.*: e7 f1 00 cd 34 c7 [ ]*wfidb %v15,%v17,5,12
-.*: e7 f1 00 0c d4 c4 [ ]*vlde %v15,%v17,13,12
-.*: e7 f1 00 00 24 c4 [ ]*vldeb %v15,%v17
-.*: e7 f1 00 08 24 c4 [ ]*wldeb %v15,%v17
-.*: e7 f1 00 bc d4 c5 [ ]*vled %v15,%v17,13,12,11
-.*: e7 f1 00 cd 34 c5 [ ]*wledb %v15,%v17,5,12
-.*: e7 f1 00 cd 34 c5 [ ]*wledb %v15,%v17,5,12
+.*: e7 f1 00 0c d4 c4 [ ]*vfll %v15,%v17,13,12
+.*: e7 f1 00 00 24 c4 [ ]*vflls %v15,%v17
+.*: e7 f1 00 08 24 c4 [ ]*wflls %v15,%v17
+.*: e7 f1 00 bc d4 c5 [ ]*vflr %v15,%v17,13,12,11
+.*: e7 f1 00 cd 34 c5 [ ]*wflrd %v15,%v17,5,12
+.*: e7 f1 00 cd 34 c5 [ ]*wflrd %v15,%v17,5,12
.*: e7 f1 40 0c d6 e7 [ ]*vfm %v15,%v17,%v20,13,12
.*: e7 f1 40 00 36 e7 [ ]*vfmdb %v15,%v17,%v20
.*: e7 f1 40 08 36 e7 [ ]*wfmdb %v15,%v17,%v20