Index: test/cctest/test-assembler-x64.cc |
diff --git a/test/cctest/test-assembler-x64.cc b/test/cctest/test-assembler-x64.cc |
index 28c64ec711fe5e2a5921c38d97044110913805a0..a0a120282b686748fa7bd04d6822c932881ee239 100644 |
--- a/test/cctest/test-assembler-x64.cc |
+++ b/test/cctest/test-assembler-x64.cc |
@@ -1278,8 +1278,18 @@ TEST(AssemblerX64AVX_ss) { |
CpuFeatureScope avx_scope(&assm, AVX); |
Label exit; |
// arguments in xmm0, xmm1 and xmm2 |
- __ movl(rax, Immediate(0)); |
+ __ subq(rsp, Immediate(kDoubleSize * 2)); // For memory operand |
+ |
+ __ movl(rdx, Immediate(0xc2f64000)); // -123.125 |
+ __ vmovd(xmm4, rdx); |
+ __ vmovss(Operand(rsp, 0), xmm4); |
+ __ vmovss(xmm5, Operand(rsp, 0)); |
+ __ vmovd(rcx, xmm5); |
+ __ cmpl(rcx, rdx); |
+ __ movl(rax, Immediate(9)); |
+ __ j(not_equal, &exit); |
+ __ movl(rax, Immediate(0)); |
__ vmaxss(xmm3, xmm0, xmm1); |
__ vucomiss(xmm3, xmm1); |
__ j(parity_even, &exit); |
@@ -1320,6 +1330,7 @@ TEST(AssemblerX64AVX_ss) { |
// result in eax |
__ bind(&exit); |
+ __ addq(rsp, Immediate(kDoubleSize * 2)); |
__ ret(0); |
} |
@@ -1367,7 +1378,7 @@ TEST(AssemblerX64AVX_sd) { |
__ vcvtsd2ss(xmm6, xmm6, Operand(rsp, 0)); |
__ vcvtss2sd(xmm7, xmm6, xmm6); |
__ vcvtsd2ss(xmm8, xmm7, xmm7); |
- __ movss(Operand(rsp, 0), xmm8); |
+ __ vmovss(Operand(rsp, 0), xmm8); |
__ vcvtss2sd(xmm9, xmm8, Operand(rsp, 0)); |
__ vmovq(rcx, xmm9); |
__ cmpq(rcx, rdx); |