54 lines · plain
1// CLRBHB is optional for all v8a/v9a, mandatory for 8.9a/9.4a.2// Assembly is always permitted for instructions in the hint space.3 4// Invalid before v85// RUN: not llvm-mc -show-encoding -triple armv7-none-none-eabi < %s 2>&1 | FileCheck %s --check-prefix=INVALID6// RUN: not llvm-mc -show-encoding -triple armv7-none-none-eabi -mattr=-clrbhb < %s 2>&1 | FileCheck %s --check-prefix=INVALID7// RUN: not llvm-mc -show-encoding -triple armv7-none-none-eabi -mattr=+clrbhb < %s 2>&1 | FileCheck %s --check-prefix=REQUIRESV88 9// Optional, off by default10// RUN: llvm-mc -show-encoding -triple armv8-none-none-eabi < %s | FileCheck %s --check-prefix=A32_HINT11// RUN: llvm-mc -show-encoding -triple armv8.8a-none-none-eabi < %s | FileCheck %s --check-prefix=A32_HINT12// RUN: llvm-mc -show-encoding -triple thumbv8-none-none-eabi < %s | FileCheck %s --check-prefix=T32_HINT13// RUN: llvm-mc -show-encoding -triple thumbv8.8a-none-none-eabi < %s | FileCheck %s --check-prefix=T32_HINT14 15// Optional, off by default, doubly disabled16// RUN: llvm-mc -show-encoding -triple armv8-none-none-eabi -mattr=-clrbhb < %s | FileCheck %s --check-prefix=A32_HINT17// RUN: llvm-mc -show-encoding -triple armv8.8a-none-none-eabi -mattr=-clrbhb < %s | FileCheck %s --check-prefix=A32_HINT18// RUN: llvm-mc -show-encoding -triple thumbv8-none-none-eabi -mattr=-clrbhb < %s | FileCheck %s --check-prefix=T32_HINT19// RUN: llvm-mc -show-encoding -triple thumbv8.8a-none-none-eabi -mattr=-clrbhb < %s | FileCheck %s --check-prefix=T32_HINT20 21// Optional, off by default, manually enabled22// RUN: llvm-mc -show-encoding -triple armv8-none-none-eabi -mattr=+clrbhb < %s | FileCheck %s --check-prefix=A32_CLRBHB23// RUN: llvm-mc -show-encoding -triple armv8.8a-none-none-eabi -mattr=+clrbhb < %s | FileCheck %s --check-prefix=A32_CLRBHB24// RUN: llvm-mc -show-encoding -triple thumbv8-none-none-eabi -mattr=+clrbhb < %s | FileCheck %s --check-prefix=T32_CLRBHB25// RUN: llvm-mc -show-encoding -triple thumbv8.8a-none-none-eabi -mattr=+clrbhb < %s | FileCheck %s --check-prefix=T32_CLRBHB26 27// Mandatory, enabled by default28// RUN: llvm-mc -show-encoding -triple armv8.9a-none-none-eabi < %s | FileCheck %s --check-prefix=A32_CLRBHB29// RUN: llvm-mc -show-encoding -triple thumbv8.9a-none-none-eabi < %s | FileCheck %s --check-prefix=T32_CLRBHB30 31// Mandatory, on by default, doubly enabled32// RUN: llvm-mc -show-encoding -triple armv8.9a-none-none-eabi -mattr=+clrbhb < %s | FileCheck %s --check-prefix=A32_CLRBHB33// RUN: llvm-mc -show-encoding -triple thumbv8.9a-none-none-eabi -mattr=+clrbhb < %s | FileCheck %s --check-prefix=T32_CLRBHB34 35// Mandatory, can't prevent disabling in LLVM36// RUN: llvm-mc -show-encoding -triple armv8.9a-none-none-eabi -mattr=-clrbhb < %s | FileCheck %s --check-prefix=A32_HINT37// RUN: llvm-mc -show-encoding -triple thumbv8.9a-none-none-eabi -mattr=-clrbhb < %s | FileCheck %s --check-prefix=T32_HINT38 39 clrbhb40 hint #2241 42// INVALID: <stdin>:[[@LINE-3]]:9: error: invalid instruction43// INVALID-NOT: <stdin>:[[@LINE-3]]:9: error: invalid instruction44// REQUIRESV8: <stdin>:[[@LINE-5]]:9: error: instruction requires: armv845// REQUIRESV8-NOT: <stdin>:[[@LINE-5]]:9: error: instruction requires: armv846// A32_CLRBHB: clrbhb @ encoding: [0x16,0xf0,0x20,0xe3]47// A32_CLRBHB: clrbhb @ encoding: [0x16,0xf0,0x20,0xe3]48// A32_HINT: hint #22 @ encoding: [0x16,0xf0,0x20,0xe3]49// A32_HINT: hint #22 @ encoding: [0x16,0xf0,0x20,0xe3]50// T32_CLRBHB: clrbhb @ encoding: [0xaf,0xf3,0x16,0x80]51// T32_CLRBHB: clrbhb @ encoding: [0xaf,0xf3,0x16,0x80]52// T32_HINT: hint.w #22 @ encoding: [0xaf,0xf3,0x16,0x80]53// T32_HINT: hint.w #22 @ encoding: [0xaf,0xf3,0x16,0x80]54