1f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -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 Maximum Pairwise (Signed and Unsigned Integer)
787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         smaxp v0.8b, v1.8b, v2.8b
987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         smaxp v0.16b, v1.16b, v2.16b
1087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         smaxp v0.4h, v1.4h, v2.4h
1187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         smaxp v0.8h, v1.8h, v2.8h
1287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         smaxp v0.2s, v1.2s, v2.2s
1387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         smaxp v0.4s, v1.4s, v2.4s
1487773c318fcee853fb34a80a10c4347d523bdafbTim Northover
1587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: smaxp v0.8b, v1.8b, v2.8b        // encoding: [0x20,0xa4,0x22,0x0e]
1687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: smaxp v0.16b, v1.16b, v2.16b     // encoding: [0x20,0xa4,0x22,0x4e]
1787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: smaxp v0.4h, v1.4h, v2.4h        // encoding: [0x20,0xa4,0x62,0x0e]
1887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: smaxp v0.8h, v1.8h, v2.8h        // encoding: [0x20,0xa4,0x62,0x4e]
1987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: smaxp v0.2s, v1.2s, v2.2s        // encoding: [0x20,0xa4,0xa2,0x0e]
2087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: smaxp v0.4s, v1.4s, v2.4s        // encoding: [0x20,0xa4,0xa2,0x4e]
2187773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         umaxp v0.8b, v1.8b, v2.8b
2387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         umaxp v0.16b, v1.16b, v2.16b
2487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         umaxp v0.4h, v1.4h, v2.4h
2587773c318fcee853fb34a80a10c4347d523bdafbTim Northover         umaxp v0.8h, v1.8h, v2.8h
2687773c318fcee853fb34a80a10c4347d523bdafbTim Northover         umaxp v0.2s, v1.2s, v2.2s
2787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         umaxp v0.4s, v1.4s, v2.4s
2887773c318fcee853fb34a80a10c4347d523bdafbTim Northover
2987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: umaxp v0.8b, v1.8b, v2.8b         // encoding: [0x20,0xa4,0x22,0x2e]
3087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: umaxp v0.16b, v1.16b, v2.16b      // encoding: [0x20,0xa4,0x22,0x6e]
3187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: umaxp v0.4h, v1.4h, v2.4h         // encoding: [0x20,0xa4,0x62,0x2e]
3287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: umaxp v0.8h, v1.8h, v2.8h         // encoding: [0x20,0xa4,0x62,0x6e]
3387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: umaxp v0.2s, v1.2s, v2.2s         // encoding: [0x20,0xa4,0xa2,0x2e]
3487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: umaxp v0.4s, v1.4s, v2.4s         // encoding: [0x20,0xa4,0xa2,0x6e]
3587773c318fcee853fb34a80a10c4347d523bdafbTim Northover
3687773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
3787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Minimum Pairwise (Signed and Unsigned Integer)
3887773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
3987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sminp v0.8b, v1.8b, v2.8b
4087773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sminp v0.16b, v1.16b, v2.16b
4187773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sminp v0.4h, v1.4h, v2.4h
4287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sminp v0.8h, v1.8h, v2.8h
4387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sminp v0.2s, v1.2s, v2.2s
4487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         sminp v0.4s, v1.4s, v2.4s
4587773c318fcee853fb34a80a10c4347d523bdafbTim Northover
4687773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sminp v0.8b, v1.8b, v2.8b        // encoding: [0x20,0xac,0x22,0x0e]
4787773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sminp v0.16b, v1.16b, v2.16b     // encoding: [0x20,0xac,0x22,0x4e]
4887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sminp v0.4h, v1.4h, v2.4h        // encoding: [0x20,0xac,0x62,0x0e]
4987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sminp v0.8h, v1.8h, v2.8h        // encoding: [0x20,0xac,0x62,0x4e]
5087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sminp v0.2s, v1.2s, v2.2s        // encoding: [0x20,0xac,0xa2,0x0e]
5187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: sminp v0.4s, v1.4s, v2.4s        // encoding: [0x20,0xac,0xa2,0x4e]
5287773c318fcee853fb34a80a10c4347d523bdafbTim Northover
5387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uminp v0.8b, v1.8b, v2.8b
5487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uminp v0.16b, v1.16b, v2.16b
5587773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uminp v0.4h, v1.4h, v2.4h
5687773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uminp v0.8h, v1.8h, v2.8h
5787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uminp v0.2s, v1.2s, v2.2s
5887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         uminp v0.4s, v1.4s, v2.4s
5987773c318fcee853fb34a80a10c4347d523bdafbTim Northover
6087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uminp v0.8b, v1.8b, v2.8b         // encoding: [0x20,0xac,0x22,0x2e]
6187773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uminp v0.16b, v1.16b, v2.16b      // encoding: [0x20,0xac,0x22,0x6e]
6287773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uminp v0.4h, v1.4h, v2.4h         // encoding: [0x20,0xac,0x62,0x2e]
6387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uminp v0.8h, v1.8h, v2.8h         // encoding: [0x20,0xac,0x62,0x6e]
6487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uminp v0.2s, v1.2s, v2.2s         // encoding: [0x20,0xac,0xa2,0x2e]
6587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: uminp v0.4s, v1.4s, v2.4s         // encoding: [0x20,0xac,0xa2,0x6e]
6687773c318fcee853fb34a80a10c4347d523bdafbTim Northover
6787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
6887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Maximum Pairwise (Floating Point)
6987773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
70f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fmaxp v0.4h, v1.4h, v2.4h
71f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fmaxp v31.8h, v15.8h, v16.8h
7287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmaxp v0.2s, v1.2s, v2.2s
7387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmaxp v31.4s, v15.4s, v16.4s
7487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmaxp v7.2d, v8.2d, v25.2d
7587773c318fcee853fb34a80a10c4347d523bdafbTim Northover
76f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxp   v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x34,0x42,0x2e]
77f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxp   v31.8h, v15.8h, v16.8h  // encoding: [0xff,0x35,0x50,0x6e]
7887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmaxp v0.2s, v1.2s, v2.2s    // encoding: [0x20,0xf4,0x22,0x2e]
7987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmaxp v31.4s, v15.4s, v16.4s // encoding: [0xff,0xf5,0x30,0x6e]
8087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmaxp v7.2d, v8.2d, v25.2d   // encoding: [0x07,0xf5,0x79,0x6e]
8187773c318fcee853fb34a80a10c4347d523bdafbTim Northover
8287773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
8387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector Minimum Pairwise (Floating Point)
8487773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
85f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fminp v10.4h, v15.4h, v22.4h
86f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fminp v3.8h, v5.8h, v6.8h
8787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fminp v10.2s, v15.2s, v22.2s
8887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fminp v3.4s, v5.4s, v6.4s
8987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fminp v17.2d, v13.2d, v2.2d
9087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
91f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminp   v10.4h, v15.4h, v22.4h  // encoding: [0xea,0x35,0xd6,0x2e]
92f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminp   v3.8h, v5.8h, v6.8h     // encoding: [0xa3,0x34,0xc6,0x6e]
9387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fminp v10.2s, v15.2s, v22.2s  // encoding: [0xea,0xf5,0xb6,0x2e]
9487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fminp v3.4s, v5.4s, v6.4s     // encoding: [0xa3,0xf4,0xa6,0x6e]
9587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fminp v17.2d, v13.2d, v2.2d   // encoding: [0xb1,0xf5,0xe2,0x6e]
9687773c318fcee853fb34a80a10c4347d523bdafbTim Northover
9787773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
9887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector maxNum Pairwise (Floating Point)
9987773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
100f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fmaxnmp v0.4h, v1.4h, v2.4h
101f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fmaxnmp v31.8h, v15.8h, v16.8h
10287773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmaxnmp v0.2s, v1.2s, v2.2s
10387773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmaxnmp v31.4s, v15.4s, v16.4s
10487773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fmaxnmp v7.2d, v8.2d, v25.2d
10587773c318fcee853fb34a80a10c4347d523bdafbTim Northover
106f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxnmp v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x04,0x42,0x2e]
107f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxnmp v31.8h, v15.8h, v16.8h  // encoding: [0xff,0x05,0x50,0x6e]
10887773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmaxnmp v0.2s, v1.2s, v2.2s    // encoding: [0x20,0xc4,0x22,0x2e]
10987773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmaxnmp v31.4s, v15.4s, v16.4s // encoding: [0xff,0xc5,0x30,0x6e]
11087773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fmaxnmp v7.2d, v8.2d, v25.2d   // encoding: [0x07,0xc5,0x79,0x6e]
11187773c318fcee853fb34a80a10c4347d523bdafbTim Northover
11287773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
11387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// Vector minNum Pairwise (Floating Point)
11487773c318fcee853fb34a80a10c4347d523bdafbTim Northover//----------------------------------------------------------------------
115f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fminnmp v10.4h, v15.4h, v22.4h
116f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar         fminnmp v3.8h, v5.8h, v6.8h
11787773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fminnmp v10.2s, v15.2s, v22.2s
11887773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fminnmp v3.4s, v5.4s, v6.4s
11987773c318fcee853fb34a80a10c4347d523bdafbTim Northover         fminnmp v17.2d, v13.2d, v2.2d
12087773c318fcee853fb34a80a10c4347d523bdafbTim Northover
121f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminnmp v10.4h, v15.4h, v22.4h  // encoding: [0xea,0x05,0xd6,0x2e]
122f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminnmp v3.8h, v5.8h, v6.8h     // encoding: [0xa3,0x04,0xc6,0x6e]
12387773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fminnmp v10.2s, v15.2s, v22.2s  // encoding: [0xea,0xc5,0xb6,0x2e]
12487773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fminnmp v3.4s, v5.4s, v6.4s     // encoding: [0xa3,0xc4,0xa6,0x6e]
12587773c318fcee853fb34a80a10c4347d523bdafbTim Northover// CHECK: fminnmp v17.2d, v13.2d, v2.2d   // encoding: [0xb1,0xc5,0xe2,0x6e]
12687773c318fcee853fb34a80a10c4347d523bdafbTim Northover
127