Index: test/cctest/test-assembler-x64.cc |
diff --git a/test/cctest/test-assembler-x64.cc b/test/cctest/test-assembler-x64.cc |
index d1615ebadacab1bd4232e8eed4d41acfbbecd4ae..b9e4b5fcc5948d80c2470f05582d349b638c4a39 100644 |
--- a/test/cctest/test-assembler-x64.cc |
+++ b/test/cctest/test-assembler-x64.cc |
@@ -1423,6 +1423,33 @@ TEST(AssemblerX64AVX_sd) { |
__ cmpl(rdx, Immediate(2)); |
__ j(not_equal, &exit); |
+ // Test vpcmpeqd |
+ __ movq(rdx, V8_UINT64_C(0x0123456789abcdef)); |
+ __ movq(rcx, V8_UINT64_C(0x0123456788888888)); |
+ __ vmovq(xmm6, rdx); |
+ __ vmovq(xmm7, rcx); |
+ __ vpcmpeqd(xmm8, xmm6, xmm7); |
+ __ vmovq(rdx, xmm8); |
+ __ movq(rcx, V8_UINT64_C(0xffffffff00000000)); |
+ __ cmpq(rcx, rdx); |
+ __ movl(rax, Immediate(13)); |
+ __ j(not_equal, &exit); |
+ |
+ // Test vpsllq, vpsrlq |
+ __ movl(rax, Immediate(13)); |
+ __ movq(rdx, V8_UINT64_C(0x0123456789abcdef)); |
+ __ vmovq(xmm6, rdx); |
+ __ vpsrlq(xmm7, xmm6, 4); |
+ __ vmovq(rdx, xmm7); |
+ __ movq(rcx, V8_UINT64_C(0x00123456789abcde)); |
+ __ cmpq(rdx, rcx); |
+ __ j(not_equal, &exit); |
+ __ vpsllq(xmm7, xmm6, 12); |
+ __ vmovq(rdx, xmm7); |
+ __ movq(rcx, V8_UINT64_C(0x3456789abcdef000)); |
+ __ cmpq(rdx, rcx); |
+ __ j(not_equal, &exit); |
+ |
__ movl(rdx, Immediate(6)); |
__ vcvtlsi2sd(xmm6, xmm6, rdx); |
__ movl(Operand(rsp, 0), Immediate(5)); |