Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / AArch64 / FP8_SVE2 / faminmax.s
blob3f931b05da836817121951fcfb5167dfeffd89f5
1 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+faminmax < %s \
2 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
4 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+faminmax < %s \
5 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
7 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
8 // RUN: | FileCheck %s --check-prefix=CHECK-ERROR
10 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+faminmax < %s \
11 // RUN: | llvm-objdump -d --mattr=+sve2,+faminmax - | FileCheck %s --check-prefix=CHECK-INST
13 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+faminmax < %s \
14 // RUN: | llvm-objdump -d --mattr=-faminmax - | FileCheck %s --check-prefix=CHECK-UNKNOWN
16 // Disassemble encoding and check the re-encoding (-show-encoding) matches.
17 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+faminmax < %s \
18 // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
19 // RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+faminmax -disassemble -show-encoding \
20 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
22 // FAMIN
24 famin z0.h, p0/m, z0.h, z1.h // 01100101-01001111-10000000-00100000
25 // CHECK-INST: famin z0.h, p0/m, z0.h, z1.h
26 // CHECK-ENCODING: [0x20,0x80,0x4f,0x65]
27 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
28 // CHECK-UNKNOWN: 654f8020 <unknown>
30 movprfx z23, z31
31 famin z23.h, p3/m, z23.h, z13.h // 01100101-01001111-10001101-10110111
32 // CHECK-INST: movprfx z23, z31
33 // CHECK-INST: famin z23.h, p3/m, z23.h, z13.h
34 // CHECK-ENCODING: [0xb7,0x8d,0x4f,0x65]
35 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
36 // CHECK-UNKNOWN: 654f8db7 <unknown>
38 famin z31.h, p7/m, z31.h, z30.h // 01100101-01001111-10011111-11011111
39 // CHECK-INST: famin z31.h, p7/m, z31.h, z30.h
40 // CHECK-ENCODING: [0xdf,0x9f,0x4f,0x65]
41 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
42 // CHECK-UNKNOWN: 654f9fdf <unknown>
44 famin z0.s, p0/m, z0.s, z1.s // 01100101-10001111-10000000-00100000
45 // CHECK-INST: famin z0.s, p0/m, z0.s, z1.s
46 // CHECK-ENCODING: [0x20,0x80,0x8f,0x65]
47 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
48 // CHECK-UNKNOWN: 658f8020 <unknown>
50 movprfx z23, z31
51 famin z23.s, p3/m, z23.s, z13.s // 01100101-10001111-10001101-10110111
52 // CHECK-INST: movprfx z23, z31
53 // CHECK-INST: famin z23.s, p3/m, z23.s, z13.s
54 // CHECK-ENCODING: [0xb7,0x8d,0x8f,0x65]
55 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
56 // CHECK-UNKNOWN: 658f8db7 <unknown>
58 famin z31.s, p7/m, z31.s, z30.s // 01100101-10001111-10011111-11011111
59 // CHECK-INST: famin z31.s, p7/m, z31.s, z30.s
60 // CHECK-ENCODING: [0xdf,0x9f,0x8f,0x65]
61 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
62 // CHECK-UNKNOWN: 658f9fdf <unknown>
64 famin z0.d, p0/m, z0.d, z1.d // 01100101-11001111-10000000-00100000
65 // CHECK-INST: famin z0.d, p0/m, z0.d, z1.d
66 // CHECK-ENCODING: [0x20,0x80,0xcf,0x65]
67 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
68 // CHECK-UNKNOWN: 65cf8020 <unknown>
70 movprfx z23, z31
71 famin z23.d, p3/m, z23.d, z13.d // 01100101-11001111-10001101-10110111
72 // CHECK-INST: movprfx z23, z31
73 // CHECK-INST: famin z23.d, p3/m, z23.d, z13.d
74 // CHECK-ENCODING: [0xb7,0x8d,0xcf,0x65]
75 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
76 // CHECK-UNKNOWN: 65cf8db7 <unknown>
78 famin z31.d, p7/m, z31.d, z30.d // 01100101-11001111-10011111-11011111
79 // CHECK-INST: famin z31.d, p7/m, z31.d, z30.d
80 // CHECK-ENCODING: [0xdf,0x9f,0xcf,0x65]
81 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
82 // CHECK-UNKNOWN: 65cf9fdf <unknown>
85 // FAMAX
87 famax z0.h, p0/m, z0.h, z1.h // 01100101-01001110-10000000-00100000
88 // CHECK-INST: famax z0.h, p0/m, z0.h, z1.h
89 // CHECK-ENCODING: [0x20,0x80,0x4e,0x65]
90 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
91 // CHECK-UNKNOWN: 654e8020 <unknown>
93 movprfx z23, z31
94 famax z23.h, p3/m, z23.h, z13.h // 01100101-01001110-10001101-10110111
95 // CHECK-INST: movprfx z23, z31
96 // CHECK-INST: famax z23.h, p3/m, z23.h, z13.h
97 // CHECK-ENCODING: [0xb7,0x8d,0x4e,0x65]
98 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
99 // CHECK-UNKNOWN: 654e8db7 <unknown>
101 famax z31.h, p7/m, z31.h, z30.h // 01100101-01001110-10011111-11011111
102 // CHECK-INST: famax z31.h, p7/m, z31.h, z30.h
103 // CHECK-ENCODING: [0xdf,0x9f,0x4e,0x65]
104 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
105 // CHECK-UNKNOWN: 654e9fdf <unknown>
107 famax z0.s, p0/m, z0.s, z1.s // 01100101-10001110-10000000-00100000
108 // CHECK-INST: famax z0.s, p0/m, z0.s, z1.s
109 // CHECK-ENCODING: [0x20,0x80,0x8e,0x65]
110 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
111 // CHECK-UNKNOWN: 658e8020 <unknown>
113 movprfx z23, z31
114 famax z23.s, p3/m, z23.s, z13.s // 01100101-10001110-10001101-10110111
115 // CHECK-INST: movprfx z23, z31
116 // CHECK-INST: famax z23.s, p3/m, z23.s, z13.s
117 // CHECK-ENCODING: [0xb7,0x8d,0x8e,0x65]
118 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
119 // CHECK-UNKNOWN: 658e8db7 <unknown>
121 famax z31.s, p7/m, z31.s, z30.s // 01100101-10001110-10011111-11011111
122 // CHECK-INST: famax z31.s, p7/m, z31.s, z30.s
123 // CHECK-ENCODING: [0xdf,0x9f,0x8e,0x65]
124 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
125 // CHECK-UNKNOWN: 658e9fdf <unknown>
127 famax z0.d, p0/m, z0.d, z1.d // 01100101-11001110-10000000-00100000
128 // CHECK-INST: famax z0.d, p0/m, z0.d, z1.d
129 // CHECK-ENCODING: [0x20,0x80,0xce,0x65]
130 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
131 // CHECK-UNKNOWN: 65ce8020 <unknown>
133 movprfx z23, z31
134 famax z23.d, p3/m, z23.d, z13.d // 01100101-11001110-10001101-10110111
135 // CHECK-INST: movprfx z23, z31
136 // CHECK-INST: famax z23.d, p3/m, z23.d, z13.d
137 // CHECK-ENCODING: [0xb7,0x8d,0xce,0x65]
138 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
139 // CHECK-UNKNOWN: 65ce8db7 <unknown>
141 famax z31.d, p7/m, z31.d, z30.d // 01100101-11001110-10011111-11011111
142 // CHECK-INST: famax z31.d, p7/m, z31.d, z30.d
143 // CHECK-ENCODING: [0xdf,0x9f,0xce,0x65]
144 // CHECK-ERROR: instruction requires: faminmax sve2 or sme2
145 // CHECK-UNKNOWN: 65ce9fdf <unknown>