[PATCH] D36570: [X86][AsmParser][AVX512] Error appropriately when K0 is tried as a write-mask
coby via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 13 05:06:44 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL310789: [X86][AsmParser][AVX512] Error appropriately when K0 is tried as a write-mask (authored by coby).
Changed prior to commit:
https://reviews.llvm.org/D36570?vs=110528&id=110869#toc
Repository:
rL LLVM
https://reviews.llvm.org/D36570
Files:
llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/trunk/test/MC/X86/avx512-err.s
llvm/trunk/test/MC/X86/intel-syntax-avx512-error.s
Index: llvm/trunk/test/MC/X86/intel-syntax-avx512-error.s
===================================================================
--- llvm/trunk/test/MC/X86/intel-syntax-avx512-error.s
+++ llvm/trunk/test/MC/X86/intel-syntax-avx512-error.s
@@ -7,3 +7,6 @@
// CHECK: error: Expected a {z} mark at this point
vfmsub213ps zmm8{rn-sae}, zmm8, zmm8
// CHECK: error: Expected an op-mask register at this point
+ vpcmpltd k5{k0}, zmm7, zmm24
+// CHECK: error: Register k0 can't be used as write mask
+
Index: llvm/trunk/test/MC/X86/avx512-err.s
===================================================================
--- llvm/trunk/test/MC/X86/avx512-err.s
+++ llvm/trunk/test/MC/X86/avx512-err.s
@@ -1,7 +1,6 @@
-// RUN: not llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512dq -mattr=+avx512f --show-encoding %s 2> %t.err
-// RUN: FileCheck --check-prefix=ERR < %t.err %s
+// RUN: not llvm-mc %s -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512dq -mattr=+avx512f --show-encoding -o /dev/null 2>&1 | FileCheck --check-prefix=ERR %s
-// ERR: invalid operand for instruction
+// ERR: Register k0 can't be used as write mask
vpcmpd $1, %zmm24, %zmm7, %k5{%k0}
// ERR: Expected a {z} mark at this point
Index: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
===================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -2088,8 +2088,11 @@
// Parse an op-mask register mark ({%k<NUM>}), which is now to be
// expected
unsigned RegNo;
- if (!ParseRegister(RegNo, StartLoc, StartLoc) &&
+ SMLoc RegLoc;
+ if (!ParseRegister(RegNo, RegLoc, StartLoc) &&
X86MCRegisterClasses[X86::VK1RegClassID].contains(RegNo)) {
+ if (RegNo == X86::K0)
+ return Error(RegLoc, "Register k0 can't be used as write mask");
if (!getLexer().is(AsmToken::RCurly))
return Error(getLexer().getLoc(), "Expected } at this point");
Operands.push_back(X86Operand::CreateToken("{", StartLoc));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36570.110869.patch
Type: text/x-patch
Size: 2144 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170813/c47f946b/attachment.bin>
More information about the llvm-commits
mailing list