1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/MC/AArch64/armv8.4a-flag.s
Diogo N. Sampaio 61a6678d57 [NFC][AArch64] Split out backend features
This patch splits backend features currently
hidden behind architecture versions.

For example, currently the only way to activate
complex numbers extension is targeting an v8.3
architecture, where after the patch this extension
can be added separately.

This refactoring is required by the new command lines proposal:
http://lists.llvm.org/pipermail/llvm-dev/2018-September/126346.html

Reviewers: DavidSpickett, olista01, t.p.northover

Subscribers: kristof.beyls, bryanpkc, javed.absar, pbarrio

Differential revision: https://reviews.llvm.org/D54633

llvm-svn: 348121
2018-12-03 11:08:13 +00:00

54 lines
1.9 KiB
ArmAsm

// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a %s -o - | \
// RUN: FileCheck %s
// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+fmi %s -o - 2>&1 | \
// RUN: FileCheck %s
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a %s -o - 2>&1 | \
// RUN: FileCheck %s --check-prefix=ERROR
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a,-fmi %s -o - 2>&1 | \
// RUN: FileCheck %s --check-prefix=ERROR
//------------------------------------------------------------------------------
// Armv8.4-A flag manipulation instructions
//------------------------------------------------------------------------------
cfinv
setf8 w1
setf8 wzr
setf16 w1
setf16 wzr
rmif x1, #63, #15
rmif xzr, #63, #15
//CHECK: cfinv // encoding: [0x1f,0x40,0x00,0xd5]
//CHECK-NEXT: setf8 w1 // encoding: [0x2d,0x08,0x00,0x3a]
//CHECK-NEXT: setf8 wzr // encoding: [0xed,0x0b,0x00,0x3a]
//CHECK-NEXT: setf16 w1 // encoding: [0x2d,0x48,0x00,0x3a]
//CHECK-NEXT: setf16 wzr // encoding: [0xed,0x4b,0x00,0x3a]
//CHECK-NEXT: rmif x1, #63, #15 // encoding: [0x2f,0x84,0x1f,0xba]
//CHECK-NEXT: rmif xzr, #63, #15 // encoding: [0xef,0x87,0x1f,0xba]
//ERROR: error: instruction requires: fmi
//ERROR-NEXT: cfinv
//ERROR-NEXT: ^
//ERROR-NEXT: error: instruction requires: fmi
//ERROR-NEXT: setf8 w1
//ERROR-NEXT: ^
//ERROR-NEXT: error: instruction requires: fmi
//ERROR-NEXT: setf8 wzr
//ERROR-NEXT: ^
//ERROR-NEXT: error: instruction requires: fmi
//ERROR-NEXT: setf16 w1
//ERROR-NEXT: ^
//ERROR-NEXT: error: instruction requires: fmi
//ERROR-NEXT: setf16 wzr
//ERROR-NEXT: ^
//ERROR-NEXT: error: instruction requires: fmi
//ERROR-NEXT: rmif x1, #63, #15
//ERROR-NEXT: ^
//ERROR-NEXT: error: instruction requires: fmi
//ERROR-NEXT: rmif xzr, #63, #15
//ERROR-NEXT: ^