mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-13 07:00:59 +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]>;
|
llvm_v8i16_ty], [InstrNoMem]>;
|
||||||
def int_x86_sse2_movmskpd : GCCBuiltin<"__builtin_ia32_movmskpd">,
|
def int_x86_sse2_movmskpd : GCCBuiltin<"__builtin_ia32_movmskpd">,
|
||||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [InstrNoMem]>;
|
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)))]>;
|
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
|
// Conversion instructions
|
||||||
def CVTPI2PSrr : PSI<0x2A, MRMSrcReg, (ops VR128:$dst, VR64:$src),
|
def CVTPI2PSrr : PSI<0x2A, MRMSrcReg, (ops VR128:$dst, VR64:$src),
|
||||||
"cvtpi2ps {$src, $dst|$dst, $src}", []>;
|
"cvtpi2ps {$src, $dst|$dst, $src}", []>;
|
||||||
@ -1374,6 +1367,18 @@ def PUNPCKHQDQrm : PDI<0x6D, MRMSrcMem,
|
|||||||
// Miscellaneous Instructions
|
// 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
|
// Prefetching loads
|
||||||
def PREFETCHT0 : I<0x18, MRM1m, (ops i8mem:$src),
|
def PREFETCHT0 : I<0x18, MRM1m, (ops i8mem:$src),
|
||||||
"prefetcht0 $src", []>, TB,
|
"prefetcht0 $src", []>, TB,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user