mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-25 21:16:19 +00:00
Add 128-bit pmovmskb intrinsic support.
llvm-svn: 27255
This commit is contained in:
parent
9ebe75e915
commit
82d2a6910f
@ -298,4 +298,6 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
llvm_v8i16_ty], [InstrNoMem]>;
|
||||
def int_x86_sse2_movmskpd : GCCBuiltin<"__builtin_ia32_movmskpd">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [InstrNoMem]>;
|
||||
def int_x86_sse2_pmovmskb_128 : GCCBuiltin<"__builtin_ia32_pmovmskb128">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v16i8_ty], [InstrNoMem]>;
|
||||
}
|
||||
|
@ -686,13 +686,6 @@ def MOVHLPSrr : PSI<0x12, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2),
|
||||
MOVHLPS_shuffle_mask)))]>;
|
||||
}
|
||||
|
||||
def MOVMSKPSrr : PSI<0x50, MRMSrcReg, (ops R32:$dst, VR128:$src),
|
||||
"movmskps {$src, $dst|$dst, $src}",
|
||||
[(set R32:$dst, (int_x86_sse_movmsk_ps VR128:$src))]>;
|
||||
def MOVMSKPDrr : PSI<0x50, MRMSrcReg, (ops R32:$dst, VR128:$src),
|
||||
"movmskpd {$src, $dst|$dst, $src}",
|
||||
[(set R32:$dst, (int_x86_sse2_movmskpd VR128:$src))]>;
|
||||
|
||||
// Conversion instructions
|
||||
def CVTPI2PSrr : PSI<0x2A, MRMSrcReg, (ops VR128:$dst, VR64:$src),
|
||||
"cvtpi2ps {$src, $dst|$dst, $src}", []>;
|
||||
@ -1374,6 +1367,18 @@ def PUNPCKHQDQrm : PDI<0x6D, MRMSrcMem,
|
||||
// Miscellaneous Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Mask creation
|
||||
def MOVMSKPSrr : PSI<0x50, MRMSrcReg, (ops R32:$dst, VR128:$src),
|
||||
"movmskps {$src, $dst|$dst, $src}",
|
||||
[(set R32:$dst, (int_x86_sse_movmsk_ps VR128:$src))]>;
|
||||
def MOVMSKPDrr : PSI<0x50, MRMSrcReg, (ops R32:$dst, VR128:$src),
|
||||
"movmskpd {$src, $dst|$dst, $src}",
|
||||
[(set R32:$dst, (int_x86_sse2_movmskpd VR128:$src))]>;
|
||||
|
||||
def PMOVMSKBrr : PDI<0xD7, MRMSrcReg, (ops R32:$dst, VR128:$src),
|
||||
"pmovmskb {$src, $dst|$dst, $src}",
|
||||
[(set R32:$dst, (int_x86_sse2_pmovmskb_128 VR128:$src))]>;
|
||||
|
||||
// Prefetching loads
|
||||
def PREFETCHT0 : I<0x18, MRM1m, (ops i8mem:$src),
|
||||
"prefetcht0 $src", []>, TB,
|
||||
|
Loading…
Reference in New Issue
Block a user