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