| Index: test/cctest/test-macro-assembler-arm.cc
|
| diff --git a/test/cctest/test-macro-assembler-arm.cc b/test/cctest/test-macro-assembler-arm.cc
|
| index dcc5fba0a26244b55a69cf0e6ae02894c143fcca..4de4647f983cc4766ab86f5b5aac487f79cd3f0f 100644
|
| --- a/test/cctest/test-macro-assembler-arm.cc
|
| +++ b/test/cctest/test-macro-assembler-arm.cc
|
| @@ -156,6 +156,8 @@ TEST(ExtractLane) {
|
| int32_t i8x16_high[16];
|
| int32_t f32x4_low[4];
|
| int32_t f32x4_high[4];
|
| + int32_t i8x16_low_d[16];
|
| + int32_t i8x16_high_d[16];
|
| } T;
|
| T t;
|
|
|
| @@ -185,6 +187,15 @@ TEST(ExtractLane) {
|
| __ str(r5, MemOperand(r0, offsetof(T, i8x16_low) + 4 * i));
|
| }
|
|
|
| + for (int i = 0; i < 8; i++) {
|
| + __ mov(r4, Operand(i));
|
| + __ vdup(Neon8, q1, r4); // q1 = d2,d3
|
| + __ ExtractLane(r5, d2, NeonS8, i);
|
| + __ str(r5, MemOperand(r0, offsetof(T, i8x16_low_d) + 4 * i));
|
| + __ ExtractLane(r5, d3, NeonS8, i);
|
| + __ str(r5, MemOperand(r0, offsetof(T, i8x16_low_d) + 4 * (i + 8)));
|
| + }
|
| +
|
| if (CpuFeatures::IsSupported(VFP32DREGS)) {
|
| for (int i = 0; i < 4; i++) {
|
| __ mov(r4, Operand(-i));
|
| @@ -209,6 +220,15 @@ TEST(ExtractLane) {
|
| __ ExtractLane(r5, q15, NeonS8, i);
|
| __ str(r5, MemOperand(r0, offsetof(T, i8x16_high) + 4 * i));
|
| }
|
| +
|
| + for (int i = 0; i < 8; i++) {
|
| + __ mov(r4, Operand(-i));
|
| + __ vdup(Neon8, q15, r4); // q1 = d30,d31
|
| + __ ExtractLane(r5, d30, NeonS8, i);
|
| + __ str(r5, MemOperand(r0, offsetof(T, i8x16_high_d) + 4 * i));
|
| + __ ExtractLane(r5, d31, NeonS8, i);
|
| + __ str(r5, MemOperand(r0, offsetof(T, i8x16_high_d) + 4 * (i + 8)));
|
| + }
|
| }
|
|
|
| __ ldm(ia_w, sp, r4.bit() | r5.bit() | pc.bit());
|
| @@ -234,6 +254,10 @@ TEST(ExtractLane) {
|
| for (int i = 0; i < 16; i++) {
|
| CHECK_EQ(i, t.i8x16_low[i]);
|
| }
|
| + for (int i = 0; i < 8; i++) {
|
| + CHECK_EQ(i, t.i8x16_low_d[i]);
|
| + CHECK_EQ(i, t.i8x16_low_d[i + 8]);
|
| + }
|
| if (CpuFeatures::IsSupported(VFP32DREGS)) {
|
| for (int i = 0; i < 4; i++) {
|
| CHECK_EQ(-i, t.i32x4_high[i]);
|
| @@ -245,6 +269,10 @@ TEST(ExtractLane) {
|
| for (int i = 0; i < 16; i++) {
|
| CHECK_EQ(-i, t.i8x16_high[i]);
|
| }
|
| + for (int i = 0; i < 8; i++) {
|
| + CHECK_EQ(-i, t.i8x16_high_d[i]);
|
| + CHECK_EQ(-i, t.i8x16_high_d[i + 8]);
|
| + }
|
| }
|
| }
|
|
|
|
|