mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[X86] AVX512: Fix asm syntax for packed vcmp
The *_alt defs for vcmp are used by the InstParser (the asm string in the main def is used by the InstPrinter) . The former was accepting vector registers as destination rather than mask registers. llvm-svn: 211750
This commit is contained in:
parent
fd9ead3b6f
commit
aa04918ad4
@ -837,7 +837,7 @@ defm VPCMPUQZ : avx512_icmp_cc<0x1E, VK8, VR512, i512mem, memopv8i64,
|
|||||||
"vpcmpuq\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}">,
|
"vpcmpuq\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}">,
|
||||||
VEX_W, EVEX_V512, EVEX_CD8<64, CD8VF>;
|
VEX_W, EVEX_V512, EVEX_CD8<64, CD8VF>;
|
||||||
|
|
||||||
// avx512_cmp_packed - sse 1 & 2 compare packed instructions
|
// avx512_cmp_packed - compare packed instructions
|
||||||
multiclass avx512_cmp_packed<RegisterClass KRC, RegisterClass RC,
|
multiclass avx512_cmp_packed<RegisterClass KRC, RegisterClass RC,
|
||||||
X86MemOperand x86memop, ValueType vt,
|
X86MemOperand x86memop, ValueType vt,
|
||||||
string suffix, Domain d> {
|
string suffix, Domain d> {
|
||||||
@ -861,11 +861,11 @@ multiclass avx512_cmp_packed<RegisterClass KRC, RegisterClass RC,
|
|||||||
// Accept explicit immediate argument form instead of comparison code.
|
// Accept explicit immediate argument form instead of comparison code.
|
||||||
let isAsmParserOnly = 1, hasSideEffects = 0 in {
|
let isAsmParserOnly = 1, hasSideEffects = 0 in {
|
||||||
def rri_alt : AVX512PIi8<0xC2, MRMSrcReg,
|
def rri_alt : AVX512PIi8<0xC2, MRMSrcReg,
|
||||||
(outs RC:$dst), (ins RC:$src1, RC:$src2, i8imm:$cc),
|
(outs KRC:$dst), (ins RC:$src1, RC:$src2, i8imm:$cc),
|
||||||
!strconcat("vcmp", suffix,
|
!strconcat("vcmp", suffix,
|
||||||
" \t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"), [], d>;
|
" \t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"), [], d>;
|
||||||
def rmi_alt : AVX512PIi8<0xC2, MRMSrcMem,
|
def rmi_alt : AVX512PIi8<0xC2, MRMSrcMem,
|
||||||
(outs RC:$dst), (ins RC:$src1, x86memop:$src2, i8imm:$cc),
|
(outs KRC:$dst), (ins RC:$src1, x86memop:$src2, i8imm:$cc),
|
||||||
!strconcat("vcmp", suffix,
|
!strconcat("vcmp", suffix,
|
||||||
" \t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"), [], d>;
|
" \t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"), [], d>;
|
||||||
}
|
}
|
||||||
|
@ -3175,3 +3175,11 @@ vmovntpd %zmm6, 4(%rdx)
|
|||||||
// CHECK: vmovntps
|
// CHECK: vmovntps
|
||||||
// CHECK: encoding: [0x62,0x51,0x7c,0x48,0x2b,0x5c,0x8d,0x00]
|
// CHECK: encoding: [0x62,0x51,0x7c,0x48,0x2b,0x5c,0x8d,0x00]
|
||||||
vmovntps %zmm11, (%r13,%rcx,4)
|
vmovntps %zmm11, (%r13,%rcx,4)
|
||||||
|
|
||||||
|
// CHECK: vcmpps $14
|
||||||
|
// CHECK: encoding: [0x62,0xb1,0x54,0x48,0xc2,0xd1,0x0e]
|
||||||
|
vcmpgtps %zmm17, %zmm5, %k2
|
||||||
|
|
||||||
|
// CHECK: vcmppd $13
|
||||||
|
// CHECK: encoding: [0x62,0xd1,0xf5,0x40,0xc2,0x76,0x02,0x0d]
|
||||||
|
vcmpgepd 0x80(%r14), %zmm17, %k6
|
||||||
|
Loading…
x
Reference in New Issue
Block a user