xref: /llvm-project/llvm/test/MC/AArch64/armv8.9a-cssc.s (revision cb261e30fbb174085d2eea4f4afc3cef2838b7f7)
1// RUN:     llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v9.4a < %s      | FileCheck %s
2// RUN: not llvm-mc -triple aarch64-none-linux-gnu                -mattr=+v8.8a < %s 2>&1 | FileCheck --check-prefix=NO-CSSC-ERR %s
3// RUN:     llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.9a < %s      | FileCheck %s
4// RUN: not llvm-mc -triple aarch64-none-linux-gnu                -mattr=+v9.3a < %s 2>&1 | FileCheck --check-prefix=NO-CSSC-ERR %s
5
6            abs     x0, x1
7// CHECK:   abs     x0, x1       // encoding: [0x20,0x20,0xc0,0xda]
8// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
9            abs     w0, w1
10// CHECK:   abs     w0, w1       // encoding: [0x20,0x20,0xc0,0x5a]
11// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
12            cnt     x0, x1
13// CHECK:   cnt     x0, x1       // encoding: [0x20,0x1c,0xc0,0xda]
14// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
15            cnt     w0, w1
16// CHECK:   cnt     w0, w1       // encoding: [0x20,0x1c,0xc0,0x5a]
17// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
18            ctz     x0, x1
19// CHECK:   ctz     x0, x1       // encoding: [0x20,0x18,0xc0,0xda]
20// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
21            ctz     w0, w1
22// CHECK:   ctz     w0, w1       // encoding: [0x20,0x18,0xc0,0x5a]
23// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
24
25            smax    x1, x2, x3
26// CHECK:   smax    x1, x2, x3   // encoding: [0x41,0x60,0xc3,0x9a]
27// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
28            smax    x1, x2, #3
29// CHECK:   smax    x1, x2, #3   // encoding: [0x41,0x0c,0xc0,0x91]
30// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
31            smax    w1, w2, w3
32// CHECK:   smax    w1, w2, w3   // encoding: [0x41,0x60,0xc3,0x1a]
33// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
34            smax    w1, w2, #3
35// CHECK:   smax    w1, w2, #3   // encoding: [0x41,0x0c,0xc0,0x11]
36// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
37            smin    x1, x2, x3
38// CHECK:   smin    x1, x2, x3   // encoding: [0x41,0x68,0xc3,0x9a]
39// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
40            smin    x1, x2, #3
41// CHECK:   smin    x1, x2, #3   // encoding: [0x41,0x0c,0xc8,0x91]
42// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
43            smin    w1, w2, w3
44// CHECK:   smin    w1, w2, w3   // encoding: [0x41,0x68,0xc3,0x1a]
45// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
46            smin    w1, w2, #3
47// CHECK:   smin    w1, w2, #3   // encoding: [0x41,0x0c,0xc8,0x11]
48// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
49            umax    x1, x2, x3
50// CHECK:   umax    x1, x2, x3   // encoding: [0x41,0x64,0xc3,0x9a]
51// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
52            umax    x1, x2, #3
53// CHECK:   umax    x1, x2, #3   // encoding: [0x41,0x0c,0xc4,0x91]
54// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
55            umax    w1, w2, w3
56// CHECK:   umax    w1, w2, w3   // encoding: [0x41,0x64,0xc3,0x1a]
57// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
58            umax    w1, w2, #3
59// CHECK:   umax    w1, w2, #3   // encoding: [0x41,0x0c,0xc4,0x11]
60// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
61            umin    x1, x2, x3
62// CHECK:   umin    x1, x2, x3   // encoding: [0x41,0x6c,0xc3,0x9a]
63// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
64            umin    x1, x2, #3
65// CHECK:   umin    x1, x2, #3   // encoding: [0x41,0x0c,0xcc,0x91]
66// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
67            umin    w1, w2, w3
68// CHECK:   umin    w1, w2, w3   // encoding: [0x41,0x6c,0xc3,0x1a]
69// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
70            umin    w1, w2, #3
71// CHECK:   umin    w1, w2, #3   // encoding: [0x41,0x0c,0xcc,0x11]
72// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
73
74
75            umax    wzr, wzr, #255
76// CHECK:   umax    wzr, wzr, #255    // encoding: [0xff,0xff,0xc7,0x11]
77// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
78            umax    xzr, xzr, #255
79// CHECK:   umax    xzr, xzr, #255    // encoding: [0xff,0xff,0xc7,0x91]
80// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
81            umin    xzr, xzr, #255
82// CHECK:   umin    xzr, xzr, #255     // encoding: [0xff,0xff,0xcf,0x91]
83// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
84            umin    wzr, wzr, #255
85// CHECK:   umin    wzr, wzr, #255    // encoding: [0xff,0xff,0xcf,0x11]
86// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
87            smax    xzr, xzr, #-1
88// CHECK:   smax    xzr, xzr, #-1     // encoding: [0xff,0xff,0xc3,0x91]
89// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
90            smax    wzr, wzr, #-1
91// CHECK:   smax    wzr, wzr, #-1     // encoding: [0xff,0xff,0xc3,0x11]
92// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
93            smin    xzr, xzr, #-1
94// CHECK:   smin    xzr, xzr, #-1     // encoding: [0xff,0xff,0xcb,0x91]
95// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
96            smin    wzr, wzr, #-1
97// CHECK:   smin    wzr, wzr, #-1   // encoding: [0xff,0xff,0xcb,0x11]
98// NO-CSSC-ERR: [[@LINE-2]]:13: error: instruction requires: cssc
99