1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %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=+sve < %s \ 6// RUN: | llvm-objdump -d --mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST 7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \ 8// RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 9 10// --------------------------------------------------------------------------// 11// Index (immediate, immediate) 12 13index z0.b, #0, #0 14// CHECK-INST: index z0.b, #0, #0 15// CHECK-ENCODING: [0x00,0x40,0x20,0x04] 16// CHECK-ERROR: instruction requires: sve 17// CHECK-UNKNOWN: 00 40 20 04 <unknown> 18 19index z31.b, #-1, #-1 20// CHECK-INST: index z31.b, #-1, #-1 21// CHECK-ENCODING: [0xff,0x43,0x3f,0x04] 22// CHECK-ERROR: instruction requires: sve 23// CHECK-UNKNOWN: ff 43 3f 04 <unknown> 24 25index z0.h, #0, #0 26// CHECK-INST: index z0.h, #0, #0 27// CHECK-ENCODING: [0x00,0x40,0x60,0x04] 28// CHECK-ERROR: instruction requires: sve 29// CHECK-UNKNOWN: 00 40 60 04 <unknown> 30 31index z31.h, #-1, #-1 32// CHECK-INST: index z31.h, #-1, #-1 33// CHECK-ENCODING: [0xff,0x43,0x7f,0x04] 34// CHECK-ERROR: instruction requires: sve 35// CHECK-UNKNOWN: ff 43 7f 04 <unknown> 36 37index z0.s, #0, #0 38// CHECK-INST: index z0.s, #0, #0 39// CHECK-ENCODING: [0x00,0x40,0xa0,0x04] 40// CHECK-ERROR: instruction requires: sve 41// CHECK-UNKNOWN: 00 40 a0 04 <unknown> 42 43index z31.s, #-1, #-1 44// CHECK-INST: index z31.s, #-1, #-1 45// CHECK-ENCODING: [0xff,0x43,0xbf,0x04] 46// CHECK-ERROR: instruction requires: sve 47// CHECK-UNKNOWN: ff 43 bf 04 <unknown> 48 49index z0.d, #0, #0 50// CHECK-INST: index z0.d, #0, #0 51// CHECK-ENCODING: [0x00,0x40,0xe0,0x04] 52// CHECK-ERROR: instruction requires: sve 53// CHECK-UNKNOWN: 00 40 e0 04 <unknown> 54 55index z31.d, #-1, #-1 56// CHECK-INST: index z31.d, #-1, #-1 57// CHECK-ENCODING: [0xff,0x43,0xff,0x04] 58// CHECK-ERROR: instruction requires: sve 59// CHECK-UNKNOWN: ff 43 ff 04 <unknown> 60 61// --------------------------------------------------------------------------// 62// Index (immediate, scalar) 63 64index z31.b, #-1, wzr 65// CHECK-INST: index z31.b, #-1, wzr 66// CHECK-ENCODING: [0xff,0x4b,0x3f,0x04] 67// CHECK-ERROR: instruction requires: sve 68// CHECK-UNKNOWN: ff 4b 3f 04 <unknown> 69 70index z23.b, #13, w8 71// CHECK-INST: index z23.b, #13, w8 72// CHECK-ENCODING: [0xb7,0x49,0x28,0x04] 73// CHECK-ERROR: instruction requires: sve 74// CHECK-UNKNOWN: b7 49 28 04 <unknown> 75 76index z31.h, #-1, wzr 77// CHECK-INST: index z31.h, #-1, wzr 78// CHECK-ENCODING: [0xff,0x4b,0x7f,0x04] 79// CHECK-ERROR: instruction requires: sve 80// CHECK-UNKNOWN: ff 4b 7f 04 <unknown> 81 82index z23.h, #13, w8 83// CHECK-INST: index z23.h, #13, w8 84// CHECK-ENCODING: [0xb7,0x49,0x68,0x04] 85// CHECK-ERROR: instruction requires: sve 86// CHECK-UNKNOWN: b7 49 68 04 <unknown> 87 88index z31.s, #-1, wzr 89// CHECK-INST: index z31.s, #-1, wzr 90// CHECK-ENCODING: [0xff,0x4b,0xbf,0x04] 91// CHECK-ERROR: instruction requires: sve 92// CHECK-UNKNOWN: ff 4b bf 04 <unknown> 93 94index z23.s, #13, w8 95// CHECK-INST: index z23.s, #13, w8 96// CHECK-ENCODING: [0xb7,0x49,0xa8,0x04] 97// CHECK-ERROR: instruction requires: sve 98// CHECK-UNKNOWN: b7 49 a8 04 <unknown> 99 100index z31.d, #-1, xzr 101// CHECK-INST: index z31.d, #-1, xzr 102// CHECK-ENCODING: [0xff,0x4b,0xff,0x04] 103// CHECK-ERROR: instruction requires: sve 104// CHECK-UNKNOWN: ff 4b ff 04 <unknown> 105 106index z23.d, #13, x8 107// CHECK-INST: index z23.d, #13, x8 108// CHECK-ENCODING: [0xb7,0x49,0xe8,0x04] 109// CHECK-ERROR: instruction requires: sve 110// CHECK-UNKNOWN: b7 49 e8 04 <unknown> 111 112 113// --------------------------------------------------------------------------// 114// Index (scalar, immediate) 115 116index z31.b, wzr, #-1 117// CHECK-INST: index z31.b, wzr, #-1 118// CHECK-ENCODING: [0xff,0x47,0x3f,0x04] 119// CHECK-ERROR: instruction requires: sve 120// CHECK-UNKNOWN: ff 47 3f 04 <unknown> 121 122index z23.b, w13, #8 123// CHECK-INST: index z23.b, w13, #8 124// CHECK-ENCODING: [0xb7,0x45,0x28,0x04] 125// CHECK-ERROR: instruction requires: sve 126// CHECK-UNKNOWN: b7 45 28 04 <unknown> 127 128index z31.h, wzr, #-1 129// CHECK-INST: index z31.h, wzr, #-1 130// CHECK-ENCODING: [0xff,0x47,0x7f,0x04] 131// CHECK-ERROR: instruction requires: sve 132// CHECK-UNKNOWN: ff 47 7f 04 <unknown> 133 134index z23.h, w13, #8 135// CHECK-INST: index z23.h, w13, #8 136// CHECK-ENCODING: [0xb7,0x45,0x68,0x04] 137// CHECK-ERROR: instruction requires: sve 138// CHECK-UNKNOWN: b7 45 68 04 <unknown> 139 140index z31.s, wzr, #-1 141// CHECK-INST: index z31.s, wzr, #-1 142// CHECK-ENCODING: [0xff,0x47,0xbf,0x04] 143// CHECK-ERROR: instruction requires: sve 144// CHECK-UNKNOWN: ff 47 bf 04 <unknown> 145 146index z23.s, w13, #8 147// CHECK-INST: index z23.s, w13, #8 148// CHECK-ENCODING: [0xb7,0x45,0xa8,0x04] 149// CHECK-ERROR: instruction requires: sve 150// CHECK-UNKNOWN: b7 45 a8 04 <unknown> 151 152index z31.d, xzr, #-1 153// CHECK-INST: index z31.d, xzr, #-1 154// CHECK-ENCODING: [0xff,0x47,0xff,0x04] 155// CHECK-ERROR: instruction requires: sve 156// CHECK-UNKNOWN: ff 47 ff 04 <unknown> 157 158index z23.d, x13, #8 159// CHECK-INST: index z23.d, x13, #8 160// CHECK-ENCODING: [0xb7,0x45,0xe8,0x04] 161// CHECK-ERROR: instruction requires: sve 162// CHECK-UNKNOWN: b7 45 e8 04 <unknown> 163 164 165// --------------------------------------------------------------------------// 166// Index (scalar, scalar) 167 168index z31.b, wzr, wzr 169// CHECK-INST: index z31.b, wzr, wzr 170// CHECK-ENCODING: [0xff,0x4f,0x3f,0x04] 171// CHECK-ERROR: instruction requires: sve 172// CHECK-UNKNOWN: ff 4f 3f 04 <unknown> 173 174index z21.b, w10, w21 175// CHECK-INST: index z21.b, w10, w21 176// CHECK-ENCODING: [0x55,0x4d,0x35,0x04] 177// CHECK-ERROR: instruction requires: sve 178// CHECK-UNKNOWN: 55 4d 35 04 <unknown> 179 180index z31.h, wzr, wzr 181// check-inst: index z31.h, wzr, wzr 182// check-encoding: [0xff,0x4f,0x7f,0x04] 183// check-error: instruction requires: sve 184// check-unknown: ff 4f 7f 04 <unknown> 185 186index z0.h, w0, w0 187// check-inst: index z0.h, w0, w0 188// check-encoding: [0x00,0x4c,0x60,0x04] 189// check-error: instruction requires: sve 190// check-unknown: 00 4c 60 04 <unknown> 191 192index z31.s, wzr, wzr 193// CHECK-INST: index z31.s, wzr, wzr 194// CHECK-ENCODING: [0xff,0x4f,0xbf,0x04] 195// CHECK-ERROR: instruction requires: sve 196// CHECK-UNKNOWN: ff 4f bf 04 <unknown> 197 198index z21.s, w10, w21 199// CHECK-INST: index z21.s, w10, w21 200// CHECK-ENCODING: [0x55,0x4d,0xb5,0x04] 201// CHECK-ERROR: instruction requires: sve 202// CHECK-UNKNOWN: 55 4d b5 04 <unknown> 203 204index z31.d, xzr, xzr 205// CHECK-INST: index z31.d, xzr, xzr 206// CHECK-ENCODING: [0xff,0x4f,0xff,0x04] 207// CHECK-ERROR: instruction requires: sve 208// CHECK-UNKNOWN: ff 4f ff 04 <unknown> 209 210index z21.d, x10, x21 211// CHECK-INST: index z21.d, x10, x21 212// CHECK-ENCODING: [0x55,0x4d,0xf5,0x04] 213// CHECK-ERROR: instruction requires: sve 214// CHECK-UNKNOWN: 55 4d f5 04 <unknown> 215