1// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2> %t | FileCheck %s --check-prefix=CHECK 2// RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s 3// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-V84 4 5//------------------------------------------------------------------------------ 6// ARMV8.4-A Timing insensitivity of data processing instructions 7//------------------------------------------------------------------------------ 8 9msr DIT, #1 10msr DIT, x0 11mrs x0, DIT 12 13//CHECK: msr DIT, #1 // encoding: [0x5f,0x41,0x03,0xd5] 14//CHECK-NEXT: msr DIT, x0 // encoding: [0xa0,0x42,0x1b,0xd5] 15//CHECK-NEXT: mrs x0, DIT // encoding: [0xa0,0x42,0x3b,0xd5] 16 17msr DIT, #2 18msr DIT, #-1 19 20//CHECK-ERROR: error: immediate must be an integer in range [0, 1]. 21//CHECK-ERROR-NEXT: msr DIT, #2 22//CHECK-ERROR-NEXT: ^ 23//CHECK-ERROR-NEXT: error: immediate must be an integer in range [0, 1]. 24//CHECK-ERROR-NEXT: msr DIT, #-1 25//CHECK-ERROR-NEXT: ^ 26 27//CHECK-NO-V84: error: expected writable system register or pstate 28//CHECK-NO-V84-NEXT: msr DIT, #1 29//CHECK-NO-V84-NEXT: ^ 30//CHECK-NO-V84-NEXT: error: expected writable system register or pstate 31//CHECK-NO-V84-NEXT: msr DIT, x0 32//CHECK-NO-V84-NEXT: ^ 33//CHECK-NO-V84-NEXT: error: expected readable system register 34//CHECK-NO-V84-NEXT: mrs x0, DIT 35//CHECK-NO-V84-NEXT: ^ 36//CHECK-NO-V84-NEXT: error: expected writable system register or pstate 37//CHECK-NO-V84-NEXT: msr DIT, #2 38//CHECK-NO-V84-NEXT: ^ 39//CHECK-NO-V84-NEXT: error: expected writable system register or pstate 40//CHECK-NO-V84-NEXT: msr DIT, #-1 41//CHECK-NO-V84-NEXT: ^ 42 43