mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
AVX-512: store <4 x i1> and <2 x i1> values in memory
Enabled DAG pattern lowering for SKX with DQI predicate. Differential Revision: http://reviews.llvm.org/D12550 llvm-svn: 246625
This commit is contained in:
parent
fa55e93070
commit
c3d9501be6
@ -1786,6 +1786,11 @@ let Predicates = [HasDQI] in {
|
||||
(KMOVBmk addr:$dst, VK8:$src)>;
|
||||
def : Pat<(v8i1 (bitconvert (i8 (load addr:$src)))),
|
||||
(KMOVBkm addr:$src)>;
|
||||
|
||||
def : Pat<(store VK4:$src, addr:$dst),
|
||||
(KMOVBmk addr:$dst, (COPY_TO_REGCLASS VK4:$src, VK8))>;
|
||||
def : Pat<(store VK2:$src, addr:$dst),
|
||||
(KMOVBmk addr:$dst, (COPY_TO_REGCLASS VK2:$src, VK8))>;
|
||||
}
|
||||
let Predicates = [HasAVX512, NoDQI] in {
|
||||
def : Pat<(store (i8 (bitconvert (v8i1 VK8:$src))), addr:$dst),
|
||||
|
@ -407,3 +407,17 @@ define <32 x i16> @test21(<32 x i16> %x , <32 x i1> %mask) nounwind readnone {
|
||||
%ret = select <32 x i1> %mask, <32 x i16> %x, <32 x i16> zeroinitializer
|
||||
ret <32 x i16> %ret
|
||||
}
|
||||
|
||||
; SKX-LABEL: test22
|
||||
; SKX: kmovb
|
||||
define void @test22(<4 x i1> %a, <4 x i1>* %addr) {
|
||||
store <4 x i1> %a, <4 x i1>* %addr
|
||||
ret void
|
||||
}
|
||||
|
||||
; SKX-LABEL: test23
|
||||
; SKX: kmovb
|
||||
define void @test23(<2 x i1> %a, <2 x i1>* %addr) {
|
||||
store <2 x i1> %a, <2 x i1>* %addr
|
||||
ret void
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user