Implement AArch64 Neon instruction set Perm.
[oota-llvm.git] / test / MC / Disassembler / AArch64 / neon-instructions.txt
index 225bb16212ffa6890ca1a67eadf391e4da73b431..e4aad48f47364830acaf6b417feaa6438d9c8463 100644 (file)
@@ -2051,3 +2051,110 @@ G# RUN: llvm-mc  -triple aarch64-none-linux-gnu -mattr=+neon -disassemble < %s |
 # CHECK: ext v0.8b, v1.8b, v2.8b, #0x3
 # CHECK: ext v0.16b, v1.16b, v2.16b, #0x3
 
+#----------------------------------------------------------------------
+# unzip with 3 same vectors to get primary result
+#----------------------------------------------------------------------
+# CHECK: uzp1  v1.8b, v1.8b, v2.8b
+# CHECK: uzp1  v2.16b, v1.16b, v2.16b
+# CHECK: uzp1  v3.4h, v1.4h, v2.4h
+# CHECK: uzp1  v4.8h, v1.8h, v2.8h
+# CHECK: uzp1  v5.2s, v1.2s, v2.2s
+# CHECK: uzp1  v6.4s, v1.4s, v2.4s
+# CHECK: uzp1  v7.2d, v1.2d, v2.2d
+0x21,0x18,0x02,0x0e
+0x22,0x18,0x02,0x4e
+0x23,0x18,0x42,0x0e
+0x24,0x18,0x42,0x4e
+0x25,0x18,0x82,0x0e
+0x26,0x18,0x82,0x4e
+0x27,0x18,0xc2,0x4e
+
+#----------------------------------------------------------------------
+# transpose with 3 same vectors to get primary result
+#----------------------------------------------------------------------
+# CHECK: trn1  v8.8b, v1.8b, v2.8b
+# CHECK: trn1  v9.16b, v1.16b, v2.16b
+# CHECK: trn1  v10.4h, v1.4h, v2.4h
+# CHECK: trn1  v27.8h, v7.8h, v2.8h
+# CHECK: trn1  v12.2s, v7.2s, v2.2s
+# CHECK: trn1  v29.4s, v6.4s, v2.4s
+# CHECK: trn1  v14.2d, v6.2d, v2.2d
+0x28,0x28,0x02,0x0e
+0x29,0x28,0x02,0x4e
+0x2a,0x28,0x42,0x0e
+0xfb,0x28,0x42,0x4e
+0xec,0x28,0x82,0x0e
+0xdd,0x28,0x82,0x4e
+0xce,0x28,0xc2,0x4e
+
+#----------------------------------------------------------------------
+# zip with 3 same vectors to get primary result
+#----------------------------------------------------------------------
+# CHECK: zip1  v31.8b, v5.8b, v2.8b
+# CHECK: zip1  v0.16b, v5.16b, v2.16b
+# CHECK: zip1  v17.4h, v4.4h, v2.4h
+# CHECK: zip1  v2.8h, v4.8h, v2.8h
+# CHECK: zip1  v19.2s, v3.2s, v2.2s
+# CHECK: zip1  v4.4s, v3.4s, v2.4s
+# CHECK: zip1  v21.2d, v2.2d, v2.2d
+0xbf,0x38,0x02,0x0e
+0xa0,0x38,0x02,0x4e
+0x91,0x38,0x42,0x0e
+0x82,0x38,0x42,0x4e
+0x73,0x38,0x82,0x0e
+0x64,0x38,0x82,0x4e
+0x55,0x38,0xc2,0x4e
+
+#----------------------------------------------------------------------
+# unzip with 3 same vectors to get secondary result
+#----------------------------------------------------------------------
+# CHECK: uzp2  v6.8b, v2.8b, v2.8b
+# CHECK: uzp2  v23.16b, v1.16b, v2.16b
+# CHECK: uzp2  v8.4h, v1.4h, v2.4h
+# CHECK: uzp2  v25.8h, v0.8h, v2.8h
+# CHECK: uzp2  v10.2s, v0.2s, v2.2s
+# CHECK: uzp2  v27.4s, v7.4s, v2.4s
+# CHECK: uzp2  v12.2d, v7.2d, v2.2d
+0x46,0x58,0x02,0x0e
+0x37,0x58,0x02,0x4e
+0x28,0x58,0x42,0x0e
+0x19,0x58,0x42,0x4e
+0x0a,0x58,0x82,0x0e
+0xfb,0x58,0x82,0x4e
+0xec,0x58,0xc2,0x4e
+
+#----------------------------------------------------------------------
+# transpose with 3 same vectors to get secondary result
+#----------------------------------------------------------------------
+# CHECK: trn2  v29.8b, v6.8b, v2.8b
+# CHECK: trn2  v14.16b, v6.16b, v2.16b
+# CHECK: trn2  v31.4h, v5.4h, v2.4h
+# CHECK: trn2  v0.8h, v5.8h, v2.8h
+# CHECK: trn2  v17.2s, v4.2s, v2.2s
+# CHECK: trn2  v2.4s, v4.4s, v2.4s
+# CHECK: trn2  v19.2d, v3.2d, v2.2d
+0xdd,0x68,0x02,0x0e
+0xce,0x68,0x02,0x4e
+0xbf,0x68,0x42,0x0e
+0xa0,0x68,0x42,0x4e
+0x91,0x68,0x82,0x0e
+0x82,0x68,0x82,0x4e
+0x73,0x68,0xc2,0x4e
+
+#----------------------------------------------------------------------
+# zip with 3 same vectors to get secondary result
+#----------------------------------------------------------------------
+# CHECK: zip2  v4.8b, v3.8b, v2.8b
+# CHECK: zip2  v21.16b, v2.16b, v2.16b
+# CHECK: zip2  v6.4h, v2.4h, v2.4h
+# CHECK: zip2  v23.8h, v1.8h, v2.8h
+# CHECK: zip2  v8.2s, v1.2s, v2.2s
+# CHECK: zip2  v25.4s, v0.4s, v2.4s
+# CHECK: zip2  v10.2d, v0.2d, v2.2d
+0x64,0x78,0x02,0x0e
+0x55,0x78,0x02,0x4e
+0x46,0x78,0x42,0x0e
+0x37,0x78,0x42,0x4e
+0x28,0x78,0x82,0x0e
+0x19,0x78,0x82,0x4e
+0x0a,0x78,0xc2,0x4e