aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC
diff options
context:
space:
mode:
authorKevin Qin <Kevin.Qin@arm.com>2013-11-18 09:20:32 +0000
committerKevin Qin <Kevin.Qin@arm.com>2013-11-18 09:20:32 +0000
commit69b2447b6a3fcc303e03cba8c7c50d745b0284d2 (patch)
treeb3b4de13a53f35065c729f0e22dfdc4a6e1c05b7 /test/MC
parent97577757c6dc84233ad10cd432664257e593e76d (diff)
downloadexternal_llvm-69b2447b6a3fcc303e03cba8c7c50d745b0284d2.zip
external_llvm-69b2447b6a3fcc303e03cba8c7c50d745b0284d2.tar.gz
external_llvm-69b2447b6a3fcc303e03cba8c7c50d745b0284d2.tar.bz2
[AArch64 NEON]Add mov alias for simd copy instructions.
Set some unspecified bits of INS/DUP to zero as ARMARM requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194996 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/AArch64/neon-simd-copy.s46
1 files changed, 36 insertions, 10 deletions
diff --git a/test/MC/AArch64/neon-simd-copy.s b/test/MC/AArch64/neon-simd-copy.s
index 67fe309..f254d65 100644
--- a/test/MC/AArch64/neon-simd-copy.s
+++ b/test/MC/AArch64/neon-simd-copy.s
@@ -11,11 +11,21 @@
ins v20.s[0], w30
ins v1.d[1], x7
+ mov v2.b[2], w1
+ mov v7.h[7], w14
+ mov v20.s[0], w30
+ mov v1.d[1], x7
+
// CHECK: ins v2.b[2], w1 // encoding: [0x22,0x1c,0x05,0x4e]
// CHECK: ins v7.h[7], w14 // encoding: [0xc7,0x1d,0x1e,0x4e]
// CHECK: ins v20.s[0], w30 // encoding: [0xd4,0x1f,0x04,0x4e]
// CHECK: ins v1.d[1], x7 // encoding: [0xe1,0x1c,0x18,0x4e]
+// CHECK: ins v2.b[2], w1 // encoding: [0x22,0x1c,0x05,0x4e]
+// CHECK: ins v7.h[7], w14 // encoding: [0xc7,0x1d,0x1e,0x4e]
+// CHECK: ins v20.s[0], w30 // encoding: [0xd4,0x1f,0x04,0x4e]
+// CHECK: ins v1.d[1], x7 // encoding: [0xe1,0x1c,0x18,0x4e]
+
//------------------------------------------------------------------------------
// Signed integer move (main, from element)
@@ -30,7 +40,7 @@
// CHECK: smov w14, v6.h[4] // encoding: [0xce,0x2c,0x12,0x0e]
// CHECK: smov x1, v0.b[15] // encoding: [0x01,0x2c,0x1f,0x4e]
// CHECK: smov x14, v6.h[4] // encoding: [0xce,0x2c,0x12,0x4e]
-// CHECK: smov x20, v9.s[2] // encoding: [0x34,0x2d,0x14,0x4e]
+// CHECK: smov x20, v9.s[2] // encoding: [0x34,0x2d,0x14,0x4e]
//------------------------------------------------------------------------------
@@ -41,25 +51,41 @@
umov w20, v9.s[2]
umov x7, v18.d[1]
+ mov w20, v9.s[2]
+ mov x7, v18.d[1]
+
// CHECK: umov w1, v0.b[15] // encoding: [0x01,0x3c,0x1f,0x0e]
// CHECK: umov w14, v6.h[4] // encoding: [0xce,0x3c,0x12,0x0e]
// CHECK: umov w20, v9.s[2] // encoding: [0x34,0x3d,0x14,0x0e]
// CHECK: umov x7, v18.d[1] // encoding: [0x47,0x3e,0x18,0x4e]
+// CHECK: umov w20, v9.s[2] // encoding: [0x34,0x3d,0x14,0x0e]
+// CHECK: umov x7, v18.d[1] // encoding: [0x47,0x3e,0x18,0x4e]
+
//------------------------------------------------------------------------------
// Insert element (vector, from element)
//------------------------------------------------------------------------------
- Ins v1.b[14], v3.b[6]
- Ins v6.h[7], v7.h[5]
- Ins v15.s[3], v22.s[2]
- Ins v0.d[0], v4.d[1]
+ ins v1.b[14], v3.b[6]
+ ins v6.h[7], v7.h[5]
+ ins v15.s[3], v22.s[2]
+ ins v0.d[0], v4.d[1]
+
+ mov v1.b[14], v3.b[6]
+ mov v6.h[7], v7.h[5]
+ mov v15.s[3], v22.s[2]
+ mov v0.d[0], v4.d[1]
// CHECK: ins v1.b[14], v3.b[6] // encoding: [0x61,0x34,0x1d,0x6e]
// CHECK: ins v6.h[7], v7.h[5] // encoding: [0xe6,0x54,0x1e,0x6e]
-// CHECK: ins v15.s[3], v22.s[2] // encoding: [0xcf,0x5e,0x1c,0x6e]
+// CHECK: ins v15.s[3], v22.s[2] // encoding: [0xcf,0x46,0x1c,0x6e]
// CHECK: ins v0.d[0], v4.d[1] // encoding: [0x80,0x44,0x08,0x6e]
+// CHECK: ins v1.b[14], v3.b[6] // encoding: [0x61,0x34,0x1d,0x6e]
+// CHECK: ins v6.h[7], v7.h[5] // encoding: [0xe6,0x54,0x1e,0x6e]
+// CHECK: ins v15.s[3], v22.s[2] // encoding: [0xcf,0x46,0x1c,0x6e]
+// CHECK: ins v0.d[0], v4.d[1] // encoding: [0x80,0x44,0x08,0x6e]
+
//------------------------------------------------------------------------------
// Duplicate to all lanes( vector, from element)
//------------------------------------------------------------------------------
@@ -91,11 +117,11 @@
dup v5.2d, x0
// CHECK: dup v1.8b, w1 // encoding: [0x21,0x0c,0x01,0x0e]
-// CHECK: dup v11.4h, w14 // encoding: [0xcb,0x0d,0x0a,0x0e]
-// CHECK: dup v17.2s, w30 // encoding: [0xd1,0x0f,0x14,0x0e]
+// CHECK: dup v11.4h, w14 // encoding: [0xcb,0x0d,0x02,0x0e]
+// CHECK: dup v17.2s, w30 // encoding: [0xd1,0x0f,0x04,0x0e]
// CHECK: dup v1.16b, w2 // encoding: [0x41,0x0c,0x01,0x4e]
-// CHECK: dup v11.8h, w16 // encoding: [0x0b,0x0e,0x0a,0x4e]
-// CHECK: dup v17.4s, w28 // encoding: [0x91,0x0f,0x14,0x4e]
+// CHECK: dup v11.8h, w16 // encoding: [0x0b,0x0e,0x02,0x4e]
+// CHECK: dup v17.4s, w28 // encoding: [0x91,0x0f,0x04,0x4e]
// CHECK: dup v5.2d, x0 // encoding: [0x05,0x0c,0x08,0x4e]