Add AVX 256-bit MOVMSK forms

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108184 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bruno Cardoso Lopes 2010-07-12 20:06:32 +00:00
parent 4c7c08bfbf
commit aa099be71f
3 changed files with 21 additions and 0 deletions

View File

@ -1598,6 +1598,12 @@ let isAsmParserOnly = 1 in {
defm VMOVMSKPD : sse12_extr_sign_mask<VR128, int_x86_sse2_movmsk_pd,
"movmskpd", SSEPackedDouble>, OpSize,
VEX;
// FIXME: merge with multiclass above when the intrinsics come.
def VMOVMSKPSYrr : PI<0x50, MRMSrcReg, (outs GR32:$dst), (ins VR256:$src),
"movmskps\t{$src, $dst|$dst, $src}", [], SSEPackedSingle>, VEX;
def VMOVMSKPDYrr : PI<0x50, MRMSrcReg, (outs GR32:$dst), (ins VR256:$src),
"movmskpd\t{$src, $dst|$dst, $src}", [], SSEPackedDouble>, OpSize,
VEX;
}
//===----------------------------------------------------------------------===//

View File

@ -12398,4 +12398,11 @@
// CHECK: encoding: [0xc5,0xfc,0x2b,0x08]
vmovntps %ymm1, (%eax)
// CHECK: vmovmskps %xmm2, %eax
// CHECK: encoding: [0xc5,0xf8,0x50,0xc2]
vmovmskps %xmm2, %eax
// CHECK: vmovmskpd %xmm2, %eax
// CHECK: encoding: [0xc5,0xf9,0x50,0xc2]
vmovmskpd %xmm2, %eax

View File

@ -2472,3 +2472,11 @@ pshufb CPI1_0(%rip), %xmm1
// CHECK: encoding: [0xc5,0x7c,0x2b,0x18]
vmovntps %ymm11, (%rax)
// CHECK: vmovmskps %xmm12, %eax
// CHECK: encoding: [0xc4,0xc1,0x78,0x50,0xc4]
vmovmskps %xmm12, %eax
// CHECK: vmovmskpd %xmm12, %eax
// CHECK: encoding: [0xc4,0xc1,0x79,0x50,0xc4]
vmovmskpd %xmm12, %eax