mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
Move PUNPCKLQDQ splat pattern close to the instruction definition and
duplicate it for AVX mode. llvm-svn: 139068
This commit is contained in:
parent
ca90af60bd
commit
48eeb79003
@ -3889,9 +3889,16 @@ let Constraints = "$src1 = $dst" in {
|
||||
(v2i64 (X86Punpckhqdq VR128:$src1,
|
||||
(memopv2i64 addr:$src2))))]>;
|
||||
}
|
||||
|
||||
} // ExeDomain = SSEPackedInt
|
||||
|
||||
// Splat v2f64 / v2i64
|
||||
let AddedComplexity = 10 in {
|
||||
def : Pat<(splat_lo (v2i64 VR128:$src), (undef)),
|
||||
(PUNPCKLQDQrr VR128:$src, VR128:$src)>, Requires<[HasSSE2]>;
|
||||
def : Pat<(splat_lo (v2i64 VR128:$src), (undef)),
|
||||
(VPUNPCKLQDQrr VR128:$src, VR128:$src)>, Requires<[HasAVX]>;
|
||||
}
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
// SSE2 - Packed Integer Extract and Insert
|
||||
//===---------------------------------------------------------------------===//
|
||||
@ -4882,12 +4889,6 @@ def : InstAlias<"monitor %eax, %ecx, %edx", (MONITORrrr)>,
|
||||
def : InstAlias<"monitor %rax, %rcx, %rdx", (MONITORrrr)>,
|
||||
Requires<[In64BitMode]>;
|
||||
|
||||
// Splat v2f64 / v2i64
|
||||
let AddedComplexity = 10 in {
|
||||
def : Pat<(splat_lo (v2i64 VR128:$src), (undef)),
|
||||
(PUNPCKLQDQrr VR128:$src, VR128:$src)>, Requires<[HasSSE2]>;
|
||||
}
|
||||
|
||||
// Set lowest element and zero upper elements.
|
||||
def : Pat<(v2f64 (X86vzmovl (v2f64 VR128:$src))),
|
||||
(MOVZPQILo2PQIrr VR128:$src)>, Requires<[HasSSE2]>;
|
||||
|
Loading…
Reference in New Issue
Block a user