xref: /aosp_15_r20/external/llvm/test/MC/AArch64/neon-rounding-shift.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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
46