xref: /llvm-project/llvm/test/MC/AArch64/CSSC/smax_64_imm.s (revision cb261e30fbb174085d2eea4f4afc3cef2838b7f7)
1// RUN: llvm-mc -triple=aarch64 -show-encoding --print-imm-hex=false -mattr=+v9.4a < %s \
2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
4// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+v9.4a < %s \
6// RUN:        | llvm-objdump -d --print-imm-hex=false --mattr=+v9.4a - \
7// RUN:        | FileCheck %s --check-prefix=CHECK-INST
8// Disassemble encoding and check the re-encoding (-show-encoding) matches.
9// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+v9.4a < %s \
10// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
11// RUN:        | llvm-mc -triple=aarch64 -mattr=+v9.4a -disassemble -show-encoding \
12// RUN:           --print-imm-hex=false \
13// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
14
15smax    x0, x0, #0
16// CHECK-INST: smax    x0, x0, #0
17// CHECK-ENCODING: [0x00,0x00,0xc0,0x91]
18// CHECK-ERROR: instruction requires: cssc
19// CHECK-UNKNOWN: 00 00 c0 91 <unknown>
20
21smax    x21, x10, #85
22// CHECK-INST: smax    x21, x10, #85
23// CHECK-ENCODING: [0x55,0x55,0xc1,0x91]
24// CHECK-ERROR: instruction requires: cssc
25// CHECK-UNKNOWN: 55 55 c1 91 <unknown>
26
27smax    x23, x13, #59
28// CHECK-INST: smax    x23, x13, #59
29// CHECK-ENCODING: [0xb7,0xed,0xc0,0x91]
30// CHECK-ERROR: instruction requires: cssc
31// CHECK-UNKNOWN: b7 ed c0 91 <unknown>
32
33smax    xzr, xzr, #-1
34// CHECK-INST: smax    xzr, xzr, #-1
35// CHECK-ENCODING: [0xff,0xff,0xc3,0x91]
36// CHECK-ERROR: instruction requires: cssc
37// CHECK-UNKNOWN: ff ff c3 91 <unknown>
38
39