Index: test/cctest/test-disasm-arm.cc |
diff --git a/test/cctest/test-disasm-arm.cc b/test/cctest/test-disasm-arm.cc |
index 7b2dcd4207677ef0d063e99b825149a78a461963..91bbffb014642696d4ab516f0a4280113f04b7bd 100644 |
--- a/test/cctest/test-disasm-arm.cc |
+++ b/test/cctest/test-disasm-arm.cc |
@@ -940,6 +940,10 @@ TEST(Neon) { |
"f22e01fe vmov q0, q15"); |
COMPARE(vmov(q8, q9), |
"f26201f2 vmov q8, q9"); |
+ COMPARE(vmvn(q0, q15), |
+ "f3b005ee vmvn q0, q15"); |
+ COMPARE(vmvn(q8, q9), |
+ "f3f005e2 vmvn q8, q9"); |
COMPARE(vswp(d0, d31), |
"f3b2002f vswp d0, d31"); |
COMPARE(vswp(d16, d14), |
@@ -948,6 +952,24 @@ TEST(Neon) { |
"f3b2006e vswp q0, q15"); |
COMPARE(vswp(q8, q9), |
"f3f20062 vswp q8, q9"); |
+ COMPARE(vdup(q0, r0, Neon8), |
+ "eee00b10 vdup.8 q0, r0"); |
+ COMPARE(vdup(q1, r4, Neon16), |
+ "eea24b30 vdup.16 q1, r4"); |
+ COMPARE(vdup(q15, r1, Neon32), |
+ "eeae1b90 vdup.32 q15, r1"); |
+ COMPARE(vdup(q0, s3), |
+ "f3bc0c41 vdup q0, d1[1]"); |
+ COMPARE(vdup(q15, s2), |
+ "f3f4ec41 vdup q15, d1[0]"); |
+ COMPARE(vcvt_f32_s32(q15, q1), |
+ "f3fbe642 vcvt.f32.s32 q15, q1"); |
+ COMPARE(vcvt_f32_u32(q8, q9), |
+ "f3fb06e2 vcvt.f32.u32 q8, q9"); |
+ COMPARE(vcvt_s32_f32(q15, q1), |
+ "f3fbe742 vcvt.s32.f32 q15, q1"); |
+ COMPARE(vcvt_u32_f32(q8, q9), |
+ "f3fb07e2 vcvt.u32.f32 q8, q9"); |
COMPARE(veor(d0, d1, d2), |
"f3010112 veor d0, d1, d2"); |
COMPARE(veor(d0, d30, d31), |
@@ -956,6 +978,50 @@ TEST(Neon) { |
"f3020154 veor q0, q1, q2"); |
COMPARE(veor(q15, q0, q8), |
"f340e170 veor q15, q0, q8"); |
+ COMPARE(vadd(q15, q0, q8), |
+ "f240ed60 vadd.f32 q15, q0, q8"); |
+ COMPARE(vadd(q0, q1, q2, Neon8), |
+ "f2020844 vadd.i8 q0, q1, q2"); |
+ COMPARE(vadd(q1, q2, q8, Neon16), |
+ "f2142860 vadd.i16 q1, q2, q8"); |
+ COMPARE(vadd(q15, q0, q8, Neon32), |
+ "f260e860 vadd.i32 q15, q0, q8"); |
+ COMPARE(vsub(q15, q0, q8), |
+ "f260ed60 vsub.f32 q15, q0, q8"); |
+ COMPARE(vsub(q0, q1, q2, Neon8), |
+ "f3020844 vsub.i8 q0, q1, q2"); |
+ COMPARE(vsub(q1, q2, q8, Neon16), |
+ "f3142860 vsub.i16 q1, q2, q8"); |
+ COMPARE(vsub(q15, q0, q8, Neon32), |
+ "f360e860 vsub.i32 q15, q0, q8"); |
+ COMPARE(vtst(q0, q1, q2, Neon8), |
+ "f2020854 vtst.i8 q0, q1, q2"); |
+ COMPARE(vtst(q1, q2, q8, Neon16), |
+ "f2142870 vtst.i16 q1, q2, q8"); |
+ COMPARE(vtst(q15, q0, q8, Neon32), |
+ "f260e870 vtst.i32 q15, q0, q8"); |
+ COMPARE(vceq(q0, q1, q2, Neon8), |
+ "f3020854 vceq.i8 q0, q1, q2"); |
+ COMPARE(vceq(q1, q2, q8, Neon16), |
+ "f3142870 vceq.i16 q1, q2, q8"); |
+ COMPARE(vceq(q15, q0, q8, Neon32), |
+ "f360e870 vceq.i32 q15, q0, q8"); |
+ COMPARE(vbsl(q0, q1, q2), |
+ "f3120154 vbsl q0, q1, q2"); |
+ COMPARE(vbsl(q15, q0, q8), |
+ "f350e170 vbsl q15, q0, q8"); |
+ COMPARE(vtbl(d0, NeonListOperand(d1, 1), d2), |
+ "f3b10802 vtbl d0, {d1}, d2"); |
Rodolph Perfetta (ARM)
2016/12/08 18:08:28
vtbl.8/vtbx.8
bbudge
2016/12/10 21:33:04
Done.
|
+ COMPARE(vtbl(d31, NeonListOperand(d0, 2), d4), |
+ "f3f0f904 vtbl d31, {d0, d1}, d4"); |
+ COMPARE(vtbl(d15, NeonListOperand(d1, 3), d5), |
+ "f3b1fa05 vtbl d15, {d1, d2, d3}, d5"); |
+ COMPARE(vtbx(d0, NeonListOperand(d1, 1), d2), |
+ "f3b10842 vtbx d0, {d1}, d2"); |
+ COMPARE(vtbx(d31, NeonListOperand(d0, 2), d4), |
+ "f3f0f944 vtbx d31, {d0, d1}, d4"); |
+ COMPARE(vtbx(d15, NeonListOperand(d1, 3), d5), |
+ "f3b1fa45 vtbx d15, {d1, d2, d3}, d5"); |
Rodolph Perfetta (ARM)
2016/12/08 18:08:28
it woudl be nice to have a test with a list of 4 r
bbudge
2016/12/10 21:33:04
Done.
|
} |
VERIFY_RUN(); |