Clang and AArch64 backend patches to support shll/shl and vmovl instructions and...
[oota-llvm.git] / test / MC / AArch64 / neon-rounding-shift.s
1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
2
3 // Check that the assembler can handle the documented syntax for AArch64
4
5
6 //------------------------------------------------------------------------------
7 // Vector Integer Rounding Shift Lef (Signed)
8 //------------------------------------------------------------------------------
9          srshl v0.8b, v1.8b, v2.8b
10          srshl v0.16b, v1.16b, v2.16b
11          srshl v0.4h, v1.4h, v2.4h
12          srshl v0.8h, v1.8h, v2.8h
13          srshl v0.2s, v1.2s, v2.2s
14          srshl v0.4s, v1.4s, v2.4s
15          srshl v0.2d, v1.2d, v2.2d
16
17 // CHECK: srshl v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x54,0x22,0x0e]
18 // CHECK: srshl v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x54,0x22,0x4e]
19 // CHECK: srshl v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x54,0x62,0x0e]
20 // CHECK: srshl v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x54,0x62,0x4e]
21 // CHECK: srshl v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x54,0xa2,0x0e]
22 // CHECK: srshl v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x54,0xa2,0x4e]
23 // CHECK: srshl v0.2d, v1.2d, v2.2d        // encoding: [0x20,0x54,0xe2,0x4e]
24
25 //------------------------------------------------------------------------------
26 // Vector Integer Rounding Shift Lef (Unsigned)
27 //------------------------------------------------------------------------------
28          urshl v0.8b, v1.8b, v2.8b
29          urshl v0.16b, v1.16b, v2.16b
30          urshl v0.4h, v1.4h, v2.4h
31          urshl v0.8h, v1.8h, v2.8h
32          urshl v0.2s, v1.2s, v2.2s
33          urshl v0.4s, v1.4s, v2.4s
34          urshl v0.2d, v1.2d, v2.2d
35
36 // CHECK: urshl v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x54,0x22,0x2e]
37 // CHECK: urshl v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x54,0x22,0x6e]
38 // CHECK: urshl v0.4h, v1.4h, v2.4h        // encoding: [0x20,0x54,0x62,0x2e]
39 // CHECK: urshl v0.8h, v1.8h, v2.8h        // encoding: [0x20,0x54,0x62,0x6e]
40 // CHECK: urshl v0.2s, v1.2s, v2.2s        // encoding: [0x20,0x54,0xa2,0x2e]
41 // CHECK: urshl v0.4s, v1.4s, v2.4s        // encoding: [0x20,0x54,0xa2,0x6e]
42 // CHECK: urshl v0.2d, v1.2d, v2.2d        // encoding: [0x20,0x54,0xe2,0x6e]
43
44 //------------------------------------------------------------------------------
45 // Scalar Integer Rounding Shift Lef (Signed)
46 //------------------------------------------------------------------------------
47          srshl d17, d31, d8
48
49 // CHECK: srshl d17, d31, d8      // encoding: [0xf1,0x57,0xe8,0x5e]
50
51 //------------------------------------------------------------------------------
52 // Scalar Integer Rounding Shift Lef (Unsigned)
53 //------------------------------------------------------------------------------
54          urshl d17, d31, d8
55
56 // CHECK: urshl d17, d31, d8      // encoding: [0xf1,0x57,0xe8,0x7e]
57