• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s | FileCheck %s --check-prefix=CHECK
2// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
3
4//------------------------------------------------------------------------------
5// Armv8.4-A flag manipulation instructions
6//------------------------------------------------------------------------------
7
8  cfinv
9  setf8 w1
10  setf8 wzr
11  setf16 w1
12  setf16 wzr
13  rmif x1, #63, #15
14  rmif xzr, #63, #15
15
16//CHECK:      cfinv                        // encoding: [0x1f,0x40,0x00,0xd5]
17//CHECK-NEXT: setf8 w1                     // encoding: [0x2d,0x08,0x00,0x3a]
18//CHECK-NEXT: setf8 wzr                    // encoding: [0xed,0x0b,0x00,0x3a]
19//CHECK-NEXT: setf16 w1                    // encoding: [0x2d,0x48,0x00,0x3a]
20//CHECK-NEXT: setf16 wzr                   // encoding: [0xed,0x4b,0x00,0x3a]
21//CHECK-NEXT: rmif x1, #63, #15            // encoding: [0x2f,0x84,0x1f,0xba]
22//CHECK-NEXT: rmif xzr, #63, #15           // encoding: [0xef,0x87,0x1f,0xba]
23
24//CHECK-ERROR:      error: instruction requires: armv8.4a
25//CHECK-ERROR-NEXT: cfinv
26//CHECK-ERROR-NEXT: ^
27//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
28//CHECK-ERROR-NEXT: setf8 w1
29//CHECK-ERROR-NEXT: ^
30//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
31//CHECK-ERROR-NEXT: setf8 wzr
32//CHECK-ERROR-NEXT: ^
33//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
34//CHECK-ERROR-NEXT: setf16 w1
35//CHECK-ERROR-NEXT: ^
36//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
37//CHECK-ERROR-NEXT: setf16 wzr
38//CHECK-ERROR-NEXT: ^
39//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
40//CHECK-ERROR-NEXT: rmif x1, #63, #15
41//CHECK-ERROR-NEXT: ^
42//CHECK-ERROR-NEXT: error: instruction requires: armv8.4a
43//CHECK-ERROR-NEXT: rmif xzr, #63, #15
44//CHECK-ERROR-NEXT: ^
45