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