mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-16 11:30:51 +00:00
Move MOVHLPS patterns close to MOVHLPS definition, and duplicate the
pattern for 128-bit AVX mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138516 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
954d5eabb7
commit
6140294363
@ -514,6 +514,11 @@ let Predicates = [HasAVX] in {
|
||||
def : Pat<(v4i32 (movhlps_undef VR128:$src1, (undef))),
|
||||
(VMOVHLPSrr VR128:$src1, VR128:$src1)>;
|
||||
}
|
||||
|
||||
def : Pat<(v4f32 (X86Movhlps VR128:$src1, VR128:$src2)),
|
||||
(VMOVHLPSrr VR128:$src1, VR128:$src2)>;
|
||||
def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
|
||||
(VMOVHLPSrr VR128:$src1, VR128:$src2)>;
|
||||
}
|
||||
|
||||
let Predicates = [HasSSE1] in {
|
||||
@ -557,6 +562,11 @@ let Predicates = [HasSSE1] in {
|
||||
def : Pat<(v4i32 (movhlps_undef VR128:$src1, (undef))),
|
||||
(MOVHLPSrr VR128:$src1, VR128:$src1)>;
|
||||
}
|
||||
|
||||
def : Pat<(v4f32 (X86Movhlps VR128:$src1, VR128:$src2)),
|
||||
(MOVHLPSrr VR128:$src1, VR128:$src2)>;
|
||||
def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
|
||||
(MOVHLPSrr VR128:$src1, VR128:$src2)>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -6011,12 +6021,6 @@ def VZEROUPPER : I<0x77, RawFrm, (outs), (ins), "vzeroupper",
|
||||
// The AVX version of some but not all of them are described here, and more
|
||||
// should come in a near future.
|
||||
|
||||
// Shuffle with MOVHLPS instruction
|
||||
def : Pat<(v4f32 (X86Movhlps VR128:$src1, VR128:$src2)),
|
||||
(MOVHLPSrr VR128:$src1, VR128:$src2)>;
|
||||
def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
|
||||
(MOVHLPSrr VR128:$src1, VR128:$src2)>;
|
||||
|
||||
// Shuffle with MOVDDUP instruction
|
||||
def : Pat<(X86Movddup (memopv2f64 addr:$src)),
|
||||
(VMOVDDUPrm addr:$src)>, Requires<[HasAVX]>;
|
||||
|
Loading…
Reference in New Issue
Block a user