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