1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+streaming-sve,+fullfp16 < %s \
2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=-neon < %s 2>&1 \
4// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+streaming-sve,+fullfp16 < %s \
6// RUN:        | llvm-objdump --mattr=+fullfp16 -d - | FileCheck %s --check-prefix=CHECK-INST
7// Disassemble encoding and check the re-encoding (-show-encoding) matches.
8// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+streaming-sve,+fullfp16 < %s \
9// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
10// RUN:        | llvm-mc -triple=aarch64 -mattr=+streaming-sve,+fullfp16 -disassemble -show-encoding \
11// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
12
13// Scalar FP instructions
14
15fmulx h0, h1, h2
16// CHECK-INST: fmulx h0, h1, h2
17// CHECK-ENCODING: [0x20,0x1c,0x42,0x5e]
18// CHECK-ERROR: instruction requires: fullfp16
19
20frecps h0, h1, h2
21// CHECK-INST: frecps h0, h1, h2
22// CHECK-ENCODING: [0x20,0x3c,0x42,0x5e]
23// CHECK-ERROR: instruction requires: fullfp16
24
25frsqrts h0, h1, h2
26// CHECK-INST: frsqrts h0, h1, h2
27// CHECK-ENCODING: [0x20,0x3c,0xc2,0x5e]
28// CHECK-ERROR: instruction requires: fullfp16
29
30frecpe h0, h1
31// CHECK-INST: frecpe h0, h1
32// CHECK-ENCODING: [0x20,0xd8,0xf9,0x5e]
33// CHECK-ERROR: instruction requires: fullfp16
34
35frecpx h0, h1
36// CHECK-INST: frecpx h0, h1
37// CHECK-ENCODING: [0x20,0xf8,0xf9,0x5e]
38// CHECK-ERROR: instruction requires: fullfp16
39
40frsqrte h0, h1
41// CHECK-INST: frsqrte h0, h1
42// CHECK-ENCODING: [0x20,0xd8,0xf9,0x7e]
43// CHECK-ERROR: instruction requires: fullfp16
44