forked from OSchip/llvm-project
[X86][AVX512] Add patterns for masked AVX512 floating point compare instructions that were missing.
patterns were missed by D33188. Adding for completion. +Updating test. Differential Revesion: https://reviews.llvm.org/D35179 llvm-svn: 308868
This commit is contained in:
parent
1f5df89a8c
commit
b16ce777e3
|
@ -2457,7 +2457,19 @@ let Predicates = Preds in {
|
|||
NewInf.KRC)>;
|
||||
|
||||
def : Pat<(insert_subvector (NewInf.KVT immAllZerosV),
|
||||
(_.KVT (X86cmpm (_.VT _.RC:$src1),
|
||||
(_.KVT (and _.KRCWM:$mask,
|
||||
(X86cmpm (_.VT _.RC:$src1),
|
||||
(_.VT _.RC:$src2),
|
||||
imm:$cc))),
|
||||
(i64 0)),
|
||||
(COPY_TO_REGCLASS (!cast<Instruction>(InstrStr##rrik) _.KRCWM:$mask,
|
||||
_.RC:$src1,
|
||||
_.RC:$src2,
|
||||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
|
||||
def : Pat<(insert_subvector (NewInf.KVT immAllZerosV),
|
||||
(_.KVT (X86cmpm (_.VT _.RC:$src1),
|
||||
(_.VT (bitconvert (_.LdFrag addr:$src2))),
|
||||
imm:$cc)),
|
||||
(i64 0)),
|
||||
|
@ -2466,6 +2478,19 @@ let Predicates = Preds in {
|
|||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
|
||||
def : Pat<(insert_subvector (NewInf.KVT immAllZerosV),
|
||||
(_.KVT (and _.KRCWM:$mask,
|
||||
(X86cmpm (_.VT _.RC:$src1),
|
||||
(_.VT (bitconvert
|
||||
(_.LdFrag addr:$src2))),
|
||||
imm:$cc))),
|
||||
(i64 0)),
|
||||
(COPY_TO_REGCLASS (!cast<Instruction>(InstrStr##rmik) _.KRCWM:$mask,
|
||||
_.RC:$src1,
|
||||
addr:$src2,
|
||||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
|
||||
def : Pat<(insert_subvector (NewInf.KVT immAllZerosV),
|
||||
(_.KVT (X86cmpm (_.VT _.RC:$src1),
|
||||
(X86VBroadcast (_.ScalarLdFrag addr:$src2)),
|
||||
|
@ -2475,6 +2500,19 @@ let Predicates = Preds in {
|
|||
addr:$src2,
|
||||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
|
||||
def : Pat<(insert_subvector (NewInf.KVT immAllZerosV),
|
||||
(_.KVT (and _.KRCWM:$mask,
|
||||
(X86cmpm (_.VT _.RC:$src1),
|
||||
(X86VBroadcast
|
||||
(_.ScalarLdFrag addr:$src2)),
|
||||
imm:$cc))),
|
||||
(i64 0)),
|
||||
(COPY_TO_REGCLASS (!cast<Instruction>(InstrStr##rmbik) _.KRCWM:$mask,
|
||||
_.RC:$src1,
|
||||
addr:$src2,
|
||||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2493,6 +2531,19 @@ let Predicates = Preds in
|
|||
_.RC:$src2,
|
||||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
|
||||
def : Pat<(insert_subvector (NewInf.KVT immAllZerosV),
|
||||
(_.KVT (and _.KRCWM:$mask,
|
||||
(X86cmpmRnd (_.VT _.RC:$src1),
|
||||
(_.VT _.RC:$src2),
|
||||
imm:$cc,
|
||||
(i32 FROUND_NO_EXC)))),
|
||||
(i64 0)),
|
||||
(COPY_TO_REGCLASS (!cast<Instruction>(InstrStr##rribk) _.KRCWM:$mask,
|
||||
_.RC:$src1,
|
||||
_.RC:$src2,
|
||||
imm:$cc),
|
||||
NewInf.KRC)>;
|
||||
}
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue