187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
287773c318fcee853fb34a80a10c4347d523bdafbTim Northover
387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Check that the assembler can handle the documented syntax for AArch64
487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector And
787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         and v0.8b, v1.8b, v2.8b
987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         and v0.16b, v1.16b, v2.16b
1087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
1187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: and v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x22,0x0e]
1287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: and v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x22,0x4e]
1387773c318fcee853fb34a80a10c4347d523bdafbTim Northover
1487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
1587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
1687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Orr
1787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
1887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         orr v0.8b, v1.8b, v2.8b
1987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         orr v0.16b, v1.16b, v2.16b
2087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: orr v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xa2,0x0e]
2287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: orr v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xa2,0x4e]
2387773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
2687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Eor
2787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
2887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         eor v0.8b, v1.8b, v2.8b
2987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         eor v0.16b, v1.16b, v2.16b
3087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: eor v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x22,0x2e]
3287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: eor v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x22,0x6e]
3387773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
3687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Bitwise
3787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
3887773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bit v0.8b, v1.8b, v2.8b
4087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bit v0.16b, v1.16b, v2.16b
4187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bif v0.8b, v1.8b, v2.8b
4287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bif v0.16b, v1.16b, v2.16b
4387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bsl v0.8b, v1.8b, v2.8b
4487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bsl v0.16b, v1.16b, v2.16b
4587773c318fcee853fb34a80a10c4347d523bdafbTim Northover         orn v0.8b, v1.8b, v2.8b
4687773c318fcee853fb34a80a10c4347d523bdafbTim Northover         orn v0.16b, v1.16b, v2.16b
4787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bic v0.8b, v1.8b, v2.8b
4887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         bic v0.16b, v1.16b, v2.16b
4987773c318fcee853fb34a80a10c4347d523bdafbTim Northover
5087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bit v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xa2,0x2e]
5187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bit v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xa2,0x6e]
5287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bif v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xe2,0x2e]
5387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bif v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xe2,0x6e]
5487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bsl v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x62,0x2e]
5587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bsl v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x62,0x6e]
5687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: orn v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xe2,0x0e]
5787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: orn v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xe2,0x4e]
5887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bic v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x62,0x0e]
5987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: bic v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x62,0x4e]
6087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
61