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//------------------------------------------------------------------------------
787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Integer Saturating Add (Signed)
887773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.8b, v1.8b, v2.8b
1087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.16b, v1.16b, v2.16b
1187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.4h, v1.4h, v2.4h
1287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.8h, v1.8h, v2.8h
1387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.2s, v1.2s, v2.2s
1487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.4s, v1.4s, v2.4s
1587773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqadd v0.2d, v1.2d, v2.2d
1687773c318fcee853fb34a80a10c4347d523bdafbTim Northover
1787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x0c,0x22,0x0e]
1887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x0c,0x22,0x4e]
1987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x0c,0x62,0x0e]
2087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x0c,0x62,0x4e]
2187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x0c,0xa2,0x0e]
2287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x0c,0xa2,0x4e]
2387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqadd v0.2d, v1.2d, v2.2d        // encoding: [0x20,0x0c,0xe2,0x4e]
2487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
2687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Integer Saturating Add (Unsigned)
2787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
2887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.8b, v1.8b, v2.8b
2987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.16b, v1.16b, v2.16b
3087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.4h, v1.4h, v2.4h
3187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.8h, v1.8h, v2.8h
3287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.2s, v1.2s, v2.2s
3387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.4s, v1.4s, v2.4s
3487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqadd v0.2d, v1.2d, v2.2d
3587773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x0c,0x22,0x2e]
3787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x0c,0x22,0x6e]
3887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x0c,0x62,0x2e]
3987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x0c,0x62,0x6e]
4087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x0c,0xa2,0x2e]
4187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x0c,0xa2,0x6e]
4287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqadd v0.2d, v1.2d, v2.2d        // encoding: [0x20,0x0c,0xe2,0x6e]
4387773c318fcee853fb34a80a10c4347d523bdafbTim Northover
4487773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
4587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Integer Saturating Sub (Signed)
4687773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
4787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.8b, v1.8b, v2.8b
4887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.16b, v1.16b, v2.16b
4987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.4h, v1.4h, v2.4h
5087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.8h, v1.8h, v2.8h
5187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.2s, v1.2s, v2.2s
5287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.4s, v1.4s, v2.4s
5387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sqsub v0.2d, v1.2d, v2.2d
5487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
5587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x2c,0x22,0x0e]
5687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x2c,0x22,0x4e]
5787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x2c,0x62,0x0e]
5887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x2c,0x62,0x4e]
5987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x2c,0xa2,0x0e]
6087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x2c,0xa2,0x4e]
6187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sqsub v0.2d, v1.2d, v2.2d        // encoding: [0x20,0x2c,0xe2,0x4e]
6287773c318fcee853fb34a80a10c4347d523bdafbTim Northover
6387773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
6487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Integer Saturating Sub (Unsigned)
6587773c318fcee853fb34a80a10c4347d523bdafbTim Northover//------------------------------------------------------------------------------
6687773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.8b, v1.8b, v2.8b
6787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.16b, v1.16b, v2.16b
6887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.4h, v1.4h, v2.4h
6987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.8h, v1.8h, v2.8h
7087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.2s, v1.2s, v2.2s
7187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.4s, v1.4s, v2.4s
7287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uqsub v0.2d, v1.2d, v2.2d
7387773c318fcee853fb34a80a10c4347d523bdafbTim Northover
7487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x2c,0x22,0x2e]
7587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x2c,0x22,0x6e]
7687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x2c,0x62,0x2e]
7787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x2c,0x62,0x6e]
7887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x2c,0xa2,0x2e]
7987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x2c,0xa2,0x6e]
8087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uqsub v0.2d, v1.2d, v2.2d        // encoding: [0x20,0x2c,0xe2,0x6e]
8187773c318fcee853fb34a80a10c4347d523bdafbTim Northover
8287773c318fcee853fb34a80a10c4347d523bdafbTim Northover
83