llvm/llvm/test/MC/AArch64/armv8.4a-flag-error.s

// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK

//------------------------------------------------------------------------------
// Armv8.4-A flag manipulation instructions
//------------------------------------------------------------------------------

  rmif  x1, #64, #15
  rmif  x1, #-1, #15
  rmif  x1, #63, #16
  rmif  x1, #63, #-1
  rmif  sp, #63, #1

//CHECK:      error: immediate must be an integer in range [0, 63].
//CHECK-NEXT: rmif  x1, #64, #15
//CHECK-NEXT:           ^
//CHECK-NEXT: error: immediate must be an integer in range [0, 63].
//CHECK-NEXT: rmif  x1, #-1, #15
//CHECK-NEXT:           ^
//CHECK-NEXT: error: immediate must be an integer in range [0, 15].
//CHECK-NEXT: rmif  x1, #63, #16
//CHECK-NEXT:                ^
//CHECK-NEXT: error: immediate must be an integer in range [0, 15].
//CHECK-NEXT: rmif  x1, #63, #-1
//CHECK-NEXT:                ^
//CHECK-NEXT: error: invalid operand for instruction
//CHECK-NEXT: rmif  sp, #63, #1
//CHECK-NEXT:       ^