1# AArch64 SME instruction descriptions 2# 3# Copyright (c) 2022 Linaro, Ltd 4# 5# This library is free software; you can redistribute it and/or 6# modify it under the terms of the GNU Lesser General Public 7# License as published by the Free Software Foundation; either 8# version 2.1 of the License, or (at your option) any later version. 9# 10# This library is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13# Lesser General Public License for more details. 14# 15# You should have received a copy of the GNU Lesser General Public 16# License along with this library; if not, see <http://www.gnu.org/licenses/>. 17 18# 19# This file is processed by scripts/decodetree.py 20# 21 22### SME Misc 23 24ZERO 11000000 00 001 00000000000 imm:8 25ZERO_zt0 11000000 01 001 00000000000 00000001 26 27### SME Move into/from Array 28 29%mova_rs 13:2 !function=plus_12 30%mova_rv 13:2 !function=plus_8 31&mova_a rv zr off 32&mova_p esz rs pg zr za off v:bool 33&mova_t esz rs zr za off v:bool 34 35MOVA_tz 11000000 00 00000 0 v:1 .. pg:3 zr:5 0 off:4 \ 36 &mova_p rs=%mova_rs esz=0 za=0 37MOVA_tz 11000000 01 00000 0 v:1 .. pg:3 zr:5 0 za:1 off:3 \ 38 &mova_p rs=%mova_rs esz=1 39MOVA_tz 11000000 10 00000 0 v:1 .. pg:3 zr:5 0 za:2 off:2 \ 40 &mova_p rs=%mova_rs esz=2 41MOVA_tz 11000000 11 00000 0 v:1 .. pg:3 zr:5 0 za:3 off:1 \ 42 &mova_p rs=%mova_rs esz=3 43MOVA_tz 11000000 11 00000 1 v:1 .. pg:3 zr:5 0 za:4 \ 44 &mova_p rs=%mova_rs esz=4 off=0 45 46MOVA_zt 11000000 00 00001 0 v:1 .. pg:3 0 off:4 zr:5 \ 47 &mova_p rs=%mova_rs esz=0 za=0 48MOVA_zt 11000000 01 00001 0 v:1 .. pg:3 0 za:1 off:3 zr:5 \ 49 &mova_p rs=%mova_rs esz=1 50MOVA_zt 11000000 10 00001 0 v:1 .. pg:3 0 za:2 off:2 zr:5 \ 51 &mova_p rs=%mova_rs esz=2 52MOVA_zt 11000000 11 00001 0 v:1 .. pg:3 0 za:3 off:1 zr:5 \ 53 &mova_p rs=%mova_rs esz=3 54MOVA_zt 11000000 11 00001 1 v:1 .. pg:3 0 za:4 zr:5 \ 55 &mova_p rs=%mova_rs esz=4 off=0 56 57MOVA_tz2 11000000 00 00010 0 v:1 .. 000 zr:4 0 00 off:3 \ 58 &mova_t rs=%mova_rs esz=0 za=0 59MOVA_tz2 11000000 01 00010 0 v:1 .. 000 zr:4 0 00 za:1 off:2 \ 60 &mova_t rs=%mova_rs esz=1 61MOVA_tz2 11000000 10 00010 0 v:1 .. 000 zr:4 0 00 za:2 off:1 \ 62 &mova_t rs=%mova_rs esz=2 63MOVA_tz2 11000000 11 00010 0 v:1 .. 000 zr:4 0 00 za:3 \ 64 &mova_t rs=%mova_rs esz=3 off=0 65 66MOVA_zt2 11000000 00 00011 0 v:1 .. 000 00 off:3 zr:4 0 \ 67 &mova_t rs=%mova_rs esz=0 za=0 68MOVA_zt2 11000000 01 00011 0 v:1 .. 000 00 za:1 off:2 zr:4 0 \ 69 &mova_t rs=%mova_rs esz=1 70MOVA_zt2 11000000 10 00011 0 v:1 .. 000 00 za:2 off:1 zr:4 0 \ 71 &mova_t rs=%mova_rs esz=2 72MOVA_zt2 11000000 11 00011 0 v:1 .. 000 00 za:3 zr:4 0 \ 73 &mova_t rs=%mova_rs esz=3 off=0 74 75MOVA_tz4 11000000 00 00010 0 v:1 .. 001 zr:3 00 000 off:2 \ 76 &mova_t rs=%mova_rs esz=0 za=0 77MOVA_tz4 11000000 01 00010 0 v:1 .. 001 zr:3 00 000 za:1 off:1 \ 78 &mova_t rs=%mova_rs esz=1 79MOVA_tz4 11000000 10 00010 0 v:1 .. 001 zr:3 00 000 za:2 \ 80 &mova_t rs=%mova_rs esz=2 off=0 81MOVA_tz4 11000000 11 00010 0 v:1 .. 001 zr:3 00 00 za:3 \ 82 &mova_t rs=%mova_rs esz=3 off=0 83 84MOVA_zt4 11000000 00 00011 0 v:1 .. 001 000 off:2 zr:3 00 \ 85 &mova_t rs=%mova_rs esz=0 za=0 86MOVA_zt4 11000000 01 00011 0 v:1 .. 001 000 za:1 off:1 zr:3 00 \ 87 &mova_t rs=%mova_rs esz=1 88MOVA_zt4 11000000 10 00011 0 v:1 .. 001 000 za:2 zr:3 00 \ 89 &mova_t rs=%mova_rs esz=2 off=0 90MOVA_zt4 11000000 11 00011 0 v:1 .. 001 00 za:3 zr:3 00 \ 91 &mova_t rs=%mova_rs esz=3 off=0 92 93MOVA_az2 11000000 00 00010 00 .. 010 zr:4 000 off:3 \ 94 &mova_a rv=%mova_rv 95MOVA_az4 11000000 00 00010 00 .. 011 zr:3 0000 off:3 \ 96 &mova_a rv=%mova_rv 97 98MOVA_za2 11000000 00 00011 00 .. 010 00 off:3 zr:4 0 \ 99 &mova_a rv=%mova_rv 100MOVA_za4 11000000 00 00011 00 .. 011 00 off:3 zr:3 00 \ 101 &mova_a rv=%mova_rv 102 103### SME Move and Zero 104 105MOVAZ_za2 11000000 00000110 0 .. 01010 off:3 zr:4 0 \ 106 &mova_a rv=%mova_rv 107MOVAZ_za4 11000000 00000110 0 .. 01110 off:3 zr:3 00 \ 108 &mova_a rv=%mova_rv 109 110MOVAZ_zt 11000000 00 00001 0 v:1 .. 0001 off:4 zr:5 \ 111 &mova_t rs=%mova_rs esz=0 za=0 112MOVAZ_zt 11000000 01 00001 0 v:1 .. 0001 za:1 off:3 zr:5 \ 113 &mova_t rs=%mova_rs esz=1 114MOVAZ_zt 11000000 10 00001 0 v:1 .. 0001 za:2 off:2 zr:5 \ 115 &mova_t rs=%mova_rs esz=2 116MOVAZ_zt 11000000 11 00001 0 v:1 .. 0001 za:3 off:1 zr:5 \ 117 &mova_t rs=%mova_rs esz=3 118MOVAZ_zt 11000000 11 00001 1 v:1 .. 0001 za:4 zr:5 \ 119 &mova_t rs=%mova_rs esz=4 off=0 120 121MOVAZ_zt2 11000000 00 00011 0 v:1 .. 00010 off:3 zr:4 0 \ 122 &mova_t rs=%mova_rs esz=0 za=0 123MOVAZ_zt2 11000000 01 00011 0 v:1 .. 00010 za:1 off:2 zr:4 0 \ 124 &mova_t rs=%mova_rs esz=1 125MOVAZ_zt2 11000000 10 00011 0 v:1 .. 00010 za:2 off:1 zr:4 0 \ 126 &mova_t rs=%mova_rs esz=2 127MOVAZ_zt2 11000000 11 00011 0 v:1 .. 00010 za:3 zr:4 0 \ 128 &mova_t rs=%mova_rs esz=3 off=0 129 130MOVAZ_zt4 11000000 00 00011 0 v:1 .. 001100 off:2 zr:3 00 \ 131 &mova_t rs=%mova_rs esz=0 za=0 132MOVAZ_zt4 11000000 01 00011 0 v:1 .. 001100 za:1 off:1 zr:3 00 \ 133 &mova_t rs=%mova_rs esz=1 134MOVAZ_zt4 11000000 10 00011 0 v:1 .. 001100 za:2 zr:3 00 \ 135 &mova_t rs=%mova_rs esz=2 off=0 136MOVAZ_zt4 11000000 11 00011 0 v:1 .. 00110 za:3 zr:3 00 \ 137 &mova_t rs=%mova_rs esz=3 off=0 138 139### SME Move into/from ZT0 140 141MOVT_rzt 1100 0000 0100 1100 0 off:3 00 11111 rt:5 142MOVT_ztr 1100 0000 0100 1110 0 off:3 00 11111 rt:5 143 144### SME Memory 145 146&ldst esz rs pg rn rm za off v:bool st:bool 147 148LDST1 1110000 0 00 st:1 rm:5 v:1 .. pg:3 rn:5 0 off:4 \ 149 &ldst rs=%mova_rs esz=0 za=0 150LDST1 1110000 0 01 st:1 rm:5 v:1 .. pg:3 rn:5 0 za:1 off:3 \ 151 &ldst rs=%mova_rs esz=1 152LDST1 1110000 0 10 st:1 rm:5 v:1 .. pg:3 rn:5 0 za:2 off:2 \ 153 &ldst rs=%mova_rs esz=2 154LDST1 1110000 0 11 st:1 rm:5 v:1 .. pg:3 rn:5 0 za:3 off:1 \ 155 &ldst rs=%mova_rs esz=3 156LDST1 1110000 1 11 st:1 rm:5 v:1 .. pg:3 rn:5 0 za:4 \ 157 &ldst rs=%mova_rs esz=4 off=0 158 159&ldstr rv rn imm 160@ldstr ....... ... . ...... .. ... rn:5 . imm:4 \ 161 &ldstr rv=%mova_rs 162 163LDR 1110000 100 0 000000 .. 000 ..... 0 .... @ldstr 164STR 1110000 100 1 000000 .. 000 ..... 0 .... @ldstr 165 166&ldstzt0 rn 167@ldstzt0 ....... ... . ...... .. ... rn:5 ..... &ldstzt0 168 169LDR_zt0 1110000 100 0 111111 00 000 ..... 00000 @ldstzt0 170STR_zt0 1110000 100 1 111111 00 000 ..... 00000 @ldstzt0 171 172### SME Add Vector to Array 173 174&adda zad zn pm pn 175@adda_32 ........ .. ..... . pm:3 pn:3 zn:5 ... zad:2 &adda 176@adda_64 ........ .. ..... . pm:3 pn:3 zn:5 .. zad:3 &adda 177 178ADDHA_s 11000000 10 01000 0 ... ... ..... 000 .. @adda_32 179ADDVA_s 11000000 10 01000 1 ... ... ..... 000 .. @adda_32 180ADDHA_d 11000000 11 01000 0 ... ... ..... 00 ... @adda_64 181ADDVA_d 11000000 11 01000 1 ... ... ..... 00 ... @adda_64 182 183### SME Outer Product 184 185&op zad zn zm pm pn sub:bool 186@op_16 ........ ... zm:5 pm:3 pn:3 zn:5 sub:1 ... zad:1 &op 187@op_32 ........ ... zm:5 pm:3 pn:3 zn:5 sub:1 .. zad:2 &op 188@op_64 ........ ... zm:5 pm:3 pn:3 zn:5 sub:1 . zad:3 &op 189 190FMOPA_h 10000001 100 ..... ... ... ..... . 100 . @op_16 191FMOPA_s 10000000 100 ..... ... ... ..... . 00 .. @op_32 192FMOPA_d 10000000 110 ..... ... ... ..... . 0 ... @op_64 193 194BFMOPA 10000001 101 ..... ... ... ..... . 100 . @op_16 195 196BFMOPA_w 10000001 100 ..... ... ... ..... . 00 .. @op_32 197FMOPA_w_h 10000001 101 ..... ... ... ..... . 00 .. @op_32 198 199SMOPA_s 1010000 0 10 0 ..... ... ... ..... . 00 .. @op_32 200SUMOPA_s 1010000 0 10 1 ..... ... ... ..... . 00 .. @op_32 201USMOPA_s 1010000 1 10 0 ..... ... ... ..... . 00 .. @op_32 202UMOPA_s 1010000 1 10 1 ..... ... ... ..... . 00 .. @op_32 203 204SMOPA_d 1010000 0 11 0 ..... ... ... ..... . 0 ... @op_64 205SUMOPA_d 1010000 0 11 1 ..... ... ... ..... . 0 ... @op_64 206USMOPA_d 1010000 1 11 0 ..... ... ... ..... . 0 ... @op_64 207UMOPA_d 1010000 1 11 1 ..... ... ... ..... . 0 ... @op_64 208 209BMOPA 1000000 0 10 0 ..... ... ... ..... . 10 .. @op_32 210SMOPA2_s 1010000 0 10 0 ..... ... ... ..... . 10 .. @op_32 211UMOPA2_s 1010000 1 10 0 ..... ... ... ..... . 10 .. @op_32 212 213### SME2 Multi-vector Multiple and Single SVE Destructive 214 215%zd_ax2 1:4 !function=times_2 216%zd_ax4 2:3 !function=times_4 217 218&z2z_en zdn zm esz n 219@z2z_2x1 ....... . esz:2 .. zm:4 ....0. ..... .... . \ 220 &z2z_en n=2 zdn=%zd_ax2 221@z2z_4x1 ....... . esz:2 .. zm:4 ....1. ..... ...0 . \ 222 &z2z_en n=4 zdn=%zd_ax4 223 224SMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 0 @z2z_2x1 225SMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 0 @z2z_4x1 226UMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 1 @z2z_2x1 227UMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 1 @z2z_4x1 228SMIN_n1 1100000 1 .. 10 .... 1010.0 00001 .... 0 @z2z_2x1 229SMIN_n1 1100000 1 .. 10 .... 1010.0 00001 .... 0 @z2z_4x1 230UMIN_n1 1100000 1 .. 10 .... 1010.0 00001 .... 1 @z2z_2x1 231UMIN_n1 1100000 1 .. 10 .... 1010.0 00001 .... 1 @z2z_4x1 232 233FMAX_n1 1100000 1 .. 10 .... 1010.0 01000 .... 0 @z2z_2x1 234FMAX_n1 1100000 1 .. 10 .... 1010.0 01000 .... 0 @z2z_4x1 235FMIN_n1 1100000 1 .. 10 .... 1010.0 01000 .... 1 @z2z_2x1 236FMIN_n1 1100000 1 .. 10 .... 1010.0 01000 .... 1 @z2z_4x1 237FMAXNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 0 @z2z_2x1 238FMAXNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 0 @z2z_4x1 239FMINNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 1 @z2z_2x1 240FMINNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 1 @z2z_4x1 241 242SRSHL_n1 1100000 1 .. 10 .... 1010.0 10001 .... 0 @z2z_2x1 243SRSHL_n1 1100000 1 .. 10 .... 1010.0 10001 .... 0 @z2z_4x1 244URSHL_n1 1100000 1 .. 10 .... 1010.0 10001 .... 1 @z2z_2x1 245URSHL_n1 1100000 1 .. 10 .... 1010.0 10001 .... 1 @z2z_4x1 246 247ADD_n1 1100000 1 .. 10 .... 1010.0 11000 .... 0 @z2z_2x1 248ADD_n1 1100000 1 .. 10 .... 1010.0 11000 .... 0 @z2z_4x1 249 250SQDMULH_n1 1100000 1 .. 10 .... 1010.1 00000 .... 0 @z2z_2x1 251SQDMULH_n1 1100000 1 .. 10 .... 1010.1 00000 .... 0 @z2z_4x1 252 253### SME2 Multi-vector Multiple Vectors SVE Destructive 254 255%zm_ax2 17:4 !function=times_2 256%zm_ax4 18:3 !function=times_4 257 258@z2z_2x2 ....... . esz:2 . ....0 ....0. ..... .... . \ 259 &z2z_en n=2 zdn=%zd_ax2 zm=%zm_ax2 260@z2z_4x4 ....... . esz:2 . ...00 ....1. ..... ...0 . \ 261 &z2z_en n=4 zdn=%zd_ax4 zm=%zm_ax4 262 263SMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 0 @z2z_2x2 264SMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 0 @z2z_4x4 265UMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 1 @z2z_2x2 266UMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 1 @z2z_4x4 267SMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 .... 0 @z2z_2x2 268SMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 .... 0 @z2z_4x4 269UMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 .... 1 @z2z_2x2 270UMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 .... 1 @z2z_4x4 271 272FMAX_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 0 @z2z_2x2 273FMAX_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 0 @z2z_4x4 274FMIN_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 1 @z2z_2x2 275FMIN_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 1 @z2z_4x4 276FMAXNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 0 @z2z_2x2 277FMAXNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 0 @z2z_4x4 278FMINNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 1 @z2z_2x2 279FMINNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 1 @z2z_4x4 280 281SRSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... 0 @z2z_2x2 282SRSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... 0 @z2z_4x4 283URSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... 1 @z2z_2x2 284URSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... 1 @z2z_4x4 285 286SQDMULH_nn 1100000 1 .. 1 ..... 1011.1 00000 .... 0 @z2z_2x2 287SQDMULH_nn 1100000 1 .. 1 ..... 1011.1 00000 .... 0 @z2z_4x4 288 289### SME2 Multi-vector Multiple and Single Array Vectors 290 291&azz_n n off rv zn zm 292@azz_nx1_o3 ........ .... zm:4 ...... zn:5 .. off:3 &azz_n rv=%mova_rv 293 294ADD_azz_n1_s 11000001 0010 .... 0 .. 110 ..... 10 ... @azz_nx1_o3 n=2 295ADD_azz_n1_s 11000001 0011 .... 0 .. 110 ..... 10 ... @azz_nx1_o3 n=4 296ADD_azz_n1_d 11000001 0110 .... 0 .. 110 ..... 10 ... @azz_nx1_o3 n=2 297ADD_azz_n1_d 11000001 0111 .... 0 .. 110 ..... 10 ... @azz_nx1_o3 n=4 298 299SUB_azz_n1_s 11000001 0010 .... 0 .. 110 ..... 11 ... @azz_nx1_o3 n=2 300SUB_azz_n1_s 11000001 0011 .... 0 .. 110 ..... 11 ... @azz_nx1_o3 n=4 301SUB_azz_n1_d 11000001 0110 .... 0 .. 110 ..... 11 ... @azz_nx1_o3 n=2 302SUB_azz_n1_d 11000001 0111 .... 0 .. 110 ..... 11 ... @azz_nx1_o3 n=4 303 304%off3_x2 0:3 !function=times_2 305%off2_x2 0:2 !function=times_2 306 307@azz_nx1_o3x2 ........ ... . zm:4 . .. ... zn:5 .. ... \ 308 &azz_n off=%off3_x2 rv=%mova_rv 309@azz_nx1_o2x2 ........ ... . zm:4 . .. ... zn:5 ... .. \ 310 &azz_n off=%off2_x2 rv=%mova_rv 311 312FMLAL_n1 11000001 001 0 .... 0 .. 011 ..... 00 ... @azz_nx1_o3x2 n=1 313FMLAL_n1 11000001 001 0 .... 0 .. 010 ..... 000 .. @azz_nx1_o2x2 n=2 314FMLAL_n1 11000001 001 1 .... 0 .. 010 ..... 000 .. @azz_nx1_o2x2 n=4 315 316FMLSL_n1 11000001 001 0 .... 0 .. 011 ..... 01 ... @azz_nx1_o3x2 n=1 317FMLSL_n1 11000001 001 0 .... 0 .. 010 ..... 010 .. @azz_nx1_o2x2 n=2 318FMLSL_n1 11000001 001 1 .... 0 .. 010 ..... 010 .. @azz_nx1_o2x2 n=4 319 320BFMLAL_n1 11000001 001 0 .... 0 .. 011 ..... 10 ... @azz_nx1_o3x2 n=1 321BFMLAL_n1 11000001 001 0 .... 0 .. 010 ..... 100 .. @azz_nx1_o2x2 n=2 322BFMLAL_n1 11000001 001 1 .... 0 .. 010 ..... 100 .. @azz_nx1_o2x2 n=4 323 324BFMLSL_n1 11000001 001 0 .... 0 .. 011 ..... 11 ... @azz_nx1_o3x2 n=1 325BFMLSL_n1 11000001 001 0 .... 0 .. 010 ..... 110 .. @azz_nx1_o2x2 n=2 326BFMLSL_n1 11000001 001 1 .... 0 .. 010 ..... 110 .. @azz_nx1_o2x2 n=4 327 328FDOT_n1 11000001 001 0 .... 0 .. 100 ..... 00 ... @azz_nx1_o3 n=2 329FDOT_n1 11000001 001 1 .... 0 .. 100 ..... 00 ... @azz_nx1_o3 n=4 330 331BFDOT_n1 11000001 001 0 .... 0 .. 100 ..... 10 ... @azz_nx1_o3 n=2 332BFDOT_n1 11000001 001 1 .... 0 .. 100 ..... 10 ... @azz_nx1_o3 n=4 333 334USDOT_n1 11000001 001 0 .... 0 .. 101 ..... 01 ... @azz_nx1_o3 n=2 335USDOT_n1 11000001 001 1 .... 0 .. 101 ..... 01 ... @azz_nx1_o3 n=4 336 337SUDOT_n1 11000001 001 0 .... 0 .. 101 ..... 11 ... @azz_nx1_o3 n=2 338SUDOT_n1 11000001 001 1 .... 0 .. 101 ..... 11 ... @azz_nx1_o3 n=4 339 340SDOT_n1_4b 11000001 001 0 .... 0 .. 101 ..... 00 ... @azz_nx1_o3 n=2 341SDOT_n1_4b 11000001 001 1 .... 0 .. 101 ..... 00 ... @azz_nx1_o3 n=4 342SDOT_n1_4h 11000001 011 0 .... 0 .. 101 ..... 00 ... @azz_nx1_o3 n=2 343SDOT_n1_4h 11000001 011 1 .... 0 .. 101 ..... 00 ... @azz_nx1_o3 n=4 344SDOT_n1_2h 11000001 011 0 .... 0 .. 101 ..... 01 ... @azz_nx1_o3 n=2 345SDOT_n1_2h 11000001 011 1 .... 0 .. 101 ..... 01 ... @azz_nx1_o3 n=4 346 347UDOT_n1_4b 11000001 001 0 .... 0 .. 101 ..... 10 ... @azz_nx1_o3 n=2 348UDOT_n1_4b 11000001 001 1 .... 0 .. 101 ..... 10 ... @azz_nx1_o3 n=4 349UDOT_n1_4h 11000001 011 0 .... 0 .. 101 ..... 10 ... @azz_nx1_o3 n=2 350UDOT_n1_4h 11000001 011 1 .... 0 .. 101 ..... 10 ... @azz_nx1_o3 n=4 351UDOT_n1_2h 11000001 011 0 .... 0 .. 101 ..... 11 ... @azz_nx1_o3 n=2 352UDOT_n1_2h 11000001 011 1 .... 0 .. 101 ..... 11 ... @azz_nx1_o3 n=4 353 354SMLAL_n1 11000001 011 0 .... 0 .. 011 ..... 00 ... @azz_nx1_o3x2 n=1 355SMLAL_n1 11000001 011 0 .... 0 .. 010 ..... 000 .. @azz_nx1_o2x2 n=2 356SMLAL_n1 11000001 011 1 .... 0 .. 010 ..... 000 .. @azz_nx1_o2x2 n=4 357 358SMLSL_n1 11000001 011 0 .... 0 .. 011 ..... 01 ... @azz_nx1_o3x2 n=1 359SMLSL_n1 11000001 011 0 .... 0 .. 010 ..... 010 .. @azz_nx1_o2x2 n=2 360SMLSL_n1 11000001 011 1 .... 0 .. 010 ..... 010 .. @azz_nx1_o2x2 n=4 361 362UMLAL_n1 11000001 011 0 .... 0 .. 011 ..... 10 ... @azz_nx1_o3x2 n=1 363UMLAL_n1 11000001 011 0 .... 0 .. 010 ..... 100 .. @azz_nx1_o2x2 n=2 364UMLAL_n1 11000001 011 1 .... 0 .. 010 ..... 100 .. @azz_nx1_o2x2 n=4 365 366UMLSL_n1 11000001 011 0 .... 0 .. 011 ..... 11 ... @azz_nx1_o3x2 n=1 367UMLSL_n1 11000001 011 0 .... 0 .. 010 ..... 110 .. @azz_nx1_o2x2 n=2 368UMLSL_n1 11000001 011 1 .... 0 .. 010 ..... 110 .. @azz_nx1_o2x2 n=4 369 370%off2_x4 0:2 !function=times_4 371%off1_x4 0:1 !function=times_4 372 373@azz_nx1_o2x4 ........ ... . zm:4 . .. ... zn:5 ... .. \ 374 &azz_n off=%off2_x4 rv=%mova_rv 375@azz_nx1_o1x4 ........ ... . zm:4 . .. ... zn:5 .... . \ 376 &azz_n off=%off1_x4 rv=%mova_rv 377 378SMLALL_n1_s 11000001 001 0 .... 0 .. 001 ..... 000 .. @azz_nx1_o2x4 n=1 379SMLALL_n1_d 11000001 011 0 .... 0 .. 001 ..... 000 .. @azz_nx1_o2x4 n=1 380SMLALL_n1_s 11000001 001 0 .... 0 .. 000 ..... 0000 . @azz_nx1_o1x4 n=2 381SMLALL_n1_d 11000001 011 0 .... 0 .. 000 ..... 0000 . @azz_nx1_o1x4 n=2 382SMLALL_n1_s 11000001 001 1 .... 0 .. 000 ..... 0000 . @azz_nx1_o1x4 n=4 383SMLALL_n1_d 11000001 011 1 .... 0 .. 000 ..... 0000 . @azz_nx1_o1x4 n=4 384 385SMLSLL_n1_s 11000001 001 0 .... 0 .. 001 ..... 010 .. @azz_nx1_o2x4 n=1 386SMLSLL_n1_d 11000001 011 0 .... 0 .. 001 ..... 010 .. @azz_nx1_o2x4 n=1 387SMLSLL_n1_s 11000001 001 0 .... 0 .. 000 ..... 0100 . @azz_nx1_o1x4 n=2 388SMLSLL_n1_d 11000001 011 0 .... 0 .. 000 ..... 0100 . @azz_nx1_o1x4 n=2 389SMLSLL_n1_s 11000001 001 1 .... 0 .. 000 ..... 0100 . @azz_nx1_o1x4 n=4 390SMLSLL_n1_d 11000001 011 1 .... 0 .. 000 ..... 0100 . @azz_nx1_o1x4 n=4 391 392UMLALL_n1_s 11000001 001 0 .... 0 .. 001 ..... 100 .. @azz_nx1_o2x4 n=1 393UMLALL_n1_d 11000001 011 0 .... 0 .. 001 ..... 100 .. @azz_nx1_o2x4 n=1 394UMLALL_n1_s 11000001 001 0 .... 0 .. 000 ..... 1000 . @azz_nx1_o1x4 n=2 395UMLALL_n1_d 11000001 011 0 .... 0 .. 000 ..... 1000 . @azz_nx1_o1x4 n=2 396UMLALL_n1_s 11000001 001 1 .... 0 .. 000 ..... 1000 . @azz_nx1_o1x4 n=4 397UMLALL_n1_d 11000001 011 1 .... 0 .. 000 ..... 1000 . @azz_nx1_o1x4 n=4 398 399UMLSLL_n1_s 11000001 001 0 .... 0 .. 001 ..... 110 .. @azz_nx1_o2x4 n=1 400UMLSLL_n1_d 11000001 011 0 .... 0 .. 001 ..... 110 .. @azz_nx1_o2x4 n=1 401UMLSLL_n1_s 11000001 001 0 .... 0 .. 000 ..... 1100 . @azz_nx1_o1x4 n=2 402UMLSLL_n1_d 11000001 011 0 .... 0 .. 000 ..... 1100 . @azz_nx1_o1x4 n=2 403UMLSLL_n1_s 11000001 001 1 .... 0 .. 000 ..... 1100 . @azz_nx1_o1x4 n=4 404UMLSLL_n1_d 11000001 011 1 .... 0 .. 000 ..... 1100 . @azz_nx1_o1x4 n=4 405 406USMLALL_n1_s 11000001 001 0 .... 0 .. 001 ..... 001 .. @azz_nx1_o2x4 n=1 407USMLALL_n1_s 11000001 001 0 .... 0 .. 000 ..... 0010 . @azz_nx1_o1x4 n=2 408USMLALL_n1_s 11000001 001 1 .... 0 .. 000 ..... 0010 . @azz_nx1_o1x4 n=4 409 410SUMLALL_n1_s 11000001 001 0 .... 0 .. 000 ..... 1010 . @azz_nx1_o1x4 n=2 411SUMLALL_n1_s 11000001 001 1 .... 0 .. 000 ..... 1010 . @azz_nx1_o1x4 n=4 412 413BFMLA_n1 11000001 011 0 .... 0 .. 111 ..... 00 ... @azz_nx1_o3 n=2 414FMLA_n1_h 11000001 001 0 .... 0 .. 111 ..... 00 ... @azz_nx1_o3 n=2 415FMLA_n1_s 11000001 001 0 .... 0 .. 110 ..... 00 ... @azz_nx1_o3 n=2 416FMLA_n1_d 11000001 011 0 .... 0 .. 110 ..... 00 ... @azz_nx1_o3 n=2 417 418BFMLA_n1 11000001 011 1 .... 0 .. 111 ..... 00 ... @azz_nx1_o3 n=4 419FMLA_n1_h 11000001 001 1 .... 0 .. 111 ..... 00 ... @azz_nx1_o3 n=4 420FMLA_n1_s 11000001 001 1 .... 0 .. 110 ..... 00 ... @azz_nx1_o3 n=4 421FMLA_n1_d 11000001 011 1 .... 0 .. 110 ..... 00 ... @azz_nx1_o3 n=4 422 423BFMLS_n1 11000001 011 0 .... 0 .. 111 ..... 01 ... @azz_nx1_o3 n=2 424FMLS_n1_h 11000001 001 0 .... 0 .. 111 ..... 01 ... @azz_nx1_o3 n=2 425FMLS_n1_s 11000001 001 0 .... 0 .. 110 ..... 01 ... @azz_nx1_o3 n=2 426FMLS_n1_d 11000001 011 0 .... 0 .. 110 ..... 01 ... @azz_nx1_o3 n=2 427 428BFMLS_n1 11000001 011 1 .... 0 .. 111 ..... 01 ... @azz_nx1_o3 n=4 429FMLS_n1_h 11000001 001 1 .... 0 .. 111 ..... 01 ... @azz_nx1_o3 n=4 430FMLS_n1_s 11000001 001 1 .... 0 .. 110 ..... 01 ... @azz_nx1_o3 n=4 431FMLS_n1_d 11000001 011 1 .... 0 .. 110 ..... 01 ... @azz_nx1_o3 n=4 432 433### SME2 Multi-vector Multiple Array Vectors 434 435%zn_ax2 6:4 !function=times_2 436%zn_ax4 7:3 !function=times_4 437 438@azz_2x2_o3 ........ ... ..... . .. ... ..... .. off:3 \ 439 &azz_n n=2 rv=%mova_rv zn=%zn_ax2 zm=%zm_ax2 440@azz_4x4_o3 ........ ... ..... . .. ... ..... .. off:3 \ 441 &azz_n n=4 rv=%mova_rv zn=%zn_ax4 zm=%zm_ax4 442 443ADD_azz_nn_s 11000001 101 ....0 0 .. 110 ....0 10 ... @azz_2x2_o3 444ADD_azz_nn_s 11000001 101 ...01 0 .. 110 ...00 10 ... @azz_4x4_o3 445ADD_azz_nn_d 11000001 111 ....0 0 .. 110 ....0 10 ... @azz_2x2_o3 446ADD_azz_nn_d 11000001 111 ...01 0 .. 110 ...00 10 ... @azz_4x4_o3 447 448SUB_azz_nn_s 11000001 101 ....0 0 .. 110 ....0 11 ... @azz_2x2_o3 449SUB_azz_nn_s 11000001 101 ...01 0 .. 110 ...00 11 ... @azz_4x4_o3 450SUB_azz_nn_d 11000001 111 ....0 0 .. 110 ....0 11 ... @azz_2x2_o3 451SUB_azz_nn_d 11000001 111 ...01 0 .. 110 ...00 11 ... @azz_4x4_o3 452 453@azz_2x2_o2x2 ........ ... ..... . .. ... ..... ... .. \ 454 &azz_n n=2 rv=%mova_rv zn=%zn_ax2 zm=%zm_ax2 off=%off2_x2 455@azz_4x4_o2x2 ........ ... ..... . .. ... ..... ... .. \ 456 &azz_n n=4 rv=%mova_rv zn=%zn_ax4 zm=%zm_ax4 off=%off2_x2 457 458FMLAL_nn 11000001 101 ....0 0 .. 010 ....0 000 .. @azz_2x2_o2x2 459FMLAL_nn 11000001 101 ...01 0 .. 010 ...00 000 .. @azz_4x4_o2x2 460 461FMLSL_nn 11000001 101 ....0 0 .. 010 ....0 010 .. @azz_2x2_o2x2 462FMLSL_nn 11000001 101 ...01 0 .. 010 ...00 010 .. @azz_4x4_o2x2 463 464BFMLAL_nn 11000001 101 ....0 0 .. 010 ....0 100 .. @azz_2x2_o2x2 465BFMLAL_nn 11000001 101 ...01 0 .. 010 ...00 100 .. @azz_4x4_o2x2 466 467BFMLSL_nn 11000001 101 ....0 0 .. 010 ....0 110 .. @azz_2x2_o2x2 468BFMLSL_nn 11000001 101 ...01 0 .. 010 ...00 110 .. @azz_4x4_o2x2 469 470FDOT_nn 11000001 101 ....0 0 .. 100 ....0 00 ... @azz_2x2_o3 471FDOT_nn 11000001 101 ...01 0 .. 100 ...00 00 ... @azz_4x4_o3 472 473BFDOT_nn 11000001 101 ....0 0 .. 100 ....0 10 ... @azz_2x2_o3 474BFDOT_nn 11000001 101 ...01 0 .. 100 ...00 10 ... @azz_4x4_o3 475 476USDOT_nn 11000001 101 ....0 0 .. 101 ....0 01 ... @azz_2x2_o3 477USDOT_nn 11000001 101 ...01 0 .. 101 ...00 01 ... @azz_4x4_o3 478 479SDOT_nn_4b 11000001 101 ....0 0 .. 101 ....0 00 ... @azz_2x2_o3 480SDOT_nn_4b 11000001 101 ...01 0 .. 101 ...00 00 ... @azz_4x4_o3 481SDOT_nn_4h 11000001 111 ....0 0 .. 101 ....0 00 ... @azz_2x2_o3 482SDOT_nn_4h 11000001 111 ...01 0 .. 101 ...00 00 ... @azz_4x4_o3 483SDOT_nn_2h 11000001 111 ....0 0 .. 101 ....0 01 ... @azz_2x2_o3 484SDOT_nn_2h 11000001 111 ...01 0 .. 101 ...00 01 ... @azz_4x4_o3 485 486UDOT_nn_4b 11000001 101 ....0 0 .. 101 ....0 10 ... @azz_2x2_o3 487UDOT_nn_4b 11000001 101 ...01 0 .. 101 ...00 10 ... @azz_4x4_o3 488UDOT_nn_4h 11000001 111 ....0 0 .. 101 ....0 10 ... @azz_2x2_o3 489UDOT_nn_4h 11000001 111 ...01 0 .. 101 ...00 10 ... @azz_4x4_o3 490UDOT_nn_2h 11000001 111 ....0 0 .. 101 ....0 11 ... @azz_2x2_o3 491UDOT_nn_2h 11000001 111 ...01 0 .. 101 ...00 11 ... @azz_4x4_o3 492 493SMLAL_nn 11000001 111 ....0 0 .. 010 ....0 000 .. @azz_2x2_o2x2 494SMLAL_nn 11000001 111 ...01 0 .. 010 ...00 000 .. @azz_4x4_o2x2 495 496SMLSL_nn 11000001 111 ....0 0 .. 010 ....0 010 .. @azz_2x2_o2x2 497SMLSL_nn 11000001 111 ...01 0 .. 010 ...00 010 .. @azz_4x4_o2x2 498 499UMLAL_nn 11000001 111 ....0 0 .. 010 ....0 100 .. @azz_2x2_o2x2 500UMLAL_nn 11000001 111 ...01 0 .. 010 ...00 100 .. @azz_4x4_o2x2 501 502UMLSL_nn 11000001 111 ....0 0 .. 010 ....0 110 .. @azz_2x2_o2x2 503UMLSL_nn 11000001 111 ...01 0 .. 010 ...00 110 .. @azz_4x4_o2x2 504 505@azz_2x2_o1x4 ........ ... ..... . .. ... ..... ... .. \ 506 &azz_n n=2 rv=%mova_rv zn=%zn_ax2 zm=%zm_ax2 off=%off1_x4 507@azz_4x4_o1x4 ........ ... ..... . .. ... ..... ... .. \ 508 &azz_n n=4 rv=%mova_rv zn=%zn_ax4 zm=%zm_ax4 off=%off1_x4 509 510SMLALL_nn_s 11000001 101 ....0 0 .. 000 ....0 0000 . @azz_2x2_o1x4 511SMLALL_nn_d 11000001 111 ....0 0 .. 000 ....0 0000 . @azz_2x2_o1x4 512SMLALL_nn_s 11000001 101 ...01 0 .. 000 ...00 0000 . @azz_4x4_o1x4 513SMLALL_nn_d 11000001 111 ...01 0 .. 000 ...00 0000 . @azz_4x4_o1x4 514 515SMLSLL_nn_s 11000001 101 ....0 0 .. 000 ....0 0100 . @azz_2x2_o1x4 516SMLSLL_nn_d 11000001 111 ....0 0 .. 000 ....0 0100 . @azz_2x2_o1x4 517SMLSLL_nn_s 11000001 101 ...01 0 .. 000 ...00 0100 . @azz_4x4_o1x4 518SMLSLL_nn_d 11000001 111 ...01 0 .. 000 ...00 0100 . @azz_4x4_o1x4 519 520UMLALL_nn_s 11000001 101 ....0 0 .. 000 ....0 1000 . @azz_2x2_o1x4 521UMLALL_nn_d 11000001 111 ....0 0 .. 000 ....0 1000 . @azz_2x2_o1x4 522UMLALL_nn_s 11000001 101 ...01 0 .. 000 ...00 1000 . @azz_4x4_o1x4 523UMLALL_nn_d 11000001 111 ...01 0 .. 000 ...00 1000 . @azz_4x4_o1x4 524 525UMLSLL_nn_s 11000001 101 ....0 0 .. 000 ....0 1100 . @azz_2x2_o1x4 526UMLSLL_nn_d 11000001 111 ....0 0 .. 000 ....0 1100 . @azz_2x2_o1x4 527UMLSLL_nn_s 11000001 101 ...01 0 .. 000 ...00 1100 . @azz_4x4_o1x4 528UMLSLL_nn_d 11000001 111 ...01 0 .. 000 ...00 1100 . @azz_4x4_o1x4 529 530USMLALL_nn_s 11000001 101 ....0 0 .. 000 ....0 0010 . @azz_2x2_o1x4 531USMLALL_nn_s 11000001 101 ...01 0 .. 000 ...00 0010 . @azz_4x4_o1x4 532 533BFMLA_nn 11000001 111 ....0 0 .. 100 ....0 01 ... @azz_2x2_o3 534FMLA_nn_h 11000001 101 ....0 0 .. 100 ....0 01 ... @azz_2x2_o3 535FMLA_nn_s 11000001 101 ....0 0 .. 110 ....0 00 ... @azz_2x2_o3 536FMLA_nn_d 11000001 111 ....0 0 .. 110 ....0 00 ... @azz_2x2_o3 537 538BFMLA_nn 11000001 111 ...01 0 .. 100 ...00 01 ... @azz_4x4_o3 539FMLA_nn_h 11000001 101 ...01 0 .. 100 ...00 01 ... @azz_4x4_o3 540FMLA_nn_s 11000001 101 ...01 0 .. 110 ...00 00 ... @azz_4x4_o3 541FMLA_nn_d 11000001 111 ...01 0 .. 110 ...00 00 ... @azz_4x4_o3 542 543BFMLS_nn 11000001 111 ....0 0 .. 100 ....0 11 ... @azz_2x2_o3 544FMLS_nn_h 11000001 101 ....0 0 .. 100 ....0 11 ... @azz_2x2_o3 545FMLS_nn_s 11000001 101 ....0 0 .. 110 ....0 01 ... @azz_2x2_o3 546FMLS_nn_d 11000001 111 ....0 0 .. 110 ....0 01 ... @azz_2x2_o3 547 548BFMLS_nn 11000001 111 ...01 0 .. 100 ...00 11 ... @azz_4x4_o3 549FMLS_nn_h 11000001 101 ...01 0 .. 100 ...00 11 ... @azz_4x4_o3 550FMLS_nn_s 11000001 101 ...01 0 .. 110 ...00 01 ... @azz_4x4_o3 551FMLS_nn_d 11000001 111 ...01 0 .. 110 ...00 01 ... @azz_4x4_o3 552 553&az_n n off rv zm 554@az_2x2_o3 ........ ... ..... . .. ... ..... .. off:3 \ 555 &az_n n=2 rv=%mova_rv zm=%zn_ax2 556@az_4x4_o3 ........ ... ..... . .. ... ..... .. off:3 \ 557 &az_n n=4 rv=%mova_rv zm=%zn_ax4 558 559FADD_nn_h 11000001 101 00100 0 .. 111 ....0 00 ... @az_2x2_o3 560FADD_nn_s 11000001 101 00000 0 .. 111 ....0 00 ... @az_2x2_o3 561FADD_nn_d 11000001 111 00000 0 .. 111 ....0 00 ... @az_2x2_o3 562FADD_nn_h 11000001 101 00101 0 .. 111 ...00 00 ... @az_4x4_o3 563FADD_nn_s 11000001 101 00001 0 .. 111 ...00 00 ... @az_4x4_o3 564FADD_nn_d 11000001 111 00001 0 .. 111 ...00 00 ... @az_4x4_o3 565 566FSUB_nn_h 11000001 101 00100 0 .. 111 ....0 01 ... @az_2x2_o3 567FSUB_nn_s 11000001 101 00000 0 .. 111 ....0 01 ... @az_2x2_o3 568FSUB_nn_d 11000001 111 00000 0 .. 111 ....0 01 ... @az_2x2_o3 569FSUB_nn_h 11000001 101 00101 0 .. 111 ...00 01 ... @az_4x4_o3 570FSUB_nn_s 11000001 101 00001 0 .. 111 ...00 01 ... @az_4x4_o3 571FSUB_nn_d 11000001 111 00001 0 .. 111 ...00 01 ... @az_4x4_o3 572 573BFADD_nn 11000001 111 00100 0 .. 111 ....0 00 ... @az_2x2_o3 574BFADD_nn 11000001 111 00101 0 .. 111 ...00 00 ... @az_4x4_o3 575BFSUB_nn 11000001 111 00100 0 .. 111 ....0 01 ... @az_2x2_o3 576BFSUB_nn 11000001 111 00101 0 .. 111 ...00 01 ... @az_4x4_o3 577 578### SME2 Multi-vector Indexed 579 580&azx_n n off rv zn zm idx 581 582%idx3_15_10 15:1 10:2 583%idx2_10_2 10:2 2:1 584 585@azx_1x1_o3x2 ........ .... zm:4 . .. . .. zn:5 .. ... \ 586 &azx_n n=1 rv=%mova_rv off=%off3_x2 idx=%idx3_15_10 587@azx_2x1_o2x2 ........ .... zm:4 . .. . .. ..... .. ... \ 588 &azx_n n=2 rv=%mova_rv off=%off2_x2 zn=%zn_ax2 idx=%idx2_10_2 589@azx_4x1_o2x2 ........ .... zm:4 . .. . .. ..... .. ... \ 590 &azx_n n=4 rv=%mova_rv off=%off2_x2 zn=%zn_ax4 idx=%idx2_10_2 591 592FMLAL_nx 11000001 1000 .... . .. 1 .. ..... 00 ... @azx_1x1_o3x2 593FMLAL_nx 11000001 1001 .... 0 .. 1 .. ....0 00 ... @azx_2x1_o2x2 594FMLAL_nx 11000001 1001 .... 1 .. 1 .. ...00 00 ... @azx_4x1_o2x2 595 596FMLSL_nx 11000001 1000 .... . .. 1 .. ..... 01 ... @azx_1x1_o3x2 597FMLSL_nx 11000001 1001 .... 0 .. 1 .. ....0 01 ... @azx_2x1_o2x2 598FMLSL_nx 11000001 1001 .... 1 .. 1 .. ...00 01 ... @azx_4x1_o2x2 599 600BFMLAL_nx 11000001 1000 .... . .. 1 .. ..... 10 ... @azx_1x1_o3x2 601BFMLAL_nx 11000001 1001 .... 0 .. 1 .. ....0 10 ... @azx_2x1_o2x2 602BFMLAL_nx 11000001 1001 .... 1 .. 1 .. ...00 10 ... @azx_4x1_o2x2 603 604BFMLSL_nx 11000001 1000 .... . .. 1 .. ..... 11 ... @azx_1x1_o3x2 605BFMLSL_nx 11000001 1001 .... 0 .. 1 .. ....0 11 ... @azx_2x1_o2x2 606BFMLSL_nx 11000001 1001 .... 1 .. 1 .. ...00 11 ... @azx_4x1_o2x2 607 608@azx_2x1_i2_o3 ........ .... zm:4 . .. . idx:2 .... ... off:3 \ 609 &azx_n n=2 rv=%mova_rv zn=%zn_ax2 610@azx_4x1_i2_o3 ........ .... zm:4 . .. . idx:2 .... ... off:3 \ 611 &azx_n n=4 rv=%mova_rv zn=%zn_ax4 612@azx_2x1_i1_o3 ........ .... zm:4 . .. .. idx:1 .... ... off:3 \ 613 &azx_n n=2 rv=%mova_rv zn=%zn_ax2 614@azx_4x1_i1_o3 ........ .... zm:4 . .. .. idx:1 .... ... off:3 \ 615 &azx_n n=4 rv=%mova_rv zn=%zn_ax4 616 617FDOT_nx 11000001 0101 .... 0 .. 1 .. ....0 01 ... @azx_2x1_i2_o3 618FDOT_nx 11000001 0101 .... 1 .. 1 .. ...00 01 ... @azx_4x1_i2_o3 619 620BFDOT_nx 11000001 0101 .... 0 .. 1 .. ....0 11 ... @azx_2x1_i2_o3 621BFDOT_nx 11000001 0101 .... 1 .. 1 .. ...00 11 ... @azx_4x1_i2_o3 622 623FVDOT 11000001 0101 .... 0 .. 0 .. ....0 01 ... @azx_2x1_i2_o3 624BFVDOT 11000001 0101 .... 0 .. 0 .. ....0 11 ... @azx_2x1_i2_o3 625 626SDOT_nx_2h 11000001 0101 .... 0 .. 1 .. ....0 00 ... @azx_2x1_i2_o3 627SDOT_nx_2h 11000001 0101 .... 1 .. 1 .. ...00 00 ... @azx_4x1_i2_o3 628SDOT_nx_4b 11000001 0101 .... 0 .. 1 .. ....1 00 ... @azx_2x1_i2_o3 629SDOT_nx_4b 11000001 0101 .... 1 .. 1 .. ...01 00 ... @azx_4x1_i2_o3 630SDOT_nx_4h 11000001 1101 .... 0 .. 00 . ....0 01 ... @azx_2x1_i1_o3 631SDOT_nx_4h 11000001 1101 .... 1 .. 00 . ...00 01 ... @azx_4x1_i1_o3 632 633UDOT_nx_2h 11000001 0101 .... 0 .. 1 .. ....0 10 ... @azx_2x1_i2_o3 634UDOT_nx_2h 11000001 0101 .... 1 .. 1 .. ...00 10 ... @azx_4x1_i2_o3 635UDOT_nx_4b 11000001 0101 .... 0 .. 1 .. ....1 10 ... @azx_2x1_i2_o3 636UDOT_nx_4b 11000001 0101 .... 1 .. 1 .. ...01 10 ... @azx_4x1_i2_o3 637UDOT_nx_4h 11000001 1101 .... 0 .. 00 . ....0 11 ... @azx_2x1_i1_o3 638UDOT_nx_4h 11000001 1101 .... 1 .. 00 . ...00 11 ... @azx_4x1_i1_o3 639 640USDOT_nx 11000001 0101 .... 0 .. 1 .. ....1 01 ... @azx_2x1_i2_o3 641USDOT_nx 11000001 0101 .... 1 .. 1 .. ...01 01 ... @azx_4x1_i2_o3 642 643SUDOT_nx 11000001 0101 .... 0 .. 1 .. ....1 11 ... @azx_2x1_i2_o3 644SUDOT_nx 11000001 0101 .... 1 .. 1 .. ...01 11 ... @azx_4x1_i2_o3 645 646SVDOT_nx_2h 11000001 0101 .... 0 .. 0 .. ....1 00 ... @azx_2x1_i2_o3 647SVDOT_nx_4b 11000001 0101 .... 1 .. 0 .. ...01 00 ... @azx_4x1_i2_o3 648SVDOT_nx_4h 11000001 1101 .... 1 .. 01 . ...00 01 ... @azx_4x1_i1_o3 649 650UVDOT_nx_2h 11000001 0101 .... 0 .. 0 .. ....1 10 ... @azx_2x1_i2_o3 651UVDOT_nx_4b 11000001 0101 .... 1 .. 0 .. ...01 10 ... @azx_4x1_i2_o3 652UVDOT_nx_4h 11000001 1101 .... 1 .. 01 . ...00 11 ... @azx_4x1_i1_o3 653 654SUVDOT_nx_4b 11000001 0101 .... 1 .. 0 .. ...01 11 ... @azx_4x1_i2_o3 655USVDOT_nx_4b 11000001 0101 .... 1 .. 0 .. ...01 01 ... @azx_4x1_i2_o3 656 657SMLAL_nx 11000001 1100 .... . .. 1 .. ..... 00 ... @azx_1x1_o3x2 658SMLAL_nx 11000001 1101 .... 0 .. 1 .. ....0 00 ... @azx_2x1_o2x2 659SMLAL_nx 11000001 1101 .... 1 .. 1 .. ...00 00 ... @azx_4x1_o2x2 660 661SMLSL_nx 11000001 1100 .... . .. 1 .. ..... 01 ... @azx_1x1_o3x2 662SMLSL_nx 11000001 1101 .... 0 .. 1 .. ....0 01 ... @azx_2x1_o2x2 663SMLSL_nx 11000001 1101 .... 1 .. 1 .. ...00 01 ... @azx_4x1_o2x2 664 665UMLAL_nx 11000001 1100 .... . .. 1 .. ..... 10 ... @azx_1x1_o3x2 666UMLAL_nx 11000001 1101 .... 0 .. 1 .. ....0 10 ... @azx_2x1_o2x2 667UMLAL_nx 11000001 1101 .... 1 .. 1 .. ...00 10 ... @azx_4x1_o2x2 668 669UMLSL_nx 11000001 1100 .... . .. 1 .. ..... 11 ... @azx_1x1_o3x2 670UMLSL_nx 11000001 1101 .... 0 .. 1 .. ....0 11 ... @azx_2x1_o2x2 671UMLSL_nx 11000001 1101 .... 1 .. 1 .. ...00 11 ... @azx_4x1_o2x2 672 673%idx4_15_10 15:1 10:3 674%idx4_10_1 10:2 1:2 675%idx3_10_1 10:1 1:2 676 677@azx_1x1_i4_o2 ........ .... zm:4 . .. ... zn:5 ... .. \ 678 &azx_n n=1 rv=%mova_rv off=%off2_x4 idx=%idx4_15_10 679@azx_1x1_i3_o2 ........ .... zm:4 . .. ... zn:5 ... .. \ 680 &azx_n n=1 rv=%mova_rv off=%off2_x4 idx=%idx3_15_10 681@azx_2x1_i4_o1 ........ .... zm:4 . .. ... ..... ... .. \ 682 &azx_n n=2 rv=%mova_rv off=%off1_x4 zn=%zn_ax2 idx=%idx4_10_1 683@azx_2x1_i3_o1 ........ .... zm:4 . .. ... ..... ... .. \ 684 &azx_n n=2 rv=%mova_rv off=%off1_x4 zn=%zn_ax2 idx=%idx3_10_1 685@azx_4x1_i4_o1 ........ .... zm:4 . .. ... ..... ... .. \ 686 &azx_n n=4 rv=%mova_rv off=%off1_x4 zn=%zn_ax4 idx=%idx4_10_1 687@azx_4x1_i3_o1 ........ .... zm:4 . .. ... ..... ... .. \ 688 &azx_n n=4 rv=%mova_rv off=%off1_x4 zn=%zn_ax4 idx=%idx3_10_1 689 690SMLALL_nx_s 11000001 0000 .... . .. ... ..... 000 .. @azx_1x1_i4_o2 691SMLALL_nx_d 11000001 1000 .... . .. 0.. ..... 000 .. @azx_1x1_i3_o2 692SMLALL_nx_s 11000001 0001 .... 0 .. 0.. ....0 00 ... @azx_2x1_i4_o1 693SMLALL_nx_d 11000001 1001 .... 0 .. 00. ....0 00 ... @azx_2x1_i3_o1 694SMLALL_nx_s 11000001 0001 .... 1 .. 0.. ...00 00 ... @azx_4x1_i4_o1 695SMLALL_nx_d 11000001 1001 .... 1 .. 00. ...00 00 ... @azx_4x1_i3_o1 696 697SMLSLL_nx_s 11000001 0000 .... . .. ... ..... 010 .. @azx_1x1_i4_o2 698SMLSLL_nx_d 11000001 1000 .... . .. 0.. ..... 010 .. @azx_1x1_i3_o2 699SMLSLL_nx_s 11000001 0001 .... 0 .. 0.. ....0 01 ... @azx_2x1_i4_o1 700SMLSLL_nx_d 11000001 1001 .... 0 .. 00. ....0 01 ... @azx_2x1_i3_o1 701SMLSLL_nx_s 11000001 0001 .... 1 .. 0.. ...00 01 ... @azx_4x1_i4_o1 702SMLSLL_nx_d 11000001 1001 .... 1 .. 00. ...00 01 ... @azx_4x1_i3_o1 703 704UMLALL_nx_s 11000001 0000 .... . .. ... ..... 100 .. @azx_1x1_i4_o2 705UMLALL_nx_d 11000001 1000 .... . .. 0.. ..... 100 .. @azx_1x1_i3_o2 706UMLALL_nx_s 11000001 0001 .... 0 .. 0.. ....0 10 ... @azx_2x1_i4_o1 707UMLALL_nx_d 11000001 1001 .... 0 .. 00. ....0 10 ... @azx_2x1_i3_o1 708UMLALL_nx_s 11000001 0001 .... 1 .. 0.. ...00 10 ... @azx_4x1_i4_o1 709UMLALL_nx_d 11000001 1001 .... 1 .. 00. ...00 10 ... @azx_4x1_i3_o1 710 711UMLSLL_nx_s 11000001 0000 .... . .. ... ..... 110 .. @azx_1x1_i4_o2 712UMLSLL_nx_d 11000001 1000 .... . .. 0.. ..... 110 .. @azx_1x1_i3_o2 713UMLSLL_nx_s 11000001 0001 .... 0 .. 0.. ....0 11 ... @azx_2x1_i4_o1 714UMLSLL_nx_d 11000001 1001 .... 0 .. 00. ....0 11 ... @azx_2x1_i3_o1 715UMLSLL_nx_s 11000001 0001 .... 1 .. 0.. ...00 11 ... @azx_4x1_i4_o1 716UMLSLL_nx_d 11000001 1001 .... 1 .. 00. ...00 11 ... @azx_4x1_i3_o1 717 718USMLALL_nx_s 11000001 0000 .... . .. ... ..... 001 .. @azx_1x1_i4_o2 719USMLALL_nx_s 11000001 0001 .... 0 .. 0.. ....1 00 ... @azx_2x1_i4_o1 720USMLALL_nx_s 11000001 0001 .... 1 .. 0.. ...01 00 ... @azx_4x1_i4_o1 721 722SUMLALL_nx_s 11000001 0000 .... . .. ... ..... 101 .. @azx_1x1_i4_o2 723SUMLALL_nx_s 11000001 0001 .... 0 .. 0.. ....1 10 ... @azx_2x1_i4_o1 724SUMLALL_nx_s 11000001 0001 .... 1 .. 0.. ...01 10 ... @azx_4x1_i4_o1 725 726%idx3_10_3 10:2 3:1 727@azx_2x1_i3_o3 ........ .... zm:4 . .. ... ..... .. off:3 \ 728 &azx_n n=2 rv=%mova_rv zn=%zn_ax2 idx=%idx3_10_3 729@azx_4x1_i3_o3 ........ .... zm:4 . .. ... ..... .. off:3 \ 730 &azx_n n=4 rv=%mova_rv zn=%zn_ax4 idx=%idx3_10_3 731 732BFMLA_nx 11000001 0001 .... 0 .. 1.. ....1 0 .... @azx_2x1_i3_o3 733FMLA_nx_h 11000001 0001 .... 0 .. 1.. ....0 0 .... @azx_2x1_i3_o3 734FMLA_nx_s 11000001 0101 .... 0 .. 0.. ....0 00 ... @azx_2x1_i2_o3 735FMLA_nx_d 11000001 1101 .... 0 .. 00. ....0 00 ... @azx_2x1_i1_o3 736 737BFMLA_nx 11000001 0001 .... 1 .. 1.. ...01 0 .... @azx_4x1_i3_o3 738FMLA_nx_h 11000001 0001 .... 1 .. 1.. ...00 0 .... @azx_4x1_i3_o3 739FMLA_nx_s 11000001 0101 .... 1 .. 0.. ...00 00 ... @azx_4x1_i2_o3 740FMLA_nx_d 11000001 1101 .... 1 .. 00. ...00 00 ... @azx_4x1_i1_o3 741 742BFMLS_nx 11000001 0001 .... 0 .. 1.. ....1 1 .... @azx_2x1_i3_o3 743FMLS_nx_h 11000001 0001 .... 0 .. 1.. ....0 1 .... @azx_2x1_i3_o3 744FMLS_nx_s 11000001 0101 .... 0 .. 0.. ....0 10 ... @azx_2x1_i2_o3 745FMLS_nx_d 11000001 1101 .... 0 .. 00. ....0 10 ... @azx_2x1_i1_o3 746 747BFMLS_nx 11000001 0001 .... 1 .. 1.. ...01 1 .... @azx_4x1_i3_o3 748FMLS_nx_h 11000001 0001 .... 1 .. 1.. ...00 1 .... @azx_4x1_i3_o3 749FMLS_nx_s 11000001 0101 .... 1 .. 0.. ...00 10 ... @azx_4x1_i2_o3 750FMLS_nx_d 11000001 1101 .... 1 .. 00. ...00 10 ... @azx_4x1_i1_o3 751 752### SME2 Add / Sub array accumulators 753 754ADD_aaz_s 11000001 101 000000 .. 111 ....0 10 ... @az_2x2_o3 755ADD_aaz_s 11000001 101 000010 .. 111 ...00 10 ... @az_4x4_o3 756ADD_aaz_d 11000001 111 000000 .. 111 ....0 10 ... @az_2x2_o3 757ADD_aaz_d 11000001 111 000010 .. 111 ...00 10 ... @az_4x4_o3 758 759SUB_aaz_s 11000001 101 000000 .. 111 ....0 11 ... @az_2x2_o3 760SUB_aaz_s 11000001 101 000010 .. 111 ...00 11 ... @az_4x4_o3 761SUB_aaz_d 11000001 111 000000 .. 111 ....0 11 ... @az_2x2_o3 762SUB_aaz_d 11000001 111 000010 .. 111 ...00 11 ... @az_4x4_o3 763 764### SME2 Multi-vector SVE Constructive Unary 765 766&zz_e zd zn esz 767&zz_n zd zn n 768@zz_1x2 ........ ... ..... ...... ..... zd:5 \ 769 &zz_n n=1 zn=%zn_ax2 770@zz_1x4 ........ ... ..... ...... ..... zd:5 \ 771 &zz_n n=1 zn=%zn_ax4 772@zz_2x1 ........ ... ..... ...... zn:5 ..... \ 773 &zz_n n=1 zd=%zd_ax2 774@zz_2x2 ........ ... ..... ...... .... . ..... \ 775 &zz_n n=2 zd=%zd_ax2 zn=%zn_ax2 776@zz_4x4 ........ ... ..... ...... .... . ..... \ 777 &zz_n n=4 zd=%zd_ax4 zn=%zn_ax4 778@zz_4x2_n1 ........ ... ..... ...... .... . ..... \ 779 &zz_n n=1 zd=%zd_ax4 zn=%zn_ax2 780 781BFCVT 11000001 011 00000 111000 ....0 ..... @zz_1x2 782BFCVTN 11000001 011 00000 111000 ....1 ..... @zz_1x2 783 784FCVT_n 11000001 001 00000 111000 ....0 ..... @zz_1x2 785FCVTN 11000001 001 00000 111000 ....1 ..... @zz_1x2 786 787FCVT_w 11000001 101 00000 111000 ..... ....0 @zz_2x1 788FCVTL 11000001 101 00000 111000 ..... ....1 @zz_2x1 789 790FCVTZS 11000001 001 00001 111000 ....0 ....0 @zz_2x2 791FCVTZS 11000001 001 10001 111000 ...00 ...00 @zz_4x4 792FCVTZU 11000001 001 00001 111000 ....1 ....0 @zz_2x2 793FCVTZU 11000001 001 10001 111000 ...01 ...00 @zz_4x4 794 795SCVTF 11000001 001 00010 111000 ....0 ....0 @zz_2x2 796SCVTF 11000001 001 10010 111000 ...00 ...00 @zz_4x4 797UCVTF 11000001 001 00010 111000 ....1 ....0 @zz_2x2 798UCVTF 11000001 001 10010 111000 ...01 ...00 @zz_4x4 799 800FRINTN 11000001 101 01000 111000 ....0 ....0 @zz_2x2 801FRINTN 11000001 101 11000 111000 ...00 ...00 @zz_4x4 802FRINTP 11000001 101 01001 111000 ....0 ....0 @zz_2x2 803FRINTP 11000001 101 11001 111000 ...00 ...00 @zz_4x4 804FRINTM 11000001 101 01010 111000 ....0 ....0 @zz_2x2 805FRINTM 11000001 101 11010 111000 ...00 ...00 @zz_4x4 806FRINTA 11000001 101 01100 111000 ....0 ....0 @zz_2x2 807FRINTA 11000001 101 11100 111000 ...00 ...00 @zz_4x4 808 809SQCVT_sh 11000001 001 00011 111000 ....0 ..... @zz_1x2 810UQCVT_sh 11000001 001 00011 111000 ....1 ..... @zz_1x2 811SQCVTU_sh 11000001 011 00011 111000 ....0 ..... @zz_1x2 812 813SQCVT_sb 11000001 001 10011 111000 ...00 ..... @zz_1x4 814UQCVT_sb 11000001 001 10011 111000 ...01 ..... @zz_1x4 815SQCVTU_sb 11000001 011 10011 111000 ...00 ..... @zz_1x4 816 817SQCVT_dh 11000001 101 10011 111000 ...00 ..... @zz_1x4 818UQCVT_dh 11000001 101 10011 111000 ...01 ..... @zz_1x4 819SQCVTU_dh 11000001 111 10011 111000 ...00 ..... @zz_1x4 820 821SQCVTN_sb 11000001 001 10011 111000 ...10 ..... @zz_1x4 822UQCVTN_sb 11000001 001 10011 111000 ...11 ..... @zz_1x4 823SQCVTUN_sb 11000001 011 10011 111000 ...10 ..... @zz_1x4 824 825SQCVTN_dh 11000001 101 10011 111000 ...10 ..... @zz_1x4 826UQCVTN_dh 11000001 101 10011 111000 ...11 ..... @zz_1x4 827SQCVTUN_dh 11000001 111 10011 111000 ...10 ..... @zz_1x4 828 829SUNPK_2bh 11000001 011 00101 111000 ..... ....0 @zz_2x1 830SUNPK_2hs 11000001 101 00101 111000 ..... ....0 @zz_2x1 831SUNPK_2sd 11000001 111 00101 111000 ..... ....0 @zz_2x1 832 833UUNPK_2bh 11000001 011 00101 111000 ..... ....1 @zz_2x1 834UUNPK_2hs 11000001 101 00101 111000 ..... ....1 @zz_2x1 835UUNPK_2sd 11000001 111 00101 111000 ..... ....1 @zz_2x1 836 837SUNPK_4bh 11000001 011 10101 111000 ....0 ...00 @zz_4x2_n1 838SUNPK_4hs 11000001 101 10101 111000 ....0 ...00 @zz_4x2_n1 839SUNPK_4sd 11000001 111 10101 111000 ....0 ...00 @zz_4x2_n1 840 841UUNPK_4bh 11000001 011 10101 111000 ....0 ...01 @zz_4x2_n1 842UUNPK_4hs 11000001 101 10101 111000 ....0 ...01 @zz_4x2_n1 843UUNPK_4sd 11000001 111 10101 111000 ....0 ...01 @zz_4x2_n1 844 845ZIP_4 11000001 esz:2 1 10110 111000 ...00 ... 00 \ 846 &zz_e zd=%zd_ax4 zn=%zn_ax4 847ZIP_4 11000001 001 10111 111000 ...00 ... 00 \ 848 &zz_e esz=4 zd=%zd_ax4 zn=%zn_ax4 849 850UZP_4 11000001 esz:2 1 10110 111000 ...00 ... 10 \ 851 &zz_e zd=%zd_ax4 zn=%zn_ax4 852UZP_4 11000001 001 10111 111000 ...00 ... 10 \ 853 &zz_e esz=4 zd=%zd_ax4 zn=%zn_ax4 854 855### SME2 Multi-vector SVE Constructive Binary 856 857&rshr zd zn shift 858 859%rshr_sh_shift 16:4 !function=rsub_16 860%rshr_sb_shift 16:5 !function=rsub_32 861%rshr_dh_shift 22:1 16:5 !function=rsub_64 862 863@rshr_sh ........ .... .... ...... ..... zd:5 \ 864 &rshr zn=%zn_ax2 shift=%rshr_sh_shift 865@rshr_sb ........ ... ..... ...... ..... zd:5 \ 866 &rshr zn=%zn_ax4 shift=%rshr_sb_shift 867@rshr_dh ........ ... ..... ...... ..... zd:5 \ 868 &rshr zn=%zn_ax4 shift=%rshr_dh_shift 869 870SQRSHR_sh 11000001 1110 .... 110101 ....0 ..... @rshr_sh 871UQRSHR_sh 11000001 1110 .... 110101 ....1 ..... @rshr_sh 872SQRSHRU_sh 11000001 1111 .... 110101 ....0 ..... @rshr_sh 873 874SQRSHR_sb 11000001 011 ..... 110110 ...00 ..... @rshr_sb 875SQRSHR_dh 11000001 1.1 ..... 110110 ...00 ..... @rshr_dh 876UQRSHR_sb 11000001 011 ..... 110110 ...01 ..... @rshr_sb 877UQRSHR_dh 11000001 1.1 ..... 110110 ...01 ..... @rshr_dh 878SQRSHRU_sb 11000001 011 ..... 110110 ...10 ..... @rshr_sb 879SQRSHRU_dh 11000001 1.1 ..... 110110 ...10 ..... @rshr_dh 880 881SQRSHRN_sh 01000101 1011 .... 001010 ....0 ..... @rshr_sh 882UQRSHRN_sh 01000101 1011 .... 001110 ....0 ..... @rshr_sh 883SQRSHRUN_sh 01000101 1011 .... 000010 ....0 ..... @rshr_sh 884 885SQRSHRN_sb 11000001 011 ..... 110111 ...00 ..... @rshr_sb 886SQRSHRN_dh 11000001 1.1 ..... 110111 ...00 ..... @rshr_dh 887UQRSHRN_sb 11000001 011 ..... 110111 ...01 ..... @rshr_sb 888UQRSHRN_dh 11000001 1.1 ..... 110111 ...01 ..... @rshr_dh 889SQRSHRUN_sb 11000001 011 ..... 110111 ...10 ..... @rshr_sb 890SQRSHRUN_dh 11000001 1.1 ..... 110111 ...10 ..... @rshr_dh 891 892&zzz_e zd zn zm esz 893 894ZIP_2 11000001 esz:2 1 zm:5 110100 zn:5 .... 0 \ 895 &zzz_e zd=%zd_ax2 896ZIP_2 11000001 00 1 zm:5 110101 zn:5 .... 0 \ 897 &zzz_e zd=%zd_ax2 esz=4 898 899UZP_2 11000001 esz:2 1 zm:5 110100 zn:5 .... 1 \ 900 &zzz_e zd=%zd_ax2 901UZP_2 11000001 00 1 zm:5 110101 zn:5 .... 1 \ 902 &zzz_e zd=%zd_ax2 esz=4 903 904&zzz_en zd zn zm esz n 905 906FCLAMP 11000001 esz:2 1 zm:5 110000 zn:5 .... 0 \ 907 &zzz_en zd=%zd_ax2 n=2 908FCLAMP 11000001 esz:2 1 zm:5 110010 zn:5 ...0 0 \ 909 &zzz_en zd=%zd_ax4 n=4 910 911SCLAMP 11000001 esz:2 1 zm:5 110001 zn:5 .... 0 \ 912 &zzz_en zd=%zd_ax2 n=2 913SCLAMP 11000001 esz:2 1 zm:5 110011 zn:5 ...0 0 \ 914 &zzz_en zd=%zd_ax4 n=4 915 916UCLAMP 11000001 esz:2 1 zm:5 110001 zn:5 .... 1 \ 917 &zzz_en zd=%zd_ax2 n=2 918UCLAMP 11000001 esz:2 1 zm:5 110011 zn:5 ...0 1 \ 919 &zzz_en zd=%zd_ax4 n=4 920 921### SME2 Multi-vector SVE Select 922 923%sel_pg 10:3 !function=plus_8 924 925SEL 11000001 esz:2 1 ....0 100 ... ....0 ....0 \ 926 n=2 zd=%zd_ax2 zn=%zn_ax2 zm=%zm_ax2 pg=%sel_pg 927SEL 11000001 esz:2 1 ...01 100 ... ...00 ...00 \ 928 n=4 zd=%zd_ax4 zn=%zn_ax4 zm=%zm_ax4 pg=%sel_pg 929 930### SME Multiple Zero 931 932&zero_za rv off ngrp nvec 933 934ZERO_za 11000000 000011 000 .. 0000000000 off:3 \ 935 &zero_za ngrp=2 nvec=1 rv=%mova_rv 936ZERO_za 11000000 000011 100 .. 0000000000 off:3 \ 937 &zero_za ngrp=4 nvec=1 rv=%mova_rv 938 939ZERO_za 11000000 000011 001 .. 0000000000 ... \ 940 &zero_za ngrp=1 nvec=2 rv=%mova_rv off=%off3_x2 941ZERO_za 11000000 000011 010 .. 0000000000 0.. \ 942 &zero_za ngrp=2 nvec=2 rv=%mova_rv off=%off2_x2 943ZERO_za 11000000 000011 011 .. 0000000000 0.. \ 944 &zero_za ngrp=4 nvec=2 rv=%mova_rv off=%off2_x2 945 946ZERO_za 11000000 000011 101 .. 0000000000 0.. \ 947 &zero_za ngrp=1 nvec=4 rv=%mova_rv off=%off2_x4 948ZERO_za 11000000 000011 110 .. 0000000000 00. \ 949 &zero_za ngrp=2 nvec=4 rv=%mova_rv off=%off1_x4 950ZERO_za 11000000 000011 111 .. 0000000000 00. \ 951 &zero_za ngrp=4 nvec=4 rv=%mova_rv off=%off1_x4 952 953### SME Lookup Table Read 954 955&lut zd zn idx 956 957# LUTI2, consecutive 958LUTI2_c_1b 1100 0000 1100 11 idx:4 00 00 zn:5 zd:5 &lut 959LUTI2_c_1h 1100 0000 1100 11 idx:4 01 00 zn:5 zd:5 &lut 960LUTI2_c_1s 1100 0000 1100 11 idx:4 10 00 zn:5 zd:5 &lut 961 962LUTI2_c_2b 1100 0000 1000 11 idx:3 1 00 00 zn:5 .... 0 &lut zd=%zd_ax2 963LUTI2_c_2h 1100 0000 1000 11 idx:3 1 01 00 zn:5 .... 0 &lut zd=%zd_ax2 964LUTI2_c_2s 1100 0000 1000 11 idx:3 1 10 00 zn:5 .... 0 &lut zd=%zd_ax2 965 966LUTI2_c_4b 1100 0000 1000 11 idx:2 10 00 00 zn:5 ... 00 &lut zd=%zd_ax4 967LUTI2_c_4h 1100 0000 1000 11 idx:2 10 01 00 zn:5 ... 00 &lut zd=%zd_ax4 968LUTI2_c_4s 1100 0000 1000 11 idx:2 10 10 00 zn:5 ... 00 &lut zd=%zd_ax4 969 970# LUTI2, strided (must check zd alignment) 971LUTI2_s_2b 1100 0000 1001 11 idx:3 1 00 00 zn:5 zd:5 &lut 972LUTI2_s_2h 1100 0000 1001 11 idx:3 1 01 00 zn:5 zd:5 &lut 973 974LUTI2_s_4b 1100 0000 1001 11 idx:2 10 00 00 zn:5 zd:5 &lut 975LUTI2_s_4h 1100 0000 1001 11 idx:2 10 01 00 zn:5 zd:5 &lut 976 977# LUTI4, consecutive 978LUTI4_c_1b 1100 0000 1100 101 idx:3 00 00 zn:5 zd:5 &lut 979LUTI4_c_1h 1100 0000 1100 101 idx:3 01 00 zn:5 zd:5 &lut 980LUTI4_c_1s 1100 0000 1100 101 idx:3 10 00 zn:5 zd:5 &lut 981 982LUTI4_c_2b 1100 0000 1000 101 idx:2 1 00 00 zn:5 .... 0 &lut zd=%zd_ax2 983LUTI4_c_2h 1100 0000 1000 101 idx:2 1 01 00 zn:5 .... 0 &lut zd=%zd_ax2 984LUTI4_c_2s 1100 0000 1000 101 idx:2 1 10 00 zn:5 .... 0 &lut zd=%zd_ax2 985 986LUTI4_c_4h 1100 0000 1000 101 idx:1 10 01 00 zn:5 ... 00 &lut zd=%zd_ax4 987LUTI4_c_4s 1100 0000 1000 101 idx:1 10 10 00 zn:5 ... 00 &lut zd=%zd_ax4 988 989# LUTI4, strided (must check zd alignment) 990LUTI4_s_2b 1100 0000 1001 101 idx:2 1 00 00 zn:5 zd:5 &lut 991LUTI4_s_2h 1100 0000 1001 101 idx:2 1 01 00 zn:5 zd:5 &lut 992 993LUTI4_s_4h 1100 0000 1001 101 idx:1 10 01 00 zn:5 zd:5 &lut 994