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