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 Integer Multiply-accumulate
787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mla v0.8b, v1.8b, v2.8b
987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mla v0.16b, v1.16b, v2.16b
1087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mla v0.4h, v1.4h, v2.4h
1187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mla v0.8h, v1.8h, v2.8h
1287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mla v0.2s, v1.2s, v2.2s
1387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mla v0.4s, v1.4s, v2.4s
1487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
1587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mla v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x94,0x22,0x0e]
1687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mla v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x94,0x22,0x4e]
1787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mla v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x94,0x62,0x0e]
1887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mla v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x94,0x62,0x4e]
1987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mla v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x94,0xa2,0x0e]
2087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mla v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x94,0xa2,0x4e]
2187773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2287773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2387773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
2487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Integer Multiply-subtract
2587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
2687773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mls v0.8b, v1.8b, v2.8b
2787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mls v0.16b, v1.16b, v2.16b
2887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mls v0.4h, v1.4h, v2.4h
2987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mls v0.8h, v1.8h, v2.8h
3087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mls v0.2s, v1.2s, v2.2s
3187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         mls v0.4s, v1.4s, v2.4s
3287773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mls v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x94,0x22,0x2e]
3487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mls v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x94,0x22,0x6e]
3587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mls v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x94,0x62,0x2e]
3687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mls v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x94,0x62,0x6e]
3787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mls v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x94,0xa2,0x2e]
3887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: mls v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x94,0xa2,0x6e]
3987773c318fcee853fb34a80a10c4347d523bdafbTim Northover
4087773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
4187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Floating-Point Multiply-accumulate
4287773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
4387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmla v0.2s, v1.2s, v2.2s
4487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmla v0.4s, v1.4s, v2.4s
4587773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmla v0.2d, v1.2d, v2.2d
4687773c318fcee853fb34a80a10c4347d523bdafbTim Northover
4787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmla v0.2s, v1.2s, v2.2s       // encoding: [0x20,0xcc,0x22,0x0e]
4887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmla v0.4s, v1.4s, v2.4s       // encoding: [0x20,0xcc,0x22,0x4e]
4987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmla v0.2d, v1.2d, v2.2d       // encoding: [0x20,0xcc,0x62,0x4e]
5087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
5187773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
5287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Floating-Point Multiply-subtract
5387773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
5487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmls v0.2s, v1.2s, v2.2s
5587773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmls v0.4s, v1.4s, v2.4s
5687773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmls v0.2d, v1.2d, v2.2d
5787773c318fcee853fb34a80a10c4347d523bdafbTim Northover
5887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmls v0.2s, v1.2s, v2.2s       // encoding: [0x20,0xcc,0xa2,0x0e]
5987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmls v0.4s, v1.4s, v2.4s       // encoding: [0x20,0xcc,0xa2,0x4e]
6087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmls v0.2d, v1.2d, v2.2d       // encoding: [0x20,0xcc,0xe2,0x4e]
6187773c318fcee853fb34a80a10c4347d523bdafbTim Northover
62