mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-01 17:28:21 +00:00
[X86] AVX512: Allow writemasks with vpcmp
For now I only updated the _alt variants. The main variants are used by codegen and that will need a bit more work to trigger. <rdar://problem/17492620> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212114 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4fd1c542ee
commit
1cbd129d6a
@ -836,11 +836,21 @@ multiclass avx512_icmp_cc<bits<8> opc, RegisterClass KRC,
|
|||||||
!strconcat("vpcmp", Suffix,
|
!strconcat("vpcmp", Suffix,
|
||||||
"\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
|
"\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
|
||||||
[], IIC_SSE_ALU_F32P_RR>, EVEX_4V;
|
[], IIC_SSE_ALU_F32P_RR>, EVEX_4V;
|
||||||
|
def rrik_alt : AVX512AIi8<opc, MRMSrcReg,
|
||||||
|
(outs KRC:$dst), (ins KRC:$mask, RC:$src1, RC:$src2, i8imm:$cc),
|
||||||
|
!strconcat("vpcmp", Suffix,
|
||||||
|
"\t{$cc, $src2, $src1, $dst {${mask}}|$dst {${mask}}, $src1, $src2, $cc}"),
|
||||||
|
[], IIC_SSE_ALU_F32P_RR>, EVEX_4V, EVEX_K;
|
||||||
def rmi_alt : AVX512AIi8<opc, MRMSrcMem,
|
def rmi_alt : AVX512AIi8<opc, MRMSrcMem,
|
||||||
(outs KRC:$dst), (ins RC:$src1, x86memop:$src2, i8imm:$cc),
|
(outs KRC:$dst), (ins RC:$src1, x86memop:$src2, i8imm:$cc),
|
||||||
!strconcat("vpcmp", Suffix,
|
!strconcat("vpcmp", Suffix,
|
||||||
"\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
|
"\t{$cc, $src2, $src1, $dst|$dst, $src1, $src2, $cc}"),
|
||||||
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V;
|
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V;
|
||||||
|
def rmik_alt : AVX512AIi8<opc, MRMSrcMem,
|
||||||
|
(outs KRC:$dst), (ins KRC:$mask, RC:$src1, x86memop:$src2, i8imm:$cc),
|
||||||
|
!strconcat("vpcmp", Suffix,
|
||||||
|
"\t{$cc, $src2, $src1, $dst {${mask}}|$dst {${mask}}, $src1, $src2, $cc}"),
|
||||||
|
[], IIC_SSE_ALU_F32P_RM>, EVEX_4V, EVEX_K;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3191,3 +3191,11 @@ vcmpgtps %zmm17, %zmm5, %k2
|
|||||||
// CHECK: vcmppd $13
|
// CHECK: vcmppd $13
|
||||||
// CHECK: encoding: [0x62,0xd1,0xf5,0x40,0xc2,0x76,0x02,0x0d]
|
// CHECK: encoding: [0x62,0xd1,0xf5,0x40,0xc2,0x76,0x02,0x0d]
|
||||||
vcmpgepd 0x80(%r14), %zmm17, %k6
|
vcmpgepd 0x80(%r14), %zmm17, %k6
|
||||||
|
|
||||||
|
// CHECK: vpcmpd $1,
|
||||||
|
// CHECK: encoding: [0x62,0x93,0x45,0x4c,0x1f,0xe8,0x01]
|
||||||
|
vpcmpd $1, %zmm24, %zmm7, %k5{%k4}
|
||||||
|
|
||||||
|
// CHECK: vpcmpuq $2,
|
||||||
|
// CHECK: encoding: [0x62,0xf3,0xf5,0x47,0x1e,0x72,0x01,0x02]
|
||||||
|
vpcmpuq $2, 0x40(%rdx), %zmm17, %k6{%k7}
|
||||||
|
Loading…
Reference in New Issue
Block a user