[SystemZ] Correctly diagnose missing features in AsmParser

Currently, when using an instruction that is not supported on the
currently selected architecture, the LLVM assembler is likely to
diagnose an "invalid operand" instead of a "missing feature".

This is because many operands require a custom parser in order to
be processed correctly, and if an instruction is not available
according to the current feature set, the generated parser code
will also not detect the associated custom operand parsers.

Fixed by temporarily enabling all features while parsing operands.
The missing features will then be correctly detected when actually
parsing the instruction itself.

llvm-svn: 285575
diff --git a/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp b/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
index 457f76f..fa0ae5c 100644
--- a/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
+++ b/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
@@ -1075,8 +1075,14 @@
 bool SystemZAsmParser::parseOperand(OperandVector &Operands,
                                     StringRef Mnemonic) {
   // Check if the current operand has a custom associated parser, if so, try to
-  // custom parse the operand, or fallback to the general approach.
+  // custom parse the operand, or fallback to the general approach.  Force all
+  // features to be available during the operand check, or else we will fail to
+  // find the custom parser, and then we will later get an InvalidOperand error
+  // instead of a MissingFeature errror.
+  uint64_t AvailableFeatures = getAvailableFeatures();
+  setAvailableFeatures(~(uint64_t)0);
   OperandMatchResultTy ResTy = MatchOperandParserImpl(Operands, Mnemonic);
+  setAvailableFeatures(AvailableFeatures);
   if (ResTy == MatchOperand_Success)
     return false;
 
diff --git a/llvm/test/MC/SystemZ/insn-bad-z196.s b/llvm/test/MC/SystemZ/insn-bad-z196.s
index e94f837..1d705f8 100644
--- a/llvm/test/MC/SystemZ/insn-bad-z196.s
+++ b/llvm/test/MC/SystemZ/insn-bad-z196.s
@@ -244,7 +244,7 @@
 	cxlgbr	%f0, 16, %r0, 0
 	cxlgbr	%f2, 0, %r0, 0
 
-#CHECK: error: {{(instruction requires: transactional-execution)?}}
+#CHECK: error: instruction requires: transactional-execution
 #CHECK: etnd	%r7
 
 	etnd	%r7
@@ -551,17 +551,17 @@
 	locr	%r0,%r0,-1
 	locr	%r0,%r0,16
 
-#CHECK: error: {{(instruction requires: transactional-execution)?}}
+#CHECK: error: instruction requires: transactional-execution
 #CHECK: ntstg	%r0, 524287(%r1,%r15)
 
 	ntstg	%r0, 524287(%r1,%r15)
 
-#CHECK: error: {{(instruction requires: processor-assist)?}}
+#CHECK: error: instruction requires: processor-assist
 #CHECK: ppa	%r4, %r6, 7
 
 	ppa	%r4, %r6, 7
 
-#CHECK: error: {{(instruction requires: miscellaneous-extensions)?}}
+#CHECK: error: instruction requires: miscellaneous-extensions
 #CHECK: risbgn	%r1, %r2, 0, 0, 0
 
 	risbgn	%r1, %r2, 0, 0, 0
@@ -720,22 +720,22 @@
 	stocg	%r0,524288,1
 	stocg	%r0,0(%r1,%r2),1
 
-#CHECK: error: {{(instruction requires: transactional-execution)?}}
+#CHECK: error: instruction requires: transactional-execution
 #CHECK: tabort	4095(%r1)
 
 	tabort	4095(%r1)
 
-#CHECK: error: {{(instruction requires: transactional-execution)?}}
+#CHECK: error: instruction requires: transactional-execution
 #CHECK: tbegin	4095(%r1), 42
 
 	tbegin	4095(%r1), 42
 
-#CHECK: error: {{(instruction requires: transactional-execution)?}}
+#CHECK: error: instruction requires: transactional-execution
 #CHECK: tbeginc	4095(%r1), 42
 
 	tbeginc	4095(%r1), 42
 
-#CHECK: error: {{(instruction requires: transactional-execution)?}}
+#CHECK: error: instruction requires: transactional-execution
 #CHECK: tend
 
 	tend
diff --git a/llvm/test/MC/SystemZ/insn-bad-zEC12.s b/llvm/test/MC/SystemZ/insn-bad-zEC12.s
index 371dc72..8c0e2bc 100644
--- a/llvm/test/MC/SystemZ/insn-bad-zEC12.s
+++ b/llvm/test/MC/SystemZ/insn-bad-zEC12.s
@@ -2,7 +2,7 @@
 # RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=zEC12 < %s 2> %t
 # RUN: FileCheck < %t %s
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: lcbb	%r0, 0, 0
 
 	lcbb	%r0, 0, 0
@@ -88,15 +88,15 @@
 	tbeginc	0, -1
 	tbeginc	0, 65536
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vab	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vaf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vag	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vah	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vaq	%v0, %v0, %v0
 
 	vab	%v0, %v0, %v0
@@ -105,15 +105,15 @@
 	vah	%v0, %v0, %v0
 	vaq	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vaccb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vaccf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vaccg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vacch	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vaccq	%v0, %v0, %v0
 
 	vaccb	%v0, %v0, %v0
@@ -122,23 +122,23 @@
 	vacch	%v0, %v0, %v0
 	vaccq	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
-#CHECK: vacccq	%v0, %v0, %v0
+#CHECK: error: instruction requires: vector
+#CHECK: vacccq	%v0, %v0, %v0, %v0
 
-	vacccq	%v0, %v0, %v0
+	vacccq	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
-#CHECK: vacq	%v0, %v0, %v0
+#CHECK: error: instruction requires: vector
+#CHECK: vacq	%v0, %v0, %v0, %v0
 
-	vacq	%v0, %v0, %v0
+	vacq	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavgb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavgf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavgg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavgh	%v0, %v0, %v0
 
 	vavgb	%v0, %v0, %v0
@@ -146,13 +146,13 @@
 	vavgg	%v0, %v0, %v0
 	vavgh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavglb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavglf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavglg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vavglh	%v0, %v0, %v0
 
 	vavglb	%v0, %v0, %v0
@@ -160,31 +160,31 @@
 	vavglg	%v0, %v0, %v0
 	vavglh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vcdgb	%v0, %v0, 0, 0
 
 	vcdgb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vcdlgb	%v0, %v0, 0, 0
 
 	vcdlgb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqbs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqhs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqfs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vceqgs	%v0, %v0, %v0
 
 	vceqb	%v0, %v0, %v0
@@ -196,26 +196,26 @@
 	vceqfs	%v0, %v0, %v0
 	vceqgs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vcgdb	%v0, %v0, 0, 0
 
 	vcgdb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchbs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchhs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchfs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchgs	%v0, %v0, %v0
 
 	vchb	%v0, %v0, %v0
@@ -227,21 +227,21 @@
 	vchfs	%v0, %v0, %v0
 	vchgs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlbs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlhs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlfs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vchlgs	%v0, %v0, %v0
 
 	vchlb	%v0, %v0, %v0
@@ -253,23 +253,23 @@
 	vchlfs	%v0, %v0, %v0
 	vchlgs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vcksm	%v0, %v0, %v0
 
 	vcksm	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vclgdb	%v0, %v0, 0, 0
 
 	vclgdb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vclzb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vclzf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vclzg	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vclzh	%v0, %v0
 
 	vclzb	%v0, %v0
@@ -277,13 +277,13 @@
 	vclzg	%v0, %v0
 	vclzh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vctzb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vctzf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vctzg	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vctzh	%v0, %v0
 
 	vctzb	%v0, %v0
@@ -291,13 +291,13 @@
 	vctzg	%v0, %v0
 	vctzh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vecb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vecf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vecg	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vech	%v0, %v0
 
 	vecb	%v0, %v0
@@ -305,13 +305,13 @@
 	vecg	%v0, %v0
 	vech	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verimb	%v0, %v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verimf	%v0, %v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verimg	%v0, %v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verimh	%v0, %v0, %v0, 0
 
 	verimb	%v0, %v0, %v0, 0
@@ -319,13 +319,13 @@
 	verimg	%v0, %v0, %v0, 0
 	verimh	%v0, %v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veclb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veclf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veclg	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veclh	%v0, %v0
 
 	veclb	%v0, %v0
@@ -333,13 +333,13 @@
 	veclg	%v0, %v0
 	veclh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllvb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllvf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllvg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllvh	%v0, %v0, %v0
 
 	verllvb	%v0, %v0, %v0
@@ -347,13 +347,13 @@
 	verllvg	%v0, %v0, %v0
 	verllvh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllb	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllf	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllg	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: verllh	%v0, %v0, 0
 
 	verllb	%v0, %v0, 0
@@ -361,13 +361,13 @@
 	verllg	%v0, %v0, 0
 	verllh	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslvb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslvf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslvg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslvh	%v0, %v0, %v0
 
 	veslvb	%v0, %v0, %v0
@@ -375,13 +375,13 @@
 	veslvg	%v0, %v0, %v0
 	veslvh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslb	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslf	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslg	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: veslh	%v0, %v0, 0
 
 	veslb	%v0, %v0, 0
@@ -389,13 +389,13 @@
 	veslg	%v0, %v0, 0
 	veslh	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesravb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesravf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesravg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesravh	%v0, %v0, %v0
 
 	vesravb	%v0, %v0, %v0
@@ -403,13 +403,13 @@
 	vesravg	%v0, %v0, %v0
 	vesravh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrab	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesraf	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrag	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrah	%v0, %v0, 0
 
 	vesrab	%v0, %v0, 0
@@ -417,13 +417,13 @@
 	vesrag	%v0, %v0, 0
 	vesrah	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlvb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlvf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlvg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlvh	%v0, %v0, %v0
 
 	vesrlvb	%v0, %v0, %v0
@@ -431,13 +431,13 @@
 	vesrlvg	%v0, %v0, %v0
 	vesrlvh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlb	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlf	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlg	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vesrlh	%v0, %v0, 0
 
 	vesrlb	%v0, %v0, 0
@@ -445,53 +445,53 @@
 	vesrlg	%v0, %v0, 0
 	vesrlh	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfadb	%v0, %v0, %v0
 
 	vfadb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfcedb	%v0, %v0, %v0
 #CHECK: vfcedbs	%v0, %v0, %v0
 
 	vfcedb	%v0, %v0, %v0
 	vfcedbs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfchdb	%v0, %v0, %v0
 #CHECK: vfchdbs	%v0, %v0, %v0
 
 	vfchdb	%v0, %v0, %v0
 	vfchdbs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfddb	%v0, %v0, %v0
 
 	vfddb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaeb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaezb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaebs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaezbs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaeh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaezh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaehs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaezhs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaef	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaezf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaefs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfaezfs	%v0, %v0, %v0
 
 	vfaeb	%v0, %v0, %v0
@@ -507,29 +507,29 @@
 	vfaefs	%v0, %v0, %v0
 	vfaezfs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeeb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeezb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeebs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeezbs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeeh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeezh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeehs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeezhs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeef	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeezf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeefs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeezfs	%v0, %v0, %v0
 
 	vfeeb	%v0, %v0, %v0
@@ -545,29 +545,29 @@
 	vfeefs	%v0, %v0, %v0
 	vfeezfs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeneb   %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenezb  %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenebs  %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenezbs %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfeneh   %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenezh  %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenehs  %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenezhs %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenef   %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenezf  %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenefs  %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfenezfs %v0, %v0, %v0
 
 	vfeneb   %v0, %v0, %v0
@@ -583,22 +583,22 @@
 	vfenefs  %v0, %v0, %v0
 	vfenezfs %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfidb	%v0, %v0, 0, 0
 
 	vfidb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vistrb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vistrbs	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vistrh	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vistrhs	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vistrf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vistrfs	%v0, %v0
 
 	vistrb	%v0, %v0
@@ -608,71 +608,71 @@
 	vistrf	%v0, %v0
 	vistrfs	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vflcdb	%v0, %v0
 
 	vflcdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vflndb	%v0, %v0
 
 	vflndb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vflpdb	%v0, %v0
 
 	vflpdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfmadb	%v0, %v0, %v0, %v0
 
 	vfmadb	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfmdb	%v0, %v0, %v0
 
 	vfmdb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfmsdb	%v0, %v0, %v0, %v0
 
 	vfmsdb	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfsdb	%v0, %v0, %v0
 
 	vfsdb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vfsqdb	%v0, %v0
 
 	vfsqdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vftcidb	%v0, %v0, 0
 
 	vftcidb	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgbm	%v0, 0
 
 	vgbm	%v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgef	%v0, 0(%v0, %r1), 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgeg	%v0, 0(%v0, %r1), 0
 
 	vgef	%v0, 0(%v0, %r1), 0
 	vgeg	%v0, 0(%v0, %r1), 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmab	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmaf	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmag	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmah	%v0, %v0, %v0, %v0
 
 	vgfmab	%v0, %v0, %v0, %v0
@@ -680,13 +680,13 @@
 	vgfmag	%v0, %v0, %v0, %v0
 	vgfmah	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgfmh	%v0, %v0, %v0
 
 	vgfmb	%v0, %v0, %v0
@@ -694,13 +694,13 @@
 	vgfmg	%v0, %v0, %v0
 	vgfmh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgmb	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgmf	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgmg	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vgmh	%v0, 0, 0
 
 	vgmb	%v0, 0, 0
@@ -708,23 +708,23 @@
 	vgmg	%v0, 0, 0
 	vgmh	%v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vl	%v0, 0
 
 	vl	%v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlbb	%v0, 0, 0
 
 	vlbb	%v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlcb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlcf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlcg	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlch	%v0, %v0
 
 	vlcb	%v0, %v0
@@ -732,18 +732,18 @@
 	vlcg	%v0, %v0
 	vlch	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vldeb	%v0, %v0
 
 	vldeb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleb	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlef	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleg	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleh	%v0, 0, 0
 
 	vleb	%v0, 0, 0
@@ -751,18 +751,18 @@
 	vleg	%v0, 0, 0
 	vleh	%v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vledb	%v0, %v0, 0, 0
 
 	vledb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleib	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleif	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleig	%v0, 0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vleih	%v0, 0, 0
 
 	vleib	%v0, 0, 0
@@ -770,13 +770,13 @@
 	vleig	%v0, 0, 0
 	vleih	%v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlgvb	%r0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlgvf	%r0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlgvg	%r0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlgvh	%r0, %v0, 0
 
 	vlgvb	%r0, %v0, 0
@@ -784,18 +784,18 @@
 	vlgvg	%r0, %v0, 0
 	vlgvh	%r0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vll	%v0, %r0, 0
 
 	vll	%v0, %r0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vllezb	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vllezf	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vllezg	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vllezh	%v0, 0
 
 	vllezb	%v0, 0
@@ -803,18 +803,18 @@
 	vllezg	%v0, 0
 	vllezh	%v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlm	%v0, %v0, 0
 
 	vlm	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlpb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlpf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlpg	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlph	%v0, %v0
 
 	vlpb	%v0, %v0
@@ -822,18 +822,18 @@
 	vlpg	%v0, %v0
 	vlph	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlr	%v0, %v0
 
 	vlr	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlrepb	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlrepf	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlrepg	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlreph	%v0, 0
 
 	vlrepb	%v0, 0
@@ -841,13 +841,13 @@
 	vlrepg	%v0, 0
 	vlreph	%v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlvgb	%v0, %r0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlvgf	%v0, %r0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlvgg	%v0, %r0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlvgh	%v0, %r0, 0
 
 	vlvgb	%v0, %r0, 0
@@ -855,161 +855,161 @@
 	vlvgg	%v0, %r0, 0
 	vlvgh	%v0, %r0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vlvgp	%v0, %r0, %r0
 
 	vlvgp	%v0, %r0, %r0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaeb	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaef	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaeh	%v0, %v0, %v0, %v0
 
 	vmaeb	%v0, %v0, %v0, %v0
 	vmaef	%v0, %v0, %v0, %v0
 	vmaeh	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmahb	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmahf	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmahh	%v0, %v0, %v0, %v0
 
 	vmahb	%v0, %v0, %v0, %v0
 	vmahf	%v0, %v0, %v0, %v0
 	vmahh	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalb	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalf	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalhw	%v0, %v0, %v0, %v0
 
 	vmalb	%v0, %v0, %v0, %v0
 	vmalf	%v0, %v0, %v0, %v0
 	vmalhw	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaleb	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalef	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaleh	%v0, %v0, %v0, %v0
 
 	vmaleb	%v0, %v0, %v0, %v0
 	vmalef	%v0, %v0, %v0, %v0
 	vmaleh	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalhb	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalhf	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalhh	%v0, %v0, %v0, %v0
 
 	vmalhb	%v0, %v0, %v0, %v0
 	vmalhf	%v0, %v0, %v0, %v0
 	vmalhh	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalob	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmalof	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaloh	%v0, %v0, %v0, %v0
 
 	vmalob	%v0, %v0, %v0, %v0
 	vmalof	%v0, %v0, %v0, %v0
 	vmaloh	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaob	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaof	%v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmaoh	%v0, %v0, %v0, %v0
 
 	vmaob	%v0, %v0, %v0, %v0
 	vmaof	%v0, %v0, %v0, %v0
 	vmaoh	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmeb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmef	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmeh	%v0, %v0, %v0
 
 	vmeb	%v0, %v0, %v0
 	vmef	%v0, %v0, %v0
 	vmeh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmhb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmhf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmhh	%v0, %v0, %v0
 
 	vmhb	%v0, %v0, %v0
 	vmhf	%v0, %v0, %v0
 	vmhh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
-#CHECK: vmlh	%v0, %v0, %v0
+#CHECK: error: instruction requires: vector
+#CHECK: vmlhw	%v0, %v0, %v0
 
 	vmlb	%v0, %v0, %v0
 	vmlf	%v0, %v0, %v0
-	vmlh	%v0, %v0, %v0
+	vmlhw	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmleb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlef	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmleh	%v0, %v0, %v0
 
 	vmleb	%v0, %v0, %v0
 	vmlef	%v0, %v0, %v0
 	vmleh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlhb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlhf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlhh	%v0, %v0, %v0
 
 	vmlhb	%v0, %v0, %v0
 	vmlhf	%v0, %v0, %v0
 	vmlhh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlob	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmlof	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmloh	%v0, %v0, %v0
 
 	vmlob	%v0, %v0, %v0
 	vmlof	%v0, %v0, %v0
 	vmloh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmng	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnh	%v0, %v0, %v0
 
 	vmnb	%v0, %v0, %v0
@@ -1017,13 +1017,13 @@
 	vmng	%v0, %v0, %v0
 	vmnh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnlb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnlf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnlg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmnlh	%v0, %v0, %v0
 
 	vmnlb	%v0, %v0, %v0
@@ -1031,24 +1031,24 @@
 	vmnlg	%v0, %v0, %v0
 	vmnlh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmob	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmof	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmoh	%v0, %v0, %v0
 
 	vmob	%v0, %v0, %v0
 	vmof	%v0, %v0, %v0
 	vmoh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrhb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrhf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrhg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrhh	%v0, %v0, %v0
 
 	vmrhb	%v0, %v0, %v0
@@ -1056,13 +1056,13 @@
 	vmrhg	%v0, %v0, %v0
 	vmrhh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrlb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrlf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrlg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmrlh	%v0, %v0, %v0
 
 	vmrlb	%v0, %v0, %v0
@@ -1070,13 +1070,13 @@
 	vmrlg	%v0, %v0, %v0
 	vmrlh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxh	%v0, %v0, %v0
 
 	vmxb	%v0, %v0, %v0
@@ -1084,13 +1084,13 @@
 	vmxg	%v0, %v0, %v0
 	vmxh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxlb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxlf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxlg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vmxlh	%v0, %v0, %v0
 
 	vmxlb	%v0, %v0, %v0
@@ -1098,63 +1098,63 @@
 	vmxlg	%v0, %v0, %v0
 	vmxlh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vn	%v0, %v0, %v0
 
 	vn	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vnc	%v0, %v0, %v0
 
 	vnc	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vno	%v0, %v0, %v0
 
 	vno	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vo	%v0, %v0, %v0
 
 	vo	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vone	%v0
 
 	vone	%v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpdi	%v0, %v0, %v0, 0
 
 	vpdi	%v0, %v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vperm	%v0, %v0, %v0, %v0
 
 	vperm	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpkf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpkg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpkh	%v0, %v0, %v0
 
 	vpkf	%v0, %v0, %v0
 	vpkg	%v0, %v0, %v0
 	vpkh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpksf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpksg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpksh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpksfs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpksgs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpkshs	%v0, %v0, %v0
 
 	vpksf	%v0, %v0, %v0
@@ -1164,17 +1164,17 @@
 	vpksgs	%v0, %v0, %v0
 	vpkshs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpklsf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpklsg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpklsh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpklsfs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpklsgs	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vpklshs	%v0, %v0, %v0
 
 	vpklsf	%v0, %v0, %v0
@@ -1184,18 +1184,18 @@
 	vpklsgs	%v0, %v0, %v0
 	vpklshs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
-#CHECK: vpopct	%v0, %v0
+#CHECK: error: instruction requires: vector
+#CHECK: vpopct	%v0, %v0, 0
 
-	vpopct	%v0, %v0
+	vpopct	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepb	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepf	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepg	%v0, %v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vreph	%v0, %v0, 0
 
 	vrepb	%v0, %v0, 0
@@ -1203,13 +1203,13 @@
 	vrepg	%v0, %v0, 0
 	vreph	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepib	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepif	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepig	%v0, 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vrepih	%v0, 0
 
 	vrepib	%v0, 0
@@ -1217,15 +1217,15 @@
 	vrepig	%v0, 0
 	vrepih	%v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsg	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsq	%v0, %v0, %v0
 
 	vsb	%v0, %v0, %v0
@@ -1234,25 +1234,25 @@
 	vsh	%v0, %v0, %v0
 	vsq	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
-#CHECK: vsbcbiq	%v0, %v0, %v0
+#CHECK: error: instruction requires: vector
+#CHECK: vsbcbiq	%v0, %v0, %v0, %v0
 
-	vsbcbiq	%v0, %v0, %v0
+	vsbcbiq	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
-#CHECK: vsbiq	%v0, %v0, %v0
+#CHECK: error: instruction requires: vector
+#CHECK: vsbiq	%v0, %v0, %v0, %v0
 
-	vsbiq	%v0, %v0, %v0
+	vsbiq	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vscbib	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vscbif	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vscbig	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vscbih	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vscbiq	%v0, %v0, %v0
 
 	vscbib	%v0, %v0, %v0
@@ -1261,103 +1261,103 @@
 	vscbih	%v0, %v0, %v0
 	vscbiq	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vscef	%v0, 0(%v0, %r1), 0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsceg	%v0, 0(%v0, %r1), 0
 
 	vscef	%v0, 0(%v0, %r1), 0
 	vsceg	%v0, 0(%v0, %r1), 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsegb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsegf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsegh	%v0, %v0
 
 	vsegb	%v0, %v0
 	vsegf	%v0, %v0
 	vsegh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsel	%v0, %v0, %v0, %v0
 
 	vsel	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsl	%v0, %v0, %v0
 
 	vsl	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vslb	%v0, %v0, %v0
 
 	vslb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsldb	%v0, %v0, %v0, 0
 
 	vsldb	%v0, %v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsra	%v0, %v0, %v0
 
 	vsra	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsrab	%v0, %v0, %v0
 
 	vsrab	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsrl	%v0, %v0, %v0
 
 	vsrl	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsrlb	%v0, %v0, %v0
 
 	vsrlb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vst	%v0, 0
 
 	vst	%v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstl	%v0, %r0, 0
 
 	vstl	%v0, %r0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstm	%v0, %v0, 0
 
 	vstm	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrcb   %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrczb  %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrcbs  %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrczbs %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrch   %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrczh  %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrchs  %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrczhs %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrcf   %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrczf  %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrcfs  %v0, %v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vstrczfs %v0, %v0, %v0, %v0
 
         vstrcb   %v0, %v0, %v0, %v0
@@ -1373,216 +1373,216 @@
         vstrcfs  %v0, %v0, %v0, %v0
         vstrczfs %v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsumgh	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsumgf	%v0, %v0, %v0
 
 	vsumgh	%v0, %v0, %v0
 	vsumgf	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsumqf	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsumqg	%v0, %v0, %v0
 
 	vsumqf	%v0, %v0, %v0
 	vsumqg	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsumb	%v0, %v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vsumh	%v0, %v0, %v0
 
 	vsumb	%v0, %v0, %v0
 	vsumh	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vtm	%v0, %v0
 
 	vtm	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuphb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuphf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuphh	%v0, %v0
 
 	vuphb	%v0, %v0
 	vuphf	%v0, %v0
 	vuphh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuplhb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuplhf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuplhh	%v0, %v0
 
 	vuplhb	%v0, %v0
 	vuplhf	%v0, %v0
 	vuplhh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuplb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuplf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vuplhw	%v0, %v0
 
 	vuplb	%v0, %v0
 	vuplf	%v0, %v0
 	vuplhw	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vupllb	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vupllf	%v0, %v0
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vupllh	%v0, %v0
 
 	vupllb	%v0, %v0
 	vupllf	%v0, %v0
 	vupllh	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vx	%v0, %v0, %v0
 
 	vx	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: vzero	%v0
 
 	vzero	%v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wcdgb	%v0, %v0, 0, 0
 
 	wcdgb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wcdlgb	%v0, %v0, 0, 0
 
 	wcdlgb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wcgdb	%v0, %v0, 0, 0
 
 	wcgdb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wclgdb	%v0, %v0, 0, 0
 
 	wclgdb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfadb	%v0, %v0, %v0
 
 	wfadb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfcdb	%v0, %v0
 
 	wfcdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfcedb	%v0, %v0, %v0
 #CHECK: wfcedbs	%v0, %v0, %v0
 
 	wfcedb	%v0, %v0, %v0
 	wfcedbs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfchdb	%v0, %v0, %v0
 #CHECK: wfchdbs	%v0, %v0, %v0
 
 	wfchdb	%v0, %v0, %v0
 	wfchdbs	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfchedb	%v0, %v0, %v0
 #CHECK: wfchedbs %v0, %v0, %v0
 
 	wfchedb	%v0, %v0, %v0
 	wfchedbs %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfddb	%v0, %v0, %v0
 
 	wfddb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfidb	%v0, %v0, 0, 0
 
 	wfidb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfkdb	%v0, %v0
 
 	wfkdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wflcdb	%v0, %v0
 
 	wflcdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wflndb	%v0, %v0
 
 	wflndb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wflpdb	%v0, %v0
 
 	wflpdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfmadb	%v0, %v0, %v0, %v0
 
 	wfmadb	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfmdb	%v0, %v0, %v0
 
 	wfmdb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfmsdb	%v0, %v0, %v0, %v0
 
 	wfmsdb	%v0, %v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfsdb	%v0, %v0, %v0
 
 	wfsdb	%v0, %v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wfsqdb	%v0, %v0
 
 	wfsqdb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wftcidb	%v0, %v0, 0
 
 	wftcidb	%v0, %v0, 0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wldeb	%v0, %v0
 
 	wldeb	%v0, %v0
 
-#CHECK: error: {{(instruction requires: vector)?}}
+#CHECK: error: instruction requires: vector
 #CHECK: wledb	%v0, %v0, 0, 0
 
 	wledb	%v0, %v0, 0, 0
 
-#CHECK: error: {{(instruction requires: load store on condition 2)?}}
+#CHECK: error: instruction requires: load-store-on-cond-2
 #CHECK: lochio %r11, 42
         
         lochio %r11, 42        
 
-#CHECK: error: {{(instruction requires: load store on condition 2)?}}
+#CHECK: error: instruction requires: load-store-on-cond-2
 #CHECK: locghio %r11, 42
         
         locghio %r11, 42        
diff --git a/llvm/test/MC/SystemZ/insn-bad.s b/llvm/test/MC/SystemZ/insn-bad.s
index 34c954a..e152b52 100644
--- a/llvm/test/MC/SystemZ/insn-bad.s
+++ b/llvm/test/MC/SystemZ/insn-bad.s
@@ -69,12 +69,12 @@
 	aghi	%r0, 32768
 	aghi	%r0, foo
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: aghik	%r1, %r2, 3
 
 	aghik	%r1, %r2, 3
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: agrk	%r2,%r3,%r4
 
 	agrk	%r2,%r3,%r4
@@ -115,7 +115,7 @@
 	ahi	%r0, 32768
 	ahi	%r0, foo
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: ahik	%r1, %r2, 3
 
 	ahik	%r1, %r2, 3
@@ -128,7 +128,7 @@
 	ahy	%r0, -524289
 	ahy	%r0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: aih	%r0, 0
 
 	aih	%r0, 0
@@ -165,12 +165,12 @@
 	alfi	%r0, -1
 	alfi	%r0, (1 << 32)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: alghsik	%r1, %r2, 3
 
 	alghsik	%r1, %r2, 3
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: alhsik	%r1, %r2, 3
 
 	alhsik	%r1, %r2, 3
@@ -199,12 +199,12 @@
 	algfi	%r0, -1
 	algfi	%r0, (1 << 32)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: algrk	%r2,%r3,%r4
 
 	algrk	%r2,%r3,%r4
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: alrk	%r2,%r3,%r4
 
 	alrk	%r2,%r3,%r4
@@ -217,7 +217,7 @@
 	aly	%r0, -524289
 	aly	%r0, 524288
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: ark	%r2,%r3,%r4
 
 	ark	%r2,%r3,%r4
@@ -414,12 +414,12 @@
 	cdb	%f0, -1
 	cdb	%f0, 4096
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cdlfbr	%f0, 0, %r0, 0
 
 	cdlfbr	%f0, 0, %r0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cdlgbr	%f0, 0, %r0, 0
 
 	cdlgbr	%f0, 0, %r0, 0
@@ -432,12 +432,12 @@
 	ceb	%f0, -1
 	ceb	%f0, 4096
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: celfbr	%f0, 0, %r0, 0
 
 	celfbr	%f0, 0, %r0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: celgbr	%f0, 0, %r0, 0
 
 	celgbr	%f0, 0, %r0, 0
@@ -690,7 +690,7 @@
 	ch	%r0, -1
 	ch	%r0, 4096
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: chf	%r0, 0
 
 	chf	%r0, 0
@@ -762,7 +762,7 @@
 	chy	%r0, -524289
 	chy	%r0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: cih	%r0, 0
 
 	cih	%r0, 0
@@ -863,17 +863,17 @@
 	clc	0(1,%r2), 0(%r1,%r2)
 	clc	0(-), 0
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: clhf	%r0, 0
 
 	clhf	%r0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clfdbr	%r0, 0, %f0, 0
 
 	clfdbr	%r0, 0, %f0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clfebr	%r0, 0, %f0, 0
 
 	clfebr	%r0, 0, %f0, 0
@@ -917,7 +917,7 @@
         clfito  %r0, 0
         clfitno %r0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clfxbr	%r0, 0, %f0, 0
 
 	clfxbr	%r0, 0, %f0, 0
@@ -944,12 +944,12 @@
         clgito  %r0, 0
         clgitno %r0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clgdbr	%r0, 0, %f0, 0
 
 	clgdbr	%r0, 0, %f0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clgebr	%r0, 0, %f0, 0
 
 	clgebr	%r0, 0, %f0, 0
@@ -1081,7 +1081,7 @@
         clgrto    %r0, %r0
         clgrtno   %r0, %r0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: clgxbr	%r0, 0, %f0, 0
 
 	clgxbr	%r0, 0, %f0, 0
@@ -1134,7 +1134,7 @@
 	cli	0, -1
 	cli	0, 256
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: clih	%r0, 0
 
 	clih	%r0, 0
@@ -1333,12 +1333,12 @@
 
 	cxgbr	%f2, %r0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cxlfbr	%f0, 0, %r0, 0
 
 	cxlfbr	%f0, 0, %r0, 0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: cxlgbr	%f0, 0, %r0, 0
 
 	cxlgbr	%f0, 0, %r0, 0
@@ -1472,7 +1472,7 @@
 	fidbr	%f0, -1, %f0
 	fidbr	%f0, 16, %f0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: fidbra	%f0, 0, %f0, 0
 
 	fidbra	%f0, 0, %f0, 0
@@ -1485,7 +1485,7 @@
 	fiebr	%f0, -1, %f0
 	fiebr	%f0, 16, %f0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: fiebra	%f0, 0, %f0, 0
 
 	fiebra	%f0, 0, %f0, 0
@@ -1504,7 +1504,7 @@
 	fixbr	%f0, 0, %f2
 	fixbr	%f2, 0, %f0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: fixbra	%f0, 0, %f0, 0
 
 	fixbra	%f0, 0, %f0, 0
@@ -1636,43 +1636,43 @@
 	la	%r0, -1
 	la	%r0, 4096
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: laa	%r1, %r2, 100(%r3)
 	laa	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: laag	%r1, %r2, 100(%r3)
 	laag	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: laal	%r1, %r2, 100(%r3)
 	laal	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: laalg	%r1, %r2, 100(%r3)
 	laalg	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: lan	%r1, %r2, 100(%r3)
 	lan	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: lang	%r1, %r2, 100(%r3)
 	lang	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: lao	%r1, %r2, 100(%r3)
 	lao	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: laog	%r1, %r2, 100(%r3)
 	laog	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: lax	%r1, %r2, 100(%r3)
 	lax	%r1, %r2, 100(%r3)
 
-#CHECK: error: {{(instruction requires: interlocked-access1)?}}
+#CHECK: error: instruction requires: interlocked-access1
 #CHECK: laxg	%r1, %r2, 100(%r3)
 	laxg	%r1, %r2, 100(%r3)
 
@@ -1706,7 +1706,7 @@
 	lb	%r0, -524289
 	lb	%r0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: lbh	%r0, 0
 
 	lbh	%r0, 0
@@ -1743,7 +1743,7 @@
 	ldxbr	%f0, %f2
 	ldxbr	%f2, %f0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: ldxbra	%f0, 0, %f0, 0
 
 	ldxbra	%f0, 0, %f0, 0
@@ -1764,7 +1764,7 @@
 	le	%f0, -1
 	le	%f0, 4096
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: ledbra	%f0, 0, %f0, 0
 
 	ledbra	%f0, 0, %f0, 0
@@ -1777,7 +1777,7 @@
 	lexbr	%f0, %f2
 	lexbr	%f2, %f0
 
-#CHECK: error: {{(instruction requires: fp-extension)?}}
+#CHECK: error: instruction requires: fp-extension
 #CHECK: lexbra	%f0, 0, %f0, 0
 
 	lexbra	%f0, 0, %f0, 0
@@ -1790,7 +1790,7 @@
 	ley	%f0, -524289
 	ley	%f0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: lfh	%r0, 0
 
 	lfh	%r0, 0
@@ -1896,7 +1896,7 @@
 	lh	%r0, -1
 	lh	%r0, 4096
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: lhh	%r0, 0
 
 	lhh	%r0, 0
@@ -1942,7 +1942,7 @@
 	llc	%r0, -524289
 	llc	%r0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: llch	%r0, 0
 
 	llch	%r0, 0
@@ -2007,7 +2007,7 @@
 	llh	%r0, -524289
 	llh	%r0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: llhh	%r0, 0
 
 	llhh	%r0, 0
@@ -2614,7 +2614,7 @@
 	ng	%r0, -524289
 	ng	%r0, 524288
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: ngrk	%r2,%r3,%r4
 
 	ngrk	%r2,%r3,%r4
@@ -2701,7 +2701,7 @@
 	niy	0, -1
 	niy	0, 256
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: nrk	%r2,%r3,%r4
 
 	nrk	%r2,%r3,%r4
@@ -2774,7 +2774,7 @@
 	og	%r0, -524289
 	og	%r0, 524288
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: ogrk	%r2,%r3,%r4
 
 	ogrk	%r2,%r3,%r4
@@ -2861,7 +2861,7 @@
 	oiy	0, -1
 	oiy	0, 256
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: ork	%r2,%r3,%r4
 
 	ork	%r2,%r3,%r4
@@ -2908,7 +2908,7 @@
 	pfdrl	1, 1
 	pfdrl	1, 0x100000000
 
-#CHECK: error: {{(instruction requires: population-count)?}}
+#CHECK: error: instruction requires: population-count
 #CHECK: popcnt	%r0, %r0
 
 	popcnt	%r0, %r0
@@ -2937,12 +2937,12 @@
 	risbg	%r0,%r0,-1,0,0
 	risbg	%r0,%r0,256,0,0
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: risbhg	%r1, %r2, 0, 0, 0
 
 	risbhg	%r1, %r2, 0, 0, 0
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: risblg	%r1, %r2, 0, 0, 0
 
 	risblg	%r1, %r2, 0, 0, 0
@@ -3075,7 +3075,7 @@
 	sgf	%r0, -524289
 	sgf	%r0, 524288
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: sgrk	%r2,%r3,%r4
 
 	sgrk	%r2,%r3,%r4
@@ -3152,7 +3152,7 @@
 	slgfi	%r0, -1
 	slgfi	%r0, (1 << 32)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: slgrk	%r2,%r3,%r4
 
 	slgrk	%r2,%r3,%r4
@@ -3171,7 +3171,7 @@
 	sla	%r0,0(%r0)
 	sla	%r0,0(%r1,%r2)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: slak	%r2,%r3,4(%r5)
 
 	slak	%r2,%r3,4(%r5)
@@ -3204,12 +3204,12 @@
 	sllg	%r0,%r0,0(%r0)
 	sllg	%r0,%r0,0(%r1,%r2)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: sllk	%r2,%r3,4(%r5)
 
 	sllk	%r2,%r3,4(%r5)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: slrk	%r2,%r3,%r4
 
 	slrk	%r2,%r3,%r4
@@ -3274,12 +3274,12 @@
 	srag	%r0,%r0,0(%r0)
 	srag	%r0,%r0,0(%r1,%r2)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: srak	%r2,%r3,4(%r5)
 
 	srak	%r2,%r3,4(%r5)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: srk	%r2,%r3,%r4
 
 	srk	%r2,%r3,%r4
@@ -3312,7 +3312,7 @@
 	srlg	%r0,%r0,0(%r0)
 	srlg	%r0,%r0,0(%r1,%r2)
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: srlk	%r2,%r3,4(%r5)
 
 	srlk	%r2,%r3,4(%r5)
@@ -3333,7 +3333,7 @@
 	stc	%r0, -1
 	stc	%r0, 4096
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: stch	%r0, 0
 
 	stch	%r0, 0
@@ -3408,7 +3408,7 @@
 	sth	%r0, -1
 	sth	%r0, 4096
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: sthh	%r0, 0
 
 	sthh	%r0, 0
@@ -3435,7 +3435,7 @@
 	sthy	%r0, -524289
 	sthy	%r0, 524288
 
-#CHECK: error: {{(instruction requires: high-word)?}}
+#CHECK: error: instruction requires: high-word
 #CHECK: stfh	%r0, 0
 
 	stfh	%r0, 0
@@ -3718,7 +3718,7 @@
 	xg	%r0, -524289
 	xg	%r0, 524288
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: xgrk	%r2,%r3,%r4
 
 	xgrk	%r2,%r3,%r4
@@ -3773,7 +3773,7 @@
 	xiy	0, -1
 	xiy	0, 256
 
-#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: error: instruction requires: distinct-ops
 #CHECK: xrk	%r2,%r3,%r4
 
 	xrk	%r2,%r3,%r4