1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-f8f16,+sme-f8f32 < %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=+sme-f8f16,+sme-f8f32 < %s \ 6// RUN: | llvm-objdump -d --mattr=+sme-f8f16,+sme-f8f32 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST 7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-f8f16,+sme-f8f32 < %s \ 8// RUN: | llvm-objdump -d --mattr=-sme-f8f16,-sme-f8f32 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN 9// Disassemble encoding and check the re-encoding (-show-encoding) matches. 10// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-f8f16,+sme-f8f32 < %s \ 11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ 12// RUN: | llvm-mc -triple=aarch64 -mattr=+sme-f8f16,+sme-f8f32 -disassemble -show-encoding \ 13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 14 15 16// FDOT 17// x2 18 19fdot za.h[w8, 0, vgx2], {z0.b-z1.b}, z0.b // 11000001-00100000-00010000-00001000 20// CHECK-INST: fdot za.h[w8, 0, vgx2], { z0.b, z1.b }, z0.b 21// CHECK-ENCODING: [0x08,0x10,0x20,0xc1] 22// CHECK-ERROR: instruction requires: sme-f8f16 23// CHECK-UNKNOWN: c1201008 <unknown> 24 25fdot za.h[w8, 0], {z0.b-z1.b}, z0.b // 11000001-00100000-00010000-00001000 26// CHECK-INST: fdot za.h[w8, 0, vgx2], { z0.b, z1.b }, z0.b 27// CHECK-ENCODING: [0x08,0x10,0x20,0xc1] 28// CHECK-ERROR: instruction requires: sme-f8f16 29// CHECK-UNKNOWN: c1201008 <unknown> 30 31fdot za.h[w11, 7], {z13.b-z14.b}, z8.b // 11000001-00101000-01110001-10101111 32// CHECK-INST: fdot za.h[w11, 7, vgx2], { z13.b, z14.b }, z8.b 33// CHECK-ENCODING: [0xaf,0x71,0x28,0xc1] 34// CHECK-ERROR: instruction requires: sme-f8f16 35// CHECK-UNKNOWN: c12871af <unknown> 36 37fdot za.h[w11, 7, vgx2], {z31.b-z0.b}, z15.b // 11000001-00101111-01110011-11101111 38// CHECK-INST: fdot za.h[w11, 7, vgx2], { z31.b, z0.b }, z15.b 39// CHECK-ENCODING: [0xef,0x73,0x2f,0xc1] 40// CHECK-ERROR: instruction requires: sme-f8f16 41// CHECK-UNKNOWN: c12f73ef <unknown> 42 43fdot za.s[w8, 0, vgx2], {z0.b-z1.b}, z0.b // 11000001-00100000-00010000-00011000 44// CHECK-INST: fdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b 45// CHECK-ENCODING: [0x18,0x10,0x20,0xc1] 46// CHECK-ERROR: instruction requires: sme-f8f32 47// CHECK-UNKNOWN: c1201018 <unknown> 48 49fdot za.s[w8, 0], {z0.b-z1.b}, z0.b // 11000001-00100000-00010000-00011000 50// CHECK-INST: fdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b 51// CHECK-ENCODING: [0x18,0x10,0x20,0xc1] 52// CHECK-ERROR: instruction requires: sme-f8f32 53// CHECK-UNKNOWN: c1201018 <unknown> 54 55fdot za.s[w11, 7, vgx2], {z31.b-z0.b}, z15.b // 11000001-00101111-01110011-11111111 56// CHECK-INST: fdot za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b 57// CHECK-ENCODING: [0xff,0x73,0x2f,0xc1] 58// CHECK-ERROR: instruction requires: sme-f8f32 59// CHECK-UNKNOWN: c12f73ff <unknown> 60 61fdot za.s[w11, 7], {z31.b-z0.b}, z15.b // 11000001-00101111-01110011-11111111 62// CHECK-INST: fdot za.s[w11, 7, vgx2], { z31.b, z0.b }, z15.b 63// CHECK-ENCODING: [0xff,0x73,0x2f,0xc1] 64// CHECK-ERROR: instruction requires: sme-f8f32 65// CHECK-UNKNOWN: c12f73ff <unknown> 66 67fdot za.h[w8, 0, vgx2], {z0.b-z1.b}, {z0.b-z1.b} // 11000001-10100000-00010000-00100000 68// CHECK-INST: fdot za.h[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } 69// CHECK-ENCODING: [0x20,0x10,0xa0,0xc1] 70// CHECK-ERROR: instruction requires: sme-f8f16 71// CHECK-UNKNOWN: c1a01020 <unknown> 72 73fdot za.h[w8, 0], {z0.b-z1.b}, {z0.b-z1.b} // 11000001-10100000-00010000-00100000 74// CHECK-INST: fdot za.h[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } 75// CHECK-ENCODING: [0x20,0x10,0xa0,0xc1] 76// CHECK-ERROR: instruction requires: sme-f8f16 77// CHECK-UNKNOWN: c1a01020 <unknown> 78 79fdot za.h[w11, 7, vgx2], {z30.b-z31.b}, {z30.b-z31.b} // 11000001-10111110-01110011-11100111 80// CHECK-INST: fdot za.h[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } 81// CHECK-ENCODING: [0xe7,0x73,0xbe,0xc1] 82// CHECK-ERROR: instruction requires: sme-f8f16 83// CHECK-UNKNOWN: c1be73e7 <unknown> 84 85fdot za.h[w11, 7], {z30.b-z31.b}, {z30.b-z31.b} // 11000001-10111110-01110011-11100111 86// CHECK-INST: fdot za.h[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } 87// CHECK-ENCODING: [0xe7,0x73,0xbe,0xc1] 88// CHECK-ERROR: instruction requires: sme-f8f16 89// CHECK-UNKNOWN: c1be73e7 <unknown> 90 91fdot za.s[w8, 0, vgx2], {z0.b-z1.b}, {z0.b-z1.b} // 11000001-10100000-00010000-00110000 92// CHECK-INST: fdot za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } 93// CHECK-ENCODING: [0x30,0x10,0xa0,0xc1] 94// CHECK-ERROR: instruction requires: sme-f8f32 95// CHECK-UNKNOWN: c1a01030 <unknown> 96 97fdot za.s[w8, 0], {z0.b-z1.b}, {z0.b-z1.b} // 11000001-10100000-00010000-00110000 98// CHECK-INST: fdot za.s[w8, 0, vgx2], { z0.b, z1.b }, { z0.b, z1.b } 99// CHECK-ENCODING: [0x30,0x10,0xa0,0xc1] 100// CHECK-ERROR: instruction requires: sme-f8f32 101// CHECK-UNKNOWN: c1a01030 <unknown> 102 103fdot za.s[w11, 7, vgx2], {z30.b-z31.b}, {z30.b-z31.b} // 11000001-10111110-01110011-11110111 104// CHECK-INST: fdot za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } 105// CHECK-ENCODING: [0xf7,0x73,0xbe,0xc1] 106// CHECK-ERROR: instruction requires: sme-f8f32 107// CHECK-UNKNOWN: c1be73f7 <unknown> 108 109fdot za.s[w11, 7], {z30.b-z31.b}, {z30.b-z31.b} // 11000001-10111110-01110011-11110111 110// CHECK-INST: fdot za.s[w11, 7, vgx2], { z30.b, z31.b }, { z30.b, z31.b } 111// CHECK-ENCODING: [0xf7,0x73,0xbe,0xc1] 112// CHECK-ERROR: instruction requires: sme-f8f32 113// CHECK-UNKNOWN: c1be73f7 <unknown> 114 115fdot za.h[w8, 0, vgx2], {z0.b-z1.b}, z0.b[0] // 11000001-11010000-00000000-00100000 116// CHECK-INST: fdot za.h[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] 117// CHECK-ENCODING: [0x20,0x00,0xd0,0xc1] 118// CHECK-ERROR: instruction requires: sme-f8f16 119// CHECK-UNKNOWN: c1d00020 <unknown> 120 121fdot za.h[w8, 0], {z0.b-z1.b}, z0.b[0] // 11000001-11010000-00000000-00100000 122// CHECK-INST: fdot za.h[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] 123// CHECK-ENCODING: [0x20,0x00,0xd0,0xc1] 124// CHECK-ERROR: instruction requires: sme-f8f16 125// CHECK-UNKNOWN: c1d00020 <unknown> 126 127fdot za.h[w11, 7, vgx2], {z30.b-z31.b}, z15.b[7] // 11000001-11011111-01101111-11101111 128// CHECK-INST: fdot za.h[w11, 7, vgx2], { z30.b, z31.b }, z15.b[7] 129// CHECK-ENCODING: [0xef,0x6f,0xdf,0xc1] 130// CHECK-ERROR: instruction requires: sme-f8f16 131// CHECK-UNKNOWN: c1df6fef <unknown> 132 133fdot za.h[w11, 7], {z30.b-z31.b}, z15.b[7] // 11000001-11011111-01101111-11101111 134// CHECK-INST: fdot za.h[w11, 7, vgx2], { z30.b, z31.b }, z15.b[7] 135// CHECK-ENCODING: [0xef,0x6f,0xdf,0xc1] 136// CHECK-ERROR: instruction requires: sme-f8f16 137// CHECK-UNKNOWN: c1df6fef <unknown> 138 139fdot za.s[w8, 0, vgx2], {z0.b-z1.b}, z0.b[0] // 11000001-01010000-00000000-00111000 140// CHECK-INST: fdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] 141// CHECK-ENCODING: [0x38,0x00,0x50,0xc1] 142// CHECK-ERROR: instruction requires: sme-f8f32 143// CHECK-UNKNOWN: c1500038 <unknown> 144 145fdot za.s[w8, 0], {z0.b-z1.b}, z0.b[0] // 11000001-01010000-00000000-00111000 146// CHECK-INST: fdot za.s[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] 147// CHECK-ENCODING: [0x38,0x00,0x50,0xc1] 148// CHECK-ERROR: instruction requires: sme-f8f32 149// CHECK-UNKNOWN: c1500038 <unknown> 150 151fdot za.s[w11, 7, vgx2], {z30.b-z31.b}, z15.b[3] // 11000001-01011111-01101111-11111111 152// CHECK-INST: fdot za.s[w11, 7, vgx2], { z30.b, z31.b }, z15.b[3] 153// CHECK-ENCODING: [0xff,0x6f,0x5f,0xc1] 154// CHECK-ERROR: instruction requires: sme-f8f32 155// CHECK-UNKNOWN: c15f6fff <unknown> 156 157fdot za.s[w11, 7], {z30.b-z31.b}, z15.b[3] // 11000001-01011111-01101111-11111111 158// CHECK-INST: fdot za.s[w11, 7, vgx2], { z30.b, z31.b }, z15.b[3] 159// CHECK-ENCODING: [0xff,0x6f,0x5f,0xc1] 160// CHECK-ERROR: instruction requires: sme-f8f32 161// CHECK-UNKNOWN: c15f6fff <unknown> 162 163// x4 164 165 166fdot za.h[w8, 0, vgx4], {z0.b-z3.b}, z0.b // 11000001-00110000-00010000-00001000 167// CHECK-INST: fdot za.h[w8, 0, vgx4], { z0.b - z3.b }, z0.b 168// CHECK-ENCODING: [0x08,0x10,0x30,0xc1] 169// CHECK-ERROR: instruction requires: sme-f8f16 170// CHECK-UNKNOWN: c1301008 <unknown> 171 172fdot za.h[w8, 0], {z0.b-z3.b}, z0.b // 11000001-00110000-00010000-00001000 173// CHECK-INST: fdot za.h[w8, 0, vgx4], { z0.b - z3.b }, z0.b 174// CHECK-ENCODING: [0x08,0x10,0x30,0xc1] 175// CHECK-ERROR: instruction requires: sme-f8f16 176// CHECK-UNKNOWN: c1301008 <unknown> 177 178fdot za.h[w11, 7, vgx4], {z31.b-z2.b}, z15.b // 11000001-00111111-01110011-11101111 179// CHECK-INST: fdot za.h[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b 180// CHECK-ENCODING: [0xef,0x73,0x3f,0xc1] 181// CHECK-ERROR: instruction requires: sme-f8f16 182// CHECK-UNKNOWN: c13f73ef <unknown> 183 184fdot za.h[w11, 7], {z31.b-z2.b}, z15.b // 11000001-00111111-01110011-11101111 185// CHECK-INST: fdot za.h[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b 186// CHECK-ENCODING: [0xef,0x73,0x3f,0xc1] 187// CHECK-ERROR: instruction requires: sme-f8f16 188// CHECK-UNKNOWN: c13f73ef <unknown> 189 190fdot za.s[w8, 0, vgx4], {z0.b-z3.b}, z0.b // 11000001-00110000-00010000-00011000 191// CHECK-INST: fdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b 192// CHECK-ENCODING: [0x18,0x10,0x30,0xc1] 193// CHECK-ERROR: instruction requires: sme-f8f32 194// CHECK-UNKNOWN: c1301018 <unknown> 195 196fdot za.s[w8, 0], {z0.b-z3.b}, z0.b // 11000001-00110000-00010000-00011000 197// CHECK-INST: fdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b 198// CHECK-ENCODING: [0x18,0x10,0x30,0xc1] 199// CHECK-ERROR: instruction requires: sme-f8f32 200// CHECK-UNKNOWN: c1301018 <unknown> 201 202fdot za.s[w11, 7, vgx4], {z31.b-z2.b}, z15.b // 11000001-00111111-01110011-11111111 203// CHECK-INST: fdot za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b 204// CHECK-ENCODING: [0xff,0x73,0x3f,0xc1] 205// CHECK-ERROR: instruction requires: sme-f8f32 206// CHECK-UNKNOWN: c13f73ff <unknown> 207 208fdot za.s[w11, 7], {z31.b-z2.b}, z15.b // 11000001-00111111-01110011-11111111 209// CHECK-INST: fdot za.s[w11, 7, vgx4], { z31.b, z0.b, z1.b, z2.b }, z15.b 210// CHECK-ENCODING: [0xff,0x73,0x3f,0xc1] 211// CHECK-ERROR: instruction requires: sme-f8f32 212// CHECK-UNKNOWN: c13f73ff <unknown> 213 214fdot za.h[w8, 0, vgx4], {z0.b-z3.b}, {z0.b-z3.b} // 11000001-10100001-00010000-00100000 215// CHECK-INST: fdot za.h[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } 216// CHECK-ENCODING: [0x20,0x10,0xa1,0xc1] 217// CHECK-ERROR: instruction requires: sme-f8f16 218// CHECK-UNKNOWN: c1a11020 <unknown> 219 220fdot za.h[w8, 0], {z0.b-z3.b}, {z0.b-z3.b} // 11000001-10100001-00010000-00100000 221// CHECK-INST: fdot za.h[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } 222// CHECK-ENCODING: [0x20,0x10,0xa1,0xc1] 223// CHECK-ERROR: instruction requires: sme-f8f16 224// CHECK-UNKNOWN: c1a11020 <unknown> 225 226fdot za.h[w11, 7, vgx4], {z28.b-z31.b}, {z28.b-z31.b} // 11000001-10111101-01110011-10100111 227// CHECK-INST: fdot za.h[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } 228// CHECK-ENCODING: [0xa7,0x73,0xbd,0xc1] 229// CHECK-ERROR: instruction requires: sme-f8f16 230// CHECK-UNKNOWN: c1bd73a7 <unknown> 231 232fdot za.h[w11, 7], {z28.b-z31.b}, {z28.b-z31.b} // 11000001-10111101-01110011-10100111 233// CHECK-INST: fdot za.h[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } 234// CHECK-ENCODING: [0xa7,0x73,0xbd,0xc1] 235// CHECK-ERROR: instruction requires: sme-f8f16 236// CHECK-UNKNOWN: c1bd73a7 <unknown> 237fdot za.h[w8, 0, vgx4], {z0.b-z3.b}, z0.b[0] // 11000001-00010000-10010000-01000000 238// CHECK-INST: fdot za.h[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0] 239// CHECK-ENCODING: [0x40,0x90,0x10,0xc1] 240// CHECK-ERROR: instruction requires: sme-f8f16 241// CHECK-UNKNOWN: c1109040 <unknown> 242 243fdot za.s[w8, 0, vgx4], {z0.b-z3.b}, {z0.b-z3.b} // 11000001-10100001-00010000-00110000 244// CHECK-INST: fdot za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } 245// CHECK-ENCODING: [0x30,0x10,0xa1,0xc1] 246// CHECK-ERROR: instruction requires: sme-f8f32 247// CHECK-UNKNOWN: c1a11030 <unknown> 248 249fdot za.s[w8, 0], {z0.b-z3.b}, {z0.b-z3.b} // 11000001-10100001-00010000-00110000 250// CHECK-INST: fdot za.s[w8, 0, vgx4], { z0.b - z3.b }, { z0.b - z3.b } 251// CHECK-ENCODING: [0x30,0x10,0xa1,0xc1] 252// CHECK-ERROR: instruction requires: sme-f8f32 253// CHECK-UNKNOWN: c1a11030 <unknown> 254 255fdot za.s[w11, 7, vgx4], {z28.b-z31.b}, {z28.b-z31.b} // 11000001-10111101-01110011-10110111 256// CHECK-INST: fdot za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } 257// CHECK-ENCODING: [0xb7,0x73,0xbd,0xc1] 258// CHECK-ERROR: instruction requires: sme-f8f32 259// CHECK-UNKNOWN: c1bd73b7 <unknown> 260 261fdot za.s[w11, 7], {z28.b-z31.b}, {z28.b-z31.b} // 11000001-10111101-01110011-10110111 262// CHECK-INST: fdot za.s[w11, 7, vgx4], { z28.b - z31.b }, { z28.b - z31.b } 263// CHECK-ENCODING: [0xb7,0x73,0xbd,0xc1] 264// CHECK-ERROR: instruction requires: sme-f8f32 265// CHECK-UNKNOWN: c1bd73b7 <unknown> 266 267fdot za.h[w8, 0], {z0.b-z3.b}, z0.b[0] // 11000001-00010000-10010000-01000000 268// CHECK-INST: fdot za.h[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0] 269// CHECK-ENCODING: [0x40,0x90,0x10,0xc1] 270// CHECK-ERROR: instruction requires: sme-f8f16 271// CHECK-UNKNOWN: c1109040 <unknown> 272 273fdot za.h[w11, 7, vgx4], {z28.b-z31.b}, z15.b[7] // 11000001-00011111-11111111-11001111 274// CHECK-INST: fdot za.h[w11, 7, vgx4], { z28.b - z31.b }, z15.b[7] 275// CHECK-ENCODING: [0xcf,0xff,0x1f,0xc1] 276// CHECK-ERROR: instruction requires: sme-f8f16 277// CHECK-UNKNOWN: c11fffcf <unknown> 278 279fdot za.h[w11, 7], {z28.b-z31.b}, z15.b[7] // 11000001-00011111-11111111-11001111 280// CHECK-INST: fdot za.h[w11, 7, vgx4], { z28.b - z31.b }, z15.b[7] 281// CHECK-ENCODING: [0xcf,0xff,0x1f,0xc1] 282// CHECK-ERROR: instruction requires: sme-f8f16 283// CHECK-UNKNOWN: c11fffcf <unknown> 284 285fdot za.s[w8, 0, vgx4], {z0.b-z3.b}, z0.b[0] // 11000001-01010000-10000000-00001000 286// CHECK-INST: fdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0] 287// CHECK-ENCODING: [0x08,0x80,0x50,0xc1] 288// CHECK-ERROR: instruction requires: sme-f8f32 289// CHECK-UNKNOWN: c1508008 <unknown> 290 291fdot za.s[w8, 0], {z0.b-z3.b}, z0.b[0] // 11000001-01010000-10000000-00001000 292// CHECK-INST: fdot za.s[w8, 0, vgx4], { z0.b - z3.b }, z0.b[0] 293// CHECK-ENCODING: [0x08,0x80,0x50,0xc1] 294// CHECK-ERROR: instruction requires: sme-f8f32 295// CHECK-UNKNOWN: c1508008 <unknown> 296 297fdot za.s[w11, 7, vgx4], {z28.b-z31.b}, z15.b[3] // 11000001-01011111-11101111-10001111 298// CHECK-INST: fdot za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3] 299// CHECK-ENCODING: [0x8f,0xef,0x5f,0xc1] 300// CHECK-ERROR: instruction requires: sme-f8f32 301// CHECK-UNKNOWN: c15fef8f <unknown> 302 303fdot za.s[w11, 7], {z28.b-z31.b}, z15.b[3] // 11000001-01011111-11101111-10001111 304// CHECK-INST: fdot za.s[w11, 7, vgx4], { z28.b - z31.b }, z15.b[3] 305// CHECK-ENCODING: [0x8f,0xef,0x5f,0xc1] 306// CHECK-ERROR: instruction requires: sme-f8f32 307// CHECK-UNKNOWN: c15fef8f <unknown> 308 309 310// FVDOT 311 312fvdot za.h[w8, 0, vgx2], {z0.b-z1.b}, z0.b[0] // 11000001-11010000-00010000-00100000 313// CHECK-INST: fvdot za.h[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] 314// CHECK-ENCODING: [0x20,0x10,0xd0,0xc1] 315// CHECK-ERROR: instruction requires: sme-f8f16 316// CHECK-UNKNOWN: c1d01020 <unknown> 317 318fvdot za.h[w8, 0], {z0.b-z1.b}, z0.b[0] // 11000001-11010000-00010000-00100000 319// CHECK-INST: fvdot za.h[w8, 0, vgx2], { z0.b, z1.b }, z0.b[0] 320// CHECK-ENCODING: [0x20,0x10,0xd0,0xc1] 321// CHECK-ERROR: instruction requires: sme-f8f16 322// CHECK-UNKNOWN: c1d01020 <unknown> 323 324fvdot za.h[w11, 7, vgx2], {z30.b-z31.b}, z15.b[7] // 11000001-11011111-01111111-11101111 325// CHECK-INST: fvdot za.h[w11, 7, vgx2], { z30.b, z31.b }, z15.b[7] 326// CHECK-ENCODING: [0xef,0x7f,0xdf,0xc1] 327// CHECK-ERROR: instruction requires: sme-f8f16 328// CHECK-UNKNOWN: c1df7fef <unknown> 329 330fvdot za.h[w11, 7], {z30.b-z31.b}, z15.b[7] // 11000001-11011111-01111111-11101111 331// CHECK-INST: fvdot za.h[w11, 7, vgx2], { z30.b, z31.b }, z15.b[7] 332// CHECK-ENCODING: [0xef,0x7f,0xdf,0xc1] 333// CHECK-ERROR: instruction requires: sme-f8f16 334// CHECK-UNKNOWN: c1df7fef <unknown> 335 336// FVDOTB 337 338fvdotb za.s[w8, 0, vgx4], {z0.b-z1.b}, z0.b[0] // 11000001-11010000-00001000-00000000 339// CHECK-INST: fvdotb za.s[w8, 0, vgx4], { z0.b, z1.b }, z0.b[0] 340// CHECK-ENCODING: [0x00,0x08,0xd0,0xc1] 341// CHECK-ERROR: instruction requires: sme-f8f32 342// CHECK-UNKNOWN: c1d00800 <unknown> 343 344fvdotb za.s[w11, 7, vgx4], {z30.b-z31.b}, z15.b[3] // 11000001-11011111-01101111-11001111 345// CHECK-INST: fvdotb za.s[w11, 7, vgx4], { z30.b, z31.b }, z15.b[3] 346// CHECK-ENCODING: [0xcf,0x6f,0xdf,0xc1] 347// CHECK-ERROR: instruction requires: sme-f8f32 348// CHECK-UNKNOWN: c1df6fcf <unknown> 349 350// FVDOTT 351fvdott za.s[w8, 0, vgx4], {z0.b-z1.b}, z0.b[0] // 11000001-11010000-00001000-00010000 352// CHECK-INST: fvdott za.s[w8, 0, vgx4], { z0.b, z1.b }, z0.b[0] 353// CHECK-ENCODING: [0x10,0x08,0xd0,0xc1] 354// CHECK-ERROR: instruction requires: sme-f8f32 355// CHECK-UNKNOWN: c1d00810 <unknown> 356 357fvdott za.s[w11, 7, vgx4], {z30.b-z31.b}, z15.b[3] // 11000001-11011111-01101111-11011111 358// CHECK-INST: fvdott za.s[w11, 7, vgx4], { z30.b, z31.b }, z15.b[3] 359// CHECK-ENCODING: [0xdf,0x6f,0xdf,0xc1] 360// CHECK-ERROR: instruction requires: sme-f8f32 361// CHECK-UNKNOWN: c1df6fdf <unknown> 362