# INFO This file automatically generated by andre on Mon Apr 30 14:51:39 2018
# INFO Direct edits to this file may be lost in future updates
# INFO Command line arguments: ['../../../ProcessorTest/test/andre/scrape/sveit.py', '--sinc']

# abs_z_p_z.xml: ABS variant SVE
# PATTERN x0416a000/mask=xff3fe000

:abs Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_abs(Zd.T, Pg3_m, Zn.T);
}

# add_z_p_zz.xml: ADD (vectors, predicated) variant SVE
# PATTERN x04000000/mask=xff3fe000

:add Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_add(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# add_z_zi.xml: ADD (immediate) variant SVE
# PATTERN x2520c000/mask=xff3fc000

:add Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_add(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# add_z_zz.xml: ADD (vectors, unpredicated) variant SVE
# PATTERN x04200000/mask=xff20fc00

:add Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b00 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_add(Zd.T, Zn.T, Zm.T);
}

# addpl_r_ri.xml: ADDPL variant SVE
# PATTERN x04605000/mask=xffe0f800

:addpl Rd_GPR64xsp, Rm_GPR64xsp, "#"^sve_imm6_1_m32to31
is sve_b_2331=0b000001000 & sve_b_22=1 & sve_b_21=1 & sve_rn_1620 & sve_b_1115=0b01010 & sve_imm6_0510 & sve_rd_0004 & Rd_GPR64xsp & Rm_GPR64xsp & sve_imm6_1_m32to31
{
	Rd_GPR64xsp = SVE_addpl(Rd_GPR64xsp, Rm_GPR64xsp, sve_imm6_1_m32to31:1);
}

# addvl_r_ri.xml: ADDVL variant SVE
# PATTERN x04205000/mask=xffe0f800

:addvl Rd_GPR64xsp, Rm_GPR64xsp, "#"^sve_imm6_1_m32to31
is sve_b_2331=0b000001000 & sve_b_22=0 & sve_b_21=1 & sve_rn_1620 & sve_b_1115=0b01010 & sve_imm6_0510 & sve_rd_0004 & Rd_GPR64xsp & Rm_GPR64xsp & sve_imm6_1_m32to31
{
	Rd_GPR64xsp = SVE_addvl(Rd_GPR64xsp, Rm_GPR64xsp, sve_imm6_1_m32to31:1);
}

# adr_z_az.xml: ADR variant Packed offsets
# PATTERN x04a0a000/mask=xffa0f000

:adr Zd.T_sz, [Zn.T_sz, Zm.T_sz^sve_mod_amount]
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_sz_22 & sve_b_21=1 & sve_zm_1620 & sve_b_1215=0b1010 & sve_msz_1011 & sve_zn_0509 & sve_zd_0004 & sve_mod_amount & Zm.T_sz & Zd.T_sz & Zn.T_sz
{
	Zd.T_sz = SVE_adr(Zd.T_sz, Zn.T_sz, Zm.T_sz, sve_mod_amount:1);
}

# adr_z_az.xml: ADR variant Unpacked 32-bit signed offsets
# PATTERN x0420a000/mask=xffe0f000

:adr Zd.D, [Zn.D, Zm.D, "sxtw"^sve_msz_1011]
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_zm_1620 & sve_b_1215=0b1010 & sve_msz_1011 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm.D
{
	Zd.D = SVE_adr(Zd.D, Zn.D, Zm.D, sve_msz_1011:1);
}

# adr_z_az.xml: ADR variant Unpacked 32-bit unsigned offsets
# PATTERN x0460a000/mask=xffe0f000

:adr Zd.D, [Zn.D, Zm.D, "uxtw"^sve_msz_1011]
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_zm_1620 & sve_b_1215=0b1010 & sve_msz_1011 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm.D
{
	Zd.D = SVE_adr(Zd.D, Zn.D, Zm.D, sve_msz_1011:1);
}

# and_p_p_pp.xml: AND, ANDS (predicates) variant Flag setting
# PATTERN x25404000/mask=xfff0c210

:ands Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_s_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_ands(Pd.B, Pg_z, Pn.B, Pm.B);
}

# and_p_p_pp.xml: AND, ANDS (predicates) variant Not flag setting
# PATTERN x25004000/mask=xfff0c210

:and Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_s_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_and(Pd.B, Pg_z, Pn.B, Pm.B);
}

# and_z_p_zz.xml: AND (vectors, predicated) variant SVE
# PATTERN x041a0000/mask=xff3fe000

:and Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_and(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# and_z_zi.xml: AND (immediate) variant SVE
# PATTERN x05800000/mask=xfffc0000

:and Zd.T_imm13, Zd.T_imm13_2, "#"^sve_decode_bit_mask
is sve_b_2431=0b00000101 & sve_b_23=1 & sve_b_22=0 & sve_b_1821=0b0000 & sve_imm13_0517 & sve_zdn_0004 & sve_decode_bit_mask & Zd.T_imm13 & Zd.T_imm13_2
{
	Zd.T_imm13 = SVE_and(Zd.T_imm13, Zd.T_imm13_2, sve_decode_bit_mask:1);
}

# and_z_zz.xml: AND (vectors, unpredicated) variant SVE
# PATTERN x04203000/mask=xffe0fc00

:and Zd.D, Zn.D, Zm.D
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_zm_1620 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm.D
{
	Zd.D = SVE_and(Zd.D, Zn.D, Zm.D);
}

# andv_r_p_z.xml: ANDV variant SVE
# PATTERN x041a2000/mask=xff3fe000

:andv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_andv(Rd_FPR8, Pg3, Zn.T);
}

# andv_r_p_z.xml: ANDV variant SVE
# PATTERN x041a2000/mask=xff3fe000

:andv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_andv(Rd_FPR32, Pg3, Zn.T);
}

# andv_r_p_z.xml: ANDV variant SVE
# PATTERN x041a2000/mask=xff3fe000

:andv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_andv(Rd_FPR16, Pg3, Zn.T);
}

# andv_r_p_z.xml: ANDV variant SVE
# PATTERN x041a2000/mask=xff3fe000

:andv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_andv(Rd_FPR64, Pg3, Zn.T);
}

# asr_z_p_zi.xml: ASR (immediate, predicated) variant SVE
# PATTERN x04008000/mask=xff3fe000

:asr Zd.T_tszh, Pg3_m, Zd.T_tszh_2, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_tszl_0809 & sve_imm3_0507 & sve_zdn_0004 & sve_imm_shift & Zd.T_tszh & Zd.T_tszh_2 & Pg3_m
{
	Zd.T_tszh = SVE_asr(Zd.T_tszh, Pg3_m, Zd.T_tszh_2, sve_imm_shift:1);
}

# asr_z_p_zw.xml: ASR (wide elements, predicated) variant SVE
# PATTERN x04188000/mask=xff3fe000

:asr Zd.T, Pg3_m, Zd.T_2, Zn.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Pg3_m & Zn.D
{
	Zd.T = SVE_asr(Zd.T, Pg3_m, Zd.T_2, Zn.D);
}

# asr_z_p_zz.xml: ASR (vectors) variant SVE
# PATTERN x04108000/mask=xff3fe000

:asr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_asr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# asr_z_zi.xml: ASR (immediate, unpredicated) variant SVE
# PATTERN x04209000/mask=xff20fc00

:asr Zd.T_tszh, Zn.T_tszh, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_21=1 & sve_tszl_1920 & sve_imm3_1618 & sve_b_1215=0b1001 & sve_b_11=0 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & sve_imm_shift & Zd.T_tszh & Zn.T_tszh
{
	Zd.T_tszh = SVE_asr(Zd.T_tszh, Zn.T_tszh, sve_imm_shift:1);
}

# asr_z_zw.xml: ASR (wide elements, unpredicated) variant SVE
# PATTERN x04208000/mask=xff20fc00

:asr Zd.T, Zn.T, Zm.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1215=0b1000 & sve_b_11=0 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Zm.D
{
	Zd.T = SVE_asr(Zd.T, Zn.T, Zm.D);
}

# asrd_z_p_zi.xml: ASRD variant SVE
# PATTERN x04048000/mask=xff3fe000

:asrd Zd.T_tszh, Pg3_m, Zd.T_tszh_2, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_tszl_0809 & sve_imm3_0507 & sve_zdn_0004 & sve_imm_shift & Zd.T_tszh & Zd.T_tszh_2 & Pg3_m
{
	Zd.T_tszh = SVE_asrd(Zd.T_tszh, Pg3_m, Zd.T_tszh_2, sve_imm_shift:1);
}

# asrr_z_p_zz.xml: ASRR variant SVE
# PATTERN x04148000/mask=xff3fe000

:asrr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_asrr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# bic_and_z_zi.xml: BIC (immediate) variant SVE
# ALIASEDBY AND <Zdn>.<T>, <Zdn>.<T>, #(-<const> - 1) if Never
# PATTERN x05800000/mask=xfffc0000

# SKIPPING bic_and_z_zi.xml because x05800000/mask=xfffc0000 has already been defined

# bic_p_p_pp.xml: BIC, BICS (predicates) variant Flag setting
# PATTERN x25404010/mask=xfff0c210

:bics Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_bics(Pd.B, Pg_z, Pn.B, Pm.B);
}

# bic_p_p_pp.xml: BIC, BICS (predicates) variant Not flag setting
# PATTERN x25004010/mask=xfff0c210

:bic Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_bic(Pd.B, Pg_z, Pn.B, Pm.B);
}

# bic_z_p_zz.xml: BIC (vectors, predicated) variant SVE
# PATTERN x041b0000/mask=xff3fe000

:bic Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_bic(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# bic_z_zz.xml: BIC (vectors, unpredicated) variant SVE
# PATTERN x04e03000/mask=xffe0fc00

:bic Zd.D, Zn.D, Zm.D
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_zm_1620 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm.D
{
	Zd.D = SVE_bic(Zd.D, Zn.D, Zm.D);
}

# brka_p_p_p.xml: BRKA, BRKAS variant Flag setting
# PATTERN x25504000/mask=xffffc210

:brkas Pd.B, Pg_z, Pn.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1421=0b01000001 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B
{
	Pd.B = SVE_brkas(Pd.B, Pg_z, Pn.B);
}

# brka_p_p_p.xml: BRKA, BRKAS variant Not flag setting
# PATTERN x25104000/mask=xffffc200

:brka Pd.B, Pg_zm, Pn.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_1421=0b01000001 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_m_04 & sve_pd_0003 & Pg_zm & Pd.B & Pn.B
{
	Pd.B = SVE_brka(Pd.B, Pg_zm, Pn.B);
}

# brkb_p_p_p.xml: BRKB, BRKBS variant Flag setting
# PATTERN x25d04000/mask=xffffc210

:brkbs Pd.B, Pg_z, Pn.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1421=0b01000001 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B
{
	Pd.B = SVE_brkbs(Pd.B, Pg_z, Pn.B);
}

# brkb_p_p_p.xml: BRKB, BRKBS variant Not flag setting
# PATTERN x25904000/mask=xffffc200

:brkb Pd.B, Pg_zm, Pn.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1421=0b01000001 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_m_04 & sve_pd_0003 & Pg_zm & Pd.B & Pn.B
{
	Pd.B = SVE_brkb(Pd.B, Pg_zm, Pn.B);
}

# brkn_p_p_pp.xml: BRKN, BRKNS variant Flag setting
# PATTERN x25584000/mask=xffffc210

:brkns Pd.B, Pg_z, Pn.B, Pd.B_2
is sve_b_2331=0b001001010 & sve_b_22=1 & sve_b_1421=0b01100001 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pdm_0003 & Pd.B & Pd.B_2 & Pg_z & Pn.B
{
	Pd.B = SVE_brkns(Pd.B, Pg_z, Pn.B, Pd.B_2);
}

# brkn_p_p_pp.xml: BRKN, BRKNS variant Not flag setting
# PATTERN x25184000/mask=xffffc210

:brkn Pd.B, Pg_z, Pn.B, Pd.B_2
is sve_b_2331=0b001001010 & sve_b_22=0 & sve_b_1421=0b01100001 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pdm_0003 & Pd.B & Pd.B_2 & Pg_z & Pn.B
{
	Pd.B = SVE_brkn(Pd.B, Pg_z, Pn.B, Pd.B_2);
}

# brkpa_p_p_pp.xml: BRKPA, BRKPAS variant Flag setting
# PATTERN x2540c000/mask=xfff0c210

:brkpas Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b11 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_brkpas(Pd.B, Pg_z, Pn.B, Pm.B);
}

# brkpa_p_p_pp.xml: BRKPA, BRKPAS variant Not flag setting
# PATTERN x2500c000/mask=xfff0c210

:brkpa Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b11 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_brkpa(Pd.B, Pg_z, Pn.B, Pm.B);
}

# brkpb_p_p_pp.xml: BRKPB, BRKPBS variant Flag setting
# PATTERN x2540c010/mask=xfff0c210

:brkpbs Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b11 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_brkpbs(Pd.B, Pg_z, Pn.B, Pm.B);
}

# brkpb_p_p_pp.xml: BRKPB, BRKPBS variant Not flag setting
# PATTERN x2500c010/mask=xfff0c210

:brkpb Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b11 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_brkpb(Pd.B, Pg_z, Pn.B, Pm.B);
}

# clasta_r_p_z.xml: CLASTA (scalar) variant SVE
# PATTERN x0530a000/mask=xff3fe000

:clasta Rd_GPR64, Pg3, Rd_GPR64_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b11000 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zm_0509 & sve_rdn_0004 & Zn.T & Rd_GPR64 & Rd_GPR64_2 & Pg3
{
	Rd_GPR64 = SVE_clasta(Rd_GPR64, Pg3, Rd_GPR64_2, Zn.T);
}

# clasta_r_p_z.xml: CLASTA (scalar) variant SVE
# PATTERN x0530a000/mask=xff3fe000

:clasta Rd_GPR32, Pg3, Rd_GPR32_2, Zn.T
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1721=0b11000 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zm_0509 & sve_rdn_0004 & Zn.T & Rd_GPR32 & Rd_GPR32_2 & Pg3
{
	Rd_GPR32 = SVE_clasta(Rd_GPR32, Pg3, Rd_GPR32_2, Zn.T);
}

# clasta_v_p_z.xml: CLASTA (SIMD&FP scalar) variant SVE
# PATTERN x052a8000/mask=xff3fe000

:clasta Rd_FPR8, Pg3, Rd_FPR8_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b00 & sve_b_1721=0b10101 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR8 & Rd_FPR8_2 & Pg3
{
	Rd_FPR8 = SVE_clasta(Rd_FPR8, Pg3, Rd_FPR8_2, Zn.T);
}

# clasta_v_p_z.xml: CLASTA (SIMD&FP scalar) variant SVE
# PATTERN x052a8000/mask=xff3fe000

:clasta Rd_FPR32, Pg3, Rd_FPR32_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b10 & sve_b_1721=0b10101 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR32 & Rd_FPR32_2 & Pg3
{
	Rd_FPR32 = SVE_clasta(Rd_FPR32, Pg3, Rd_FPR32_2, Zn.T);
}

# clasta_v_p_z.xml: CLASTA (SIMD&FP scalar) variant SVE
# PATTERN x052a8000/mask=xff3fe000

:clasta Rd_FPR16, Pg3, Rd_FPR16_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b01 & sve_b_1721=0b10101 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR16 & Rd_FPR16_2 & Pg3
{
	Rd_FPR16 = SVE_clasta(Rd_FPR16, Pg3, Rd_FPR16_2, Zn.T);
}

# clasta_v_p_z.xml: CLASTA (SIMD&FP scalar) variant SVE
# PATTERN x052a8000/mask=xff3fe000

:clasta Rd_FPR64, Pg3, Rd_FPR64_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b10101 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR64 & Rd_FPR64_2 & Pg3
{
	Rd_FPR64 = SVE_clasta(Rd_FPR64, Pg3, Rd_FPR64_2, Zn.T);
}

# clasta_z_p_zz.xml: CLASTA (vectors) variant SVE
# PATTERN x05288000/mask=xff3fe000

:clasta Zd.T, Pg3, Zd.T_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1721=0b10100 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3
{
	Zd.T = SVE_clasta(Zd.T, Pg3, Zd.T_2, Zn.T);
}

# clastb_r_p_z.xml: CLASTB (scalar) variant SVE
# PATTERN x0531a000/mask=xff3fe000

:clastb Rd_GPR64, Pg3, Rd_GPR64_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b11000 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zm_0509 & sve_rdn_0004 & Zn.T & Rd_GPR64 & Rd_GPR64_2 & Pg3
{
	Rd_GPR64 = SVE_clastb(Rd_GPR64, Pg3, Rd_GPR64_2, Zn.T);
}

# clastb_r_p_z.xml: CLASTB (scalar) variant SVE
# PATTERN x0531a000/mask=xff3fe000

:clastb Rd_GPR32, Pg3, Rd_GPR32_2, Zn.T
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1721=0b11000 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zm_0509 & sve_rdn_0004 & Zn.T & Rd_GPR32 & Rd_GPR32_2 & Pg3
{
	Rd_GPR32 = SVE_clastb(Rd_GPR32, Pg3, Rd_GPR32_2, Zn.T);
}

# clastb_v_p_z.xml: CLASTB (SIMD&FP scalar) variant SVE
# PATTERN x052b8000/mask=xff3fe000

:clastb Rd_FPR8, Pg3, Rd_FPR8_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b00 & sve_b_1721=0b10101 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR8 & Rd_FPR8_2 & Pg3
{
	Rd_FPR8 = SVE_clastb(Rd_FPR8, Pg3, Rd_FPR8_2, Zn.T);
}

# clastb_v_p_z.xml: CLASTB (SIMD&FP scalar) variant SVE
# PATTERN x052b8000/mask=xff3fe000

:clastb Rd_FPR32, Pg3, Rd_FPR32_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b10 & sve_b_1721=0b10101 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR32 & Rd_FPR32_2 & Pg3
{
	Rd_FPR32 = SVE_clastb(Rd_FPR32, Pg3, Rd_FPR32_2, Zn.T);
}

# clastb_v_p_z.xml: CLASTB (SIMD&FP scalar) variant SVE
# PATTERN x052b8000/mask=xff3fe000

:clastb Rd_FPR16, Pg3, Rd_FPR16_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b01 & sve_b_1721=0b10101 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR16 & Rd_FPR16_2 & Pg3
{
	Rd_FPR16 = SVE_clastb(Rd_FPR16, Pg3, Rd_FPR16_2, Zn.T);
}

# clastb_v_p_z.xml: CLASTB (SIMD&FP scalar) variant SVE
# PATTERN x052b8000/mask=xff3fe000

:clastb Rd_FPR64, Pg3, Rd_FPR64_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b10101 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR64 & Rd_FPR64_2 & Pg3
{
	Rd_FPR64 = SVE_clastb(Rd_FPR64, Pg3, Rd_FPR64_2, Zn.T);
}

# clastb_z_p_zz.xml: CLASTB (vectors) variant SVE
# PATTERN x05298000/mask=xff3fe000

:clastb Zd.T, Pg3, Zd.T_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1721=0b10100 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3
{
	Zd.T = SVE_clastb(Zd.T, Pg3, Zd.T_2, Zn.T);
}

# cls_z_p_z.xml: CLS variant SVE
# PATTERN x0418a000/mask=xff3fe000

:cls Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_cls(Zd.T, Pg3_m, Zn.T);
}

# clz_z_p_z.xml: CLZ variant SVE
# PATTERN x0419a000/mask=xff3fe000

:clz Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_clz(Zd.T, Pg3_m, Zn.T);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Equal
# PATTERN x25008000/mask=xff20e010

:cmpeq Pd.T, Pg3_z, Zn.T, "#"^sve_imm5s_1620
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=0 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & sve_imm5s_1620
{
	Pd.T = SVE_cmpeq(Pd.T, Pg3_z, Zn.T, sve_imm5s_1620:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Greater than
# PATTERN x25000010/mask=xff20e010

:cmpgt Pd.T, Pg3_z, Zn.T, "#"^sve_imm5s_1620
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=0 & sve_imm5_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & sve_imm5s_1620
{
	Pd.T = SVE_cmpgt(Pd.T, Pg3_z, Zn.T, sve_imm5s_1620:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Greater than or equal
# PATTERN x25000000/mask=xff20e010

:cmpge Pd.T, Pg3_z, Zn.T, "#"^sve_imm5s_1620
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=0 & sve_imm5_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & sve_imm5s_1620
{
	Pd.T = SVE_cmpge(Pd.T, Pg3_z, Zn.T, sve_imm5s_1620:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Higher
# PATTERN x24200010/mask=xff202010

:cmphi Pd.T, Pg3_z, Zn.T, "#"^sve_imm7_1420
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=1 & sve_imm7_1420 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmphi(Pd.T, Pg3_z, Zn.T, sve_imm7_1420:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Higher or same
# PATTERN x24200000/mask=xff202010

:cmphs Pd.T, Pg3_z, Zn.T, "#"^sve_imm7_1420
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=1 & sve_imm7_1420 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmphs(Pd.T, Pg3_z, Zn.T, sve_imm7_1420:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Less than
# PATTERN x25002000/mask=xff20e010

:cmplt Pd.T, Pg3_z, Zn.T, "#"^sve_imm5s_1620
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=0 & sve_imm5_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & sve_imm5s_1620
{
	Pd.T = SVE_cmplt(Pd.T, Pg3_z, Zn.T, sve_imm5s_1620:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Less than or equal
# PATTERN x25002010/mask=xff20e010

:cmple Pd.T, Pg3_z, Zn.T, "#"^sve_imm5s_1620
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=0 & sve_imm5_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & sve_imm5s_1620
{
	Pd.T = SVE_cmple(Pd.T, Pg3_z, Zn.T, sve_imm5s_1620:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Lower
# PATTERN x24202000/mask=xff202010

:cmplo Pd.T, Pg3_z, Zn.T, "#"^sve_imm7_1420
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=1 & sve_imm7_1420 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmplo(Pd.T, Pg3_z, Zn.T, sve_imm7_1420:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Lower or same
# PATTERN x24202010/mask=xff202010

:cmpls Pd.T, Pg3_z, Zn.T, "#"^sve_imm7_1420
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=1 & sve_imm7_1420 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmpls(Pd.T, Pg3_z, Zn.T, sve_imm7_1420:1);
}

# cmpeq_p_p_zi.xml: CMP<cc> (immediate) variant Not equal
# PATTERN x25008010/mask=xff20e010

:cmpne Pd.T, Pg3_z, Zn.T, "#"^sve_imm5s_1620
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=0 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & sve_imm5s_1620
{
	Pd.T = SVE_cmpne(Pd.T, Pg3_z, Zn.T, sve_imm5s_1620:1);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Equal
# PATTERN x24002000/mask=xff20e010

:cmpeq Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmpeq(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Greater than
# PATTERN x24004010/mask=xff20e010

:cmpgt Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmpgt(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Greater than or equal
# PATTERN x24004000/mask=xff20e010

:cmpge Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmpge(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Higher
# PATTERN x2400c010/mask=xff20e010

:cmphi Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmphi(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Higher or same
# PATTERN x2400c000/mask=xff20e010

:cmphs Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmphs(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Less than
# PATTERN x24006000/mask=xff20e010

:cmplt Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmplt(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Less than or equal
# PATTERN x24006010/mask=xff20e010

:cmple Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmple(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Lower
# PATTERN x2400e000/mask=xff20e010

:cmplo Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmplo(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Lower or same
# PATTERN x2400e010/mask=xff20e010

:cmpls Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmpls(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zw.xml: CMP<cc> (wide elements) variant Not equal
# PATTERN x24002010/mask=xff20e010

:cmpne Pd.T, Pg3_z, Zn.T, Zm.D
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z & Zm.D
{
	Pd.T = SVE_cmpne(Pd.T, Pg3_z, Zn.T, Zm.D);
}

# cmpeq_p_p_zz.xml: CMP<cc> (vectors) variant Equal
# PATTERN x2400a000/mask=xff20e010

:cmpeq Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmpeq(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# cmpeq_p_p_zz.xml: CMP<cc> (vectors) variant Greater than
# PATTERN x24008010/mask=xff20e010

:cmpgt Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmpgt(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# cmpeq_p_p_zz.xml: CMP<cc> (vectors) variant Greater than or equal
# PATTERN x24008000/mask=xff20e010

:cmpge Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmpge(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# cmpeq_p_p_zz.xml: CMP<cc> (vectors) variant Higher
# PATTERN x24000010/mask=xff20e010

:cmphi Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmphi(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# cmpeq_p_p_zz.xml: CMP<cc> (vectors) variant Higher or same
# PATTERN x24000000/mask=xff20e010

:cmphs Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmphs(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# cmpeq_p_p_zz.xml: CMP<cc> (vectors) variant Not equal
# PATTERN x2400a010/mask=xff20e010

:cmpne Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b00100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_cmpne(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# cmple_cmpeq_p_p_zz.xml: CMPLE (vectors) variant Greater than or equal
# ALIASEDBY CMPGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x24008000/mask=xff20e010

# SKIPPING cmple_cmpeq_p_p_zz.xml because x24008000/mask=xff20e010 has already been defined

# cmplo_cmpeq_p_p_zz.xml: CMPLO (vectors) variant Higher
# ALIASEDBY CMPHI <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x24000010/mask=xff20e010

# SKIPPING cmplo_cmpeq_p_p_zz.xml because x24000010/mask=xff20e010 has already been defined

# cmpls_cmpeq_p_p_zz.xml: CMPLS (vectors) variant Higher or same
# ALIASEDBY CMPHS <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x24000000/mask=xff20e010

# SKIPPING cmpls_cmpeq_p_p_zz.xml because x24000000/mask=xff20e010 has already been defined

# cmplt_cmpeq_p_p_zz.xml: CMPLT (vectors) variant Greater than
# ALIASEDBY CMPGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x24008010/mask=xff20e010

# SKIPPING cmplt_cmpeq_p_p_zz.xml because x24008010/mask=xff20e010 has already been defined

# cnot_z_p_z.xml: CNOT variant SVE
# PATTERN x041ba000/mask=xff3fe000

:cnot Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_cnot(Zd.T, Pg3_m, Zn.T);
}

# cnt_z_p_z.xml: CNT variant SVE
# PATTERN x041aa000/mask=xff3fe000

:cnt Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_cnt(Zd.T, Pg3_m, Zn.T);
}

# cntb_r_s.xml: CNTB, CNTD, CNTH, CNTW variant Byte
# PATTERN x0420e000/mask=xfff0fc00

:cntb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rd_0004 & sve_pattern & sve_imm4_1_1to16 & Rd_GPR64 & sve_mul_pattern
{
	Rd_GPR64 = SVE_cntb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# cntb_r_s.xml: CNTB, CNTD, CNTH, CNTW variant Doubleword
# PATTERN x04e0e000/mask=xfff0fc00

:cntd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rd_0004 & sve_pattern & sve_imm4_1_1to16 & Rd_GPR64 & sve_mul_pattern
{
	Rd_GPR64 = SVE_cntd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# cntb_r_s.xml: CNTB, CNTD, CNTH, CNTW variant Halfword
# PATTERN x0460e000/mask=xfff0fc00

:cnth Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rd_0004 & sve_pattern & sve_imm4_1_1to16 & Rd_GPR64 & sve_mul_pattern
{
	Rd_GPR64 = SVE_cnth(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# cntb_r_s.xml: CNTB, CNTD, CNTH, CNTW variant Word
# PATTERN x04a0e000/mask=xfff0fc00

:cntw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rd_0004 & sve_pattern & sve_imm4_1_1to16 & Rd_GPR64 & sve_mul_pattern
{
	Rd_GPR64 = SVE_cntw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# cntp_r_p_p.xml: CNTP variant SVE
# PATTERN x25208000/mask=xff3fc200

:cntp Rd_GPR64, Pg, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1415=0b10 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_rd_0004 & Pn.T & Rd_GPR64 & Pg
{
	Rd_GPR64 = SVE_cntp(Rd_GPR64, Pn.T, Pg);
}

# compact_z_p_z.xml: COMPACT variant SVE
# PATTERN x05a18000/mask=xffbfe000

:compact Zd.T_sz, Pg3, Zn.T_sz
is sve_b_2331=0b000001011 & sve_sz_22 & sve_b_1321=0b100001100 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T_sz & Zn.T_sz & Pg3
{
	Zd.T_sz = SVE_compact(Zd.T_sz, Pg3, Zn.T_sz);
}

# cpy_z_p_i.xml: CPY (immediate) variant SVE
# PATTERN x05100000/mask=xff308000

:cpy Zd.T, Pm_zm, sve_shf8_1_m128to127
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b01 & sve_pg_1619 & sve_b_15=0 & sve_m_14 & sve_sh_13 & sve_imm8_0512 & sve_zd_0004 & sve_shift_13 & Pm_zm & Zd.T & sve_imm8_1_m128to127 & sve_shf8_1_m128to127
{
	Zd.T = SVE_cpy(Zd.T, Pm_zm, sve_shf8_1_m128to127, sve_shift_13:1);
}

# cpy_z_p_r.xml: CPY (scalar) variant SVE
# PATTERN x0528a000/mask=xff3fe000

:cpy Zd.T, Pg3_m, Rn_GPR64xsp
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1321=0b101000101 & sve_pg_1012 & sve_rn_0509 & sve_zd_0004 & Rn_GPR64xsp & Zd.T & Pg3_m
{
	Zd.T = SVE_cpy(Zd.T, Pg3_m, Rn_GPR64xsp);
}

# cpy_z_p_r.xml: CPY (scalar) variant SVE
# PATTERN x0528a000/mask=xff3fe000

:cpy Zd.T, Pg3_m, Rn_GPR32xsp
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1321=0b101000101 & sve_pg_1012 & sve_rn_0509 & sve_zd_0004 & Rn_GPR32xsp & Zd.T & Pg3_m
{
	Zd.T = SVE_cpy(Zd.T, Pg3_m, Rn_GPR32xsp);
}

# cpy_z_p_v.xml: CPY (SIMD&FP scalar) variant SVE
# PATTERN x05208000/mask=xff3fe000

:cpy Zd.T, Pg3_m, Rn_FPR8
is sve_b_2431=0b00000101 & sve_size_2223=0b00 & sve_b_1321=0b100000100 & sve_pg_1012 & sve_vn_0509 & sve_zd_0004 & Zd.T & Rn_FPR8 & Pg3_m
{
	Zd.T = SVE_cpy(Zd.T, Pg3_m, Rn_FPR8);
}

# cpy_z_p_v.xml: CPY (SIMD&FP scalar) variant SVE
# PATTERN x05208000/mask=xff3fe000

:cpy Zd.T, Pg3_m, Rn_FPR32
is sve_b_2431=0b00000101 & sve_size_2223=0b10 & sve_b_1321=0b100000100 & sve_pg_1012 & sve_vn_0509 & sve_zd_0004 & Zd.T & Rn_FPR32 & Pg3_m
{
	Zd.T = SVE_cpy(Zd.T, Pg3_m, Rn_FPR32);
}

# cpy_z_p_v.xml: CPY (SIMD&FP scalar) variant SVE
# PATTERN x05208000/mask=xff3fe000

:cpy Zd.T, Pg3_m, Rn_FPR16
is sve_b_2431=0b00000101 & sve_size_2223=0b01 & sve_b_1321=0b100000100 & sve_pg_1012 & sve_vn_0509 & sve_zd_0004 & Zd.T & Rn_FPR16 & Pg3_m
{
	Zd.T = SVE_cpy(Zd.T, Pg3_m, Rn_FPR16);
}

# cpy_z_p_v.xml: CPY (SIMD&FP scalar) variant SVE
# PATTERN x05208000/mask=xff3fe000

:cpy Zd.T, Pg3_m, Rn_FPR64
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1321=0b100000100 & sve_pg_1012 & sve_vn_0509 & sve_zd_0004 & Zd.T & Rn_FPR64 & Pg3_m
{
	Zd.T = SVE_cpy(Zd.T, Pg3_m, Rn_FPR64);
}

# ctermeq_rr.xml: CTERMEQ, CTERMNE variant Equal
# PATTERN x25a02000/mask=xffa0fc1f

:ctermeq Rn_GPR64, Rm_GPR64
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=1 & sve_sz_22=1 & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b001000 & sve_rn_0509 & sve_b_04=0 & sve_b_03=0 & sve_b_02=0 & sve_b_0001=0b00 & Rn_GPR64 & Rm_GPR64
{
	SVE_ctermeq(Rn_GPR64, Rm_GPR64);
}

# ctermeq_rr.xml: CTERMEQ, CTERMNE variant Equal
# PATTERN x25a02000/mask=xffa0fc1f

:ctermeq Rn_GPR32, Rm_GPR32
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=1 & sve_sz_22=0 & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b001000 & sve_rn_0509 & sve_b_04=0 & sve_b_03=0 & sve_b_02=0 & sve_b_0001=0b00 & Rn_GPR32 & Rm_GPR32
{
	SVE_ctermeq(Rn_GPR32, Rm_GPR32);
}

# ctermeq_rr.xml: CTERMEQ, CTERMNE variant Not equal
# PATTERN x25a02010/mask=xffa0fc1f

:ctermne Rn_GPR64, Rm_GPR64
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=1 & sve_sz_22=1 & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b001000 & sve_rn_0509 & sve_b_04=1 & sve_b_03=0 & sve_b_02=0 & sve_b_0001=0b00 & Rn_GPR64 & Rm_GPR64
{
	SVE_ctermne(Rn_GPR64, Rm_GPR64);
}

# ctermeq_rr.xml: CTERMEQ, CTERMNE variant Not equal
# PATTERN x25a02010/mask=xffa0fc1f

:ctermne Rn_GPR32, Rm_GPR32
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=1 & sve_sz_22=0 & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b001000 & sve_rn_0509 & sve_b_04=1 & sve_b_03=0 & sve_b_02=0 & sve_b_0001=0b00 & Rn_GPR32 & Rm_GPR32
{
	SVE_ctermne(Rn_GPR32, Rm_GPR32);
}

# decb_r_rs.xml: DECB, DECD, DECH, DECW (scalar) variant Byte
# PATTERN x0430e400/mask=xfff0fc00

:decb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_decb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decb_r_rs.xml: DECB, DECD, DECH, DECW (scalar) variant Doubleword
# PATTERN x04f0e400/mask=xfff0fc00

:decd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_decd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decb_r_rs.xml: DECB, DECD, DECH, DECW (scalar) variant Halfword
# PATTERN x0470e400/mask=xfff0fc00

:dech Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_dech(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decb_r_rs.xml: DECB, DECD, DECH, DECW (scalar) variant Word
# PATTERN x04b0e400/mask=xfff0fc00

:decw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_decw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decd_z_zs.xml: DECD, DECH, DECW (vector) variant Doubleword
# PATTERN x04f0c400/mask=xfff0fc00

:decd Zd.D^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11000 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.D & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.D = SVE_decd(Zd.D, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decd_z_zs.xml: DECD, DECH, DECW (vector) variant Halfword
# PATTERN x0470c400/mask=xfff0fc00

:dech Zd.H^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11000 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.H & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.H = SVE_dech(Zd.H, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decd_z_zs.xml: DECD, DECH, DECW (vector) variant Word
# PATTERN x04b0c400/mask=xfff0fc00

:decw Zd.S^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11000 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.S & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.S = SVE_decw(Zd.S, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# decp_r_p_r.xml: DECP (scalar) variant SVE
# PATTERN x252d8800/mask=xff3ffe00

:decp Rd_GPR64, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1011 & sve_b_17=0 & sve_b_16=1 & sve_b_1115=0b10001 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR64
{
	Rd_GPR64 = SVE_decp(Rd_GPR64, Pn.T);
}

# decp_z_p_z.xml: DECP (vector) variant SVE
# PATTERN x252d8000/mask=xff3ffe00

:decp Zd.T, Pn
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1011 & sve_b_17=0 & sve_b_16=1 & sve_b_1115=0b10000 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_zdn_0004 & Zd.T & Pn
{
	Zd.T = SVE_decp(Zd.T, Pn);
}

# dup_z_i.xml: DUP (immediate) variant SVE
# PATTERN x2538c000/mask=xff3fc000

:dup Zd.T, sve_shf8_1_m128to127
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b111 & sve_b_18=0 & sve_b_17=0 & sve_b_1416=0b011 & sve_sh_13 & sve_imm8_0512 & sve_zd_0004 & sve_shift_13 & Zd.T & sve_imm8_1_m128to127 & sve_shf8_1_m128to127
{
	Zd.T = SVE_dup(Zd.T, sve_shf8_1_m128to127, sve_shift_13:1);
}

# dup_z_r.xml: DUP (scalar) variant SVE
# PATTERN x05203800/mask=xff3ffc00

:dup Zd.T, Rn_GPR64xsp
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1021=0b100000001110 & sve_rn_0509 & sve_zd_0004 & Rn_GPR64xsp & Zd.T
{
	Zd.T = SVE_dup(Zd.T, Rn_GPR64xsp);
}

# dup_z_r.xml: DUP (scalar) variant SVE
# PATTERN x05203800/mask=xff3ffc00

:dup Zd.T, Rn_GPR32xsp
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1021=0b100000001110 & sve_rn_0509 & sve_zd_0004 & Rn_GPR32xsp & Zd.T
{
	Zd.T = SVE_dup(Zd.T, Rn_GPR32xsp);
}

# dup_z_zi.xml: DUP (indexed) variant SVE
# PATTERN x05202000/mask=xff20fc00

:dup Zd.T_tsz, Zn.T_tsz[sve_imm2_tsz]
is sve_b_2431=0b00000101 & sve_imm2_2223 & sve_b_21=1 & sve_tsz_1620 & sve_b_1015=0b001000 & sve_zn_0509 & sve_zd_0004 & Zd.T_tsz & Zn.T_tsz & sve_imm2_tsz
{
	Zd.T_tsz = SVE_dup(Zd.T_tsz, Zn.T_tsz, sve_imm2_tsz:1);
}

# dupm_z_i.xml: DUPM variant SVE
# PATTERN x05c00000/mask=xfffc0000

:dupm Zd.T_imm13, "#"^sve_decode_bit_mask
is sve_b_1831=0b00000101110000 & sve_imm13_0517 & sve_zd_0004 & sve_decode_bit_mask & Zd.T_imm13
{
	Zd.T_imm13 = SVE_dupm(Zd.T_imm13, sve_decode_bit_mask:1);
}

# eon_eor_z_zi.xml: EON variant SVE
# ALIASEDBY EOR <Zdn>.<T>, <Zdn>.<T>, #(-<const> - 1) if Never
# PATTERN x05400000/mask=xfffc0000

:eon Zd.T_imm13, Zd.T_imm13_2, "#"^sve_decode_bit_mask
is sve_b_2431=0b00000101 & sve_b_23=0 & sve_b_22=1 & sve_b_1821=0b0000 & sve_imm13_0517 & sve_zdn_0004 & sve_decode_bit_mask & Zd.T_imm13 & Zd.T_imm13_2
{
	Zd.T_imm13 = SVE_eon(Zd.T_imm13, Zd.T_imm13_2, sve_decode_bit_mask:1);
}

# eor_p_p_pp.xml: EOR, EORS (predicates) variant Flag setting
# PATTERN x25404200/mask=xfff0c210

:eors Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_eors(Pd.B, Pg_z, Pn.B, Pm.B);
}

# eor_p_p_pp.xml: EOR, EORS (predicates) variant Not flag setting
# PATTERN x25004200/mask=xfff0c210

:eor Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_eor(Pd.B, Pg_z, Pn.B, Pm.B);
}

# eor_z_p_zz.xml: EOR (vectors, predicated) variant SVE
# PATTERN x04190000/mask=xff3fe000

:eor Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_eor(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# eor_z_zi.xml: EOR (immediate) variant SVE
# PATTERN x05400000/mask=xfffc0000

# SKIPPING eor_z_zi.xml because x05400000/mask=xfffc0000 has already been defined

# eor_z_zz.xml: EOR (vectors, unpredicated) variant SVE
# PATTERN x04a03000/mask=xffe0fc00

:eor Zd.D, Zn.D, Zm.D
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_zm_1620 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm.D
{
	Zd.D = SVE_eor(Zd.D, Zn.D, Zm.D);
}

# eorv_r_p_z.xml: EORV variant SVE
# PATTERN x04192000/mask=xff3fe000

:eorv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_eorv(Rd_FPR8, Pg3, Zn.T);
}

# eorv_r_p_z.xml: EORV variant SVE
# PATTERN x04192000/mask=xff3fe000

:eorv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_eorv(Rd_FPR32, Pg3, Zn.T);
}

# eorv_r_p_z.xml: EORV variant SVE
# PATTERN x04192000/mask=xff3fe000

:eorv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_eorv(Rd_FPR16, Pg3, Zn.T);
}

# eorv_r_p_z.xml: EORV variant SVE
# PATTERN x04192000/mask=xff3fe000

:eorv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_eorv(Rd_FPR64, Pg3, Zn.T);
}

# ext_z_zi.xml: EXT variant SVE
# PATTERN x05200000/mask=xffe0e000

:ext Zd.B, Zd.B_2, Zn.B, "#"^sve_imm8_2_0to255
is sve_b_2131=0b00000101001 & sve_imm8h_1620 & sve_b_1315=0b000 & sve_imm8l_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.B & Zd.B_2 & Zn.B & sve_imm8_2_0to255
{
	Zd.B = SVE_ext(Zd.B, Zd.B_2, Zn.B, sve_imm8_2_0to255:1);
}

# fabd_z_p_zz.xml: FABD variant SVE
# PATTERN x65088000/mask=xff3fe000

:fabd Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b100 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fabd(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fabs_z_p_z.xml: FABS variant SVE
# PATTERN x041ca000/mask=xff3fe000

:fabs Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fabs(Zd.T, Pg3_m, Zn.T);
}

# facge_p_p_zz.xml: FAC<cc> variant Greater than
# PATTERN x6500e010/mask=xff20e010

:facgt Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_facgt(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# facge_p_p_zz.xml: FAC<cc> variant Greater than or equal
# PATTERN x6500c010/mask=xff20e010

:facge Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_facge(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# facle_facge_p_p_zz.xml: FACLE variant Greater than or equal
# ALIASEDBY FACGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x6500c010/mask=xff20e010

# SKIPPING facle_facge_p_p_zz.xml because x6500c010/mask=xff20e010 has already been defined

# faclt_facge_p_p_zz.xml: FACLT variant Greater than
# ALIASEDBY FACGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x6500e010/mask=xff20e010

# SKIPPING faclt_facge_p_p_zz.xml because x6500e010/mask=xff20e010 has already been defined

# fadd_z_p_zs.xml: FADD (immediate) variant SVE
# PATTERN x65188000/mask=xff3fe3c0

:fadd Zd.T, Pg3_m, Zd.T_2, sve_float_0510
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0510 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fadd(Zd.T, Pg3_m, Zd.T_2, sve_float_0510:1);
}

# fadd_z_p_zz.xml: FADD (vectors, predicated) variant SVE
# PATTERN x65008000/mask=xff3fe000

:fadd Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b000 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fadd(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fadd_z_zz.xml: FADD (vectors, unpredicated) variant SVE
# PATTERN x65000000/mask=xff20fc00

:fadd Zd.T, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b00 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_fadd(Zd.T, Zn.T, Zm.T);
}

# fadda_v_p_z.xml: FADDA variant SVE
# PATTERN x65182000/mask=xff3fe000

:fadda Rd_FPR8, Pg3, Rd_FPR8_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b00 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR8 & Rd_FPR8_2 & Pg3
{
	Rd_FPR8 = SVE_fadda(Rd_FPR8, Pg3, Rd_FPR8_2, Zn.T);
}

# fadda_v_p_z.xml: FADDA variant SVE
# PATTERN x65182000/mask=xff3fe000

:fadda Rd_FPR32, Pg3, Rd_FPR32_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b10 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR32 & Rd_FPR32_2 & Pg3
{
	Rd_FPR32 = SVE_fadda(Rd_FPR32, Pg3, Rd_FPR32_2, Zn.T);
}

# fadda_v_p_z.xml: FADDA variant SVE
# PATTERN x65182000/mask=xff3fe000

:fadda Rd_FPR16, Pg3, Rd_FPR16_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b01 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR16 & Rd_FPR16_2 & Pg3
{
	Rd_FPR16 = SVE_fadda(Rd_FPR16, Pg3, Rd_FPR16_2, Zn.T);
}

# fadda_v_p_z.xml: FADDA variant SVE
# PATTERN x65182000/mask=xff3fe000

:fadda Rd_FPR64, Pg3, Rd_FPR64_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b11 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zm_0509 & sve_vdn_0004 & Zn.T & Rd_FPR64 & Rd_FPR64_2 & Pg3
{
	Rd_FPR64 = SVE_fadda(Rd_FPR64, Pg3, Rd_FPR64_2, Zn.T);
}

# faddv_v_p_z.xml: FADDV variant SVE
# PATTERN x65002000/mask=xff3fe000

:faddv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b00 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_faddv(Rd_FPR8, Pg3, Zn.T);
}

# faddv_v_p_z.xml: FADDV variant SVE
# PATTERN x65002000/mask=xff3fe000

:faddv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b10 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_faddv(Rd_FPR32, Pg3, Zn.T);
}

# faddv_v_p_z.xml: FADDV variant SVE
# PATTERN x65002000/mask=xff3fe000

:faddv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b01 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_faddv(Rd_FPR16, Pg3, Zn.T);
}

# faddv_v_p_z.xml: FADDV variant SVE
# PATTERN x65002000/mask=xff3fe000

:faddv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b11 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_faddv(Rd_FPR64, Pg3, Zn.T);
}

# fcadd_z_p_zz.xml: FCADD variant SVE
# PATTERN x64008000/mask=xff3ee000

:fcadd Zd.T, Pg3_m, Zd.T_2, Zn.T, sve_rot_16
is sve_b_2431=0b01100100 & sve_size_2223 & sve_b_1721=0b00000 & sve_rot_16 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fcadd(Zd.T, Pg3_m, Zd.T_2, Zn.T, sve_rot_16:1);
}

# fcmeq_p_p_z0.xml: FCM<cc> (zero) variant Equal
# PATTERN x65122000/mask=xff3fe010

:fcmeq Pd.T, Pg3_z, Zn.T, "#0.0"
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0100 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmeq(Pd.T, Pg3_z, Zn.T);
}

# fcmeq_p_p_z0.xml: FCM<cc> (zero) variant Greater than
# PATTERN x65102010/mask=xff3fe010

:fcmgt Pd.T, Pg3_z, Zn.T, "#0.0"
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0100 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmgt(Pd.T, Pg3_z, Zn.T);
}

# fcmeq_p_p_z0.xml: FCM<cc> (zero) variant Greater than or equal
# PATTERN x65102000/mask=xff3fe010

:fcmge Pd.T, Pg3_z, Zn.T, "#0.0"
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0100 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmge(Pd.T, Pg3_z, Zn.T);
}

# fcmeq_p_p_z0.xml: FCM<cc> (zero) variant Less than
# PATTERN x65112000/mask=xff3fe010

:fcmlt Pd.T, Pg3_z, Zn.T, "#0.0"
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0100 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmlt(Pd.T, Pg3_z, Zn.T);
}

# fcmeq_p_p_z0.xml: FCM<cc> (zero) variant Less than or equal
# PATTERN x65112010/mask=xff3fe010

:fcmle Pd.T, Pg3_z, Zn.T, "#0.0"
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0100 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmle(Pd.T, Pg3_z, Zn.T);
}

# fcmeq_p_p_z0.xml: FCM<cc> (zero) variant Not equal
# PATTERN x65132000/mask=xff3fe010

:fcmne Pd.T, Pg3_z, Zn.T, "#0.0"
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0100 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmne(Pd.T, Pg3_z, Zn.T);
}

# fcmeq_p_p_zz.xml: FCM<cc> (vectors) variant Equal
# PATTERN x65006000/mask=xff20e010

:fcmeq Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmeq(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# fcmeq_p_p_zz.xml: FCM<cc> (vectors) variant Greater than
# PATTERN x65004010/mask=xff20e010

:fcmgt Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmgt(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# fcmeq_p_p_zz.xml: FCM<cc> (vectors) variant Greater than or equal
# PATTERN x65004000/mask=xff20e010

:fcmge Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmge(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# fcmeq_p_p_zz.xml: FCM<cc> (vectors) variant Not equal
# PATTERN x65006010/mask=xff20e010

:fcmne Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_b_04=1 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmne(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# fcmeq_p_p_zz.xml: FCM<cc> (vectors) variant Unordered
# PATTERN x6500c000/mask=xff20e010

:fcmuo Pd.T, Pg3_z, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_pd_0003 & Zm.T & Pd.T & Zn.T & Pg3_z
{
	Pd.T = SVE_fcmuo(Pd.T, Pg3_z, Zn.T, Zm.T);
}

# fcmla_z_p_zzz.xml: FCMLA (vectors) variant SVE
# PATTERN x64000000/mask=xff208000

:fcmla Zd.T, Pg3_m, Zn.T, Zm.T, sve_rot_1314
is sve_b_2431=0b01100100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_rot_1314 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fcmla(Zd.T, Pg3_m, Zn.T, Zm.T, sve_rot_1314:1);
}

# fcmla_z_zzzi.xml: FCMLA (indexed) variant Half-precision
# PATTERN x64a01000/mask=xffe0f000

:fcmla Zd.H, Zn.H, Zm3.H[sve_i2_1920], sve_rot_1011
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_i2_1920 & sve_zm_1618 & sve_b_1215=0b0001 & sve_rot_1011 & sve_zn_0509 & sve_zda_0004 & Zd.H & Zn.H & Zm3.H
{
	Zd.H = SVE_fcmla(Zd.H, Zn.H, Zm3.H, sve_i2_1920:1, sve_rot_1011:1);
}

# fcmla_z_zzzi.xml: FCMLA (indexed) variant Single-precision
# PATTERN x64e01000/mask=xffe0f000

:fcmla Zd.S, Zn.S, Zm4.S[sve_i1_20], sve_rot_1011
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_i1_20 & sve_zm_1619 & sve_b_1215=0b0001 & sve_rot_1011 & sve_zn_0509 & sve_zda_0004 & Zd.S & Zn.S & Zm4.S
{
	Zd.S = SVE_fcmla(Zd.S, Zn.S, Zm4.S, sve_i1_20:1, sve_rot_1011:1);
}

# fcmle_fcmeq_p_p_zz.xml: FCMLE (vectors) variant Greater than or equal
# ALIASEDBY FCMGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x65004000/mask=xff20e010

# SKIPPING fcmle_fcmeq_p_p_zz.xml because x65004000/mask=xff20e010 has already been defined

# fcmlt_fcmeq_p_p_zz.xml: FCMLT (vectors) variant Greater than
# ALIASEDBY FCMGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> if Never
# PATTERN x65004010/mask=xff20e010

# SKIPPING fcmlt_fcmeq_p_p_zz.xml because x65004010/mask=xff20e010 has already been defined

# fcpy_z_p_i.xml: FCPY variant SVE
# PATTERN x0510c000/mask=xff30e000

:fcpy Zd.T, Pm_m, "#"^sve_float_imm8
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b01 & sve_pg_1619 & sve_b_1315=0b110 & sve_imm8_0512 & sve_zd_0004 & sve_float_imm8 & Zd.T & Pm_m
{
	Zd.T = SVE_fcpy(Zd.T, Pm_m, sve_float_imm8:1);
}

# fcvt_z_p_z.xml: FCVT variant Half-precision to single-precision
# PATTERN x6589a000/mask=xffffe000

:fcvt Zd.S, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1821=0b0010 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvt(Zd.S, Pg3_m, Zn.H);
}

# fcvt_z_p_z.xml: FCVT variant Half-precision to double-precision
# PATTERN x65c9a000/mask=xffffe000

:fcvt Zd.D, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1821=0b0010 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvt(Zd.D, Pg3_m, Zn.H);
}

# fcvt_z_p_z.xml: FCVT variant Single-precision to half-precision
# PATTERN x6588a000/mask=xffffe000

:fcvt Zd.H, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1821=0b0010 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.H & Pg3_m
{
	Zd.H = SVE_fcvt(Zd.H, Pg3_m, Zn.S);
}

# fcvt_z_p_z.xml: FCVT variant Single-precision to double-precision
# PATTERN x65cba000/mask=xffffe000

:fcvt Zd.D, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1821=0b0010 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvt(Zd.D, Pg3_m, Zn.S);
}

# fcvt_z_p_z.xml: FCVT variant Double-precision to half-precision
# PATTERN x65c8a000/mask=xffffe000

:fcvt Zd.H, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1821=0b0010 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.H & Pg3_m
{
	Zd.H = SVE_fcvt(Zd.H, Pg3_m, Zn.D);
}

# fcvt_z_p_z.xml: FCVT variant Double-precision to single-precision
# PATTERN x65caa000/mask=xffffe000

:fcvt Zd.S, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1821=0b0010 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvt(Zd.S, Pg3_m, Zn.D);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Half-precision to 16-bit
# PATTERN x655aa000/mask=xffffe000

:fcvtzs Zd.H, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.H & Pg3_m
{
	Zd.H = SVE_fcvtzs(Zd.H, Pg3_m, Zn.H);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Half-precision to 32-bit
# PATTERN x655ca000/mask=xffffe000

:fcvtzs Zd.S, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvtzs(Zd.S, Pg3_m, Zn.H);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Half-precision to 64-bit
# PATTERN x655ea000/mask=xffffe000

:fcvtzs Zd.D, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvtzs(Zd.D, Pg3_m, Zn.H);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Single-precision to 32-bit
# PATTERN x659ca000/mask=xffffe000

:fcvtzs Zd.S, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvtzs(Zd.S, Pg3_m, Zn.S);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Single-precision to 64-bit
# PATTERN x65dca000/mask=xffffe000

:fcvtzs Zd.D, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvtzs(Zd.D, Pg3_m, Zn.S);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Double-precision to 32-bit
# PATTERN x65d8a000/mask=xffffe000

:fcvtzs Zd.S, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvtzs(Zd.S, Pg3_m, Zn.D);
}

# fcvtzs_z_p_z.xml: FCVTZS variant Double-precision to 64-bit
# PATTERN x65dea000/mask=xffffe000

:fcvtzs Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvtzs(Zd.D, Pg3_m, Zn.D);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Half-precision to 16-bit
# PATTERN x655ba000/mask=xffffe000

:fcvtzu Zd.H, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.H & Pg3_m
{
	Zd.H = SVE_fcvtzu(Zd.H, Pg3_m, Zn.H);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Half-precision to 32-bit
# PATTERN x655da000/mask=xffffe000

:fcvtzu Zd.S, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvtzu(Zd.S, Pg3_m, Zn.H);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Half-precision to 64-bit
# PATTERN x655fa000/mask=xffffe000

:fcvtzu Zd.D, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvtzu(Zd.D, Pg3_m, Zn.H);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Single-precision to 32-bit
# PATTERN x659da000/mask=xffffe000

:fcvtzu Zd.S, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvtzu(Zd.S, Pg3_m, Zn.S);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Single-precision to 64-bit
# PATTERN x65dda000/mask=xffffe000

:fcvtzu Zd.D, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvtzu(Zd.D, Pg3_m, Zn.S);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Double-precision to 32-bit
# PATTERN x65d9a000/mask=xffffe000

:fcvtzu Zd.S, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.S & Pg3_m
{
	Zd.S = SVE_fcvtzu(Zd.S, Pg3_m, Zn.D);
}

# fcvtzu_z_p_z.xml: FCVTZU variant Double-precision to 64-bit
# PATTERN x65dfa000/mask=xffffe000

:fcvtzu Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b011 & sve_b_18=1 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_fcvtzu(Zd.D, Pg3_m, Zn.D);
}

# fdiv_z_p_zz.xml: FDIV variant SVE
# PATTERN x650d8000/mask=xff3fe000

:fdiv Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b110 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fdiv(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fdivr_z_p_zz.xml: FDIVR variant SVE
# PATTERN x650c8000/mask=xff3fe000

:fdivr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b110 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fdivr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fdup_z_i.xml: FDUP variant SVE
# PATTERN x2539c000/mask=xff3fe000

:fdup Zd.T, "#"^sve_float_imm8
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b111 & sve_b_18=0 & sve_b_17=0 & sve_b_1416=0b111 & sve_b_13=0 & sve_imm8_0512 & sve_zd_0004 & sve_float_imm8 & Zd.T
{
	Zd.T = SVE_fdup(Zd.T, sve_float_imm8:1);
}

# fexpa_z_z.xml: FEXPA variant SVE
# PATTERN x0420b800/mask=xff3ffc00

:fexpa Zd.T, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_b_1720=0b0000 & sve_b_16=0 & sve_b_1015=0b101110 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T
{
	Zd.T = SVE_fexpa(Zd.T, Zn.T);
}

# fmad_z_p_zzz.xml: FMAD variant SVE
# PATTERN x65208000/mask=xff20e000

:fmad Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_za_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zn.T & Zm.T & Pg3_m
{
	Zd.T = SVE_fmad(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fmax_z_p_zs.xml: FMAX (immediate) variant SVE
# PATTERN x651e8000/mask=xff3fe3c0

:fmax Zd.T, Pg3_m, Zd.T_2, sve_float_0010
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0010 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fmax(Zd.T, Pg3_m, Zd.T_2, sve_float_0010:1);
}

# fmax_z_p_zz.xml: FMAX (vectors) variant SVE
# PATTERN x65068000/mask=xff3fe000

:fmax Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b011 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fmax(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fmaxnm_z_p_zs.xml: FMAXNM (immediate) variant SVE
# PATTERN x651c8000/mask=xff3fe3c0

:fmaxnm Zd.T, Pg3_m, Zd.T_2, sve_float_0010
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0010 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fmaxnm(Zd.T, Pg3_m, Zd.T_2, sve_float_0010:1);
}

# fmaxnm_z_p_zz.xml: FMAXNM (vectors) variant SVE
# PATTERN x65048000/mask=xff3fe000

:fmaxnm Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b010 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fmaxnm(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fmaxnmv_v_p_z.xml: FMAXNMV variant SVE
# PATTERN x65042000/mask=xff3fe000

:fmaxnmv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b00 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_fmaxnmv(Rd_FPR8, Pg3, Zn.T);
}

# fmaxnmv_v_p_z.xml: FMAXNMV variant SVE
# PATTERN x65042000/mask=xff3fe000

:fmaxnmv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b10 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_fmaxnmv(Rd_FPR32, Pg3, Zn.T);
}

# fmaxnmv_v_p_z.xml: FMAXNMV variant SVE
# PATTERN x65042000/mask=xff3fe000

:fmaxnmv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b01 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_fmaxnmv(Rd_FPR16, Pg3, Zn.T);
}

# fmaxnmv_v_p_z.xml: FMAXNMV variant SVE
# PATTERN x65042000/mask=xff3fe000

:fmaxnmv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b11 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_fmaxnmv(Rd_FPR64, Pg3, Zn.T);
}

# fmaxv_v_p_z.xml: FMAXV variant SVE
# PATTERN x65062000/mask=xff3fe000

:fmaxv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b00 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_fmaxv(Rd_FPR8, Pg3, Zn.T);
}

# fmaxv_v_p_z.xml: FMAXV variant SVE
# PATTERN x65062000/mask=xff3fe000

:fmaxv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b10 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_fmaxv(Rd_FPR32, Pg3, Zn.T);
}

# fmaxv_v_p_z.xml: FMAXV variant SVE
# PATTERN x65062000/mask=xff3fe000

:fmaxv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b01 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_fmaxv(Rd_FPR16, Pg3, Zn.T);
}

# fmaxv_v_p_z.xml: FMAXV variant SVE
# PATTERN x65062000/mask=xff3fe000

:fmaxv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b11 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_fmaxv(Rd_FPR64, Pg3, Zn.T);
}

# fmin_z_p_zs.xml: FMIN (immediate) variant SVE
# PATTERN x651f8000/mask=xff3fe3c0

:fmin Zd.T, Pg3_m, Zd.T_2, sve_float_0010
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0010 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fmin(Zd.T, Pg3_m, Zd.T_2, sve_float_0010:1);
}

# fmin_z_p_zz.xml: FMIN (vectors) variant SVE
# PATTERN x65078000/mask=xff3fe000

:fmin Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b011 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fmin(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fminnm_z_p_zs.xml: FMINNM (immediate) variant SVE
# PATTERN x651d8000/mask=xff3fe3c0

:fminnm Zd.T, Pg3_m, Zd.T_2, sve_float_0010
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0010 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fminnm(Zd.T, Pg3_m, Zd.T_2, sve_float_0010:1);
}

# fminnm_z_p_zz.xml: FMINNM (vectors) variant SVE
# PATTERN x65058000/mask=xff3fe000

:fminnm Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b010 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fminnm(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fminnmv_v_p_z.xml: FMINNMV variant SVE
# PATTERN x65052000/mask=xff3fe000

:fminnmv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b00 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_fminnmv(Rd_FPR8, Pg3, Zn.T);
}

# fminnmv_v_p_z.xml: FMINNMV variant SVE
# PATTERN x65052000/mask=xff3fe000

:fminnmv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b10 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_fminnmv(Rd_FPR32, Pg3, Zn.T);
}

# fminnmv_v_p_z.xml: FMINNMV variant SVE
# PATTERN x65052000/mask=xff3fe000

:fminnmv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b01 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_fminnmv(Rd_FPR16, Pg3, Zn.T);
}

# fminnmv_v_p_z.xml: FMINNMV variant SVE
# PATTERN x65052000/mask=xff3fe000

:fminnmv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b11 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_fminnmv(Rd_FPR64, Pg3, Zn.T);
}

# fminv_v_p_z.xml: FMINV variant SVE
# PATTERN x65072000/mask=xff3fe000

:fminv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b00 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_fminv(Rd_FPR8, Pg3, Zn.T);
}

# fminv_v_p_z.xml: FMINV variant SVE
# PATTERN x65072000/mask=xff3fe000

:fminv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b10 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_fminv(Rd_FPR32, Pg3, Zn.T);
}

# fminv_v_p_z.xml: FMINV variant SVE
# PATTERN x65072000/mask=xff3fe000

:fminv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b01 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_fminv(Rd_FPR16, Pg3, Zn.T);
}

# fminv_v_p_z.xml: FMINV variant SVE
# PATTERN x65072000/mask=xff3fe000

:fminv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223=0b11 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_fminv(Rd_FPR64, Pg3, Zn.T);
}

# fmla_z_p_zzz.xml: FMLA (vectors) variant SVE
# PATTERN x65200000/mask=xff20e000

:fmla Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fmla(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fmla_z_zzzi.xml: FMLA (indexed) variant Half-precision
# PATTERN x64200000/mask=xffa0fc00

:fmla Zd.H, Zn.H, Zm3.H[sve_i3h_i3l]
is sve_b_2431=0b01100100 & sve_b_23=0 & sve_i3h_22 & sve_b_21=1 & sve_i3l_1920 & sve_zm_1618 & sve_b_1115=0b00000 & sve_b_10=0 & sve_zn_0509 & sve_zda_0004 & Zd.H & Zn.H & Zm3.H & sve_i3h_i3l
{
	Zd.H = SVE_fmla(Zd.H, Zn.H, Zm3.H, sve_i3h_i3l:1);
}

# fmla_z_zzzi.xml: FMLA (indexed) variant Single-precision
# PATTERN x64a00000/mask=xffe0fc00

:fmla Zd.S, Zn.S, Zm3.S[sve_i2_1920]
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_i2_1920 & sve_zm_1618 & sve_b_1115=0b00000 & sve_b_10=0 & sve_zn_0509 & sve_zda_0004 & Zd.S & Zn.S & Zm3.S
{
	Zd.S = SVE_fmla(Zd.S, Zn.S, Zm3.S, sve_i2_1920:1);
}

# fmla_z_zzzi.xml: FMLA (indexed) variant Double-precision
# PATTERN x64e00000/mask=xffe0fc00

:fmla Zd.D, Zn.D, Zm4.D[sve_i1_20]
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_i1_20 & sve_zm_1619 & sve_b_1115=0b00000 & sve_b_10=0 & sve_zn_0509 & sve_zda_0004 & Zd.D & Zn.D & Zm4.D
{
	Zd.D = SVE_fmla(Zd.D, Zn.D, Zm4.D, sve_i1_20:1);
}

# fmls_z_p_zzz.xml: FMLS (vectors) variant SVE
# PATTERN x65202000/mask=xff20e000

:fmls Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fmls(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fmls_z_zzzi.xml: FMLS (indexed) variant Half-precision
# PATTERN x64200400/mask=xffa0fc00

:fmls Zd.H, Zn.H, Zm3.H[sve_i3h_i3l]
is sve_b_2431=0b01100100 & sve_b_23=0 & sve_i3h_22 & sve_b_21=1 & sve_i3l_1920 & sve_zm_1618 & sve_b_1115=0b00000 & sve_b_10=1 & sve_zn_0509 & sve_zda_0004 & Zd.H & Zn.H & Zm3.H & sve_i3h_i3l
{
	Zd.H = SVE_fmls(Zd.H, Zn.H, Zm3.H, sve_i3h_i3l:1);
}

# fmls_z_zzzi.xml: FMLS (indexed) variant Single-precision
# PATTERN x64a00400/mask=xffe0fc00

:fmls Zd.S, Zn.S, Zm3.S[sve_i2_1920]
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_i2_1920 & sve_zm_1618 & sve_b_1115=0b00000 & sve_b_10=1 & sve_zn_0509 & sve_zda_0004 & Zd.S & Zn.S & Zm3.S
{
	Zd.S = SVE_fmls(Zd.S, Zn.S, Zm3.S, sve_i2_1920:1);
}

# fmls_z_zzzi.xml: FMLS (indexed) variant Double-precision
# PATTERN x64e00400/mask=xffe0fc00

:fmls Zd.D, Zn.D, Zm4.D[sve_i1_20]
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_i1_20 & sve_zm_1619 & sve_b_1115=0b00000 & sve_b_10=1 & sve_zn_0509 & sve_zda_0004 & Zd.D & Zn.D & Zm4.D
{
	Zd.D = SVE_fmls(Zd.D, Zn.D, Zm4.D, sve_i1_20:1);
}

# fmov_cpy_z_p_i.xml: FMOV (zero, predicated) variant SVE
# ALIASEDBY CPY <Zd>.<T>, <Pg>/M, #0 if Never
# PATTERN x05104000/mask=xff30ffe0

:fmov Zd.T, Pm_m, "#0.0"
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b01 & sve_pg_1619 & sve_b_15=0 & sve_m_14=1 & sve_sh_13=0 & sve_imm8_0512=0b00000000 & sve_zd_0004 & Zd.T & Pm_m
{
	Zd.T = SVE_fmov(Zd.T, Pm_m);
}

# fmov_dup_z_i.xml: FMOV (zero, unpredicated) variant SVE
# ALIASEDBY DUP <Zd>.<T>, #0 if Never
# PATTERN x2538c000/mask=xff3fffe0

:fmov Zd.T, "#0.0"
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b111 & sve_b_18=0 & sve_b_17=0 & sve_b_1416=0b011 & sve_sh_13=0 & sve_imm8_0512=0b00000000 & sve_zd_0004 & Zd.T
{
	Zd.T = SVE_fmov(Zd.T);
}

# fmov_fcpy_z_p_i.xml: FMOV (immediate, predicated) variant SVE
# ALIASEDBY FCPY <Zd>.<T>, <Pg>/M, #<const> if Unconditionally
# PATTERN x0510c000/mask=xff30e000

# SKIPPING fmov_fcpy_z_p_i.xml because x0510c000/mask=xff30e000 has already been defined

# fmov_fdup_z_i.xml: FMOV (immediate, unpredicated) variant SVE
# ALIASEDBY FDUP <Zd>.<T>, #<const> if Unconditionally
# PATTERN x2539c000/mask=xff3fe000

# SKIPPING fmov_fdup_z_i.xml because x2539c000/mask=xff3fe000 has already been defined

# fmsb_z_p_zzz.xml: FMSB variant SVE
# PATTERN x6520a000/mask=xff20e000

:fmsb Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_za_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zn.T & Zm.T & Pg3_m
{
	Zd.T = SVE_fmsb(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fmul_z_p_zs.xml: FMUL (immediate) variant SVE
# PATTERN x651a8000/mask=xff3fe3c0

:fmul Zd.T, Pg3_m, Zd.T_2, sve_float_0520
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0520 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fmul(Zd.T, Pg3_m, Zd.T_2, sve_float_0520:1);
}

# fmul_z_p_zz.xml: FMUL (vectors, predicated) variant SVE
# PATTERN x65028000/mask=xff3fe000

:fmul Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b001 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fmul(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fmul_z_zz.xml: FMUL (vectors, unpredicated) variant SVE
# PATTERN x65000800/mask=xff20fc00

:fmul Zd.T, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b01 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_fmul(Zd.T, Zn.T, Zm.T);
}

# fmul_z_zzi.xml: FMUL (indexed) variant Half-precision
# PATTERN x64202000/mask=xffa0fc00

:fmul Zd.H, Zn.H, Zm3.H[sve_i3h_i3l]
is sve_b_2431=0b01100100 & sve_b_23=0 & sve_i3h_22 & sve_b_21=1 & sve_i3l_1920 & sve_zm_1618 & sve_b_1015=0b001000 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.H & Zm3.H & sve_i3h_i3l
{
	Zd.H = SVE_fmul(Zd.H, Zn.H, Zm3.H, sve_i3h_i3l:1);
}

# fmul_z_zzi.xml: FMUL (indexed) variant Single-precision
# PATTERN x64a02000/mask=xffe0fc00

:fmul Zd.S, Zn.S, Zm3.S[sve_i2_1920]
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_i2_1920 & sve_zm_1618 & sve_b_1015=0b001000 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.S & Zm3.S
{
	Zd.S = SVE_fmul(Zd.S, Zn.S, Zm3.S, sve_i2_1920:1);
}

# fmul_z_zzi.xml: FMUL (indexed) variant Double-precision
# PATTERN x64e02000/mask=xffe0fc00

:fmul Zd.D, Zn.D, Zm4.D[sve_i1_20]
is sve_b_2431=0b01100100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_i1_20 & sve_zm_1619 & sve_b_1015=0b001000 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm4.D
{
	Zd.D = SVE_fmul(Zd.D, Zn.D, Zm4.D, sve_i1_20:1);
}

# fmulx_z_p_zz.xml: FMULX variant SVE
# PATTERN x650a8000/mask=xff3fe000

:fmulx Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b101 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fmulx(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fneg_z_p_z.xml: FNEG variant SVE
# PATTERN x041da000/mask=xff3fe000

:fneg Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fneg(Zd.T, Pg3_m, Zn.T);
}

# fnmad_z_p_zzz.xml: FNMAD variant SVE
# PATTERN x6520c000/mask=xff20e000

:fnmad Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_za_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zn.T & Zm.T & Pg3_m
{
	Zd.T = SVE_fnmad(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fnmla_z_p_zzz.xml: FNMLA variant SVE
# PATTERN x65204000/mask=xff20e000

:fnmla Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fnmla(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fnmls_z_p_zzz.xml: FNMLS variant SVE
# PATTERN x65206000/mask=xff20e000

:fnmls Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fnmls(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# fnmsb_z_p_zzz.xml: FNMSB variant SVE
# PATTERN x6520e000/mask=xff20e000

:fnmsb Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=1 & sve_za_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zn.T & Zm.T & Pg3_m
{
	Zd.T = SVE_fnmsb(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# frecpe_z_z.xml: FRECPE variant SVE
# PATTERN x650e3000/mask=xff3ffc00

:frecpe Zd.T, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b001 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T
{
	Zd.T = SVE_frecpe(Zd.T, Zn.T);
}

# frecps_z_zz.xml: FRECPS variant SVE
# PATTERN x65001800/mask=xff20fc00

:frecps Zd.T, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b11 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_frecps(Zd.T, Zn.T, Zm.T);
}

# frecpx_z_p_z.xml: FRECPX variant SVE
# PATTERN x650ca000/mask=xff3fe000

:frecpx Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0011 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frecpx(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Current mode
# PATTERN x6507a000/mask=xff3fe000

:frinti Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frinti(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Current mode signalling inexact
# PATTERN x6506a000/mask=xff3fe000

:frintx Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frintx(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Nearest with ties to away
# PATTERN x6504a000/mask=xff3fe000

:frinta Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frinta(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Nearest with ties to even
# PATTERN x6500a000/mask=xff3fe000

:frintn Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frintn(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Toward zero
# PATTERN x6503a000/mask=xff3fe000

:frintz Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frintz(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Toward minus infinity
# PATTERN x6502a000/mask=xff3fe000

:frintm Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frintm(Zd.T, Pg3_m, Zn.T);
}

# frinta_z_p_z.xml: FRINT<r> variant Toward plus infinity
# PATTERN x6501a000/mask=xff3fe000

:frintp Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_frintp(Zd.T, Pg3_m, Zn.T);
}

# frsqrte_z_z.xml: FRSQRTE variant SVE
# PATTERN x650f3000/mask=xff3ffc00

:frsqrte Zd.T, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b001 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T
{
	Zd.T = SVE_frsqrte(Zd.T, Zn.T);
}

# frsqrts_z_zz.xml: FRSQRTS variant SVE
# PATTERN x65001c00/mask=xff20fc00

:frsqrts Zd.T, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b11 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_frsqrts(Zd.T, Zn.T, Zm.T);
}

# fscale_z_p_zz.xml: FSCALE variant SVE
# PATTERN x65098000/mask=xff3fe000

:fscale Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b100 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fscale(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fsqrt_z_p_z.xml: FSQRT variant SVE
# PATTERN x650da000/mask=xff3fe000

:fsqrt Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1821=0b0011 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_fsqrt(Zd.T, Pg3_m, Zn.T);
}

# fsub_z_p_zs.xml: FSUB (immediate) variant SVE
# PATTERN x65198000/mask=xff3fe3c0

:fsub Zd.T, Pg3_m, Zd.T_2, sve_float_0510
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0510 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fsub(Zd.T, Pg3_m, Zd.T_2, sve_float_0510:1);
}

# fsub_z_p_zz.xml: FSUB (vectors, predicated) variant SVE
# PATTERN x65018000/mask=xff3fe000

:fsub Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b000 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fsub(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# fsub_z_zz.xml: FSUB (vectors, unpredicated) variant SVE
# PATTERN x65000400/mask=xff20fc00

:fsub Zd.T, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b00 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_fsub(Zd.T, Zn.T, Zm.T);
}

# fsubr_z_p_zs.xml: FSUBR (immediate) variant SVE
# PATTERN x651b8000/mask=xff3fe3c0

:fsubr Zd.T, Pg3_m, Zd.T_2, sve_float_0510
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_b_0609=0b0000 & sve_i1_05 & sve_zdn_0004 & sve_float_0510 & Zd.T & Zd.T_2 & Pg3_m
{
	Zd.T = SVE_fsubr(Zd.T, Pg3_m, Zd.T_2, sve_float_0510:1);
}

# fsubr_z_p_zz.xml: FSUBR (vectors) variant SVE
# PATTERN x65038000/mask=xff3fe000

:fsubr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_2021=0b00 & sve_b_1719=0b001 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_fsubr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# ftmad_z_zzi.xml: FTMAD variant SVE
# PATTERN x65108000/mask=xff38fc00

:ftmad Zd.T, Zd.T_2, Zn.T, "#"^sve_imm3_1_0to7
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_1921=0b010 & sve_imm3_1618 & sve_b_1015=0b100000 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & sve_imm3_1_0to7
{
	Zd.T = SVE_ftmad(Zd.T, Zd.T_2, Zn.T, sve_imm3_1_0to7:1);
}

# ftsmul_z_zz.xml: FTSMUL variant SVE
# PATTERN x65000c00/mask=xff20fc00

:ftsmul Zd.T, Zn.T, Zm.T
is sve_b_2431=0b01100101 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b01 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_ftsmul(Zd.T, Zn.T, Zm.T);
}

# ftssel_z_zz.xml: FTSSEL variant SVE
# PATTERN x0420b000/mask=xff20fc00

:ftssel Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1115=0b10110 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_ftssel(Zd.T, Zn.T, Zm.T);
}

# incb_r_rs.xml: INCB, INCD, INCH, INCW (scalar) variant Byte
# PATTERN x0430e000/mask=xfff0fc00

:incb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_incb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incb_r_rs.xml: INCB, INCD, INCH, INCW (scalar) variant Doubleword
# PATTERN x04f0e000/mask=xfff0fc00

:incd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_incd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incb_r_rs.xml: INCB, INCD, INCH, INCW (scalar) variant Halfword
# PATTERN x0470e000/mask=xfff0fc00

:inch Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_inch(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incb_r_rs.xml: INCB, INCD, INCH, INCW (scalar) variant Word
# PATTERN x04b0e000/mask=xfff0fc00

:incw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11100 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_incw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incd_z_zs.xml: INCD, INCH, INCW (vector) variant Doubleword
# PATTERN x04f0c000/mask=xfff0fc00

:incd Zd.D^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11000 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.D & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.D = SVE_incd(Zd.D, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incd_z_zs.xml: INCD, INCH, INCW (vector) variant Halfword
# PATTERN x0470c000/mask=xfff0fc00

:inch Zd.H^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11000 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.H & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.H = SVE_inch(Zd.H, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incd_z_zs.xml: INCD, INCH, INCW (vector) variant Word
# PATTERN x04b0c000/mask=xfff0fc00

:incw Zd.S^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b11 & sve_imm4_1619 & sve_b_1115=0b11000 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.S & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.S = SVE_incw(Zd.S, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# incp_r_p_r.xml: INCP (scalar) variant SVE
# PATTERN x252c8800/mask=xff3ffe00

:incp Rd_GPR64, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1011 & sve_b_17=0 & sve_b_16=0 & sve_b_1115=0b10001 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR64
{
	Rd_GPR64 = SVE_incp(Rd_GPR64, Pn.T);
}

# incp_z_p_z.xml: INCP (vector) variant SVE
# PATTERN x252c8000/mask=xff3ffe00

:incp Zd.T, Pn
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1011 & sve_b_17=0 & sve_b_16=0 & sve_b_1115=0b10000 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_zdn_0004 & Zd.T & Pn
{
	Zd.T = SVE_incp(Zd.T, Pn);
}

# index_z_ii.xml: INDEX (immediates) variant SVE
# PATTERN x04204000/mask=xff20fc00

:index Zd.T, "#"^sve_imm5s_0509, "#"^sve_imm5b_1620
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_imm5b_1620 & sve_b_1015=0b010000 & sve_imm5_0509 & sve_zd_0004 & Zd.T & sve_imm5s_0509
{
	Zd.T = SVE_index(Zd.T, sve_imm5s_0509:1, sve_imm5b_1620:1);
}

# index_z_ir.xml: INDEX (immediate, scalar) variant SVE
# PATTERN x04204800/mask=xff20fc00

:index Zd.T, "#"^sve_imm5_1_m16to15, Rm_GPR64
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b010010 & sve_imm5_0509 & sve_zd_0004 & Zd.T & Rm_GPR64 & sve_imm5_1_m16to15
{
	Zd.T = SVE_index(Zd.T, sve_imm5_1_m16to15:1, Rm_GPR64);
}

# index_z_ir.xml: INDEX (immediate, scalar) variant SVE
# PATTERN x04204800/mask=xff20fc00

:index Zd.T, "#"^sve_imm5_1_m16to15, Rm_GPR32
is sve_b_2431=0b00000100 & (b_23=0 | b_22=0) & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b010010 & sve_imm5_0509 & sve_zd_0004 & Zd.T & Rm_GPR32 & sve_imm5_1_m16to15
{
	Zd.T = SVE_index(Zd.T, sve_imm5_1_m16to15:1, Rm_GPR32);
}

# index_z_ri.xml: INDEX (scalar, immediate) variant SVE
# PATTERN x04204400/mask=xff20fc00

:index Zd.T, Rn_GPR64, "#"^sve_imm5_1_m16to15
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_21=1 & sve_imm5_1620 & sve_b_1015=0b010001 & sve_rn_0509 & sve_zd_0004 & Zd.T & Rn_GPR64 & sve_imm5_1_m16to15
{
	Zd.T = SVE_index(Zd.T, Rn_GPR64, sve_imm5_1_m16to15:1);
}

# index_z_ri.xml: INDEX (scalar, immediate) variant SVE
# PATTERN x04204400/mask=xff20fc00

:index Zd.T, Rn_GPR32, "#"^sve_imm5_1_m16to15
is sve_b_2431=0b00000100 & (b_23=0 | b_22=0) & sve_b_21=1 & sve_imm5_1620 & sve_b_1015=0b010001 & sve_rn_0509 & sve_zd_0004 & Zd.T & Rn_GPR32 & sve_imm5_1_m16to15
{
	Zd.T = SVE_index(Zd.T, Rn_GPR32, sve_imm5_1_m16to15:1);
}

# index_z_rr.xml: INDEX (scalars) variant SVE
# PATTERN x04204c00/mask=xff20fc00

:index Zd.T, Rn_GPR64, Rm_GPR64
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b010011 & sve_rn_0509 & sve_zd_0004 & Zd.T & Rn_GPR64 & Rm_GPR64
{
	Zd.T = SVE_index(Zd.T, Rn_GPR64, Rm_GPR64);
}

# index_z_rr.xml: INDEX (scalars) variant SVE
# PATTERN x04204c00/mask=xff20fc00

:index Zd.T, Rn_GPR32, Rm_GPR32
is sve_b_2431=0b00000100 & (b_23=0 | b_22=0) & sve_b_21=1 & sve_rm_1620 & sve_b_1015=0b010011 & sve_rn_0509 & sve_zd_0004 & Zd.T & Rn_GPR32 & Rm_GPR32
{
	Zd.T = SVE_index(Zd.T, Rn_GPR32, Rm_GPR32);
}

# insr_z_r.xml: INSR (scalar) variant SVE
# PATTERN x05243800/mask=xff3ffc00

:insr Zd.T, Rn_GPR64
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1021=0b100100001110 & sve_rm_0509 & sve_zdn_0004 & Zd.T & Rn_GPR64
{
	Zd.T = SVE_insr(Zd.T, Rn_GPR64);
}

# insr_z_r.xml: INSR (scalar) variant SVE
# PATTERN x05243800/mask=xff3ffc00

:insr Zd.T, Rn_GPR32
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1021=0b100100001110 & sve_rm_0509 & sve_zdn_0004 & Zd.T & Rn_GPR32
{
	Zd.T = SVE_insr(Zd.T, Rn_GPR32);
}

# insr_z_v.xml: INSR (SIMD&FP scalar) variant SVE
# PATTERN x05343800/mask=xff3ffc00

:insr Zd.T, Rn_FPR8
is sve_b_2431=0b00000101 & sve_size_2223=0b00 & sve_b_1021=0b110100001110 & sve_vm_0509 & sve_zdn_0004 & Zd.T & Rn_FPR8
{
	Zd.T = SVE_insr(Zd.T, Rn_FPR8);
}

# insr_z_v.xml: INSR (SIMD&FP scalar) variant SVE
# PATTERN x05343800/mask=xff3ffc00

:insr Zd.T, Rn_FPR32
is sve_b_2431=0b00000101 & sve_size_2223=0b10 & sve_b_1021=0b110100001110 & sve_vm_0509 & sve_zdn_0004 & Zd.T & Rn_FPR32
{
	Zd.T = SVE_insr(Zd.T, Rn_FPR32);
}

# insr_z_v.xml: INSR (SIMD&FP scalar) variant SVE
# PATTERN x05343800/mask=xff3ffc00

:insr Zd.T, Rn_FPR16
is sve_b_2431=0b00000101 & sve_size_2223=0b01 & sve_b_1021=0b110100001110 & sve_vm_0509 & sve_zdn_0004 & Zd.T & Rn_FPR16
{
	Zd.T = SVE_insr(Zd.T, Rn_FPR16);
}

# insr_z_v.xml: INSR (SIMD&FP scalar) variant SVE
# PATTERN x05343800/mask=xff3ffc00

:insr Zd.T, Rn_FPR64
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1021=0b110100001110 & sve_vm_0509 & sve_zdn_0004 & Zd.T & Rn_FPR64
{
	Zd.T = SVE_insr(Zd.T, Rn_FPR64);
}

# lasta_r_p_z.xml: LASTA (scalar) variant SVE
# PATTERN x0520a000/mask=xff3fe000

:lasta Rd_GPR64, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b10000 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_rd_0004 & Zn.T & Rd_GPR64 & Pg3
{
	Rd_GPR64 = SVE_lasta(Rd_GPR64, Pg3, Zn.T);
}

# lasta_r_p_z.xml: LASTA (scalar) variant SVE
# PATTERN x0520a000/mask=xff3fe000

:lasta Rd_GPR32, Pg3, Zn.T
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1721=0b10000 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_rd_0004 & Zn.T & Rd_GPR32 & Pg3
{
	Rd_GPR32 = SVE_lasta(Rd_GPR32, Pg3, Zn.T);
}

# lasta_v_p_z.xml: LASTA (SIMD&FP scalar) variant SVE
# PATTERN x05228000/mask=xff3fe000

:lasta Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b00 & sve_b_1721=0b10001 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_lasta(Rd_FPR8, Pg3, Zn.T);
}

# lasta_v_p_z.xml: LASTA (SIMD&FP scalar) variant SVE
# PATTERN x05228000/mask=xff3fe000

:lasta Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b10 & sve_b_1721=0b10001 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_lasta(Rd_FPR32, Pg3, Zn.T);
}

# lasta_v_p_z.xml: LASTA (SIMD&FP scalar) variant SVE
# PATTERN x05228000/mask=xff3fe000

:lasta Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b01 & sve_b_1721=0b10001 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_lasta(Rd_FPR16, Pg3, Zn.T);
}

# lasta_v_p_z.xml: LASTA (SIMD&FP scalar) variant SVE
# PATTERN x05228000/mask=xff3fe000

:lasta Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b10001 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_lasta(Rd_FPR64, Pg3, Zn.T);
}

# lastb_r_p_z.xml: LASTB (scalar) variant SVE
# PATTERN x0521a000/mask=xff3fe000

:lastb Rd_GPR64, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b10000 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_rd_0004 & Zn.T & Rd_GPR64 & Pg3
{
	Rd_GPR64 = SVE_lastb(Rd_GPR64, Pg3, Zn.T);
}

# lastb_r_p_z.xml: LASTB (scalar) variant SVE
# PATTERN x0521a000/mask=xff3fe000

:lastb Rd_GPR32, Pg3, Zn.T
is sve_b_2431=0b00000101 & (b_23=0 | b_22=0) & sve_b_1721=0b10000 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_rd_0004 & Zn.T & Rd_GPR32 & Pg3
{
	Rd_GPR32 = SVE_lastb(Rd_GPR32, Pg3, Zn.T);
}

# lastb_v_p_z.xml: LASTB (SIMD&FP scalar) variant SVE
# PATTERN x05238000/mask=xff3fe000

:lastb Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b00 & sve_b_1721=0b10001 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_lastb(Rd_FPR8, Pg3, Zn.T);
}

# lastb_v_p_z.xml: LASTB (SIMD&FP scalar) variant SVE
# PATTERN x05238000/mask=xff3fe000

:lastb Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b10 & sve_b_1721=0b10001 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_lastb(Rd_FPR32, Pg3, Zn.T);
}

# lastb_v_p_z.xml: LASTB (SIMD&FP scalar) variant SVE
# PATTERN x05238000/mask=xff3fe000

:lastb Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b01 & sve_b_1721=0b10001 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_lastb(Rd_FPR16, Pg3, Zn.T);
}

# lastb_v_p_z.xml: LASTB (SIMD&FP scalar) variant SVE
# PATTERN x05238000/mask=xff3fe000

:lastb Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223=0b11 & sve_b_1721=0b10001 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_lastb(Rd_FPR64, Pg3, Zn.T);
}

# ld1b_z_p_ai.xml: LD1B (vector plus immediate) variant 32-bit element
# PATTERN x8420c000/mask=xffe0e000

:ld1b "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to31]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to31
{
	Zd.S = SVE_ld1b(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to31);
}

# ld1b_z_p_ai.xml: LD1B (vector plus immediate) variant 64-bit element
# PATTERN xc420c000/mask=xffe0e000

:ld1b "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to31]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to31
{
	Zd.D = SVE_ld1b(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to31);
}

# ld1b_z_p_bi.xml: LD1B (scalar plus immediate) variant 8-bit element
# PATTERN xa400a000/mask=xfff0e000

:ld1b "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & sve_mul4_1_m8to7
{
	Zd.B = SVE_ld1b(Zd.B, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1b_z_p_bi.xml: LD1B (scalar plus immediate) variant 16-bit element
# PATTERN xa420a000/mask=xfff0e000

:ld1b "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ld1b(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1b_z_p_bi.xml: LD1B (scalar plus immediate) variant 32-bit element
# PATTERN xa440a000/mask=xfff0e000

:ld1b "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ld1b(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1b_z_p_bi.xml: LD1B (scalar plus immediate) variant 64-bit element
# PATTERN xa460a000/mask=xfff0e000

:ld1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1b(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1b_z_p_br.xml: LD1B (scalar plus scalar) variant 8-bit element
# PATTERN xa4004000/mask=xffe0e000

:ld1b "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & Rm_GPR64
{
	Zd.B = SVE_ld1b(Zd.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1b_z_p_br.xml: LD1B (scalar plus scalar) variant 16-bit element
# PATTERN xa4204000/mask=xffe0e000

:ld1b "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ld1b(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1b_z_p_br.xml: LD1B (scalar plus scalar) variant 32-bit element
# PATTERN xa4404000/mask=xffe0e000

:ld1b "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ld1b(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1b_z_p_br.xml: LD1B (scalar plus scalar) variant 64-bit element
# PATTERN xa4604000/mask=xffe0e000

:ld1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1b(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1b_z_p_bz.xml: LD1B (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4004000/mask=xffa0e000

:ld1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1b(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1b_z_p_bz.xml: LD1B (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84004000/mask=xffa0e000

:ld1b "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1b(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1b_z_p_bz.xml: LD1B (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc440c000/mask=xffe0e000

:ld1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1b(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1d_z_p_ai.xml: LD1D (vector plus immediate) variant SVE
# PATTERN xc5a0c000/mask=xffe0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to248]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to248
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to248);
}

# ld1d_z_p_bi.xml: LD1D (scalar plus immediate) variant SVE
# PATTERN xa5e0a000/mask=xfff0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1d_z_p_br.xml: LD1D (scalar plus scalar) variant SVE
# PATTERN xa5e04000/mask=xffe0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1d_z_p_bz.xml: LD1D (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc5a04000/mask=xffa0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #3"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1d_z_p_bz.xml: LD1D (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc5804000/mask=xffa0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1d_z_p_bz.xml: LD1D (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc5e0c000/mask=xffe0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #3"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1d_z_p_bz.xml: LD1D (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc5c0c000/mask=xffe0e000

:ld1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1h_z_p_ai.xml: LD1H (vector plus immediate) variant 32-bit element
# PATTERN x84a0c000/mask=xffe0e000

:ld1h "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to62]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to62
{
	Zd.S = SVE_ld1h(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to62);
}

# ld1h_z_p_ai.xml: LD1H (vector plus immediate) variant 64-bit element
# PATTERN xc4a0c000/mask=xffe0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to62]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to62
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to62);
}

# ld1h_z_p_bi.xml: LD1H (scalar plus immediate) variant 16-bit element
# PATTERN xa4a0a000/mask=xfff0e000

:ld1h "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ld1h(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1h_z_p_bi.xml: LD1H (scalar plus immediate) variant 32-bit element
# PATTERN xa4c0a000/mask=xfff0e000

:ld1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ld1h(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1h_z_p_bi.xml: LD1H (scalar plus immediate) variant 64-bit element
# PATTERN xa4e0a000/mask=xfff0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1h_z_p_br.xml: LD1H (scalar plus scalar) variant 16-bit element
# PATTERN xa4a04000/mask=xffe0e000

:ld1h "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ld1h(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1h_z_p_br.xml: LD1H (scalar plus scalar) variant 32-bit element
# PATTERN xa4c04000/mask=xffe0e000

:ld1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ld1h(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1h_z_p_br.xml: LD1H (scalar plus scalar) variant 64-bit element
# PATTERN xa4e04000/mask=xffe0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1h_z_p_bz.xml: LD1H (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84a04000/mask=xffa0e000

:ld1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod^" #1"]
is sve_b_2331=0b100001001 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1h(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1h_z_p_bz.xml: LD1H (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4a04000/mask=xffa0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1h_z_p_bz.xml: LD1H (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4804000/mask=xffa0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1h_z_p_bz.xml: LD1H (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84804000/mask=xffa0e000

:ld1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1h(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1h_z_p_bz.xml: LD1H (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc4e0c000/mask=xffe0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1h_z_p_bz.xml: LD1H (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc4c0c000/mask=xffe0e000

:ld1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1rb_z_p_bi.xml: LD1RB variant 8-bit element
# PATTERN x84408000/mask=xffc0e000

:ld1rb "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & sve_opt6_1_0to63
{
	Zd.B = SVE_ld1rb(Zd.B, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rb_z_p_bi.xml: LD1RB variant 16-bit element
# PATTERN x8440a000/mask=xffc0e000

:ld1rb "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_opt6_1_0to63
{
	Zd.H = SVE_ld1rb(Zd.H, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rb_z_p_bi.xml: LD1RB variant 32-bit element
# PATTERN x8440c000/mask=xffc0e000

:ld1rb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_opt6_1_0to63
{
	Zd.S = SVE_ld1rb(Zd.S, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rb_z_p_bi.xml: LD1RB variant 64-bit element
# PATTERN x8440e000/mask=xffc0e000

:ld1rb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to63
{
	Zd.D = SVE_ld1rb(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rd_z_p_bi.xml: LD1RD variant SVE
# PATTERN x85c0e000/mask=xffc0e000

:ld1rd "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to504]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to504
{
	Zd.D = SVE_ld1rd(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to504);
}

# ld1rh_z_p_bi.xml: LD1RH variant 16-bit element
# PATTERN x84c0a000/mask=xffc0e000

:ld1rh "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to126]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_opt6_1_0to126
{
	Zd.H = SVE_ld1rh(Zd.H, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to126);
}

# ld1rh_z_p_bi.xml: LD1RH variant 32-bit element
# PATTERN x84c0c000/mask=xffc0e000

:ld1rh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to126]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_opt6_1_0to126
{
	Zd.S = SVE_ld1rh(Zd.S, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to126);
}

# ld1rh_z_p_bi.xml: LD1RH variant 64-bit element
# PATTERN x84c0e000/mask=xffc0e000

:ld1rh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to126]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to126
{
	Zd.D = SVE_ld1rh(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to126);
}

# ld1rqb_z_p_bi.xml: LD1RQB (scalar plus immediate) variant SVE
# PATTERN xa4002000/mask=xfff0e000

:ld1rqb "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp^sve_opt4_1_m128to112]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b001 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & sve_opt4_1_m128to112
{
	Zd.B = SVE_ld1rqb(Zd.B, Pg3_z, Rn_GPR64xsp, sve_opt4_1_m128to112);
}

# ld1rqb_z_p_br.xml: LD1RQB (scalar plus scalar) variant SVE
# PATTERN xa4000000/mask=xffe0e000

:ld1rqb "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b000 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & Rm_GPR64
{
	Zd.B = SVE_ld1rqb(Zd.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1rqd_z_p_bi.xml: LD1RQD (scalar plus immediate) variant SVE
# PATTERN xa5802000/mask=xfff0e000

:ld1rqd "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt4_1_m128to112]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b001 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt4_1_m128to112
{
	Zd.D = SVE_ld1rqd(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt4_1_m128to112);
}

# ld1rqd_z_p_br.xml: LD1RQD (scalar plus scalar) variant SVE
# PATTERN xa5800000/mask=xffe0e000

:ld1rqd "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b000 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1rqd(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1rqh_z_p_bi.xml: LD1RQH (scalar plus immediate) variant SVE
# PATTERN xa4802000/mask=xfff0e000

:ld1rqh "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_opt4_1_m128to112]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b001 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_opt4_1_m128to112
{
	Zd.H = SVE_ld1rqh(Zd.H, Pg3_z, Rn_GPR64xsp, sve_opt4_1_m128to112);
}

# ld1rqh_z_p_br.xml: LD1RQH (scalar plus scalar) variant SVE
# PATTERN xa4800000/mask=xffe0e000

:ld1rqh "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b000 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ld1rqh(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1rqw_z_p_bi.xml: LD1RQW (scalar plus immediate) variant SVE
# PATTERN xa5002000/mask=xfff0e000

:ld1rqw "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_opt4_1_m128to112]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b001 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_opt4_1_m128to112
{
	Zd.S = SVE_ld1rqw(Zd.S, Pg3_z, Rn_GPR64xsp, sve_opt4_1_m128to112);
}

# ld1rqw_z_p_br.xml: LD1RQW (scalar plus scalar) variant SVE
# PATTERN xa5000000/mask=xffe0e000

:ld1rqw "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b000 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ld1rqw(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1rsb_z_p_bi.xml: LD1RSB variant 16-bit element
# PATTERN x85c0c000/mask=xffc0e000

:ld1rsb "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_opt6_1_0to63
{
	Zd.H = SVE_ld1rsb(Zd.H, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rsb_z_p_bi.xml: LD1RSB variant 32-bit element
# PATTERN x85c0a000/mask=xffc0e000

:ld1rsb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_opt6_1_0to63
{
	Zd.S = SVE_ld1rsb(Zd.S, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rsb_z_p_bi.xml: LD1RSB variant 64-bit element
# PATTERN x85c08000/mask=xffc0e000

:ld1rsb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to63]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to63
{
	Zd.D = SVE_ld1rsb(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to63);
}

# ld1rsh_z_p_bi.xml: LD1RSH variant 32-bit element
# PATTERN x8540a000/mask=xffc0e000

:ld1rsh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to126]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_opt6_1_0to126
{
	Zd.S = SVE_ld1rsh(Zd.S, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to126);
}

# ld1rsh_z_p_bi.xml: LD1RSH variant 64-bit element
# PATTERN x85408000/mask=xffc0e000

:ld1rsh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to126]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to126
{
	Zd.D = SVE_ld1rsh(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to126);
}

# ld1rsw_z_p_bi.xml: LD1RSW variant SVE
# PATTERN x84c08000/mask=xffc0e000

:ld1rsw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to252]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to252
{
	Zd.D = SVE_ld1rsw(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to252);
}

# ld1rw_z_p_bi.xml: LD1RW variant 32-bit element
# PATTERN x8540c000/mask=xffc0e000

:ld1rw "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to252]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_opt6_1_0to252
{
	Zd.S = SVE_ld1rw(Zd.S, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to252);
}

# ld1rw_z_p_bi.xml: LD1RW variant 64-bit element
# PATTERN x8540e000/mask=xffc0e000

:ld1rw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_opt6_1_0to252]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_22=1 & sve_imm6_1621 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_opt6_1_0to252
{
	Zd.D = SVE_ld1rw(Zd.D, Pg3_z, Rn_GPR64xsp, sve_opt6_1_0to252);
}

# ld1sb_z_p_ai.xml: LD1SB (vector plus immediate) variant 32-bit element
# PATTERN x84208000/mask=xffe0e000

:ld1sb "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to31]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to31
{
	Zd.S = SVE_ld1sb(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to31);
}

# ld1sb_z_p_ai.xml: LD1SB (vector plus immediate) variant 64-bit element
# PATTERN xc4208000/mask=xffe0e000

:ld1sb "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to31]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to31
{
	Zd.D = SVE_ld1sb(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to31);
}

# ld1sb_z_p_bi.xml: LD1SB (scalar plus immediate) variant 16-bit element
# PATTERN xa5c0a000/mask=xfff0e000

:ld1sb "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ld1sb(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1sb_z_p_bi.xml: LD1SB (scalar plus immediate) variant 32-bit element
# PATTERN xa5a0a000/mask=xfff0e000

:ld1sb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ld1sb(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1sb_z_p_bi.xml: LD1SB (scalar plus immediate) variant 64-bit element
# PATTERN xa580a000/mask=xfff0e000

:ld1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1sb(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1sb_z_p_br.xml: LD1SB (scalar plus scalar) variant 16-bit element
# PATTERN xa5c04000/mask=xffe0e000

:ld1sb "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ld1sb(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1sb_z_p_br.xml: LD1SB (scalar plus scalar) variant 32-bit element
# PATTERN xa5a04000/mask=xffe0e000

:ld1sb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ld1sb(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1sb_z_p_br.xml: LD1SB (scalar plus scalar) variant 64-bit element
# PATTERN xa5804000/mask=xffe0e000

:ld1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1sb(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1sb_z_p_bz.xml: LD1SB (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4000000/mask=xffa0e000

:ld1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1sb(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1sb_z_p_bz.xml: LD1SB (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84000000/mask=xffa0e000

:ld1sb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1sb(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1sb_z_p_bz.xml: LD1SB (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc4408000/mask=xffe0e000

:ld1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1sb(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1sh_z_p_ai.xml: LD1SH (vector plus immediate) variant 32-bit element
# PATTERN x84a08000/mask=xffe0e000

:ld1sh "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to62]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to62
{
	Zd.S = SVE_ld1sh(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to62);
}

# ld1sh_z_p_ai.xml: LD1SH (vector plus immediate) variant 64-bit element
# PATTERN xc4a08000/mask=xffe0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to62]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to62
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to62);
}

# ld1sh_z_p_bi.xml: LD1SH (scalar plus immediate) variant 32-bit element
# PATTERN xa520a000/mask=xfff0e000

:ld1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ld1sh(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1sh_z_p_bi.xml: LD1SH (scalar plus immediate) variant 64-bit element
# PATTERN xa500a000/mask=xfff0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1sh_z_p_br.xml: LD1SH (scalar plus scalar) variant 32-bit element
# PATTERN xa5204000/mask=xffe0e000

:ld1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ld1sh(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1sh_z_p_br.xml: LD1SH (scalar plus scalar) variant 64-bit element
# PATTERN xa5004000/mask=xffe0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1sh_z_p_bz.xml: LD1SH (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84a00000/mask=xffa0e000

:ld1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod^" #1"]
is sve_b_2331=0b100001001 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1sh(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1sh_z_p_bz.xml: LD1SH (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4a00000/mask=xffa0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1sh_z_p_bz.xml: LD1SH (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4800000/mask=xffa0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1sh_z_p_bz.xml: LD1SH (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84800000/mask=xffa0e000

:ld1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1sh(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1sh_z_p_bz.xml: LD1SH (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc4e08000/mask=xffe0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1sh_z_p_bz.xml: LD1SH (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc4c08000/mask=xffe0e000

:ld1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1sw_z_p_ai.xml: LD1SW (vector plus immediate) variant SVE
# PATTERN xc5208000/mask=xffe0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to124]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to124
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to124);
}

# ld1sw_z_p_bi.xml: LD1SW (scalar plus immediate) variant SVE
# PATTERN xa480a000/mask=xfff0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1sw_z_p_br.xml: LD1SW (scalar plus scalar) variant SVE
# PATTERN xa4804000/mask=xffe0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1sw_z_p_bz.xml: LD1SW (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc5200000/mask=xffa0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1sw_z_p_bz.xml: LD1SW (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc5000000/mask=xffa0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1sw_z_p_bz.xml: LD1SW (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc5608000/mask=xffe0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1sw_z_p_bz.xml: LD1SW (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc5408000/mask=xffe0e000

:ld1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1w_z_p_ai.xml: LD1W (vector plus immediate) variant 32-bit element
# PATTERN x8520c000/mask=xffe0e000

:ld1w "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to124]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to124
{
	Zd.S = SVE_ld1w(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to124);
}

# ld1w_z_p_ai.xml: LD1W (vector plus immediate) variant 64-bit element
# PATTERN xc520c000/mask=xffe0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to124]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to124
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to124);
}

# ld1w_z_p_bi.xml: LD1W (scalar plus immediate) variant 32-bit element
# PATTERN xa540a000/mask=xfff0e000

:ld1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=0 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ld1w(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1w_z_p_bi.xml: LD1W (scalar plus immediate) variant 64-bit element
# PATTERN xa560a000/mask=xfff0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ld1w_z_p_br.xml: LD1W (scalar plus scalar) variant 32-bit element
# PATTERN xa5404000/mask=xffe0e000

:ld1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ld1w(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1w_z_p_br.xml: LD1W (scalar plus scalar) variant 64-bit element
# PATTERN xa5604000/mask=xffe0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld1w_z_p_bz.xml: LD1W (scalar plus vector) variant 32-bit scaled offset
# PATTERN x85204000/mask=xffa0e000

:ld1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod^" #2"]
is sve_b_2331=0b100001010 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1w(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1w_z_p_bz.xml: LD1W (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc5204000/mask=xffa0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1w_z_p_bz.xml: LD1W (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc5004000/mask=xffa0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ld1w_z_p_bz.xml: LD1W (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x85004000/mask=xffa0e000

:ld1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ld1w(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ld1w_z_p_bz.xml: LD1W (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc560c000/mask=xffe0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld1w_z_p_bz.xml: LD1W (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc540c000/mask=xffe0e000

:ld1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ld1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ld2b_z_p_bi.xml: LD2B (scalar plus immediate) variant SVE
# PATTERN xa420e000/mask=xfff0e000

:ld2b "{"^Zt.B, Ztt.B^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zt.B & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m16to14
{
	Zt.B = SVE_ld2b(Zt.B, Ztt.B, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# ld2b_z_p_br.xml: LD2B (scalar plus scalar) variant SVE
# PATTERN xa420c000/mask=xffe0e000

:ld2b "{"^Zt.B, Ztt.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zt.B & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.B = SVE_ld2b(Zt.B, Ztt.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld2d_z_p_bi.xml: LD2D (scalar plus immediate) variant SVE
# PATTERN xa5a0e000/mask=xfff0e000

:ld2d "{"^Zt.D, Ztt.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zt.D & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m16to14
{
	Zt.D = SVE_ld2d(Zt.D, Ztt.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# ld2d_z_p_br.xml: LD2D (scalar plus scalar) variant SVE
# PATTERN xa5a0c000/mask=xffe0e000

:ld2d "{"^Zt.D, Ztt.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zt.D & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.D = SVE_ld2d(Zt.D, Ztt.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld2h_z_p_bi.xml: LD2H (scalar plus immediate) variant SVE
# PATTERN xa4a0e000/mask=xfff0e000

:ld2h "{"^Zt.H, Ztt.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zt.H & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m16to14
{
	Zt.H = SVE_ld2h(Zt.H, Ztt.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# ld2h_z_p_br.xml: LD2H (scalar plus scalar) variant SVE
# PATTERN xa4a0c000/mask=xffe0e000

:ld2h "{"^Zt.H, Ztt.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zt.H & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.H = SVE_ld2h(Zt.H, Ztt.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld2w_z_p_bi.xml: LD2W (scalar plus immediate) variant SVE
# PATTERN xa520e000/mask=xfff0e000

:ld2w "{"^Zt.S, Ztt.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m16to14
{
	Zt.S = SVE_ld2w(Zt.S, Ztt.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# ld2w_z_p_br.xml: LD2W (scalar plus scalar) variant SVE
# PATTERN xa520c000/mask=xffe0e000

:ld2w "{"^Zt.S, Ztt.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.S = SVE_ld2w(Zt.S, Ztt.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld3b_z_p_bi.xml: LD3B (scalar plus immediate) variant SVE
# PATTERN xa440e000/mask=xfff0e000

:ld3b "{"^Zt.B, Ztt.B, Zttt.B^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m24to21
{
	Zt.B = SVE_ld3b(Zt.B, Ztt.B, Zttt.B, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# ld3b_z_p_br.xml: LD3B (scalar plus scalar) variant SVE
# PATTERN xa440c000/mask=xffe0e000

:ld3b "{"^Zt.B, Ztt.B, Zttt.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.B = SVE_ld3b(Zt.B, Ztt.B, Zttt.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld3d_z_p_bi.xml: LD3D (scalar plus immediate) variant SVE
# PATTERN xa5c0e000/mask=xfff0e000

:ld3d "{"^Zt.D, Ztt.D, Zttt.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m24to21
{
	Zt.D = SVE_ld3d(Zt.D, Ztt.D, Zttt.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# ld3d_z_p_br.xml: LD3D (scalar plus scalar) variant SVE
# PATTERN xa5c0c000/mask=xffe0e000

:ld3d "{"^Zt.D, Ztt.D, Zttt.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.D = SVE_ld3d(Zt.D, Ztt.D, Zttt.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld3h_z_p_bi.xml: LD3H (scalar plus immediate) variant SVE
# PATTERN xa4c0e000/mask=xfff0e000

:ld3h "{"^Zt.H, Ztt.H, Zttt.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m24to21
{
	Zt.H = SVE_ld3h(Zt.H, Ztt.H, Zttt.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# ld3h_z_p_br.xml: LD3H (scalar plus scalar) variant SVE
# PATTERN xa4c0c000/mask=xffe0e000

:ld3h "{"^Zt.H, Ztt.H, Zttt.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.H = SVE_ld3h(Zt.H, Ztt.H, Zttt.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld3w_z_p_bi.xml: LD3W (scalar plus immediate) variant SVE
# PATTERN xa540e000/mask=xfff0e000

:ld3w "{"^Zt.S, Ztt.S, Zttt.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m24to21
{
	Zt.S = SVE_ld3w(Zt.S, Ztt.S, Zttt.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# ld3w_z_p_br.xml: LD3W (scalar plus scalar) variant SVE
# PATTERN xa540c000/mask=xffe0e000

:ld3w "{"^Zt.S, Ztt.S, Zttt.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.S = SVE_ld3w(Zt.S, Ztt.S, Zttt.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld4b_z_p_bi.xml: LD4B (scalar plus immediate) variant SVE
# PATTERN xa460e000/mask=xfff0e000

:ld4b "{"^Zt.B, Ztt.B, Zttt.B, Ztttt.B^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b11 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Ztttt.B & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m32to28
{
	Zt.B = SVE_ld4b(Zt.B, Ztt.B, Zttt.B, Ztttt.B, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# ld4b_z_p_br.xml: LD4B (scalar plus scalar) variant SVE
# PATTERN xa460c000/mask=xffe0e000

:ld4b "{"^Zt.B, Ztt.B, Zttt.B, Ztttt.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Ztttt.B & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.B = SVE_ld4b(Zt.B, Ztt.B, Zttt.B, Ztttt.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld4d_z_p_bi.xml: LD4D (scalar plus immediate) variant SVE
# PATTERN xa5e0e000/mask=xfff0e000

:ld4d "{"^Zt.D, Ztt.D, Zttt.D, Ztttt.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b11 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Ztttt.D & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m32to28
{
	Zt.D = SVE_ld4d(Zt.D, Ztt.D, Zttt.D, Ztttt.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# ld4d_z_p_br.xml: LD4D (scalar plus scalar) variant SVE
# PATTERN xa5e0c000/mask=xffe0e000

:ld4d "{"^Zt.D, Ztt.D, Zttt.D, Ztttt.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Ztttt.D & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.D = SVE_ld4d(Zt.D, Ztt.D, Zttt.D, Ztttt.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld4h_z_p_bi.xml: LD4H (scalar plus immediate) variant SVE
# PATTERN xa4e0e000/mask=xfff0e000

:ld4h "{"^Zt.H, Ztt.H, Zttt.H, Ztttt.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Ztttt.H & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m32to28
{
	Zt.H = SVE_ld4h(Zt.H, Ztt.H, Zttt.H, Ztttt.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# ld4h_z_p_br.xml: LD4H (scalar plus scalar) variant SVE
# PATTERN xa4e0c000/mask=xffe0e000

:ld4h "{"^Zt.H, Ztt.H, Zttt.H, Ztttt.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Ztttt.H & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.H = SVE_ld4h(Zt.H, Ztt.H, Zttt.H, Ztttt.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ld4w_z_p_bi.xml: LD4W (scalar plus immediate) variant SVE
# PATTERN xa560e000/mask=xfff0e000

:ld4w "{"^Zt.S, Ztt.S, Zttt.S, Ztttt.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Ztttt.S & Rn_GPR64xsp & Pg3_z & sve_mul4_1_m32to28
{
	Zt.S = SVE_ld4w(Zt.S, Ztt.S, Zttt.S, Ztttt.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# ld4w_z_p_br.xml: LD4W (scalar plus scalar) variant SVE
# PATTERN xa560c000/mask=xffe0e000

:ld4w "{"^Zt.S, Ztt.S, Zttt.S, Ztttt.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Ztttt.S & Rn_GPR64xsp & Pg3_z & Rm_GPR64
{
	Zt.S = SVE_ld4w(Zt.S, Ztt.S, Zttt.S, Ztttt.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1b_z_p_ai.xml: LDFF1B (vector plus immediate) variant 32-bit element
# PATTERN x8420e000/mask=xffe0e000

:ldff1b "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to31]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to31
{
	Zd.S = SVE_ldff1b(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to31);
}

# ldff1b_z_p_ai.xml: LDFF1B (vector plus immediate) variant 64-bit element
# PATTERN xc420e000/mask=xffe0e000

:ldff1b "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to31]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to31
{
	Zd.D = SVE_ldff1b(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to31);
}

# ldff1b_z_p_br.xml: LDFF1B (scalar plus scalar) variant 8-bit element
# PATTERN xa4006000/mask=xffe0e000

:ldff1b "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & Rm_GPR64
{
	Zd.B = SVE_ldff1b(Zd.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1b_z_p_br.xml: LDFF1B (scalar plus scalar) variant 16-bit element
# PATTERN xa4206000/mask=xffe0e000

:ldff1b "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ldff1b(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1b_z_p_br.xml: LDFF1B (scalar plus scalar) variant 32-bit element
# PATTERN xa4406000/mask=xffe0e000

:ldff1b "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ldff1b(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1b_z_p_br.xml: LDFF1B (scalar plus scalar) variant 64-bit element
# PATTERN xa4606000/mask=xffe0e000

:ldff1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1b(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1b_z_p_bz.xml: LDFF1B (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4006000/mask=xffa0e000

:ldff1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1b(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1b_z_p_bz.xml: LDFF1B (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84006000/mask=xffa0e000

:ldff1b "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1b(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1b_z_p_bz.xml: LDFF1B (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc440e000/mask=xffe0e000

:ldff1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1b(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1d_z_p_ai.xml: LDFF1D (vector plus immediate) variant SVE
# PATTERN xc5a0e000/mask=xffe0e000

:ldff1d "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to248]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to248
{
	Zd.D = SVE_ldff1d(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to248);
}

# ldff1d_z_p_br.xml: LDFF1D (scalar plus scalar) variant SVE
# PATTERN xa5e06000/mask=xffe0e000

:ldff1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1d(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1d_z_p_bz.xml: LDFF1D (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc5a06000/mask=xffa0e000

:ldff1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #3"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1d_z_p_bz.xml: LDFF1D (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc5806000/mask=xffa0e000

:ldff1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1d_z_p_bz.xml: LDFF1D (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc5e0e000/mask=xffe0e000

:ldff1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #3"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1d_z_p_bz.xml: LDFF1D (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc5c0e000/mask=xffe0e000

:ldff1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1d(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1h_z_p_ai.xml: LDFF1H (vector plus immediate) variant 32-bit element
# PATTERN x84a0e000/mask=xffe0e000

:ldff1h "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to62]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to62
{
	Zd.S = SVE_ldff1h(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to62);
}

# ldff1h_z_p_ai.xml: LDFF1H (vector plus immediate) variant 64-bit element
# PATTERN xc4a0e000/mask=xffe0e000

:ldff1h "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to62]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to62
{
	Zd.D = SVE_ldff1h(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to62);
}

# ldff1h_z_p_br.xml: LDFF1H (scalar plus scalar) variant 16-bit element
# PATTERN xa4a06000/mask=xffe0e000

:ldff1h "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ldff1h(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1h_z_p_br.xml: LDFF1H (scalar plus scalar) variant 32-bit element
# PATTERN xa4c06000/mask=xffe0e000

:ldff1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ldff1h(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1h_z_p_br.xml: LDFF1H (scalar plus scalar) variant 64-bit element
# PATTERN xa4e06000/mask=xffe0e000

:ldff1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1h(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1h_z_p_bz.xml: LDFF1H (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84a06000/mask=xffa0e000

:ldff1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod^" #1"]
is sve_b_2331=0b100001001 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1h(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1h_z_p_bz.xml: LDFF1H (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4a06000/mask=xffa0e000

:ldff1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1h_z_p_bz.xml: LDFF1H (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4806000/mask=xffa0e000

:ldff1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1h_z_p_bz.xml: LDFF1H (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84806000/mask=xffa0e000

:ldff1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1h(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1h_z_p_bz.xml: LDFF1H (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc4e0e000/mask=xffe0e000

:ldff1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1h_z_p_bz.xml: LDFF1H (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc4c0e000/mask=xffe0e000

:ldff1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1h(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1sb_z_p_ai.xml: LDFF1SB (vector plus immediate) variant 32-bit element
# PATTERN x8420a000/mask=xffe0e000

:ldff1sb "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to31]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to31
{
	Zd.S = SVE_ldff1sb(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to31);
}

# ldff1sb_z_p_ai.xml: LDFF1SB (vector plus immediate) variant 64-bit element
# PATTERN xc420a000/mask=xffe0e000

:ldff1sb "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to31]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to31
{
	Zd.D = SVE_ldff1sb(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to31);
}

# ldff1sb_z_p_br.xml: LDFF1SB (scalar plus scalar) variant 16-bit element
# PATTERN xa5c06000/mask=xffe0e000

:ldff1sb "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ldff1sb(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1sb_z_p_br.xml: LDFF1SB (scalar plus scalar) variant 32-bit element
# PATTERN xa5a06000/mask=xffe0e000

:ldff1sb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ldff1sb(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1sb_z_p_br.xml: LDFF1SB (scalar plus scalar) variant 64-bit element
# PATTERN xa5806000/mask=xffe0e000

:ldff1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1sb(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1sb_z_p_bz.xml: LDFF1SB (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4002000/mask=xffa0e000

:ldff1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1sb(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1sb_z_p_bz.xml: LDFF1SB (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84002000/mask=xffa0e000

:ldff1sb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1sb(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1sb_z_p_bz.xml: LDFF1SB (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc440a000/mask=xffe0e000

:ldff1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1sb(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1sh_z_p_ai.xml: LDFF1SH (vector plus immediate) variant 32-bit element
# PATTERN x84a0a000/mask=xffe0e000

:ldff1sh "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to62]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to62
{
	Zd.S = SVE_ldff1sh(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to62);
}

# ldff1sh_z_p_ai.xml: LDFF1SH (vector plus immediate) variant 64-bit element
# PATTERN xc4a0a000/mask=xffe0e000

:ldff1sh "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to62]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to62
{
	Zd.D = SVE_ldff1sh(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to62);
}

# ldff1sh_z_p_br.xml: LDFF1SH (scalar plus scalar) variant 32-bit element
# PATTERN xa5206000/mask=xffe0e000

:ldff1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ldff1sh(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1sh_z_p_br.xml: LDFF1SH (scalar plus scalar) variant 64-bit element
# PATTERN xa5006000/mask=xffe0e000

:ldff1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1sh_z_p_bz.xml: LDFF1SH (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84a02000/mask=xffa0e000

:ldff1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod^" #1"]
is sve_b_2331=0b100001001 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1sh(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1sh_z_p_bz.xml: LDFF1SH (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4a02000/mask=xffa0e000

:ldff1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1sh_z_p_bz.xml: LDFF1SH (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc4802000/mask=xffa0e000

:ldff1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1sh_z_p_bz.xml: LDFF1SH (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x84802000/mask=xffa0e000

:ldff1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1sh(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1sh_z_p_bz.xml: LDFF1SH (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc4e0a000/mask=xffe0e000

:ldff1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #1"]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1sh_z_p_bz.xml: LDFF1SH (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc4c0a000/mask=xffe0e000

:ldff1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1sh(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1sw_z_p_ai.xml: LDFF1SW (vector plus immediate) variant SVE
# PATTERN xc520a000/mask=xffe0e000

:ldff1sw "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to124]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to124
{
	Zd.D = SVE_ldff1sw(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to124);
}

# ldff1sw_z_p_br.xml: LDFF1SW (scalar plus scalar) variant SVE
# PATTERN xa4806000/mask=xffe0e000

:ldff1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1sw_z_p_bz.xml: LDFF1SW (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc5202000/mask=xffa0e000

:ldff1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1sw_z_p_bz.xml: LDFF1SW (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc5002000/mask=xffa0e000

:ldff1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1sw_z_p_bz.xml: LDFF1SW (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc560a000/mask=xffe0e000

:ldff1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1sw_z_p_bz.xml: LDFF1SW (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc540a000/mask=xffe0e000

:ldff1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1sw(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1w_z_p_ai.xml: LDFF1W (vector plus immediate) variant 32-bit element
# PATTERN x8520e000/mask=xffe0e000

:ldff1w "{"^Zd.S^"}", Pg3_z, [Zn.S^sve_opt5_1_0to124]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Pg3_z & Zd.S & sve_opt5_1_0to124
{
	Zd.S = SVE_ldff1w(Zd.S, Pg3_z, Zn.S, sve_opt5_1_0to124);
}

# ldff1w_z_p_ai.xml: LDFF1W (vector plus immediate) variant 64-bit element
# PATTERN xc520e000/mask=xffe0e000

:ldff1w "{"^Zd.D^"}", Pg3_z, [Zn.D^sve_opt5_1_0to124]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_imm5_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Pg3_z & Zd.D & sve_opt5_1_0to124
{
	Zd.D = SVE_ldff1w(Zd.D, Pg3_z, Zn.D, sve_opt5_1_0to124);
}

# ldff1w_z_p_br.xml: LDFF1W (scalar plus scalar) variant 32-bit element
# PATTERN xa5406000/mask=xffe0e000

:ldff1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=0 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ldff1w(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1w_z_p_br.xml: LDFF1W (scalar plus scalar) variant 64-bit element
# PATTERN xa5606000/mask=xffe0e000

:ldff1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldff1w(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldff1w_z_p_bz.xml: LDFF1W (scalar plus vector) variant 32-bit scaled offset
# PATTERN x85206000/mask=xffa0e000

:ldff1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod^" #2"]
is sve_b_2331=0b100001010 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1w(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1w_z_p_bz.xml: LDFF1W (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc5206000/mask=xffa0e000

:ldff1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod^" #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1w_z_p_bz.xml: LDFF1W (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xc5006000/mask=xffa0e000

:ldff1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D & sve_mod
{
	Zd.D = SVE_ldff1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# ldff1w_z_p_bz.xml: LDFF1W (scalar plus vector) variant 32-bit unscaled offset
# PATTERN x85006000/mask=xffa0e000

:ldff1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_xs_22 & sve_b_21=0 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.S & Zd.S & sve_mod
{
	Zd.S = SVE_ldff1w(Zd.S, Pg3_z, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# ldff1w_z_p_bz.xml: LDFF1W (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc560e000/mask=xffe0e000

:ldff1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D, "lsl #2"]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldff1w_z_p_bz.xml: LDFF1W (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xc540e000/mask=xffe0e000

:ldff1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zm.D & Zd.D
{
	Zd.D = SVE_ldff1w(Zd.D, Pg3_z, Rn_GPR64xsp, Zm.D);
}

# ldnf1b_z_p_bi.xml: LDNF1B variant 8-bit element
# PATTERN xa410a000/mask=xfff0e000

:ldnf1b "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & sve_mul4_1_m8to7
{
	Zd.B = SVE_ldnf1b(Zd.B, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1b_z_p_bi.xml: LDNF1B variant 16-bit element
# PATTERN xa430a000/mask=xfff0e000

:ldnf1b "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b000 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ldnf1b(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1b_z_p_bi.xml: LDNF1B variant 32-bit element
# PATTERN xa450a000/mask=xfff0e000

:ldnf1b "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ldnf1b(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1b_z_p_bi.xml: LDNF1B variant 64-bit element
# PATTERN xa470a000/mask=xfff0e000

:ldnf1b "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b001 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1b(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1d_z_p_bi.xml: LDNF1D variant SVE
# PATTERN xa5f0a000/mask=xfff0e000

:ldnf1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1d(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1h_z_p_bi.xml: LDNF1H variant 16-bit element
# PATTERN xa4b0a000/mask=xfff0e000

:ldnf1h "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ldnf1h(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1h_z_p_bi.xml: LDNF1H variant 32-bit element
# PATTERN xa4d0a000/mask=xfff0e000

:ldnf1h "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ldnf1h(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1h_z_p_bi.xml: LDNF1H variant 64-bit element
# PATTERN xa4f0a000/mask=xfff0e000

:ldnf1h "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b011 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1h(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1sb_z_p_bi.xml: LDNF1SB variant 16-bit element
# PATTERN xa5d0a000/mask=xfff0e000

:ldnf1sb "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b111 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ldnf1sb(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1sb_z_p_bi.xml: LDNF1SB variant 32-bit element
# PATTERN xa5b0a000/mask=xfff0e000

:ldnf1sb "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ldnf1sb(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1sb_z_p_bi.xml: LDNF1SB variant 64-bit element
# PATTERN xa590a000/mask=xfff0e000

:ldnf1sb "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b110 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1sb(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1sh_z_p_bi.xml: LDNF1SH variant 32-bit element
# PATTERN xa530a000/mask=xfff0e000

:ldnf1sh "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ldnf1sh(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1sh_z_p_bi.xml: LDNF1SH variant 64-bit element
# PATTERN xa510a000/mask=xfff0e000

:ldnf1sh "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b100 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1sh(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1sw_z_p_bi.xml: LDNF1SW variant SVE
# PATTERN xa490a000/mask=xfff0e000

:ldnf1sw "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b010 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1sw(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1w_z_p_bi.xml: LDNF1W variant 32-bit element
# PATTERN xa550a000/mask=xfff0e000

:ldnf1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=0 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ldnf1w(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnf1w_z_p_bi.xml: LDNF1W variant 64-bit element
# PATTERN xa570a000/mask=xfff0e000

:ldnf1w "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_2224=0b101 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnf1w(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnt1b_z_p_bi.xml: LDNT1B (scalar plus immediate) variant SVE
# PATTERN xa400e000/mask=xfff0e000

:ldnt1b "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2022=0b000 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & sve_mul4_1_m8to7
{
	Zd.B = SVE_ldnt1b(Zd.B, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnt1b_z_p_br.xml: LDNT1B (scalar plus scalar) variant SVE
# PATTERN xa400c000/mask=xffe0e000

:ldnt1b "{"^Zd.B^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.B & Rm_GPR64
{
	Zd.B = SVE_ldnt1b(Zd.B, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldnt1d_z_p_bi.xml: LDNT1D (scalar plus immediate) variant SVE
# PATTERN xa580e000/mask=xfff0e000

:ldnt1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2022=0b000 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & sve_mul4_1_m8to7
{
	Zd.D = SVE_ldnt1d(Zd.D, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnt1d_z_p_br.xml: LDNT1D (scalar plus scalar) variant SVE
# PATTERN xa580c000/mask=xffe0e000

:ldnt1d "{"^Zd.D^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.D & Rm_GPR64
{
	Zd.D = SVE_ldnt1d(Zd.D, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldnt1h_z_p_bi.xml: LDNT1H (scalar plus immediate) variant SVE
# PATTERN xa480e000/mask=xfff0e000

:ldnt1h "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2022=0b000 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & sve_mul4_1_m8to7
{
	Zd.H = SVE_ldnt1h(Zd.H, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnt1h_z_p_br.xml: LDNT1H (scalar plus scalar) variant SVE
# PATTERN xa480c000/mask=xffe0e000

:ldnt1h "{"^Zd.H^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1010010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.H & Rm_GPR64
{
	Zd.H = SVE_ldnt1h(Zd.H, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldnt1w_z_p_bi.xml: LDNT1W (scalar plus immediate) variant SVE
# PATTERN xa500e000/mask=xfff0e000

:ldnt1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2022=0b000 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & sve_mul4_1_m8to7
{
	Zd.S = SVE_ldnt1w(Zd.S, Pg3_z, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# ldnt1w_z_p_br.xml: LDNT1W (scalar plus scalar) variant SVE
# PATTERN xa500c000/mask=xffe0e000

:ldnt1w "{"^Zd.S^"}", Pg3_z, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1010010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Pg3_z & Zd.S & Rm_GPR64
{
	Zd.S = SVE_ldnt1w(Zd.S, Pg3_z, Rn_GPR64xsp, Rm_GPR64);
}

# ldr_p_bi.xml: LDR (predicate) variant SVE
# PATTERN x85800000/mask=xffc0e010

:ldr Pd, [Rn_GPR64xsp^sve_mul9_2_m256to255]
is sve_b_2231=0b1000010110 & sve_imm9h_1621 & sve_b_1315=0b000 & sve_imm9l_1012 & sve_rn_0509 & sve_b_04=0 & sve_pt_0003 & Rn_GPR64xsp & sve_mul9_2_m256to255 & Pd
{
	Pd = SVE_ldr(Pd, Rn_GPR64xsp, sve_mul9_2_m256to255);
}

# ldr_z_bi.xml: LDR (vector) variant SVE
# PATTERN x85804000/mask=xffc0e000

:ldr Zd, [Rn_GPR64xsp^sve_mul9_2_m256to255]
is sve_b_2231=0b1000010110 & sve_imm9h_1621 & sve_b_1315=0b010 & sve_imm9l_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & sve_mul9_2_m256to255 & Zd
{
	Zd = SVE_ldr(Zd, Rn_GPR64xsp, sve_mul9_2_m256to255);
}

# lsl_z_p_zi.xml: LSL (immediate, predicated) variant SVE
# PATTERN x04038000/mask=xff3fe000

:lsl Zd.T_tszh, Pg3_m, Zd.T_tszh_2, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_1921=0b000 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_tszl_0809 & sve_imm3_0507 & sve_zdn_0004 & sve_imm_shift & Zd.T_tszh & Zd.T_tszh_2 & Pg3_m
{
	Zd.T_tszh = SVE_lsl(Zd.T_tszh, Pg3_m, Zd.T_tszh_2, sve_imm_shift:1);
}

# lsl_z_p_zw.xml: LSL (wide elements, predicated) variant SVE
# PATTERN x041b8000/mask=xff3fe000

:lsl Zd.T, Pg3_m, Zd.T_2, Zn.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Pg3_m & Zn.D
{
	Zd.T = SVE_lsl(Zd.T, Pg3_m, Zd.T_2, Zn.D);
}

# lsl_z_p_zz.xml: LSL (vectors) variant SVE
# PATTERN x04138000/mask=xff3fe000

:lsl Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_lsl(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# lsl_z_zi.xml: LSL (immediate, unpredicated) variant SVE
# PATTERN x04209c00/mask=xff20fc00

:lsl Zd.T_tszh, Zn.T_tszh, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_21=1 & sve_tszl_1920 & sve_imm3_1618 & sve_b_1215=0b1001 & sve_b_11=1 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & sve_imm_shift & Zd.T_tszh & Zn.T_tszh
{
	Zd.T_tszh = SVE_lsl(Zd.T_tszh, Zn.T_tszh, sve_imm_shift:1);
}

# lsl_z_zw.xml: LSL (wide elements, unpredicated) variant SVE
# PATTERN x04208c00/mask=xff20fc00

:lsl Zd.T, Zn.T, Zm.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1215=0b1000 & sve_b_11=1 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Zm.D
{
	Zd.T = SVE_lsl(Zd.T, Zn.T, Zm.D);
}

# lslr_z_p_zz.xml: LSLR variant SVE
# PATTERN x04178000/mask=xff3fe000

:lslr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_lslr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# lsr_z_p_zi.xml: LSR (immediate, predicated) variant SVE
# PATTERN x04018000/mask=xff3fe000

:lsr Zd.T_tszh, Pg3_m, Zd.T_tszh_2, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_tszl_0809 & sve_imm3_0507 & sve_zdn_0004 & sve_imm_shift & Zd.T_tszh & Zd.T_tszh_2 & Pg3_m
{
	Zd.T_tszh = SVE_lsr(Zd.T_tszh, Pg3_m, Zd.T_tszh_2, sve_imm_shift:1);
}

# lsr_z_p_zw.xml: LSR (wide elements, predicated) variant SVE
# PATTERN x04198000/mask=xff3fe000

:lsr Zd.T, Pg3_m, Zd.T_2, Zn.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Pg3_m & Zn.D
{
	Zd.T = SVE_lsr(Zd.T, Pg3_m, Zd.T_2, Zn.D);
}

# lsr_z_p_zz.xml: LSR (vectors) variant SVE
# PATTERN x04118000/mask=xff3fe000

:lsr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_lsr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# lsr_z_zi.xml: LSR (immediate, unpredicated) variant SVE
# PATTERN x04209400/mask=xff20fc00

:lsr Zd.T_tszh, Zn.T_tszh, "#"^sve_imm_shift
is sve_b_2431=0b00000100 & sve_tszh_2223 & sve_b_21=1 & sve_tszl_1920 & sve_imm3_1618 & sve_b_1215=0b1001 & sve_b_11=0 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & sve_imm_shift & Zd.T_tszh & Zn.T_tszh
{
	Zd.T_tszh = SVE_lsr(Zd.T_tszh, Zn.T_tszh, sve_imm_shift:1);
}

# lsr_z_zw.xml: LSR (wide elements, unpredicated) variant SVE
# PATTERN x04208400/mask=xff20fc00

:lsr Zd.T, Zn.T, Zm.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1215=0b1000 & sve_b_11=0 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Zm.D
{
	Zd.T = SVE_lsr(Zd.T, Zn.T, Zm.D);
}

# lsrr_z_p_zz.xml: LSRR variant SVE
# PATTERN x04158000/mask=xff3fe000

:lsrr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_lsrr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# mad_z_p_zzz.xml: MAD variant SVE
# PATTERN x0400c000/mask=xff20e000

:mad Zd.T, Pg3_m, Zm.T, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1415=0b11 & sve_b_13=0 & sve_pg_1012 & sve_za_0509 & sve_zdn_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_mad(Zd.T, Pg3_m, Zm.T, Zn.T);
}

# mla_z_p_zzz.xml: MLA variant SVE
# PATTERN x04004000/mask=xff20e000

:mla Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1415=0b01 & sve_b_13=0 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_mla(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# mls_z_p_zzz.xml: MLS variant SVE
# PATTERN x04006000/mask=xff20e000

:mls Zd.T, Pg3_m, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1415=0b01 & sve_b_13=1 & sve_pg_1012 & sve_zn_0509 & sve_zda_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_mls(Zd.T, Pg3_m, Zn.T, Zm.T);
}

# mov_and_p_p_pp.xml: MOV (predicate, predicated, zeroing) variant Not flag setting
# ALIASEDBY AND <Pd>.B, <Pg>/Z, <Pn>.B, <Pn>.B if S == '0' && Pn == Pm
# PATTERN x25004000/mask=xfff0c210

# SKIPPING mov_and_p_p_pp.xml because x25004000/mask=xfff0c210 has already been defined

# mov_cpy_z_p_i.xml: MOV (immediate, predicated) variant SVE
# ALIASEDBY CPY <Zd>.<T>, <Pg>/<ZM>, #<imm>{, <shift>} if Unconditionally
# PATTERN x05100000/mask=xff308000

# SKIPPING mov_cpy_z_p_i.xml because x05100000/mask=xff308000 has already been defined

# mov_cpy_z_p_r.xml: MOV (scalar, predicated) variant SVE
# ALIASEDBY CPY <Zd>.<T>, <Pg>/M, <R><n|SP> if Unconditionally
# PATTERN x0528a000/mask=xff3fe000

# SKIPPING mov_cpy_z_p_r.xml because x0528a000/mask=xff3fe000 has already been defined

# mov_cpy_z_p_v.xml: MOV (SIMD&FP scalar, predicated) variant SVE
# ALIASEDBY CPY <Zd>.<T>, <Pg>/M, <V><n> if Unconditionally
# PATTERN x05208000/mask=xff3fe000

# SKIPPING mov_cpy_z_p_v.xml because x05208000/mask=xff3fe000 has already been defined

# mov_dup_z_i.xml: MOV (immediate, unpredicated) variant SVE
# ALIASEDBY DUP <Zd>.<T>, #<imm>{, <shift>} if Unconditionally
# PATTERN x2538c000/mask=xff3fc000

# SKIPPING mov_dup_z_i.xml because x2538c000/mask=xff3fc000 has already been defined

# mov_dup_z_r.xml: MOV (scalar, unpredicated) variant SVE
# ALIASEDBY DUP <Zd>.<T>, <R><n|SP> if Unconditionally
# PATTERN x05203800/mask=xff3ffc00

# SKIPPING mov_dup_z_r.xml because x05203800/mask=xff3ffc00 has already been defined

# mov_dup_z_zi.xml: MOV (SIMD&FP scalar, unpredicated) variant SVE
# ALIASEDBY DUP <Zd>.<T>, <Zn>.<T>[0] if BitCount(imm2:tsz) == 1
# ALIASEDBY DUP <Zd>.<T>, <Zn>.<T>[<imm>] if BitCount(imm2:tsz) > 1
# PATTERN 

# SKIPPING mov_dup_z_zi.xml because there is a mismatch between the XML asmtemplate(4) and regdiagram(1)

# mov_dupm_z_i.xml: MOV (bitmask immediate) variant SVE
# ALIASEDBY DUPM <Zd>.<T>, #<const> if SVEMoveMaskPreferred(imm13)
# PATTERN x05c00000/mask=xfffc0000

# SKIPPING mov_dupm_z_i.xml because x05c00000/mask=xfffc0000 has already been defined

# mov_orr_p_p_pp.xml: MOV (predicate, unpredicated) variant Not flag setting
# ALIASEDBY ORR <Pd>.B, <Pn>/Z, <Pn>.B, <Pn>.B if S == '0' && Pn == Pm && Pm == Pg
# PATTERN x25804000/mask=xfff0c210

# SKIPPING mov_orr_p_p_pp.xml because it is an alias:

# mov_orr_z_zz.xml: MOV (vector, unpredicated) variant SVE
# ALIASEDBY ORR <Zd>.D, <Zn>.D, <Zn>.D if Zn == Zm
# PATTERN x04603000/mask=xffe0fc00

# SKIPPING mov_orr_z_zz.xml because it is an alias:

# mov_sel_p_p_pp.xml: MOV (predicate, predicated, merging) variant SVE
# ALIASEDBY SEL <Pd>.B, <Pg>, <Pn>.B, <Pd>.B if Pd == Pm
# PATTERN x25004210/mask=xfff0c210

# SKIPPING mov_sel_p_p_pp.xml because it is an alias:

# mov_sel_z_p_zz.xml: MOV (vector, predicated) variant SVE
# ALIASEDBY SEL <Zd>.<T>, <Pg>, <Zn>.<T>, <Zd>.<T> if Zd == Zm
# PATTERN x0520c000/mask=xff20c000

# SKIPPING mov_sel_z_p_zz.xml because it is an alias:

# movprfx_z_p_z.xml: MOVPRFX (predicated) variant SVE
# PATTERN x04102000/mask=xff3ee000

:movprfx Zd.T, Pg3_zm, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=0 & sve_m_16 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Pg3_zm & Zd.T & Zn.T
{
	Zd.T = SVE_movprfx(Zd.T, Pg3_zm, Zn.T);
}

# movprfx_z_z.xml: MOVPRFX (unpredicated) variant SVE
# PATTERN x0420bc00/mask=xfffffc00

:movprfx Zd, Zn
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_1720=0b0000 & sve_b_16=0 & sve_b_1015=0b101111 & sve_zn_0509 & sve_zd_0004 & Zn & Zd
{
	Zd = SVE_movprfx(Zd, Zn);
}

# movs_and_p_p_pp.xml: MOVS (predicated) variant Flag setting
# ALIASEDBY ANDS <Pd>.B, <Pg>/Z, <Pn>.B, <Pn>.B if S == '1' && Pn == Pm
# PATTERN x25404000/mask=xfff0c210

# SKIPPING movs_and_p_p_pp.xml because x25404000/mask=xfff0c210 has already been defined

# movs_orr_p_p_pp.xml: MOVS (unpredicated) variant Flag setting
# ALIASEDBY ORRS <Pd>.B, <Pn>/Z, <Pn>.B, <Pn>.B if S == '1' && Pn == Pm && Pm == Pg
# PATTERN x25c04000/mask=xfff0c210

# SKIPPING movs_orr_p_p_pp.xml because it is an alias:

# msb_z_p_zzz.xml: MSB variant SVE
# PATTERN x0400e000/mask=xff20e000

:msb Zd.T, Pg3_m, Zm.T, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=0 & sve_zm_1620 & sve_b_1415=0b11 & sve_b_13=1 & sve_pg_1012 & sve_za_0509 & sve_zdn_0004 & Zd.T & Zm.T & Zn.T & Pg3_m
{
	Zd.T = SVE_msb(Zd.T, Pg3_m, Zm.T, Zn.T);
}

# mul_z_p_zz.xml: MUL (vectors) variant SVE
# PATTERN x04100000/mask=xff3fe000

:mul Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_mul(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# mul_z_zi.xml: MUL (immediate) variant SVE
# PATTERN x2530c000/mask=xff3fe000

:mul Zd.T, Zd.T_2, "#"^sve_imm8_1_m128to127
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b110 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1415=0b11 & sve_b_13=0 & sve_imm8_0512 & sve_zdn_0004 & Zd.T & Zd.T_2 & sve_imm8_1_m128to127
{
	Zd.T = SVE_mul(Zd.T, Zd.T_2, sve_imm8_1_m128to127:1);
}

# nand_p_p_pp.xml: NAND, NANDS variant Flag setting
# PATTERN x25c04210/mask=xfff0c210

:nands Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_nands(Pd.B, Pg_z, Pn.B, Pm.B);
}

# nand_p_p_pp.xml: NAND, NANDS variant Not flag setting
# PATTERN x25804210/mask=xfff0c210

:nand Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_nand(Pd.B, Pg_z, Pn.B, Pm.B);
}

# neg_z_p_z.xml: NEG variant SVE
# PATTERN x0417a000/mask=xff3fe000

:neg Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_neg(Zd.T, Pg3_m, Zn.T);
}

# nor_p_p_pp.xml: NOR, NORS variant Flag setting
# PATTERN x25c04200/mask=xfff0c210

:nors Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_nors(Pd.B, Pg_z, Pn.B, Pm.B);
}

# nor_p_p_pp.xml: NOR, NORS variant Not flag setting
# PATTERN x25804200/mask=xfff0c210

:nor Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_nor(Pd.B, Pg_z, Pn.B, Pm.B);
}

# not_eor_p_p_pp.xml: NOT (predicate) variant Not flag setting
# ALIASEDBY EOR <Pd>.B, <Pg>/Z, <Pn>.B, <Pg>.B if Pm == Pg
# PATTERN x25004200/mask=xfff0c210

# SKIPPING not_eor_p_p_pp.xml because x25004200/mask=xfff0c210 has already been defined

# not_z_p_z.xml: NOT (vector) variant SVE
# PATTERN x041ea000/mask=xff3fe000

:not Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_not(Zd.T, Pg3_m, Zn.T);
}

# nots_eor_p_p_pp.xml: NOTS variant Flag setting
# ALIASEDBY EORS <Pd>.B, <Pg>/Z, <Pn>.B, <Pg>.B if Pm == Pg
# PATTERN x25404200/mask=xfff0c210

# SKIPPING nots_eor_p_p_pp.xml because x25404200/mask=xfff0c210 has already been defined

# orn_orr_z_zi.xml: ORN (immediate) variant SVE
# ALIASEDBY ORR <Zdn>.<T>, <Zdn>.<T>, #(-<const> - 1) if Never
# PATTERN x05000000/mask=xfffc0000

:orn Zd.T_imm13, Zd.T_imm13_2, "#"^sve_decode_bit_mask
is sve_b_2431=0b00000101 & sve_b_23=0 & sve_b_22=0 & sve_b_1821=0b0000 & sve_imm13_0517 & sve_zdn_0004 & sve_decode_bit_mask & Zd.T_imm13 & Zd.T_imm13_2
{
	Zd.T_imm13 = SVE_orn(Zd.T_imm13, Zd.T_imm13_2, sve_decode_bit_mask:1);
}

# orn_p_p_pp.xml: ORN, ORNS (predicates) variant Flag setting
# PATTERN x25c04010/mask=xfff0c210

:orns Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_orns(Pd.B, Pg_z, Pn.B, Pm.B);
}

# orn_p_p_pp.xml: ORN, ORNS (predicates) variant Not flag setting
# PATTERN x25804010/mask=xfff0c210

:orn Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_orn(Pd.B, Pg_z, Pn.B, Pm.B);
}

# orr_p_p_pp.xml: ORR, ORRS (predicates) variant Flag setting
# PATTERN x25c04000/mask=xfff0c210

:orrs Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_s_22=1 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_orrs(Pd.B, Pg_z, Pn.B, Pm.B);
}

# orr_p_p_pp.xml: ORR, ORRS (predicates) variant Not flag setting
# PATTERN x25804000/mask=xfff0c210

:orr Pd.B, Pg_z, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=1 & sve_s_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pg_z & Pn.B & Pm.B
{
	Pd.B = SVE_orr(Pd.B, Pg_z, Pn.B, Pm.B);
}

# orr_z_p_zz.xml: ORR (vectors, predicated) variant SVE
# PATTERN x04180000/mask=xff3fe000

:orr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_orr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# orr_z_zi.xml: ORR (immediate) variant SVE
# PATTERN x05000000/mask=xfffc0000

# SKIPPING orr_z_zi.xml because x05000000/mask=xfffc0000 has already been defined

# orr_z_zz.xml: ORR (vectors, unpredicated) variant SVE
# PATTERN x04603000/mask=xffe0fc00

:orr Zd.D, Zn.D, Zm.D
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_zm_1620 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Zm.D
{
	Zd.D = SVE_orr(Zd.D, Zn.D, Zm.D);
}

# orv_r_p_z.xml: ORV variant SVE
# PATTERN x04182000/mask=xff3fe000

:orv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_orv(Rd_FPR8, Pg3, Zn.T);
}

# orv_r_p_z.xml: ORV variant SVE
# PATTERN x04182000/mask=xff3fe000

:orv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_orv(Rd_FPR32, Pg3, Zn.T);
}

# orv_r_p_z.xml: ORV variant SVE
# PATTERN x04182000/mask=xff3fe000

:orv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_orv(Rd_FPR16, Pg3, Zn.T);
}

# orv_r_p_z.xml: ORV variant SVE
# PATTERN x04182000/mask=xff3fe000

:orv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b011 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_orv(Rd_FPR64, Pg3, Zn.T);
}

# pfalse_p.xml: PFALSE variant SVE
# PATTERN x2518e400/mask=xfffffff0

:pfalse Pd.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_1021=0b011000111001 & sve_b_0409=0b000000 & sve_pd_0003 & Pd.B
{
	Pd.B = SVE_pfalse(Pd.B);
}

# pfirst_p_p_p.xml: PFIRST variant SVE
# PATTERN x2558c000/mask=xfffffe10

:pfirst Pd.B, Pn, Pd.B_2
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1021=0b011000110000 & sve_b_09=0 & sve_pg_0508 & sve_b_04=0 & sve_pdn_0003 & Pd.B & Pd.B_2 & Pn
{
	Pd.B = SVE_pfirst(Pd.B, Pn, Pd.B_2);
}

# pnext_p_p_p.xml: PNEXT variant SVE
# PATTERN x2519c400/mask=xff3ffe10

:pnext Pd.T, Pn, Pd.T_2
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1021=0b011001110001 & sve_b_09=0 & sve_pg_0508 & sve_b_04=0 & sve_pdn_0003 & Pd.T & Pd.T_2 & Pn
{
	Pd.T = SVE_pnext(Pd.T, Pn, Pd.T_2);
}

# prfb_i_p_ai.xml: PRFB (vector plus immediate) variant 32-bit element
# PATTERN x8400e000/mask=xffe0e010

:prfb sve_prfop, Pg3, [Zn.S^sve_opt5_1_0to31]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.S & sve_opt5_1_0to31 & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Zn.S, sve_opt5_1_0to31);
}

# prfb_i_p_ai.xml: PRFB (vector plus immediate) variant 64-bit element
# PATTERN xc400e000/mask=xffe0e010

:prfb sve_prfop, Pg3, [Zn.D^sve_opt5_1_0to31]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.D & sve_opt5_1_0to31 & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Zn.D, sve_opt5_1_0to31);
}

# prfb_i_p_bi.xml: PRFB (scalar plus immediate) variant SVE
# PATTERN x85c00000/mask=xffc0e010

:prfb sve_prfop, Pg3, [Rn_GPR64xsp^sve_mul6_1_m32to31]
is sve_b_2231=0b1000010111 & sve_imm6_1621 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & sve_mul6_1_m32to31 & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Rn_GPR64xsp, sve_mul6_1_m32to31);
}

# prfb_i_p_br.xml: PRFB (scalar plus scalar) variant SVE
# PATTERN x8400c000/mask=xffe0e010

:prfb sve_prfop, Pg3, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# prfb_i_p_bz.xml: PRFB (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84200000/mask=xffa0e010

:prfb sve_prfop, Pg3, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2331=0b100001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.S & sve_mod & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# prfb_i_p_bz.xml: PRFB (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4200000/mask=xffa0e010

:prfb sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2331=0b110001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & sve_mod & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# prfb_i_p_bz.xml: PRFB (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc4608000/mask=xffe0e010

:prfb sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D]
is sve_b_2131=0b11000100011 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & Pg3
{
	SVE_prfb(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D);
}

# prfd_i_p_ai.xml: PRFD (vector plus immediate) variant 32-bit element
# PATTERN x8580e000/mask=xffe0e010

:prfd sve_prfop, Pg3, [Zn.S^sve_opt5_1_0to248]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.S & sve_opt5_1_0to248 & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Zn.S, sve_opt5_1_0to248);
}

# prfd_i_p_ai.xml: PRFD (vector plus immediate) variant 64-bit element
# PATTERN xc580e000/mask=xffe0e010

:prfd sve_prfop, Pg3, [Zn.D^sve_opt5_1_0to248]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.D & sve_opt5_1_0to248 & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Zn.D, sve_opt5_1_0to248);
}

# prfd_i_p_bi.xml: PRFD (scalar plus immediate) variant SVE
# PATTERN x85c06000/mask=xffc0e010

:prfd sve_prfop, Pg3, [Rn_GPR64xsp^sve_mul6_1_m32to31]
is sve_b_2231=0b1000010111 & sve_imm6_1621 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & sve_mul6_1_m32to31 & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Rn_GPR64xsp, sve_mul6_1_m32to31);
}

# prfd_i_p_br.xml: PRFD (scalar plus scalar) variant SVE
# PATTERN x8580c000/mask=xffe0e010

:prfd sve_prfop, Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# prfd_i_p_bz.xml: PRFD (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84206000/mask=xffa0e010

:prfd sve_prfop, Pg3, [Rn_GPR64xsp, Zm.S, sve_mod^" #3"]
is sve_b_2331=0b100001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.S & sve_mod & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# prfd_i_p_bz.xml: PRFD (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4206000/mask=xffa0e010

:prfd sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, sve_mod^" #3"]
is sve_b_2331=0b110001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & sve_mod & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# prfd_i_p_bz.xml: PRFD (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc460e000/mask=xffe0e010

:prfd sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, "lsl #3"]
is sve_b_2131=0b11000100011 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & Pg3
{
	SVE_prfd(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D);
}

# prfh_i_p_ai.xml: PRFH (vector plus immediate) variant 32-bit element
# PATTERN x8480e000/mask=xffe0e010

:prfh sve_prfop, Pg3, [Zn.S^sve_opt5_1_0to62]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.S & sve_opt5_1_0to62 & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Zn.S, sve_opt5_1_0to62);
}

# prfh_i_p_ai.xml: PRFH (vector plus immediate) variant 64-bit element
# PATTERN xc480e000/mask=xffe0e010

:prfh sve_prfop, Pg3, [Zn.D^sve_opt5_1_0to62]
is sve_b_2531=0b1100010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.D & sve_opt5_1_0to62 & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Zn.D, sve_opt5_1_0to62);
}

# prfh_i_p_bi.xml: PRFH (scalar plus immediate) variant SVE
# PATTERN x85c02000/mask=xffc0e010

:prfh sve_prfop, Pg3, [Rn_GPR64xsp^sve_mul6_1_m32to31]
is sve_b_2231=0b1000010111 & sve_imm6_1621 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & sve_mul6_1_m32to31 & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Rn_GPR64xsp, sve_mul6_1_m32to31);
}

# prfh_i_p_br.xml: PRFH (scalar plus scalar) variant SVE
# PATTERN x8480c000/mask=xffe0e010

:prfh sve_prfop, Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1000010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# prfh_i_p_bz.xml: PRFH (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84202000/mask=xffa0e010

:prfh sve_prfop, Pg3, [Rn_GPR64xsp, Zm.S, sve_mod^" #1"]
is sve_b_2331=0b100001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.S & sve_mod & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# prfh_i_p_bz.xml: PRFH (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4202000/mask=xffa0e010

:prfh sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, sve_mod^" #1"]
is sve_b_2331=0b110001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & sve_mod & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# prfh_i_p_bz.xml: PRFH (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc460a000/mask=xffe0e010

:prfh sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, "lsl #1"]
is sve_b_2131=0b11000100011 & sve_zm_1620 & sve_b_15=1 & sve_b_14=0 & sve_b_13=1 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & Pg3
{
	SVE_prfh(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D);
}

# prfw_i_p_ai.xml: PRFW (vector plus immediate) variant 32-bit element
# PATTERN x8500e000/mask=xffe0e010

:prfw sve_prfop, Pg3, [Zn.S^sve_opt5_1_0to124]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.S & sve_opt5_1_0to124 & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Zn.S, sve_opt5_1_0to124);
}

# prfw_i_p_ai.xml: PRFW (vector plus immediate) variant 64-bit element
# PATTERN xc500e000/mask=xffe0e010

:prfw sve_prfop, Pg3, [Zn.D^sve_opt5_1_0to124]
is sve_b_2531=0b1100010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_imm5_1620 & sve_b_1315=0b111 & sve_pg_1012 & sve_zn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Zn.D & sve_opt5_1_0to124 & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Zn.D, sve_opt5_1_0to124);
}

# prfw_i_p_bi.xml: PRFW (scalar plus immediate) variant SVE
# PATTERN x85c04000/mask=xffc0e010

:prfw sve_prfop, Pg3, [Rn_GPR64xsp^sve_mul6_1_m32to31]
is sve_b_2231=0b1000010111 & sve_imm6_1621 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & sve_mul6_1_m32to31 & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Rn_GPR64xsp, sve_mul6_1_m32to31);
}

# prfw_i_p_br.xml: PRFW (scalar plus scalar) variant SVE
# PATTERN x8500c000/mask=xffe0e010

:prfw sve_prfop, Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1000010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b110 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# prfw_i_p_bz.xml: PRFW (scalar plus vector) variant 32-bit scaled offset
# PATTERN x84204000/mask=xffa0e010

:prfw sve_prfop, Pg3, [Rn_GPR64xsp, Zm.S, sve_mod^" #2"]
is sve_b_2331=0b100001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.S & sve_mod & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# prfw_i_p_bz.xml: PRFW (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xc4204000/mask=xffa0e010

:prfw sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, sve_mod^" #2"]
is sve_b_2331=0b110001000 & sve_xs_22 & sve_b_21=1 & sve_zm_1620 & sve_b_15=0 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & sve_mod & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# prfw_i_p_bz.xml: PRFW (scalar plus vector) variant 64-bit scaled offset
# PATTERN xc460c000/mask=xffe0e010

:prfw sve_prfop, Pg3, [Rn_GPR64xsp, Zm.D, "lsl #2"]
is sve_b_2131=0b11000100011 & sve_zm_1620 & sve_b_15=1 & sve_b_14=1 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_b_04=0 & sve_prfop_0003 & sve_prfop & Rn_GPR64xsp & Zm.D & Pg3
{
	SVE_prfw(sve_prfop:1, Pg3, Rn_GPR64xsp, Zm.D);
}

# ptest_p_p.xml: PTEST variant SVE
# PATTERN x2550c000/mask=xffffc21f

:ptest Pg, Pn.B
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b01 & sve_b_1419=0b000011 & sve_pg_1013 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_b_03=0 & sve_b_02=0 & sve_b_01=0 & sve_b_00=0 & Pn.B & Pg
{
	SVE_ptest(Pg, Pn.B);
}

# ptrue_p_s.xml: PTRUE, PTRUES variant Flag setting
# PATTERN x2519e000/mask=xff3ffc10

:ptrues Pd.T^sve_opt_pattern
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1721=0b01100 & sve_b_16=1 & sve_b_1015=0b111000 & sve_pattern_0509 & sve_b_04=0 & sve_pd_0003 & sve_pattern & Pd.T & sve_opt_pattern
{
	Pd.T = SVE_ptrues(Pd.T, sve_opt_pattern);
}

# ptrue_p_s.xml: PTRUE, PTRUES variant Not flag setting
# PATTERN x2518e000/mask=xff3ffc10

:ptrue Pd.T^sve_opt_pattern
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1721=0b01100 & sve_b_16=0 & sve_b_1015=0b111000 & sve_pattern_0509 & sve_b_04=0 & sve_pd_0003 & sve_pattern & Pd.T & sve_opt_pattern
{
	Pd.T = SVE_ptrue(Pd.T, sve_opt_pattern);
}

# punpkhi_p_p.xml: PUNPKHI, PUNPKLO variant High half
# PATTERN x05314000/mask=xfffffe10

:punpkhi Pd.H, Pn.B
is sve_b_1731=0b000001010011000 & sve_b_16=1 & sve_b_1015=0b010000 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.H & Pn.B
{
	Pd.H = SVE_punpkhi(Pd.H, Pn.B);
}

# punpkhi_p_p.xml: PUNPKHI, PUNPKLO variant Low half
# PATTERN x05304000/mask=xfffffe10

:punpklo Pd.H, Pn.B
is sve_b_1731=0b000001010011000 & sve_b_16=0 & sve_b_1015=0b010000 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pd.H & Pn.B
{
	Pd.H = SVE_punpklo(Pd.H, Pn.B);
}

# rbit_z_p_z.xml: RBIT variant SVE
# PATTERN x05278000/mask=xff3fe000

:rbit Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1001 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_rbit(Zd.T, Pg3_m, Zn.T);
}

# rdffr_p_f.xml: RDFFR (unpredicated) variant SVE
# PATTERN x2519f000/mask=xfffffff0

:rdffr Pd.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_1021=0b011001111100 & sve_b_0409=0b000000 & sve_pd_0003 & Pd.B
{
	Pd.B = SVE_rdffr(Pd.B);
}

# rdffr_p_p_f.xml: RDFFR, RDFFRS (predicated) variant Flag setting
# PATTERN x2558f000/mask=xfffffe10

:rdffrs Pd.B, Pn_z
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1021=0b011000111100 & sve_b_09=0 & sve_pg_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pn_z
{
	Pd.B = SVE_rdffrs(Pd.B, Pn_z);
}

# rdffr_p_p_f.xml: RDFFR, RDFFRS (predicated) variant Not flag setting
# PATTERN x2518f000/mask=xfffffe10

:rdffr Pd.B, Pn_z
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_1021=0b011000111100 & sve_b_09=0 & sve_pg_0508 & sve_b_04=0 & sve_pd_0003 & Pd.B & Pn_z
{
	Pd.B = SVE_rdffr(Pd.B, Pn_z);
}

# rdvl_r_i.xml: RDVL variant SVE
# PATTERN x04bf5000/mask=xfffff800

:rdvl Rd_GPR64, "#"^sve_imm6_1_m32to31
is sve_b_2331=0b000001001 & sve_b_22=0 & sve_b_21=1 & sve_b_1720=0b1111 & sve_b_16=1 & sve_b_1115=0b01010 & sve_imm6_0510 & sve_rd_0004 & sve_imm6_1_m32to31 & Rd_GPR64
{
	Rd_GPR64 = SVE_rdvl(Rd_GPR64, sve_imm6_1_m32to31:1);
}

# rev_p_p.xml: REV (predicate) variant SVE
# PATTERN x05344000/mask=xff3ffe10

:rev Pd.T, Pn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1021=0b110100010000 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T
{
	Pd.T = SVE_rev(Pd.T, Pn.T);
}

# rev_z_z.xml: REV (vector) variant SVE
# PATTERN x05383800/mask=xff3ffc00

:rev Zd.T, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1021=0b111000001110 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T
{
	Zd.T = SVE_rev(Zd.T, Zn.T);
}

# revb_z_z.xml: REVB, REVH, REVW variant Byte
# PATTERN x05248000/mask=xff3fe000

:revb Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1001 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_revb(Zd.T, Pg3_m, Zn.T);
}

# revb_z_z.xml: REVB, REVH, REVW variant Halfword
# PATTERN x05258000/mask=xff3fe000

:revh Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1001 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_revh(Zd.T, Pg3_m, Zn.T);
}

# revb_z_z.xml: REVB, REVH, REVW variant Word
# PATTERN x05268000/mask=xff3fe000

:revw Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1001 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b100 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_revw(Zd.D, Pg3_m, Zn.D);
}

# sabd_z_p_zz.xml: SABD variant SVE
# PATTERN x040c0000/mask=xff3fe000

:sabd Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b001 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_sabd(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# saddv_r_p_z.xml: SADDV variant SVE
# PATTERN x04002000/mask=xff3fe000

:saddv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b000 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_saddv(Rd_FPR64, Zn.T, Pg3);
}

# scvtf_z_p_z.xml: SCVTF variant 16-bit to half-precision
# PATTERN x6552a000/mask=xffffe000

:scvtf Zd.H, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.H & Pg3_m
{
	Zd.H = SVE_scvtf(Zd.H, Pg3_m, Zn.H);
}

# scvtf_z_p_z.xml: SCVTF variant 32-bit to half-precision
# PATTERN x6554a000/mask=xffffe000

:scvtf Zd.H, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.H & Pg3_m
{
	Zd.H = SVE_scvtf(Zd.H, Pg3_m, Zn.S);
}

# scvtf_z_p_z.xml: SCVTF variant 32-bit to single-precision
# PATTERN x6594a000/mask=xffffe000

:scvtf Zd.S, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.S & Pg3_m
{
	Zd.S = SVE_scvtf(Zd.S, Pg3_m, Zn.S);
}

# scvtf_z_p_z.xml: SCVTF variant 32-bit to double-precision
# PATTERN x65d0a000/mask=xffffe000

:scvtf Zd.D, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.D & Pg3_m
{
	Zd.D = SVE_scvtf(Zd.D, Pg3_m, Zn.S);
}

# scvtf_z_p_z.xml: SCVTF variant 64-bit to half-precision
# PATTERN x6556a000/mask=xffffe000

:scvtf Zd.H, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.H & Pg3_m
{
	Zd.H = SVE_scvtf(Zd.H, Pg3_m, Zn.D);
}

# scvtf_z_p_z.xml: SCVTF variant 64-bit to single-precision
# PATTERN x65d4a000/mask=xffffe000

:scvtf Zd.S, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.S & Pg3_m
{
	Zd.S = SVE_scvtf(Zd.S, Pg3_m, Zn.D);
}

# scvtf_z_p_z.xml: SCVTF variant 64-bit to double-precision
# PATTERN x65d6a000/mask=xffffe000

:scvtf Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_scvtf(Zd.D, Pg3_m, Zn.D);
}

# sdiv_z_p_zz.xml: SDIV variant SVE
# PATTERN x04940000/mask=xffbfe000

:sdiv Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_sz_22 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T_sz & Zd.T_sz_2 & Zn.T_sz & Pg3_m
{
	Zd.T_sz = SVE_sdiv(Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz);
}

# sdivr_z_p_zz.xml: SDIVR variant SVE
# PATTERN x04960000/mask=xffbfe000

:sdivr Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_sz_22 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T_sz & Zd.T_sz_2 & Zn.T_sz & Pg3_m
{
	Zd.T_sz = SVE_sdivr(Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz);
}

# sdot_z_zzz.xml: SDOT (vectors) variant SVE
# PATTERN x44800000/mask=xffa0fc00

:sdot Zd.T_sz, Zn.Tb_sz, Zm.Tb_sz
is sve_b_2431=0b01000100 & sve_b_23=1 & sve_sz_22 & sve_b_21=0 & sve_zm_1620 & sve_b_1115=0b00000 & sve_b_10=0 & sve_zn_0509 & sve_zda_0004 & Zm.Tb_sz & Zd.T_sz & Zn.Tb_sz
{
	Zd.T_sz = SVE_sdot(Zd.T_sz, Zn.Tb_sz, Zm.Tb_sz);
}

# sdot_z_zzzi.xml: SDOT (indexed) variant 32-bit
# PATTERN x44a00000/mask=xffe0fc00

:sdot Zd.S, Zn.B, Zm3.B[sve_i2_1920]
is sve_b_2431=0b01000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_i2_1920 & sve_zm_1618 & sve_b_1115=0b00000 & sve_b_10=0 & sve_zn_0509 & sve_zda_0004 & Zd.S & Zn.B & Zm3.B
{
	Zd.S = SVE_sdot(Zd.S, Zn.B, Zm3.B, sve_i2_1920:1);
}

# sdot_z_zzzi.xml: SDOT (indexed) variant 64-bit
# PATTERN x44e00000/mask=xffe0fc00

:sdot Zd.D, Zn.H, Zm4.H[sve_i1_20]
is sve_b_2431=0b01000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_i1_20 & sve_zm_1619 & sve_b_1115=0b00000 & sve_b_10=0 & sve_zn_0509 & sve_zda_0004 & Zd.D & Zn.H & Zm4.H
{
	Zd.D = SVE_sdot(Zd.D, Zn.H, Zm4.H, sve_i1_20:1);
}

# sel_p_p_pp.xml: SEL (predicates) variant SVE
# PATTERN x25004210/mask=xfff0c210

:sel Pd.B, Pg, Pn.B, Pm.B
is sve_b_2431=0b00100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b00 & sve_pm_1619 & sve_b_1415=0b01 & sve_pg_1013 & sve_b_09=1 & sve_pn_0508 & sve_b_04=1 & sve_pd_0003 & Pd.B & Pn.B & Pm.B & Pg
{
	Pd.B = SVE_sel(Pd.B, Pg, Pn.B, Pm.B);
}

# sel_z_p_zz.xml: SEL (vectors) variant SVE
# PATTERN x0520c000/mask=xff20c000

:sel Zd.T, Pg, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1415=0b11 & sve_pg_1013 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T & Pg
{
	Zd.T = SVE_sel(Zd.T, Pg, Zn.T, Zm.T);
}

# setffr_f.xml: SETFFR variant SVE
# PATTERN x252c9000/mask=xffffffff

:setffr ""
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b10 & sve_b_1019=0b1100100100 & sve_b_0409=0b000000 & sve_b_03=0 & sve_b_02=0 & sve_b_0001=0b00
unimpl

# smax_z_p_zz.xml: SMAX (vectors) variant SVE
# PATTERN x04080000/mask=xff3fe000

:smax Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_smax(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# smax_z_zi.xml: SMAX (immediate) variant SVE
# PATTERN x2528c000/mask=xff3fe000

:smax Zd.T, Zd.T_2, "#"^sve_imm8_1_m128to127
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b101 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1415=0b11 & sve_b_13=0 & sve_imm8_0512 & sve_zdn_0004 & Zd.T & Zd.T_2 & sve_imm8_1_m128to127
{
	Zd.T = SVE_smax(Zd.T, Zd.T_2, sve_imm8_1_m128to127:1);
}

# smaxv_r_p_z.xml: SMAXV variant SVE
# PATTERN x04082000/mask=xff3fe000

:smaxv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_smaxv(Rd_FPR8, Pg3, Zn.T);
}

# smaxv_r_p_z.xml: SMAXV variant SVE
# PATTERN x04082000/mask=xff3fe000

:smaxv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_smaxv(Rd_FPR32, Pg3, Zn.T);
}

# smaxv_r_p_z.xml: SMAXV variant SVE
# PATTERN x04082000/mask=xff3fe000

:smaxv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_smaxv(Rd_FPR16, Pg3, Zn.T);
}

# smaxv_r_p_z.xml: SMAXV variant SVE
# PATTERN x04082000/mask=xff3fe000

:smaxv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_smaxv(Rd_FPR64, Pg3, Zn.T);
}

# smin_z_p_zz.xml: SMIN (vectors) variant SVE
# PATTERN x040a0000/mask=xff3fe000

:smin Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_smin(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# smin_z_zi.xml: SMIN (immediate) variant SVE
# PATTERN x252ac000/mask=xff3fe000

:smin Zd.T, Zd.T_2, "#"^sve_imm8_1_m128to127
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b101 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1415=0b11 & sve_b_13=0 & sve_imm8_0512 & sve_zdn_0004 & Zd.T & Zd.T_2 & sve_imm8_1_m128to127
{
	Zd.T = SVE_smin(Zd.T, Zd.T_2, sve_imm8_1_m128to127:1);
}

# sminv_r_p_z.xml: SMINV variant SVE
# PATTERN x040a2000/mask=xff3fe000

:sminv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_sminv(Rd_FPR8, Pg3, Zn.T);
}

# sminv_r_p_z.xml: SMINV variant SVE
# PATTERN x040a2000/mask=xff3fe000

:sminv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_sminv(Rd_FPR32, Pg3, Zn.T);
}

# sminv_r_p_z.xml: SMINV variant SVE
# PATTERN x040a2000/mask=xff3fe000

:sminv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_sminv(Rd_FPR16, Pg3, Zn.T);
}

# sminv_r_p_z.xml: SMINV variant SVE
# PATTERN x040a2000/mask=xff3fe000

:sminv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_sminv(Rd_FPR64, Pg3, Zn.T);
}

# smulh_z_p_zz.xml: SMULH variant SVE
# PATTERN x04120000/mask=xff3fe000

:smulh Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=1 & sve_b_16=0 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_smulh(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# splice_z_p_zz.xml: SPLICE variant SVE
# PATTERN x052c8000/mask=xff3fe000

:splice Zd.T, Pg3, Zd.T_2, Zn.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1321=0b101100100 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3
{
	Zd.T = SVE_splice(Zd.T, Pg3, Zd.T_2, Zn.T);
}

# sqadd_z_zi.xml: SQADD (immediate) variant SVE
# PATTERN x2524c000/mask=xff3fc000

:sqadd Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_sqadd(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# sqadd_z_zz.xml: SQADD (vectors) variant SVE
# PATTERN x04201000/mask=xff20fc00

:sqadd Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b10 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_sqadd(Zd.T, Zn.T, Zm.T);
}

# sqdecb_r_rs.xml: SQDECB variant 32-bit
# PATTERN x0420f800/mask=xfff0fc00

:sqdecb Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdecb(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecb_r_rs.xml: SQDECB variant 64-bit
# PATTERN x0430f800/mask=xfff0fc00

:sqdecb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdecb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecd_r_rs.xml: SQDECD (scalar) variant 32-bit
# PATTERN x04e0f800/mask=xfff0fc00

:sqdecd Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdecd(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecd_r_rs.xml: SQDECD (scalar) variant 64-bit
# PATTERN x04f0f800/mask=xfff0fc00

:sqdecd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdecd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecd_z_zs.xml: SQDECD (vector) variant SVE
# PATTERN x04e0c800/mask=xfff0fc00

:sqdecd Zd.D^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.D & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.D = SVE_sqdecd(Zd.D, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdech_r_rs.xml: SQDECH (scalar) variant 32-bit
# PATTERN x0460f800/mask=xfff0fc00

:sqdech Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdech(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdech_r_rs.xml: SQDECH (scalar) variant 64-bit
# PATTERN x0470f800/mask=xfff0fc00

:sqdech Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdech(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdech_z_zs.xml: SQDECH (vector) variant SVE
# PATTERN x0460c800/mask=xfff0fc00

:sqdech Zd.H^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.H & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.H = SVE_sqdech(Zd.H, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecp_r_p_r.xml: SQDECP (scalar) variant 32-bit
# PATTERN x252a8800/mask=xff3ffe00

:sqdecp Rd_GPR64, Pn.T, Rd_GPR32
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=1 & sve_b_16=0 & sve_b_1115=0b10001 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR32 & Rd_GPR64
{
	Rd_GPR64 = SVE_sqdecp(Rd_GPR64, Pn.T, Rd_GPR32);
}

# sqdecp_r_p_r.xml: SQDECP (scalar) variant 64-bit
# PATTERN x252a8c00/mask=xff3ffe00

:sqdecp Rd_GPR64, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=1 & sve_b_16=0 & sve_b_1115=0b10001 & sve_b_10=1 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR64
{
	Rd_GPR64 = SVE_sqdecp(Rd_GPR64, Pn.T);
}

# sqdecp_z_p_z.xml: SQDECP (vector) variant SVE
# PATTERN x252a8000/mask=xff3ffe00

:sqdecp Zd.T, Pn
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=1 & sve_b_16=0 & sve_b_1115=0b10000 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_zdn_0004 & Zd.T & Pn
{
	Zd.T = SVE_sqdecp(Zd.T, Pn);
}

# sqdecw_r_rs.xml: SQDECW (scalar) variant 32-bit
# PATTERN x04a0f800/mask=xfff0fc00

:sqdecw Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdecw(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecw_r_rs.xml: SQDECW (scalar) variant 64-bit
# PATTERN x04b0f800/mask=xfff0fc00

:sqdecw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqdecw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqdecw_z_zs.xml: SQDECW (vector) variant SVE
# PATTERN x04a0c800/mask=xfff0fc00

:sqdecw Zd.S^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=1 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.S & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.S = SVE_sqdecw(Zd.S, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincb_r_rs.xml: SQINCB variant 32-bit
# PATTERN x0420f000/mask=xfff0fc00

:sqincb Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqincb(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincb_r_rs.xml: SQINCB variant 64-bit
# PATTERN x0430f000/mask=xfff0fc00

:sqincb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqincb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincd_r_rs.xml: SQINCD (scalar) variant 32-bit
# PATTERN x04e0f000/mask=xfff0fc00

:sqincd Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqincd(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincd_r_rs.xml: SQINCD (scalar) variant 64-bit
# PATTERN x04f0f000/mask=xfff0fc00

:sqincd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqincd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincd_z_zs.xml: SQINCD (vector) variant SVE
# PATTERN x04e0c000/mask=xfff0fc00

:sqincd Zd.D^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.D & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.D = SVE_sqincd(Zd.D, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqinch_r_rs.xml: SQINCH (scalar) variant 32-bit
# PATTERN x0460f000/mask=xfff0fc00

:sqinch Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqinch(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqinch_r_rs.xml: SQINCH (scalar) variant 64-bit
# PATTERN x0470f000/mask=xfff0fc00

:sqinch Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqinch(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqinch_z_zs.xml: SQINCH (vector) variant SVE
# PATTERN x0460c000/mask=xfff0fc00

:sqinch Zd.H^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.H & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.H = SVE_sqinch(Zd.H, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincp_r_p_r.xml: SQINCP (scalar) variant 32-bit
# PATTERN x25288800/mask=xff3ffe00

:sqincp Rd_GPR64, Pn.T, Rd_GPR32
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=0 & sve_b_16=0 & sve_b_1115=0b10001 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR32 & Rd_GPR64
{
	Rd_GPR64 = SVE_sqincp(Rd_GPR64, Pn.T, Rd_GPR32);
}

# sqincp_r_p_r.xml: SQINCP (scalar) variant 64-bit
# PATTERN x25288c00/mask=xff3ffe00

:sqincp Rd_GPR64, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=0 & sve_b_16=0 & sve_b_1115=0b10001 & sve_b_10=1 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR64
{
	Rd_GPR64 = SVE_sqincp(Rd_GPR64, Pn.T);
}

# sqincp_z_p_z.xml: SQINCP (vector) variant SVE
# PATTERN x25288000/mask=xff3ffe00

:sqincp Zd.T, Pn
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=0 & sve_b_16=0 & sve_b_1115=0b10000 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_zdn_0004 & Zd.T & Pn
{
	Zd.T = SVE_sqincp(Zd.T, Pn);
}

# sqincw_r_rs.xml: SQINCW (scalar) variant 32-bit
# PATTERN x04a0f000/mask=xfff0fc00

:sqincw Rd_GPR64, Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqincw(Rd_GPR64, Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincw_r_rs.xml: SQINCW (scalar) variant 64-bit
# PATTERN x04b0f000/mask=xfff0fc00

:sqincw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_sqincw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqincw_z_zs.xml: SQINCW (vector) variant SVE
# PATTERN x04a0c000/mask=xfff0fc00

:sqincw Zd.S^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=0 & sve_b_10=0 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.S & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.S = SVE_sqincw(Zd.S, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# sqsub_z_zi.xml: SQSUB (immediate) variant SVE
# PATTERN x2526c000/mask=xff3fc000

:sqsub Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b11 & sve_b_16=0 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_sqsub(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# sqsub_z_zz.xml: SQSUB (vectors) variant SVE
# PATTERN x04201800/mask=xff20fc00

:sqsub Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b11 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_sqsub(Zd.T, Zn.T, Zm.T);
}

# st1b_z_p_ai.xml: ST1B (vector plus immediate) variant 32-bit element
# PATTERN xe460a000/mask=xffe0e000

:st1b "{"^Zd.S^"}", Pg3, [Zn.S^sve_opt5_1_0to31]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b11 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Zd.S & sve_opt5_1_0to31 & Pg3
{
	SVE_st1b(Zd.S, Pg3, Zn.S, sve_opt5_1_0to31);
}

# st1b_z_p_ai.xml: ST1B (vector plus immediate) variant 64-bit element
# PATTERN xe440a000/mask=xffe0e000

:st1b "{"^Zd.D^"}", Pg3, [Zn.D^sve_opt5_1_0to31]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Zd.D & sve_opt5_1_0to31 & Pg3
{
	SVE_st1b(Zd.D, Pg3, Zn.D, sve_opt5_1_0to31);
}

# st1b_z_p_bi.xml: ST1B (scalar plus immediate) variant SVE
# PATTERN xe400e000/mask=xff90e000

:st1b "{"^Zd.T_size_2122^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_size_2122 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Zd.T_size_2122 & Rn_GPR64xsp & sve_mul4_1_m8to7 & Pg3
{
	SVE_st1b(Zd.T_size_2122, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# st1b_z_p_br.xml: ST1B (scalar plus scalar) variant SVE
# PATTERN xe4004000/mask=xff80e000

:st1b "{"^Zd.T_size_2122^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_size_2122 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Zd.T_size_2122 & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st1b(Zd.T_size_2122, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st1b_z_p_bz.xml: ST1B (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xe4008000/mask=xffe0a000

:st1b "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1b(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1b_z_p_bz.xml: ST1B (scalar plus vector) variant 32-bit unscaled offset
# PATTERN xe4408000/mask=xffe0a000

:st1b "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.S & Zd.S & sve_mod & Pg3
{
	SVE_st1b(Zd.S, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# st1b_z_p_bz.xml: ST1B (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xe400a000/mask=xffe0e000

:st1b "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1b(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st1d_z_p_ai.xml: ST1D (vector plus immediate) variant SVE
# PATTERN xe5c0a000/mask=xffe0e000

:st1d "{"^Zd.D^"}", Pg3, [Zn.D^sve_opt5_1_0to248]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Zd.D & sve_opt5_1_0to248 & Pg3
{
	SVE_st1d(Zd.D, Pg3, Zn.D, sve_opt5_1_0to248);
}

# st1d_z_p_bi.xml: ST1D (scalar plus immediate) variant SVE
# PATTERN xe580e000/mask=xff90e000

:st1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_size_2122 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.D & sve_mul4_1_m8to7 & Pg3
{
	SVE_st1d(Zd.D, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# st1d_z_p_br.xml: ST1D (scalar plus scalar) variant SVE
# PATTERN xe5804000/mask=xff80e000

:st1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_size_2122 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.D & Rm_GPR64 & Pg3
{
	SVE_st1d(Zd.D, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st1d_z_p_bz.xml: ST1D (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xe5a08000/mask=xffe0a000

:st1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod^" #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1d(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1d_z_p_bz.xml: ST1D (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xe5808000/mask=xffe0a000

:st1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1d(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1d_z_p_bz.xml: ST1D (scalar plus vector) variant 64-bit scaled offset
# PATTERN xe5a0a000/mask=xffe0e000

:st1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, "lsl #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1d(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st1d_z_p_bz.xml: ST1D (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xe580a000/mask=xffe0e000

:st1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1d(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st1h_z_p_ai.xml: ST1H (vector plus immediate) variant 32-bit element
# PATTERN xe4e0a000/mask=xffe0e000

:st1h "{"^Zd.S^"}", Pg3, [Zn.S^sve_opt5_1_0to62]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Zd.S & sve_opt5_1_0to62 & Pg3
{
	SVE_st1h(Zd.S, Pg3, Zn.S, sve_opt5_1_0to62);
}

# st1h_z_p_ai.xml: ST1H (vector plus immediate) variant 64-bit element
# PATTERN xe4c0a000/mask=xffe0e000

:st1h "{"^Zd.D^"}", Pg3, [Zn.D^sve_opt5_1_0to62]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Zd.D & sve_opt5_1_0to62 & Pg3
{
	SVE_st1h(Zd.D, Pg3, Zn.D, sve_opt5_1_0to62);
}

# st1h_z_p_bi.xml: ST1H (scalar plus immediate) variant SVE
# PATTERN xe480e000/mask=xff90e000

:st1h "{"^Zd.T_size_2122^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_size_2122 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Zd.T_size_2122 & Rn_GPR64xsp & sve_mul4_1_m8to7 & Pg3
{
	SVE_st1h(Zd.T_size_2122, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# st1h_z_p_br.xml: ST1H (scalar plus scalar) variant SVE
# PATTERN xe4804000/mask=xff80e000

:st1h "{"^Zd.T_size_2122^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_size_2122 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Zd.T_size_2122 & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st1h(Zd.T_size_2122, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st1h_z_p_bz.xml: ST1H (scalar plus vector) variant 32-bit scaled offset
# PATTERN xe4e08000/mask=xffe0a000

:st1h "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp, Zm.S, sve_mod^" #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.S & Zd.S & sve_mod & Pg3
{
	SVE_st1h(Zd.S, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# st1h_z_p_bz.xml: ST1H (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xe4a08000/mask=xffe0a000

:st1h "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod^" #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1h(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1h_z_p_bz.xml: ST1H (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xe4808000/mask=xffe0a000

:st1h "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1h(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1h_z_p_bz.xml: ST1H (scalar plus vector) variant 32-bit unscaled offset
# PATTERN xe4c08000/mask=xffe0a000

:st1h "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.S & Zd.S & sve_mod & Pg3
{
	SVE_st1h(Zd.S, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# st1h_z_p_bz.xml: ST1H (scalar plus vector) variant 64-bit scaled offset
# PATTERN xe4a0a000/mask=xffe0e000

:st1h "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, "lsl #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1h(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st1h_z_p_bz.xml: ST1H (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xe480a000/mask=xffe0e000

:st1h "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1h(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st1w_z_p_ai.xml: ST1W (vector plus immediate) variant 32-bit element
# PATTERN xe560a000/mask=xffe0e000

:st1w "{"^Zd.S^"}", Pg3, [Zn.S^sve_opt5_1_0to124]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.S & Zd.S & sve_opt5_1_0to124 & Pg3
{
	SVE_st1w(Zd.S, Pg3, Zn.S, sve_opt5_1_0to124);
}

# st1w_z_p_ai.xml: ST1W (vector plus immediate) variant 64-bit element
# PATTERN xe540a000/mask=xffe0e000

:st1w "{"^Zd.D^"}", Pg3, [Zn.D^sve_opt5_1_0to124]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_imm5_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zt_0004 & Zn.D & Zd.D & sve_opt5_1_0to124 & Pg3
{
	SVE_st1w(Zd.D, Pg3, Zn.D, sve_opt5_1_0to124);
}

# st1w_z_p_bi.xml: ST1W (scalar plus immediate) variant SVE
# PATTERN xe500e000/mask=xff90e000

:st1w "{"^Zd.T_size_2122^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_size_2122 & sve_b_20=0 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Zd.T_size_2122 & Rn_GPR64xsp & sve_mul4_1_m8to7 & Pg3
{
	SVE_st1w(Zd.T_size_2122, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# st1w_z_p_br.xml: ST1W (scalar plus scalar) variant SVE
# PATTERN xe5004000/mask=xff80e000

:st1w "{"^Zd.T_size_2122^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_size_2122 & sve_rm_1620 & sve_b_1315=0b010 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Zd.T_size_2122 & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st1w(Zd.T_size_2122, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st1w_z_p_bz.xml: ST1W (scalar plus vector) variant 32-bit scaled offset
# PATTERN xe5608000/mask=xffe0a000

:st1w "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp, Zm.S, sve_mod^" #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.S & Zd.S & sve_mod & Pg3
{
	SVE_st1w(Zd.S, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# st1w_z_p_bz.xml: ST1W (scalar plus vector) variant 32-bit unpacked scaled offset
# PATTERN xe5208000/mask=xffe0a000

:st1w "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod^" #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1w(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1w_z_p_bz.xml: ST1W (scalar plus vector) variant 32-bit unpacked unscaled offset
# PATTERN xe5008000/mask=xffe0a000

:st1w "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & sve_mod & Pg3
{
	SVE_st1w(Zd.D, Pg3, Rn_GPR64xsp, Zm.D, sve_mod:1);
}

# st1w_z_p_bz.xml: ST1W (scalar plus vector) variant 32-bit unscaled offset
# PATTERN xe5408000/mask=xffe0a000

:st1w "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp, Zm.S, sve_mod]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_zm_1620 & sve_b_15=1 & sve_xs_14 & sve_b_13=0 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.S & Zd.S & sve_mod & Pg3
{
	SVE_st1w(Zd.S, Pg3, Rn_GPR64xsp, Zm.S, sve_mod:1);
}

# st1w_z_p_bz.xml: ST1W (scalar plus vector) variant 64-bit scaled offset
# PATTERN xe520a000/mask=xffe0e000

:st1w "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D, "lsl #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1w(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st1w_z_p_bz.xml: ST1W (scalar plus vector) variant 64-bit unscaled offset
# PATTERN xe500a000/mask=xffe0e000

:st1w "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Zm.D]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_zm_1620 & sve_b_1315=0b101 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zm.D & Zd.D & Pg3
{
	SVE_st1w(Zd.D, Pg3, Rn_GPR64xsp, Zm.D);
}

# st2b_z_p_bi.xml: ST2B (scalar plus immediate) variant SVE
# PATTERN xe430e000/mask=xfff0e000

:st2b "{"^Zt.B, Ztt.B^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zt.B & Rn_GPR64xsp & sve_mul4_1_m16to14 & Pg3
{
	SVE_st2b(Zt.B, Ztt.B, Pg3, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# st2b_z_p_br.xml: ST2B (scalar plus scalar) variant SVE
# PATTERN xe4206000/mask=xffe0e000

:st2b "{"^Zt.B, Ztt.B^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zt.B & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st2b(Zt.B, Ztt.B, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st2d_z_p_bi.xml: ST2D (scalar plus immediate) variant SVE
# PATTERN xe5b0e000/mask=xfff0e000

:st2d "{"^Zt.D, Ztt.D^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zt.D & Rn_GPR64xsp & sve_mul4_1_m16to14 & Pg3
{
	SVE_st2d(Zt.D, Ztt.D, Pg3, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# st2d_z_p_br.xml: ST2D (scalar plus scalar) variant SVE
# PATTERN xe5a06000/mask=xffe0e000

:st2d "{"^Zt.D, Ztt.D^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zt.D & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st2d(Zt.D, Ztt.D, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st2h_z_p_bi.xml: ST2H (scalar plus immediate) variant SVE
# PATTERN xe4b0e000/mask=xfff0e000

:st2h "{"^Zt.H, Ztt.H^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zt.H & Rn_GPR64xsp & sve_mul4_1_m16to14 & Pg3
{
	SVE_st2h(Zt.H, Ztt.H, Pg3, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# st2h_z_p_br.xml: ST2H (scalar plus scalar) variant SVE
# PATTERN xe4a06000/mask=xffe0e000

:st2h "{"^Zt.H, Ztt.H^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zt.H & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st2h(Zt.H, Ztt.H, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st2w_z_p_bi.xml: ST2W (scalar plus immediate) variant SVE
# PATTERN xe530e000/mask=xfff0e000

:st2w "{"^Zt.S, Ztt.S^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m16to14]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Rn_GPR64xsp & sve_mul4_1_m16to14 & Pg3
{
	SVE_st2w(Zt.S, Ztt.S, Pg3, Rn_GPR64xsp, sve_mul4_1_m16to14);
}

# st2w_z_p_br.xml: ST2W (scalar plus scalar) variant SVE
# PATTERN xe5206000/mask=xffe0e000

:st2w "{"^Zt.S, Ztt.S^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b01 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st2w(Zt.S, Ztt.S, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st3b_z_p_bi.xml: ST3B (scalar plus immediate) variant SVE
# PATTERN xe450e000/mask=xfff0e000

:st3b "{"^Zt.B, Ztt.B, Zttt.B^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Rn_GPR64xsp & sve_mul4_1_m24to21 & Pg3
{
	SVE_st3b(Zt.B, Ztt.B, Zttt.B, Pg3, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# st3b_z_p_br.xml: ST3B (scalar plus scalar) variant SVE
# PATTERN xe4406000/mask=xffe0e000

:st3b "{"^Zt.B, Ztt.B, Zttt.B^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st3b(Zt.B, Ztt.B, Zttt.B, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st3d_z_p_bi.xml: ST3D (scalar plus immediate) variant SVE
# PATTERN xe5d0e000/mask=xfff0e000

:st3d "{"^Zt.D, Ztt.D, Zttt.D^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Rn_GPR64xsp & sve_mul4_1_m24to21 & Pg3
{
	SVE_st3d(Zt.D, Ztt.D, Zttt.D, Pg3, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# st3d_z_p_br.xml: ST3D (scalar plus scalar) variant SVE
# PATTERN xe5c06000/mask=xffe0e000

:st3d "{"^Zt.D, Ztt.D, Zttt.D^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st3d(Zt.D, Ztt.D, Zttt.D, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st3h_z_p_bi.xml: ST3H (scalar plus immediate) variant SVE
# PATTERN xe4d0e000/mask=xfff0e000

:st3h "{"^Zt.H, Ztt.H, Zttt.H^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Rn_GPR64xsp & sve_mul4_1_m24to21 & Pg3
{
	SVE_st3h(Zt.H, Ztt.H, Zttt.H, Pg3, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# st3h_z_p_br.xml: ST3H (scalar plus scalar) variant SVE
# PATTERN xe4c06000/mask=xffe0e000

:st3h "{"^Zt.H, Ztt.H, Zttt.H^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st3h(Zt.H, Ztt.H, Zttt.H, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st3w_z_p_bi.xml: ST3W (scalar plus immediate) variant SVE
# PATTERN xe550e000/mask=xfff0e000

:st3w "{"^Zt.S, Ztt.S, Zttt.S^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m24to21]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Rn_GPR64xsp & sve_mul4_1_m24to21 & Pg3
{
	SVE_st3w(Zt.S, Ztt.S, Zttt.S, Pg3, Rn_GPR64xsp, sve_mul4_1_m24to21);
}

# st3w_z_p_br.xml: ST3W (scalar plus scalar) variant SVE
# PATTERN xe5406000/mask=xffe0e000

:st3w "{"^Zt.S, Ztt.S, Zttt.S^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b10 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st3w(Zt.S, Ztt.S, Zttt.S, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st4b_z_p_bi.xml: ST4B (scalar plus immediate) variant SVE
# PATTERN xe470e000/mask=xfff0e000

:st4b "{"^Zt.B, Ztt.B, Zttt.B, Ztttt.B^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b11 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Ztttt.B & Rn_GPR64xsp & sve_mul4_1_m32to28 & Pg3
{
	SVE_st4b(Zt.B, Ztt.B, Zttt.B, Ztttt.B, Pg3, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# st4b_z_p_br.xml: ST4B (scalar plus scalar) variant SVE
# PATTERN xe4606000/mask=xffe0e000

:st4b "{"^Zt.B, Ztt.B, Zttt.B, Ztttt.B^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.B & Zttt.B & Zt.B & Ztttt.B & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st4b(Zt.B, Ztt.B, Zttt.B, Ztttt.B, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st4d_z_p_bi.xml: ST4D (scalar plus immediate) variant SVE
# PATTERN xe5f0e000/mask=xfff0e000

:st4d "{"^Zt.D, Ztt.D, Zttt.D, Ztttt.D^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b11 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Ztttt.D & Rn_GPR64xsp & sve_mul4_1_m32to28 & Pg3
{
	SVE_st4d(Zt.D, Ztt.D, Zttt.D, Ztttt.D, Pg3, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# st4d_z_p_br.xml: ST4D (scalar plus scalar) variant SVE
# PATTERN xe5e06000/mask=xffe0e000

:st4d "{"^Zt.D, Ztt.D, Zttt.D, Ztttt.D^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.D & Zttt.D & Zt.D & Ztttt.D & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st4d(Zt.D, Ztt.D, Zttt.D, Ztttt.D, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st4h_z_p_bi.xml: ST4H (scalar plus immediate) variant SVE
# PATTERN xe4f0e000/mask=xfff0e000

:st4h "{"^Zt.H, Ztt.H, Zttt.H, Ztttt.H^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Ztttt.H & Rn_GPR64xsp & sve_mul4_1_m32to28 & Pg3
{
	SVE_st4h(Zt.H, Ztt.H, Zttt.H, Ztttt.H, Pg3, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# st4h_z_p_br.xml: ST4H (scalar plus scalar) variant SVE
# PATTERN xe4e06000/mask=xffe0e000

:st4h "{"^Zt.H, Ztt.H, Zttt.H, Ztttt.H^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.H & Zttt.H & Zt.H & Ztttt.H & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st4h(Zt.H, Ztt.H, Zttt.H, Ztttt.H, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# st4w_z_p_bi.xml: ST4W (scalar plus immediate) variant SVE
# PATTERN xe570e000/mask=xfff0e000

:st4w "{"^Zt.S, Ztt.S, Zttt.S, Ztttt.S^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m32to28]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_b_20=1 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Ztttt.S & Rn_GPR64xsp & sve_mul4_1_m32to28 & Pg3
{
	SVE_st4w(Zt.S, Ztt.S, Zttt.S, Ztttt.S, Pg3, Rn_GPR64xsp, sve_mul4_1_m32to28);
}

# st4w_z_p_br.xml: ST4W (scalar plus scalar) variant SVE
# PATTERN xe5606000/mask=xffe0e000

:st4w "{"^Zt.S, Ztt.S, Zttt.S, Ztttt.S^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b11 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Ztt.S & Zt.S & Zttt.S & Ztttt.S & Rn_GPR64xsp & Rm_GPR64 & Pg3
{
	SVE_st4w(Zt.S, Ztt.S, Zttt.S, Ztttt.S, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# stnt1b_z_p_bi.xml: STNT1B (scalar plus immediate) variant SVE
# PATTERN xe410e000/mask=xfff0e000

:stnt1b "{"^Zd.B^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2022=0b001 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.B & sve_mul4_1_m8to7 & Pg3
{
	SVE_stnt1b(Zd.B, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# stnt1b_z_p_br.xml: STNT1B (scalar plus scalar) variant SVE
# PATTERN xe4006000/mask=xffe0e000

:stnt1b "{"^Zd.B^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.B & Rm_GPR64 & Pg3
{
	SVE_stnt1b(Zd.B, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# stnt1d_z_p_bi.xml: STNT1D (scalar plus immediate) variant SVE
# PATTERN xe590e000/mask=xfff0e000

:stnt1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2022=0b001 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.D & sve_mul4_1_m8to7 & Pg3
{
	SVE_stnt1d(Zd.D, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# stnt1d_z_p_br.xml: STNT1D (scalar plus scalar) variant SVE
# PATTERN xe5806000/mask=xffe0e000

:stnt1d "{"^Zd.D^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #3"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.D & Rm_GPR64 & Pg3
{
	SVE_stnt1d(Zd.D, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# stnt1h_z_p_bi.xml: STNT1H (scalar plus immediate) variant SVE
# PATTERN xe490e000/mask=xfff0e000

:stnt1h "{"^Zd.H^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2022=0b001 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.H & sve_mul4_1_m8to7 & Pg3
{
	SVE_stnt1h(Zd.H, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# stnt1h_z_p_br.xml: STNT1H (scalar plus scalar) variant SVE
# PATTERN xe4806000/mask=xffe0e000

:stnt1h "{"^Zd.H^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #1"]
is sve_b_2531=0b1110010 & sve_b_24=0 & sve_b_23=1 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.H & Rm_GPR64 & Pg3
{
	SVE_stnt1h(Zd.H, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# stnt1w_z_p_bi.xml: STNT1W (scalar plus immediate) variant SVE
# PATTERN xe510e000/mask=xfff0e000

:stnt1w "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp^sve_mul4_1_m8to7]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2022=0b001 & sve_imm4_1619 & sve_b_1315=0b111 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.S & sve_mul4_1_m8to7 & Pg3
{
	SVE_stnt1w(Zd.S, Pg3, Rn_GPR64xsp, sve_mul4_1_m8to7);
}

# stnt1w_z_p_br.xml: STNT1W (scalar plus scalar) variant SVE
# PATTERN xe5006000/mask=xffe0e000

:stnt1w "{"^Zd.S^"}", Pg3, [Rn_GPR64xsp, Rm_GPR64, "lsl #2"]
is sve_b_2531=0b1110010 & sve_b_24=1 & sve_b_23=0 & sve_b_2122=0b00 & sve_rm_1620 & sve_b_1315=0b011 & sve_pg_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & Zd.S & Rm_GPR64 & Pg3
{
	SVE_stnt1w(Zd.S, Pg3, Rn_GPR64xsp, Rm_GPR64);
}

# str_p_bi.xml: STR (predicate) variant SVE
# PATTERN xe5800000/mask=xffc0e010

:str Pd, [Rn_GPR64xsp^sve_mul9_2_m256to255]
is sve_b_2231=0b1110010110 & sve_imm9h_1621 & sve_b_1315=0b000 & sve_imm9l_1012 & sve_rn_0509 & sve_b_04=0 & sve_pt_0003 & Rn_GPR64xsp & sve_mul9_2_m256to255 & Pd
{
	SVE_str(Pd, Rn_GPR64xsp, sve_mul9_2_m256to255);
}

# str_z_bi.xml: STR (vector) variant SVE
# PATTERN xe5804000/mask=xffc0e000

:str Zd, [Rn_GPR64xsp^sve_mul9_2_m256to255]
is sve_b_2231=0b1110010110 & sve_imm9h_1621 & sve_b_1315=0b010 & sve_imm9l_1012 & sve_rn_0509 & sve_zt_0004 & Rn_GPR64xsp & sve_mul9_2_m256to255 & Zd
{
	SVE_str(Zd, Rn_GPR64xsp, sve_mul9_2_m256to255);
}

# sub_z_p_zz.xml: SUB (vectors, predicated) variant SVE
# PATTERN x04010000/mask=xff3fe000

:sub Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_sub(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# sub_z_zi.xml: SUB (immediate) variant SVE
# PATTERN x2521c000/mask=xff3fc000

:sub Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_sub(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# sub_z_zz.xml: SUB (vectors, unpredicated) variant SVE
# PATTERN x04200400/mask=xff20fc00

:sub Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b00 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_sub(Zd.T, Zn.T, Zm.T);
}

# subr_z_p_zz.xml: SUBR (vectors) variant SVE
# PATTERN x04030000/mask=xff3fe000

:subr Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b000 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_subr(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# subr_z_zi.xml: SUBR (immediate) variant SVE
# PATTERN x2523c000/mask=xff3fc000

:subr Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_subr(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# sunpkhi_z_z.xml: SUNPKHI, SUNPKLO variant High half
# PATTERN x05313800/mask=xff3ffc00

:sunpkhi Zd.T, Zn.Tb
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1100 & sve_b_17=0 & sve_b_16=1 & sve_b_1015=0b001110 & sve_zn_0509 & sve_zd_0004 & Zn.Tb & Zd.T
{
	Zd.T = SVE_sunpkhi(Zd.T, Zn.Tb);
}

# sunpkhi_z_z.xml: SUNPKHI, SUNPKLO variant Low half
# PATTERN x05303800/mask=xff3ffc00

:sunpklo Zd.T, Zn.Tb
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1100 & sve_b_17=0 & sve_b_16=0 & sve_b_1015=0b001110 & sve_zn_0509 & sve_zd_0004 & Zn.Tb & Zd.T
{
	Zd.T = SVE_sunpklo(Zd.T, Zn.Tb);
}

# sxtb_z_p_z.xml: SXTB, SXTH, SXTW variant Byte
# PATTERN x0410a000/mask=xff3fe000

:sxtb Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b00 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_sxtb(Zd.T, Pg3_m, Zn.T);
}

# sxtb_z_p_z.xml: SXTB, SXTH, SXTW variant Halfword
# PATTERN x0412a000/mask=xff3fe000

:sxth Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b01 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_sxth(Zd.T, Pg3_m, Zn.T);
}

# sxtb_z_p_z.xml: SXTB, SXTH, SXTW variant Word
# PATTERN x0414a000/mask=xff3fe000

:sxtw Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b10 & sve_b_16=0 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_sxtw(Zd.D, Pg3_m, Zn.D);
}

# tbl_z_zz.xml: TBL variant SVE
# PATTERN x05203000/mask=xff20fc00

:tbl Zd.T, "{"^Zn.T^"}", Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1015=0b001100 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_tbl(Zd.T, Zn.T, Zm.T);
}

# trn1_p_pp.xml: TRN1, TRN2 (predicates) variant Even
# PATTERN x05205000/mask=xff30fe10

:trn1 Pd.T, Pn.T, Pm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b10 & sve_pm_1619 & sve_b_1315=0b010 & sve_b_12=1 & sve_b_11=0 & sve_b_10=0 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T & Pm.T
{
	Pd.T = SVE_trn1(Pd.T, Pn.T, Pm.T);
}

# trn1_p_pp.xml: TRN1, TRN2 (predicates) variant Odd
# PATTERN x05205400/mask=xff30fe10

:trn2 Pd.T, Pn.T, Pm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b10 & sve_pm_1619 & sve_b_1315=0b010 & sve_b_12=1 & sve_b_11=0 & sve_b_10=1 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T & Pm.T
{
	Pd.T = SVE_trn2(Pd.T, Pn.T, Pm.T);
}

# trn1_z_zz.xml: TRN1, TRN2 (vectors) variant Even
# PATTERN x05207000/mask=xff20fc00

:trn1 Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b011 & sve_b_1112=0b10 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_trn1(Zd.T, Zn.T, Zm.T);
}

# trn1_z_zz.xml: TRN1, TRN2 (vectors) variant Odd
# PATTERN x05207400/mask=xff20fc00

:trn2 Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b011 & sve_b_1112=0b10 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_trn2(Zd.T, Zn.T, Zm.T);
}

# uabd_z_p_zz.xml: UABD variant SVE
# PATTERN x040d0000/mask=xff3fe000

:uabd Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b001 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_uabd(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# uaddv_r_p_z.xml: UADDV variant SVE
# PATTERN x04012000/mask=xff3fe000

:uaddv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b000 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_uaddv(Rd_FPR64, Zn.T, Pg3);
}

# ucvtf_z_p_z.xml: UCVTF variant 16-bit to half-precision
# PATTERN x6553a000/mask=xffffe000

:ucvtf Zd.H, Pg3_m, Zn.H
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.H & Zd.H & Pg3_m
{
	Zd.H = SVE_ucvtf(Zd.H, Pg3_m, Zn.H);
}

# ucvtf_z_p_z.xml: UCVTF variant 32-bit to half-precision
# PATTERN x6555a000/mask=xffffe000

:ucvtf Zd.H, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.H & Pg3_m
{
	Zd.H = SVE_ucvtf(Zd.H, Pg3_m, Zn.S);
}

# ucvtf_z_p_z.xml: UCVTF variant 32-bit to single-precision
# PATTERN x6595a000/mask=xffffe000

:ucvtf Zd.S, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=0 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.S & Pg3_m
{
	Zd.S = SVE_ucvtf(Zd.S, Pg3_m, Zn.S);
}

# ucvtf_z_p_z.xml: UCVTF variant 32-bit to double-precision
# PATTERN x65d1a000/mask=xffffe000

:ucvtf Zd.D, Pg3_m, Zn.S
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.S & Zd.D & Pg3_m
{
	Zd.D = SVE_ucvtf(Zd.D, Pg3_m, Zn.S);
}

# ucvtf_z_p_z.xml: UCVTF variant 64-bit to half-precision
# PATTERN x6557a000/mask=xffffe000

:ucvtf Zd.H, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=0 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.H & Pg3_m
{
	Zd.H = SVE_ucvtf(Zd.H, Pg3_m, Zn.D);
}

# ucvtf_z_p_z.xml: UCVTF variant 64-bit to single-precision
# PATTERN x65d5a000/mask=xffffe000

:ucvtf Zd.S, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.S & Pg3_m
{
	Zd.S = SVE_ucvtf(Zd.S, Pg3_m, Zn.D);
}

# ucvtf_z_p_z.xml: UCVTF variant 64-bit to double-precision
# PATTERN x65d7a000/mask=xffffe000

:ucvtf Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b01100101 & sve_b_23=1 & sve_b_22=1 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_ucvtf(Zd.D, Pg3_m, Zn.D);
}

# udiv_z_p_zz.xml: UDIV variant SVE
# PATTERN x04950000/mask=xffbfe000

:udiv Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_sz_22 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T_sz & Zd.T_sz_2 & Zn.T_sz & Pg3_m
{
	Zd.T_sz = SVE_udiv(Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz);
}

# udivr_z_p_zz.xml: UDIVR variant SVE
# PATTERN x04970000/mask=xffbfe000

:udivr Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_sz_22 & sve_b_1921=0b010 & sve_b_18=1 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T_sz & Zd.T_sz_2 & Zn.T_sz & Pg3_m
{
	Zd.T_sz = SVE_udivr(Zd.T_sz, Pg3_m, Zd.T_sz_2, Zn.T_sz);
}

# udot_z_zzz.xml: UDOT (vectors) variant SVE
# PATTERN x44800400/mask=xffa0fc00

:udot Zd.T_sz, Zn.Tb_sz, Zm.Tb_sz
is sve_b_2431=0b01000100 & sve_b_23=1 & sve_sz_22 & sve_b_21=0 & sve_zm_1620 & sve_b_1115=0b00000 & sve_b_10=1 & sve_zn_0509 & sve_zda_0004 & Zm.Tb_sz & Zd.T_sz & Zn.Tb_sz
{
	Zd.T_sz = SVE_udot(Zd.T_sz, Zn.Tb_sz, Zm.Tb_sz);
}

# udot_z_zzzi.xml: UDOT (indexed) variant 32-bit
# PATTERN x44a00400/mask=xffe0fc00

:udot Zd.S, Zn.B, Zm3.B[sve_i2_1920]
is sve_b_2431=0b01000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_i2_1920 & sve_zm_1618 & sve_b_1115=0b00000 & sve_b_10=1 & sve_zn_0509 & sve_zda_0004 & Zd.S & Zn.B & Zm3.B
{
	Zd.S = SVE_udot(Zd.S, Zn.B, Zm3.B, sve_i2_1920:1);
}

# udot_z_zzzi.xml: UDOT (indexed) variant 64-bit
# PATTERN x44e00400/mask=xffe0fc00

:udot Zd.D, Zn.H, Zm4.H[sve_i1_20]
is sve_b_2431=0b01000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_i1_20 & sve_zm_1619 & sve_b_1115=0b00000 & sve_b_10=1 & sve_zn_0509 & sve_zda_0004 & Zd.D & Zn.H & Zm4.H
{
	Zd.D = SVE_udot(Zd.D, Zn.H, Zm4.H, sve_i1_20:1);
}

# umax_z_p_zz.xml: UMAX (vectors) variant SVE
# PATTERN x04090000/mask=xff3fe000

:umax Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_umax(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# umax_z_zi.xml: UMAX (immediate) variant SVE
# PATTERN x2529c000/mask=xff3fe000

:umax Zd.T, Zd.T_2, "#"^sve_imm8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b101 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1415=0b11 & sve_b_13=0 & sve_imm8_0512 & sve_zdn_0004 & Zd.T & Zd.T_2 & sve_imm8_1_0to255
{
	Zd.T = SVE_umax(Zd.T, Zd.T_2, sve_imm8_1_0to255:1);
}

# umaxv_r_p_z.xml: UMAXV variant SVE
# PATTERN x04092000/mask=xff3fe000

:umaxv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_umaxv(Rd_FPR8, Pg3, Zn.T);
}

# umaxv_r_p_z.xml: UMAXV variant SVE
# PATTERN x04092000/mask=xff3fe000

:umaxv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_umaxv(Rd_FPR32, Pg3, Zn.T);
}

# umaxv_r_p_z.xml: UMAXV variant SVE
# PATTERN x04092000/mask=xff3fe000

:umaxv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_umaxv(Rd_FPR16, Pg3, Zn.T);
}

# umaxv_r_p_z.xml: UMAXV variant SVE
# PATTERN x04092000/mask=xff3fe000

:umaxv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=0 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_umaxv(Rd_FPR64, Pg3, Zn.T);
}

# umin_z_p_zz.xml: UMIN (vectors) variant SVE
# PATTERN x040b0000/mask=xff3fe000

:umin Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_umin(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# umin_z_zi.xml: UMIN (immediate) variant SVE
# PATTERN x252bc000/mask=xff3fe000

:umin Zd.T, Zd.T_2, "#"^sve_imm8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b101 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1415=0b11 & sve_b_13=0 & sve_imm8_0512 & sve_zdn_0004 & Zd.T & Zd.T_2 & sve_imm8_1_0to255
{
	Zd.T = SVE_umin(Zd.T, Zd.T_2, sve_imm8_1_0to255:1);
}

# uminv_r_p_z.xml: UMINV variant SVE
# PATTERN x040b2000/mask=xff3fe000

:uminv Rd_FPR8, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b00 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR8 & Pg3
{
	Rd_FPR8 = SVE_uminv(Rd_FPR8, Pg3, Zn.T);
}

# uminv_r_p_z.xml: UMINV variant SVE
# PATTERN x040b2000/mask=xff3fe000

:uminv Rd_FPR32, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b10 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR32 & Pg3
{
	Rd_FPR32 = SVE_uminv(Rd_FPR32, Pg3, Zn.T);
}

# uminv_r_p_z.xml: UMINV variant SVE
# PATTERN x040b2000/mask=xff3fe000

:uminv Rd_FPR16, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b01 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR16 & Pg3
{
	Rd_FPR16 = SVE_uminv(Rd_FPR16, Pg3, Zn.T);
}

# uminv_r_p_z.xml: UMINV variant SVE
# PATTERN x040b2000/mask=xff3fe000

:uminv Rd_FPR64, Pg3, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223=0b11 & sve_b_1921=0b001 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b001 & sve_pg_1012 & sve_zn_0509 & sve_vd_0004 & Zn.T & Rd_FPR64 & Pg3
{
	Rd_FPR64 = SVE_uminv(Rd_FPR64, Pg3, Zn.T);
}

# umulh_z_p_zz.xml: UMULH variant SVE
# PATTERN x04130000/mask=xff3fe000

:umulh Zd.T, Pg3_m, Zd.T_2, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_18=0 & sve_b_17=1 & sve_b_16=1 & sve_b_1315=0b000 & sve_pg_1012 & sve_zm_0509 & sve_zdn_0004 & Zd.T & Zd.T_2 & Zn.T & Pg3_m
{
	Zd.T = SVE_umulh(Zd.T, Pg3_m, Zd.T_2, Zn.T);
}

# uqadd_z_zi.xml: UQADD (immediate) variant SVE
# PATTERN x2525c000/mask=xff3fc000

:uqadd Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_uqadd(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# uqadd_z_zz.xml: UQADD (vectors) variant SVE
# PATTERN x04201400/mask=xff20fc00

:uqadd Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b10 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_uqadd(Zd.T, Zn.T, Zm.T);
}

# uqdecb_r_rs.xml: UQDECB variant 32-bit
# PATTERN x0420fc00/mask=xfff0fc00

:uqdecb Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqdecb(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecb_r_rs.xml: UQDECB variant 64-bit
# PATTERN x0430fc00/mask=xfff0fc00

:uqdecb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqdecb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecd_r_rs.xml: UQDECD (scalar) variant 32-bit
# PATTERN x04e0fc00/mask=xfff0fc00

:uqdecd Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqdecd(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecd_r_rs.xml: UQDECD (scalar) variant 64-bit
# PATTERN x04f0fc00/mask=xfff0fc00

:uqdecd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqdecd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecd_z_zs.xml: UQDECD (vector) variant SVE
# PATTERN x04e0cc00/mask=xfff0fc00

:uqdecd Zd.D^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.D & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.D = SVE_uqdecd(Zd.D, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdech_r_rs.xml: UQDECH (scalar) variant 32-bit
# PATTERN x0460fc00/mask=xfff0fc00

:uqdech Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqdech(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdech_r_rs.xml: UQDECH (scalar) variant 64-bit
# PATTERN x0470fc00/mask=xfff0fc00

:uqdech Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqdech(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdech_z_zs.xml: UQDECH (vector) variant SVE
# PATTERN x0460cc00/mask=xfff0fc00

:uqdech Zd.H^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.H & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.H = SVE_uqdech(Zd.H, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecp_r_p_r.xml: UQDECP (scalar) variant 32-bit
# PATTERN x252b8800/mask=xff3ffe00

:uqdecp Rd_GPR32, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=1 & sve_b_16=1 & sve_b_1115=0b10001 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR32
{
	Rd_GPR32 = SVE_uqdecp(Rd_GPR32, Pn.T);
}

# uqdecp_r_p_r.xml: UQDECP (scalar) variant 64-bit
# PATTERN x252b8c00/mask=xff3ffe00

:uqdecp Rd_GPR64, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=1 & sve_b_16=1 & sve_b_1115=0b10001 & sve_b_10=1 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR64
{
	Rd_GPR64 = SVE_uqdecp(Rd_GPR64, Pn.T);
}

# uqdecp_z_p_z.xml: UQDECP (vector) variant SVE
# PATTERN x252b8000/mask=xff3ffe00

:uqdecp Zd.T, Pn
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=1 & sve_b_16=1 & sve_b_1115=0b10000 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_zdn_0004 & Zd.T & Pn
{
	Zd.T = SVE_uqdecp(Zd.T, Pn);
}

# uqdecw_r_rs.xml: UQDECW (scalar) variant 32-bit
# PATTERN x04a0fc00/mask=xfff0fc00

:uqdecw Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqdecw(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecw_r_rs.xml: UQDECW (scalar) variant 64-bit
# PATTERN x04b0fc00/mask=xfff0fc00

:uqdecw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqdecw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqdecw_z_zs.xml: UQDECW (vector) variant SVE
# PATTERN x04a0cc00/mask=xfff0fc00

:uqdecw Zd.S^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=1 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.S & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.S = SVE_uqdecw(Zd.S, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincb_r_rs.xml: UQINCB variant 32-bit
# PATTERN x0420f400/mask=xfff0fc00

:uqincb Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqincb(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincb_r_rs.xml: UQINCB variant 64-bit
# PATTERN x0430f400/mask=xfff0fc00

:uqincb Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqincb(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincd_r_rs.xml: UQINCD (scalar) variant 32-bit
# PATTERN x04e0f400/mask=xfff0fc00

:uqincd Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqincd(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincd_r_rs.xml: UQINCD (scalar) variant 64-bit
# PATTERN x04f0f400/mask=xfff0fc00

:uqincd Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqincd(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincd_z_zs.xml: UQINCD (vector) variant SVE
# PATTERN x04e0c400/mask=xfff0fc00

:uqincd Zd.D^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.D & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.D = SVE_uqincd(Zd.D, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqinch_r_rs.xml: UQINCH (scalar) variant 32-bit
# PATTERN x0460f400/mask=xfff0fc00

:uqinch Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqinch(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqinch_r_rs.xml: UQINCH (scalar) variant 64-bit
# PATTERN x0470f400/mask=xfff0fc00

:uqinch Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqinch(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqinch_z_zs.xml: UQINCH (vector) variant SVE
# PATTERN x0460c400/mask=xfff0fc00

:uqinch Zd.H^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=0 & sve_b_22=1 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.H & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.H = SVE_uqinch(Zd.H, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincp_r_p_r.xml: UQINCP (scalar) variant 32-bit
# PATTERN x25298800/mask=xff3ffe00

:uqincp Rd_GPR32, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=0 & sve_b_16=1 & sve_b_1115=0b10001 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR32
{
	Rd_GPR32 = SVE_uqincp(Rd_GPR32, Pn.T);
}

# uqincp_r_p_r.xml: UQINCP (scalar) variant 64-bit
# PATTERN x25298c00/mask=xff3ffe00

:uqincp Rd_GPR64, Pn.T
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=0 & sve_b_16=1 & sve_b_1115=0b10001 & sve_b_10=1 & sve_b_09=0 & sve_pg_0508 & sve_rdn_0004 & Pn.T & Rd_GPR64
{
	Rd_GPR64 = SVE_uqincp(Rd_GPR64, Pn.T);
}

# uqincp_z_p_z.xml: UQINCP (vector) variant SVE
# PATTERN x25298000/mask=xff3ffe00

:uqincp Zd.T, Pn
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1821=0b1010 & sve_b_17=0 & sve_b_16=1 & sve_b_1115=0b10000 & sve_b_10=0 & sve_b_09=0 & sve_pg_0508 & sve_zdn_0004 & Zd.T & Pn
{
	Zd.T = SVE_uqincp(Zd.T, Pn);
}

# uqincw_r_rs.xml: UQINCW (scalar) variant 32-bit
# PATTERN x04a0f400/mask=xfff0fc00

:uqincw Rd_GPR32^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=0 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR32 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR32 = SVE_uqincw(Rd_GPR32, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincw_r_rs.xml: UQINCW (scalar) variant 64-bit
# PATTERN x04b0f400/mask=xfff0fc00

:uqincw Rd_GPR64^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_21=1 & sve_b_20=1 & sve_imm4_1619 & sve_b_1215=0b1111 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_rdn_0004 & sve_pattern & Rd_GPR64 & sve_imm4_1_1to16 & sve_mul_pattern
{
	Rd_GPR64 = SVE_uqincw(Rd_GPR64, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqincw_z_zs.xml: UQINCW (vector) variant SVE
# PATTERN x04a0c400/mask=xfff0fc00

:uqincw Zd.S^sve_mul_pattern
is sve_b_2431=0b00000100 & sve_b_23=1 & sve_b_22=0 & sve_b_2021=0b10 & sve_imm4_1619 & sve_b_1215=0b1100 & sve_b_11=0 & sve_b_10=1 & sve_pattern_0509 & sve_zdn_0004 & sve_pattern & Zd.S & sve_imm4_1_1to16 & sve_mul_pattern
{
	Zd.S = SVE_uqincw(Zd.S, sve_mul_pattern, sve_imm4_1_1to16:1);
}

# uqsub_z_zi.xml: UQSUB (immediate) variant SVE
# PATTERN x2527c000/mask=xff3fc000

:uqsub Zd.T, Zd.T_2, sve_shf8_1_0to255
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_1921=0b100 & sve_b_1718=0b11 & sve_b_16=1 & sve_b_1415=0b11 & sve_sh_13 & sve_imm8_0512 & sve_zdn_0004 & sve_shift_13 & Zd.T & Zd.T_2 & sve_imm8_1_0to255 & sve_shf8_1_0to255
{
	Zd.T = SVE_uqsub(Zd.T, Zd.T_2, sve_shf8_1_0to255, sve_shift_13:1);
}

# uqsub_z_zz.xml: UQSUB (vectors) variant SVE
# PATTERN x04201c00/mask=xff20fc00

:uqsub Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b000 & sve_b_1112=0b11 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_uqsub(Zd.T, Zn.T, Zm.T);
}

# uunpkhi_z_z.xml: UUNPKHI, UUNPKLO variant High half
# PATTERN x05333800/mask=xff3ffc00

:uunpkhi Zd.T, Zn.Tb
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1100 & sve_b_17=1 & sve_b_16=1 & sve_b_1015=0b001110 & sve_zn_0509 & sve_zd_0004 & Zn.Tb & Zd.T
{
	Zd.T = SVE_uunpkhi(Zd.T, Zn.Tb);
}

# uunpkhi_z_z.xml: UUNPKHI, UUNPKLO variant Low half
# PATTERN x05323800/mask=xff3ffc00

:uunpklo Zd.T, Zn.Tb
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_1821=0b1100 & sve_b_17=1 & sve_b_16=0 & sve_b_1015=0b001110 & sve_zn_0509 & sve_zd_0004 & Zn.Tb & Zd.T
{
	Zd.T = SVE_uunpklo(Zd.T, Zn.Tb);
}

# uxtb_z_p_z.xml: UXTB, UXTH, UXTW variant Byte
# PATTERN x0411a000/mask=xff3fe000

:uxtb Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b00 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_uxtb(Zd.T, Pg3_m, Zn.T);
}

# uxtb_z_p_z.xml: UXTB, UXTH, UXTW variant Halfword
# PATTERN x0413a000/mask=xff3fe000

:uxth Zd.T, Pg3_m, Zn.T
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b01 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zd.T & Zn.T & Pg3_m
{
	Zd.T = SVE_uxth(Zd.T, Pg3_m, Zn.T);
}

# uxtb_z_p_z.xml: UXTB, UXTH, UXTW variant Word
# PATTERN x0415a000/mask=xff3fe000

:uxtw Zd.D, Pg3_m, Zn.D
is sve_b_2431=0b00000100 & sve_size_2223 & sve_b_1921=0b010 & sve_b_1718=0b10 & sve_b_16=1 & sve_b_1315=0b101 & sve_pg_1012 & sve_zn_0509 & sve_zd_0004 & Zn.D & Zd.D & Pg3_m
{
	Zd.D = SVE_uxtw(Zd.D, Pg3_m, Zn.D);
}

# uzp1_p_pp.xml: UZP1, UZP2 (predicates) variant Even
# PATTERN x05204800/mask=xff30fe10

:uzp1 Pd.T, Pn.T, Pm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b10 & sve_pm_1619 & sve_b_1315=0b010 & sve_b_12=0 & sve_b_11=1 & sve_b_10=0 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T & Pm.T
{
	Pd.T = SVE_uzp1(Pd.T, Pn.T, Pm.T);
}

# uzp1_p_pp.xml: UZP1, UZP2 (predicates) variant Odd
# PATTERN x05204c00/mask=xff30fe10

:uzp2 Pd.T, Pn.T, Pm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b10 & sve_pm_1619 & sve_b_1315=0b010 & sve_b_12=0 & sve_b_11=1 & sve_b_10=1 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T & Pm.T
{
	Pd.T = SVE_uzp2(Pd.T, Pn.T, Pm.T);
}

# uzp1_z_zz.xml: UZP1, UZP2 (vectors) variant Even
# PATTERN x05206800/mask=xff20fc00

:uzp1 Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b011 & sve_b_1112=0b01 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_uzp1(Zd.T, Zn.T, Zm.T);
}

# uzp1_z_zz.xml: UZP1, UZP2 (vectors) variant Odd
# PATTERN x05206c00/mask=xff20fc00

:uzp2 Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b011 & sve_b_1112=0b01 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_uzp2(Zd.T, Zn.T, Zm.T);
}

# whilele_p_p_rr.xml: WHILELE variant SVE
# PATTERN x25200410/mask=xff20ec10

:whilele Pd.T, Rn_GPR64, Rm_GPR64
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=1 & sve_b_11=0 & sve_b_10=1 & sve_rn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Rn_GPR64 & Rm_GPR64
{
	Pd.T = SVE_whilele(Pd.T, Rn_GPR64, Rm_GPR64);
}

# whilele_p_p_rr.xml: WHILELE variant SVE
# PATTERN x25200410/mask=xff20ec10

:whilele Pd.T, Rn_GPR32, Rm_GPR32
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=0 & sve_b_11=0 & sve_b_10=1 & sve_rn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Rn_GPR32 & Rm_GPR32
{
	Pd.T = SVE_whilele(Pd.T, Rn_GPR32, Rm_GPR32);
}

# whilelo_p_p_rr.xml: WHILELO variant SVE
# PATTERN x25200c00/mask=xff20ec10

:whilelo Pd.T, Rn_GPR64, Rm_GPR64
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=1 & sve_b_11=1 & sve_b_10=1 & sve_rn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Rn_GPR64 & Rm_GPR64
{
	Pd.T = SVE_whilelo(Pd.T, Rn_GPR64, Rm_GPR64);
}

# whilelo_p_p_rr.xml: WHILELO variant SVE
# PATTERN x25200c00/mask=xff20ec10

:whilelo Pd.T, Rn_GPR32, Rm_GPR32
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=0 & sve_b_11=1 & sve_b_10=1 & sve_rn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Rn_GPR32 & Rm_GPR32
{
	Pd.T = SVE_whilelo(Pd.T, Rn_GPR32, Rm_GPR32);
}

# whilels_p_p_rr.xml: WHILELS variant SVE
# PATTERN x25200c10/mask=xff20ec10

:whilels Pd.T, Rn_GPR64, Rm_GPR64
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=1 & sve_b_11=1 & sve_b_10=1 & sve_rn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Rn_GPR64 & Rm_GPR64
{
	Pd.T = SVE_whilels(Pd.T, Rn_GPR64, Rm_GPR64);
}

# whilels_p_p_rr.xml: WHILELS variant SVE
# PATTERN x25200c10/mask=xff20ec10

:whilels Pd.T, Rn_GPR32, Rm_GPR32
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=0 & sve_b_11=1 & sve_b_10=1 & sve_rn_0509 & sve_b_04=1 & sve_pd_0003 & Pd.T & Rn_GPR32 & Rm_GPR32
{
	Pd.T = SVE_whilels(Pd.T, Rn_GPR32, Rm_GPR32);
}

# whilelt_p_p_rr.xml: WHILELT variant SVE
# PATTERN x25200400/mask=xff20ec10

:whilelt Pd.T, Rn_GPR64, Rm_GPR64
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=1 & sve_b_11=0 & sve_b_10=1 & sve_rn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Rn_GPR64 & Rm_GPR64
{
	Pd.T = SVE_whilelt(Pd.T, Rn_GPR64, Rm_GPR64);
}

# whilelt_p_p_rr.xml: WHILELT variant SVE
# PATTERN x25200400/mask=xff20ec10

:whilelt Pd.T, Rn_GPR32, Rm_GPR32
is sve_b_2431=0b00100101 & sve_size_2223 & sve_b_21=1 & sve_rm_1620 & sve_b_1315=0b000 & sve_sf_12=0 & sve_b_11=0 & sve_b_10=1 & sve_rn_0509 & sve_b_04=0 & sve_pd_0003 & Pd.T & Rn_GPR32 & Rm_GPR32
{
	Pd.T = SVE_whilelt(Pd.T, Rn_GPR32, Rm_GPR32);
}

# wrffr_f_p.xml: WRFFR variant SVE
# PATTERN x25289000/mask=xfffffe1f

:wrffr Pn.B
is sve_b_3031=0b00 & sve_b_2429=0b100101 & sve_b_23=0 & sve_b_22=0 & sve_b_2021=0b10 & sve_b_1019=0b1000100100 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_b_03=0 & sve_b_02=0 & sve_b_0001=0b00 & Pn.B
{
	SVE_wrffr(Pn.B);
}

# zip1_p_pp.xml: ZIP1, ZIP2 (predicates) variant High halves
# PATTERN x05204400/mask=xff30fe10

:zip2 Pd.T, Pn.T, Pm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b10 & sve_pm_1619 & sve_b_1315=0b010 & sve_b_12=0 & sve_b_11=0 & sve_b_10=1 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T & Pm.T
{
	Pd.T = SVE_zip2(Pd.T, Pn.T, Pm.T);
}

# zip1_p_pp.xml: ZIP1, ZIP2 (predicates) variant Low halves
# PATTERN x05204000/mask=xff30fe10

:zip1 Pd.T, Pn.T, Pm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_2021=0b10 & sve_pm_1619 & sve_b_1315=0b010 & sve_b_12=0 & sve_b_11=0 & sve_b_10=0 & sve_b_09=0 & sve_pn_0508 & sve_b_04=0 & sve_pd_0003 & Pn.T & Pd.T & Pm.T
{
	Pd.T = SVE_zip1(Pd.T, Pn.T, Pm.T);
}

# zip1_z_zz.xml: ZIP1, ZIP2 (vectors) variant High halves
# PATTERN x05206400/mask=xff20fc00

:zip2 Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b011 & sve_b_1112=0b00 & sve_b_10=1 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_zip2(Zd.T, Zn.T, Zm.T);
}

# zip1_z_zz.xml: ZIP1, ZIP2 (vectors) variant Low halves
# PATTERN x05206000/mask=xff20fc00

:zip1 Zd.T, Zn.T, Zm.T
is sve_b_2431=0b00000101 & sve_size_2223 & sve_b_21=1 & sve_zm_1620 & sve_b_1315=0b011 & sve_b_1112=0b00 & sve_b_10=0 & sve_zn_0509 & sve_zd_0004 & Zm.T & Zd.T & Zn.T
{
	Zd.T = SVE_zip1(Zd.T, Zn.T, Zm.T);
}
