# 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 ., ., #(- - 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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 ., /Z, ., . 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 ., /Z, ., . 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 ., /Z, ., . 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 ., /Z, ., . 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 ., ., #(- - 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 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 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 ., /Z, ., . 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 ., /Z, ., . 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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 ., /Z, ., . 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 ., /Z, ., . 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 ., /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 ., #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 ., /M, # 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 ., # 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 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 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 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 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 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 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 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 .B, /Z, .B, .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 ., /, #{, } 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 ., /M, 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 ., /M, 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 ., #{, } 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 ., 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 ., .[0] if BitCount(imm2:tsz) == 1 # ALIASEDBY DUP ., .[] 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 ., # 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 .B, /Z, .B, .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 .D, .D, .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 .B, , .B, .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 ., , ., . 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 .B, /Z, .B, .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 .B, /Z, .B, .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 .B, /Z, .B, .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 .B, /Z, .B, .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 ., ., #(- - 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); }