From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from st43p00im-ztdg10063201.me.com (st43p00im-ztdg10063201.me.com [17.58.63.182]) by sourceware.org (Postfix) with ESMTPS id 379613858C52 for ; Fri, 12 May 2023 23:08:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 379613858C52 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=icloud.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=1a1hai; t=1683932923; bh=VnmiThnRzkGawghIzMVZC+Bc7sTsSHBobV2CMU9H8vg=; h=From:Content-Type:Mime-Version:Subject:Date:Message-Id:To; b=1OrZLxBbUv9eTp558BAvtnNaUxUHHPZXJoJbEedUQcpTP5S+60jaL8Z9HXjisX+w5 Tn//bAaitzuzCrqcT3ailhW1ZfLao/AQF4Z5hc7K9V7DZHOgAVvrTHdIxfcEGAkyWX HhLuXWKMTTLAgmgiBE2K1a/XbzMj6+RuGlJY48aX0HtMylV91DfgOx6b9J5niPpVtl zo6LfYXK0+FOK3rH8c/g9LM88ZryGs0JQcRTq7aWObKE2C5czdUMS5+pwrH54grZSP tAPuna+mbmLf0BedYTNiKLzaQ3o7EHq6Z6VJw5cUMaW8QbVxCS4HQ3tp9tbsgjs0C3 FOd9rnYnAvgVg== Received: from smtpclient.apple (st43p00im-dlb-asmtp-mailmevip.me.com [17.42.251.41]) by st43p00im-ztdg10063201.me.com (Postfix) with ESMTPSA id 4B596380E0F; Fri, 12 May 2023 23:08:42 +0000 (UTC) From: Evandro Menezes Content-Type: multipart/mixed; boundary="Apple-Mail=_C4ECAB78-6812-4686-B8CE-AA3DF13FF921" Reply-To: evandro+gcc@gcc.gnu.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\)) Subject: [PATCH] aarch64: Add SVE instruction types Date: Fri, 12 May 2023 18:08:09 -0500 Message-Id: <1D567E08-9EBB-4EF7-9626-BA95D8E0EB36@icloud.com> Cc: Kyrylo Tkachov , Tamar Christina To: gcc-patches X-Mailer: Apple Mail (2.3731.500.231) X-Proofpoint-ORIG-GUID: btEGTYhTnuDpuMGp3PQHOtcVlJxg2Id3 X-Proofpoint-GUID: btEGTYhTnuDpuMGp3PQHOtcVlJxg2Id3 X-Proofpoint-Virus-Version: =?UTF-8?Q?vendor=3Dfsecure_engine=3D1.1.170-22c6f66c430a71ce266a39bfe25bc?= =?UTF-8?Q?2903e8d5c8f:6.0.138,18.0.572,17.0.605.474.0000000_definitions?= =?UTF-8?Q?=3D2020-02-14=5F11:2020-02-14=5F02,2020-02-14=5F11,2020-01-23?= =?UTF-8?Q?=5F02_signatures=3D0?= X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 bulkscore=0 malwarescore=0 clxscore=1015 adultscore=0 spamscore=0 mlxlogscore=737 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2305120194 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --Apple-Mail=_C4ECAB78-6812-4686-B8CE-AA3DF13FF921 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii This patch adds the attribute `type` to most SVE1 instructions, as in = the other instructions. --=20 Evandro Menezes --Apple-Mail=_C4ECAB78-6812-4686-B8CE-AA3DF13FF921 Content-Disposition: attachment; filename=0002-aarch64-Add-SVE-instruction-types.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0002-aarch64-Add-SVE-instruction-types.patch" Content-Transfer-Encoding: quoted-printable =46rom=20be61df66d1a86bc7ec415eb23504002831c67c51=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Evandro=20Menezes=20=0A= Date:=20Mon,=208=20May=202023=2017:39:10=20-0500=0ASubject:=20[PATCH=20= 2/3]=20aarch64:=20Add=20SVE=20instruction=20types=0A=0Agcc/ChangeLog:=0A=0A= =09*=20config/aarch64/aarch64-sve.md:=20Use=20the=20instruction=20types.=0A= =09*=20config/arm/types.md:=20(sve_loop_p,=20sve_loop_ps,=20sve_loop_gs,=0A= =09=20=20sve_loop_end,=20sve_logic_p,=20sve_logic_ps,=20sve_cnt_p,=0A=09=20= =20sve_cnt_pv,=20sve_cnt_pvx,=20sve_rev_p,=20sve_sel_p,=20sve_set_p,=0A=09= =20=20sve_set_ps,=20sve_trn_p,=20sve_upk_p,=20sve_zip_p,=20sve_arith,=0A=09= =20=20sve_arith_r,=20sve_arith_sat,=20sve_arith_sat_x,=20sve_arith_x,=0A=09= =20=20sve_logic,=20sve_logic_r,=20sve_logic_x,=20sve_shift,=20= sve_shift_d,=0A=09=20=20sve_shift_dx,=20sve_shift_x,=20sve_compare_s,=20= sve_cnt,=20sve_cnt_x,=0A=09=20=20sve_copy,=20sve_copy_g,=20sve_move,=20= sve_move_x,=20sve_move_g,=0A=09=20=20sve_permute,=20sve_splat,=20= sve_splat_m,=20sve_splat_g,=20sve_cext,=0A=09=20=20sve_cext_x,=20= sve_cext_g,=20sve_ext,=20sve_ext_x,=20sve_sext,=0A=09=20=20sve_sext_x,=20= sve_uext,=20sve_uext_x,=20sve_index,=20sve_index_g,=0A=09=20=20sve_ins,=20= sve_ins_x,=20sve_ins_g,=20sve_ins_gx,=20sve_rev,=20sve_rev_x,=0A=09=20=20= sve_tbl,=20sve_trn,=20sve_upk,=20sve_zip,=20sve_int_to_fp,=0A=09=20=20= sve_int_to_fp_x,=20sve_fp_to_int,=20sve_fp_to_int_x,=20sve_fp_to_fp,=0A=09= =20=20sve_fp_to_fp_x,=20sve_fp_round,=20sve_fp_round_x,=20sve_bf_to_fp,=0A= =09=20=20sve_bf_to_fp_x,=20sve_div,=20sve_div_x,=20sve_dot,=20sve_dot_x,=0A= =09=20=20sve_mla,=20sve_mla_x,=20sve_mmla,=20sve_mmla_x,=20sve_mul,=20= sve_mul_x,=0A=09=20=20sve_prfx,=20sve_fp_arith,=20sve_fp_arith_a,=20= sve_fp_arith_c,=0A=09=20=20sve_fp_arith_cx,=20sve_fp_arith_r,=20= sve_fp_arith_x,=0A=09=20=20sve_fp_compare,=20sve_fp_copy,=20sve_fp_move,=20= sve_fp_move_x,=0A=09=20=20sve_fp_div_d,=20sve_fp_div_dx,=20sve_fp_div_s,=20= sve_fp_div_sx=0A=09=20=20sve_fp_dot,=20sve_fp_mla,=20sve_fp_mla_x,=20= sve_fp_mla_c,=0A=09=20=20sve_fp_mla_cx,=20sve_fp_mla_t,=20sve_fp_mla_tx,=20= sve_fp_mmla,=0A=09=20=20sve_fp_mmla_x,=20sve_fp_mul,=20sve_fp_mul_x,=20= sve_fp_sqrt_d,=0A=09=20=20sve_fp_sqrt_dx,=20sve_fp_sqrt_s,=20= sve_fp_sqrt_sx,=20sve_fp_trig,=0A=09=20=20sve_fp_trig_x,=20= sve_fp_estimate,=20sve_fp_step,=20sve_bf_dot,=0A=09=20=20sve_bf_dot_x,=20= sve_bf_mla,=20sve_bf_mla_x,=20sve_bf_mmla,=0A=09=20=20sve_bf_mmla_x,=20= sve_ldr,=20sve_ldr_p,=20sve_load1,=0A=09=20=20sve_load1_gather_d,=20= sve_load1_gather_dl,=20sve_load1_gather_du,=0A=09=20=20= sve_load1_gather_s,=20sve_load1_gather_sl,=20sve_load1_gather_su,=0A=09=20= =20sve_load2,=20sve_load3,=20sve_load4,=20sve_str,=20sve_str_p,=0A=09=20=20= sve_store1,=20sve_store1_scatter,=20sve_store2,=20sve_store3,=0A=09=20=20= sve_store4,=20sve_rd_ffr,=20sve_rd_ffr_p,=20sve_rd_ffr_ps,=0A=09=20=20= sve_wr_ffr):=20New=20types.=0A=0ASigned-off-by:=20Evandro=20Menezes=20= =0A---=0A=20gcc/config/aarch64/aarch64-sve.md=20|=20= 632=20++++++++++++++++++++++--------=0A=20gcc/config/arm/types.md=20=20=20= =20=20=20=20=20=20=20=20|=20342=20++++++++++++++++=0A=202=20files=20= changed,=20819=20insertions(+),=20155=20deletions(-)=0A=0Adiff=20--git=20= a/gcc/config/aarch64/aarch64-sve.md=20= b/gcc/config/aarch64/aarch64-sve.md=0Aindex=202898b85376b..58c5cb2ddbc=20= 100644=0A---=20a/gcc/config/aarch64/aarch64-sve.md=0A+++=20= b/gcc/config/aarch64/aarch64-sve.md=0A@@=20-699,6=20+699,7=20@@=0A=20=20=20= =20str\t%1,=20%0=0A=20=20=20=20mov\t%0.d,=20%1.d=0A=20=20=20=20*=20= return=20aarch64_output_sve_mov_immediate=20(operands[1]);"=0A+=20=20= [(set_attr=20"type"=20"sve_ldr,=20sve_str,=20sve_move,=20*")]=20=0A=20)=0A= =20=0A=20;;=20Unpredicated=20moves=20that=20cannot=20use=20LDR=20and=20= STR,=20i.e.=20partial=20vectors=0A@@=20-714,6=20+715,7=20@@=0A=20=20=20= "@=0A=20=20=20=20mov\t%0.d,=20%1.d=0A=20=20=20=20*=20return=20= aarch64_output_sve_mov_immediate=20(operands[1]);"=0A+=20=20[(set_attr=20= "type"=20"sve_move,=20sve_move_x")]=0A=20)=0A=20=0A=20;;=20Handle=20= memory=20reloads=20for=20modes=20that=20can't=20use=20LDR=20and=20STR.=20= =20We=20use=0A@@=20-758,6=20+760,8=20@@=0A=20=20=20"&&=20= register_operand=20(operands[0],=20mode)=0A=20=20=20=20&&=20= register_operand=20(operands[2],=20mode)"=0A=20=20=20[(set=20= (match_dup=200)=20(match_dup=202))]=0A+=20=20""=0A+=20=20[(set_attr=20= "type"=20"sve_load1,=20sve_store1,=20*")]=0A=20)=0A=20=0A=20;;=20A=20= pattern=20for=20optimizing=20SUBREGs=20that=20have=20a=20reinterpreting=20= effect=0A@@=20-778,6=20+782,7=20@@=0A=20=20=20=20=20= aarch64_split_sve_subreg_move=20(operands[0],=20operands[1],=20= operands[2]);=0A=20=20=20=20=20DONE;=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_rev")]=0A=20)=0A=20=0A=20;;=20Reinterpret=20operand=201=20= in=20operand=200's=20mode,=20without=20changing=20its=20contents.=0A@@=20= -959,6=20+964,7=20@@=0A=20=20=20=20str\t%1,=20%0=0A=20=20=20=20ldr\t%0,=20= %1=0A=20=20=20=20*=20return=20aarch64_output_sve_mov_immediate=20= (operands[1]);"=0A+=20=20[(set_attr=20"type"=20"sve_logic_p,=20= sve_str_p,=20sve_ldr_p,=20*")]=0A=20)=0A=20=0A=20;;=20Match=20PTRUES=20= Pn.B=20when=20both=20the=20predicate=20and=20flags=20are=20useful.=0A@@=20= -984,6=20+990,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[2]=20=3D=20= operands[3]=20=3D=20CONSTM1_RTX=20(VNx16BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_set_ps")]=0A=20)=0A=20=0A=20;;=20Match=20= PTRUES=20Pn.[HSD]=20when=20both=20the=20predicate=20and=20flags=20are=20= useful.=0A@@=20-1011,6=20+1018,7=20@@=0A=20=20=20=20=20operands[2]=20=3D=20= CONSTM1_RTX=20(VNx16BImode);=0A=20=20=20=20=20operands[3]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_set_ps")]=0A=20)=0A=20=0A=20;;=20Match=20PTRUES=20Pn.B=20when=20= only=20the=20flags=20result=20is=20useful=20(which=20is=0A@@=20-1036,6=20= +1044,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[2]=20=3D=20= operands[3]=20=3D=20CONSTM1_RTX=20(VNx16BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_set_ps")]=0A=20)=0A=20=0A=20;;=20Match=20= PTRUES=20Pn.[HWD]=20when=20only=20the=20flags=20result=20is=20useful=20= (which=20is=0A@@=20-1063,6=20+1072,7=20@@=0A=20=20=20=20=20operands[2]=20= =3D=20CONSTM1_RTX=20(VNx16BImode);=0A=20=20=20=20=20operands[3]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_set_ps")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1086,6=20+1096,7=20@@=0A=20=20=20"@=0A=20=20=20=20setffr=0A=20=20=20= =20wrffr\t%0.b"=0A+=20=20[(set_attr=20"type"=20"sve_wr_ffr,=20= sve_wr_ffr")]=0A=20)=0A=20=0A=20;;=20[L2=20in=20the=20block=20comment=20= above=20about=20FFR=20handling]=0A@@=20-1125,6=20+1136,7=20@@=0A=20=09= (reg:VNx16BI=20FFRT_REGNUM))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "rdffr\t%0.b"=0A+=20=20[(set_attr=20"type"=20"sve_rd_ffr")]=0A=20)=0A=20=0A= =20;;=20Likewise=20with=20zero=20predication.=0A@@=20-1135,6=20+1147,7=20= @@=0A=20=09=20=20(match_operand:VNx16BI=201=20"register_operand"=20= "Upa")))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"rdffr\t%0.b,=20%1/z"=0A+=20= =20[(set_attr=20"type"=20"sve_rd_ffr_p")]=0A=20)=0A=20=0A=20;;=20Read=20= the=20FFR=20to=20test=20for=20a=20fault,=20without=20using=20the=20= predicate=20result.=0A@@=20-1151,6=20+1164,7=20@@=0A=20=20=20=20(clobber=20= (match_scratch:VNx16BI=200=20"=3DUpa"))]=0A=20=20=20"TARGET_SVE"=0A=20=20= =20"rdffrs\t%0.b,=20%1/z"=0A+=20=20[(set_attr=20"type"=20= "sve_rd_ffr_ps")]=0A=20)=0A=20=0A=20;;=20Same=20for=20unpredicated=20= RDFFR=20when=20tested=20with=20a=20known=20PTRUE.=0A@@=20-1165,6=20= +1179,7=20@@=0A=20=20=20=20(clobber=20(match_scratch:VNx16BI=200=20= "=3DUpa"))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"rdffrs\t%0.b,=20%1/z"=0A= +=20=20[(set_attr=20"type"=20"sve_rd_ffr_ps")]=0A=20)=0A=20=0A=20;;=20= Read=20the=20FFR=20with=20zero=20predication=20and=20test=20the=20= result.=0A@@=20-1184,6=20+1199,7=20@@=0A=20=09=20=20(match_dup=201)))]=0A= =20=20=20"TARGET_SVE"=0A=20=20=20"rdffrs\t%0.b,=20%1/z"=0A+=20=20= [(set_attr=20"type"=20"sve_rd_ffr_ps")]=0A=20)=0A=20=0A=20;;=20Same=20= for=20unpredicated=20RDFFR=20when=20tested=20with=20a=20known=20PTRUE.=0A= @@=20-1199,6=20+1215,7=20@@=0A=20=09(reg:VNx16BI=20FFRT_REGNUM))]=0A=20=20= =20"TARGET_SVE"=0A=20=20=20"rdffrs\t%0.b,=20%1/z"=0A+=20=20[(set_attr=20= "type"=20"sve_rd_ffr_ps")]=0A=20)=0A=20=0A=20;;=20[R3=20in=20the=20block=20= comment=20above=20about=20FFR=20handling]=0A@@=20-1248,6=20+1265,7=20@@=0A= =20=09=20=20UNSPEC_LD1_SVE))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "ld1\t%0.,=20%2/z,=20%1"=0A+=20=20[(set_attr=20"type"=20= "sve_load1")]=0A=20)=0A=20=0A=20;;=20Unpredicated=20LD[234].=0A@@=20= -1272,6=20+1290,7=20@@=0A=20=09=20=20UNSPEC_LDN))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"ld\t%0,=20%2/z,=20%1"=0A+=20= =20[(set_attr=20"type"=20"sve_load")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1303,6=20+1322,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1329,6=20+1349,7=20@@=0A=20=09=20=20SVE_LDFF1_LDNF1))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"ldf1\t%0.,=20%2/z,=20%1"=0A= +=20=20[(set_attr=20"type"=20"sve_load1")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1367,6=20+1388,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1388,6=20+1410,7=20@@=0A=20=09=20=20UNSPEC_LDNT1_SVE))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"ldnt1\t%0.,=20%2/z,=20%1"=0A+=20= =20[(set_attr=20"type"=20"sve_load1")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1435,6=20+1458,8=20@@=0A=20=20=20=20ld1\t%0.s,=20%5/z,=20= [%1,=20%2.s,=20uxtw]=0A=20=20=20=20ld1\t%0.s,=20%5/z,=20[%1,=20= %2.s,=20sxtw=20%p4]=0A=20=20=20=20ld1\t%0.s,=20%5/z,=20[%1,=20= %2.s,=20uxtw=20%p4]"=0A+=20=20[(set_attr=20"type"=20"sve_load1_gather_s,=20= sve_load1_gather_s,=20sve_load1_gather_su,=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20sve_load1_gather_su,=20= sve_load1_gather_sl,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= Predicated=20gather=20loads=20for=2064-bit=20elements.=20=20The=20value=20= of=20operand=203=0A@@=20-1455,6=20+1480,8=20@@=0A=20=20=20=20= ld1\t%0.d,=20%5/z,=20[%2.d,=20#%1]=0A=20=20=20=20= ld1\t%0.d,=20%5/z,=20[%1,=20%2.d]=0A=20=20=20=20= ld1\t%0.d,=20%5/z,=20[%1,=20%2.d,=20lsl=20%p4]"=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_d,=20sve_load1_gather_d,=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= sve_load1_gather_du,=20sve_load1_gather_dl")]=0A=20)=0A=20=0A=20;;=20= Likewise,=20but=20with=20the=20offset=20being=20extended=20from=2032=20= bits.=0A@@=20-1480,6=20+1507,7=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[6]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20= )=0A=20=0A=20;;=20Likewise,=20but=20with=20the=20offset=20being=20= truncated=20to=2032=20bits=20and=20then=0A@@=20-1507,6=20+1535,7=20@@=0A=20= =20=20{=0A=20=20=20=20=20operands[6]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A= =20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_load1_gather_su,=20= sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20Likewise,=20but=20with=20= the=20offset=20being=20truncated=20to=2032=20bits=20and=20then=0A@@=20= -1527,6=20+1556,7=20@@=0A=20=20=20"@=0A=20=20=20=20ld1\t%0.d,=20= %5/z,=20[%1,=20%2.d,=20uxtw]=0A=20=20=20=20ld1\t%0.d,=20%5/z,=20= [%1,=20%2.d,=20uxtw=20%p4]"=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1569,6=20+1599,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[6]=20= =3D=20CONSTM1_RTX=20(VNx4BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_load1_gather_s,=20sve_load1_gather_s,=20= sve_load1_gather_su,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20sve_load1_gather_su,=20sve_load1_gather_sl,=20= sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20Predicated=20extending=20= gather=20loads=20for=2064-bit=20elements.=20=20The=20value=20of=0A@@=20= -1597,6=20+1629,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[6]=20=3D=20= CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_d,=20sve_load1_gather_d,=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20sve_load1_gather_du,=20= sve_load1_gather_dl")]=0A=20)=0A=20=0A=20;;=20Likewise,=20but=20with=20= the=20offset=20being=20extended=20from=2032=20bits.=0A@@=20-1627,6=20= +1661,7=20@@=0A=20=20=20=20=20operands[6]=20=3D=20CONSTM1_RTX=20= (VNx2BImode);=0A=20=20=20=20=20operands[7]=20=3D=20CONSTM1_RTX=20= (VNx2BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= Likewise,=20but=20with=20the=20offset=20being=20truncated=20to=2032=20= bits=20and=20then=0A@@=20-1659,6=20+1694,7=20@@=0A=20=20=20=20=20= operands[6]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20=20=20= operands[7]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20= )=0A=20=0A=20;;=20Likewise,=20but=20with=20the=20offset=20being=20= truncated=20to=2032=20bits=20and=20then=0A@@=20-1687,6=20+1723,7=20@@=0A=20= =20=20{=0A=20=20=20=20=20operands[7]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A= =20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_load1_gather_su,=20= sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1718,6=20+1755,8=20@@=0A=20=20=20=20ldff1w\t%0.s,=20%5/z,=20[%1,=20= %2.s,=20uxtw]=0A=20=20=20=20ldff1w\t%0.s,=20%5/z,=20[%1,=20%2.s,=20sxtw=20= %p4]=0A=20=20=20=20ldff1w\t%0.s,=20%5/z,=20[%1,=20%2.s,=20uxtw=20%p4]"=0A= +=20=20[(set_attr=20"type"=20"sve_load1_gather_s,=20sve_load1_gather_s,=20= sve_load1_gather_su,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20sve_load1_gather_su,=20sve_load1_gather_sl,=20= sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20Predicated=20= first-faulting=20gather=20loads=20for=2064-bit=20elements.=20=20The=20= value=0A@@=20-1739,6=20+1778,8=20@@=0A=20=20=20=20ldff1d\t%0.d,=20%5/z,=20= [%2.d,=20#%1]=0A=20=20=20=20ldff1d\t%0.d,=20%5/z,=20[%1,=20%2.d]=0A=20=20= =20=20ldff1d\t%0.d,=20%5/z,=20[%1,=20%2.d,=20lsl=20%p4]"=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_d,=20sve_load1_gather_d,=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= sve_load1_gather_du,=20sve_load1_gather_dl")]=0A=20)=0A=20=0A=20;;=20= Likewise,=20but=20with=20the=20offset=20being=20sign-extended=20from=20= 32=20bits.=0A@@=20-1766,6=20+1807,7=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[6]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20= )=0A=20=0A=20;;=20Likewise,=20but=20with=20the=20offset=20being=20= zero-extended=20from=2032=20bits.=0A@@=20-1786,6=20+1828,7=20@@=0A=20=20=20= "@=0A=20=20=20=20ldff1d\t%0.d,=20%5/z,=20[%1,=20%2.d,=20uxtw]=0A=20=20=20= =20ldff1d\t%0.d,=20%5/z,=20[%1,=20%2.d,=20uxtw=20%p4]"=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20= )=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1829,6=20+1872,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[6]=20= =3D=20CONSTM1_RTX=20(VNx4BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_load1_gather_s,=20sve_load1_gather_s,=20= sve_load1_gather_su,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20sve_load1_gather_su,=20sve_load1_gather_sl,=20= sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20Predicated=20extending=20= first-faulting=20gather=20loads=20for=2064-bit=20elements.=0A@@=20= -1858,6=20+1903,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[6]=20=3D=20= CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_d,=20sve_load1_gather_d,=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20sve_load1_gather_du,=20= sve_load1_gather_dl")]=0A=20)=0A=20=0A=20;;=20Likewise,=20but=20with=20= the=20offset=20being=20sign-extended=20from=2032=20bits.=0A@@=20-1890,6=20= +1937,7=20@@=0A=20=20=20=20=20operands[6]=20=3D=20CONSTM1_RTX=20= (VNx2BImode);=0A=20=20=20=20=20operands[7]=20=3D=20CONSTM1_RTX=20= (VNx2BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= Likewise,=20but=20with=20the=20offset=20being=20zero-extended=20from=20= 32=20bits.=0A@@=20-1918,6=20+1966,7=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[7]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20= )=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-1950,6=20+1999,7=20@@=0A=20=20=20=20=20operands[1]=20=3D=20= gen_rtx_MEM=20(mode,=20operands[1]);=0A=20=20=20=20=20return=20= aarch64_output_sve_prefetch=20("prf",=20operands[2],=20"%0,=20= %1");=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_ldr")]=0A=20)=0A=20= =0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-1998,6=20+2048,8=20@@=0A=20=20=20=20=20const=20char=20*const=20= *parts=20=3D=20insns[which_alternative];=0A=20=20=20=20=20return=20= aarch64_output_sve_prefetch=20(parts[0],=20operands[6],=20parts[1]);=0A=20= =20=20}=0A+=20=20[(set_attr=20"type"=20"sve_load1_gather_s,=20= sve_load1_gather_s,=20sve_load1_gather_su,=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20sve_load1_gather_su,=20= sve_load1_gather_sl,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= Predicated=20gather=20prefetches=20for=2064-bit=20elements.=20=20The=20= value=20of=20operand=203=0A@@=20-2025,6=20+2077,8=20@@=0A=20=20=20=20=20= const=20char=20*const=20*parts=20=3D=20insns[which_alternative];=0A=20=20= =20=20=20return=20aarch64_output_sve_prefetch=20(parts[0],=20= operands[6],=20parts[1]);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_d,=20sve_load1_gather_d,=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20sve_load1_gather_du,=20= sve_load1_gather_dl")]=0A=20)=0A=20=0A=20;;=20Likewise,=20but=20with=20= the=20offset=20being=20sign-extended=20from=2032=20bits.=0A@@=20-2058,6=20= +2112,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[9]=20=3D=20copy_rtx=20= (operands[0]);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= Likewise,=20but=20with=20the=20offset=20being=20zero-extended=20from=20= 32=20bits.=0A@@=20-2084,6=20+2139,7=20@@=0A=20=20=20=20=20const=20char=20= *const=20*parts=20=3D=20insns[which_alternative];=0A=20=20=20=20=20= return=20aarch64_output_sve_prefetch=20(parts[0],=20operands[6],=20= parts[1]);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_load1_gather_su,=20sve_load1_gather_sl")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-2122,6=20+2178,7=20@@=0A=20=09=20=20UNSPEC_ST1_SVE))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"st1\t%1.,=20%2,=20%0"=0A+=20=20= [(set_attr=20"type"=20"sve_store1")]=0A=20)=0A=20=0A=20;;=20Unpredicated=20= ST[234].=20=20This=20is=20always=20a=20full=20update,=20so=20the=20= dependence=0A@@=20-2152,6=20+2209,7=20@@=0A=20=09=20=20UNSPEC_STN))]=0A=20= =20=20"TARGET_SVE"=0A=20=20=20"st\t%1,=20%2,=20%0"=0A= +=20=20[(set_attr=20"type"=20"sve_store")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-2174,6=20+2232,7=20@@=0A=20=09=20=20UNSPEC_ST1_SVE))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"st1\t%1.,=20= %2,=20%0"=0A+=20=20[(set_attr=20"type"=20"sve_store1")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20truncate=20and=20store,=20with=204=20elements=20per=20= 128-bit=20block.=0A@@=20-2187,6=20+2246,7=20@@=0A=20=09=20=20= UNSPEC_ST1_SVE))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "st1\t%1.,=20%2,=20%0"=0A+=20=20= [(set_attr=20"type"=20"sve_store1")]=0A=20)=0A=20=0A=20;;=20Predicated=20= truncate=20and=20store,=20with=202=20elements=20per=20128-bit=20block.=0A= @@=20-2200,6=20+2260,7=20@@=0A=20=09=20=20UNSPEC_ST1_SVE))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"st1\t%1.,=20= %2,=20%0"=0A+=20=20[(set_attr=20"type"=20"sve_store1")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-2221,6=20+2282,7=20@@=0A=20=09=20=20UNSPEC_STNT1_SVE))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"stnt1\t%1.,=20%2,=20%0"=0A+=20=20= [(set_attr=20"type"=20"sve_store1")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2268,6=20+2330,8=20@@=0A=20=20=20=20st1\t%4.s,=20%5,=20= [%0,=20%1.s,=20uxtw]=0A=20=20=20=20st1\t%4.s,=20%5,=20[%0,=20= %1.s,=20sxtw=20%p3]=0A=20=20=20=20st1\t%4.s,=20%5,=20[%0,=20= %1.s,=20uxtw=20%p3]"=0A+=20=20[(set_attr=20"type"=20"sve_store1_scatter,=20= sve_store1_scatter,=20sve_store1_scatter,=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20sve_store1_scatter,=20= sve_store1_scatter,=20sve_store1_scatter")]=0A=20)=0A=20=0A=20;;=20= Predicated=20scatter=20stores=20for=2064-bit=20elements.=20=20The=20= value=20of=20operand=202=0A@@=20-2288,6=20+2352,8=20@@=0A=20=20=20=20= st1\t%4.d,=20%5,=20[%1.d,=20#%0]=0A=20=20=20=20= st1\t%4.d,=20%5,=20[%0,=20%1.d]=0A=20=20=20=20st1\t%4.d,=20= %5,=20[%0,=20%1.d,=20lsl=20%p3]"=0A+=20=20[(set_attr=20"type"=20= "sve_store1_scatter,=20sve_store1_scatter,=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20sve_store1_scatter,=20= sve_store1_scatter")]=0A=20)=0A=20=0A=20;;=20Likewise,=20but=20with=20= the=20offset=20being=20extended=20from=2032=20bits.=0A@@=20-2313,6=20= +2379,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[6]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_store1_scatter,=20sve_store1_scatter")]=0A=20)=0A=20=0A=20;;=20= Likewise,=20but=20with=20the=20offset=20being=20truncated=20to=2032=20= bits=20and=20then=0A@@=20-2340,6=20+2407,7=20@@=0A=20=20=20{=0A=20=20=20=20= =20operands[6]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_store1_scatter,=20sve_store1_scatter")]=0A=20= )=0A=20=0A=20;;=20Likewise,=20but=20with=20the=20offset=20being=20= truncated=20to=2032=20bits=20and=20then=0A@@=20-2360,6=20+2428,7=20@@=0A=20= =20=20"@=0A=20=20=20=20st1\t%4.d,=20%5,=20[%0,=20%1.d,=20uxtw]=0A= =20=20=20=20st1\t%4.d,=20%5,=20[%0,=20%1.d,=20uxtw=20%p3]"=0A+=20= =20[(set_attr=20"type"=20"sve_store1_scatter,=20sve_store1_scatter")]=0A=20= )=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2392,6=20+2461,8=20@@=0A=20=20=20=20st1\t%4.s,=20= %5,=20[%0,=20%1.s,=20uxtw]=0A=20=20=20=20st1\t%4.s,=20= %5,=20[%0,=20%1.s,=20sxtw=20%p3]=0A=20=20=20=20= st1\t%4.s,=20%5,=20[%0,=20%1.s,=20uxtw=20%p3]"=0A+=20= =20[(set_attr=20"type"=20"sve_store1_scatter,=20sve_store1_scatter,=20= sve_store1_scatter,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20sve_store1_scatter,=20sve_store1_scatter,=20= sve_store1_scatter")]=0A=20)=0A=20=0A=20;;=20Predicated=20truncating=20= scatter=20stores=20for=2064-bit=20elements.=20=20The=20value=20of=0A@@=20= -2413,6=20+2484,8=20@@=0A=20=20=20=20st1\t%4.d,=20= %5,=20[%1.d,=20#%0]=0A=20=20=20=20st1\t%4.d,=20%5,=20= [%0,=20%1.d]=0A=20=20=20=20st1\t%4.d,=20%5,=20[%0,=20= %1.d,=20lsl=20%p3]"=0A+=20=20[(set_attr=20"type"=20"sve_store1_scatter,=20= sve_store1_scatter,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20sve_store1_scatter,=20sve_store1_scatter")]=0A=20)=0A=20=0A=20= ;;=20Likewise,=20but=20with=20the=20offset=20being=20sign-extended=20= from=2032=20bits.=0A@@=20-2440,6=20+2513,7=20@@=0A=20=20=20{=0A=20=20=20=20= =20operands[6]=20=3D=20copy_rtx=20(operands[5]);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_store1_scatter,=20sve_store1_scatter")]=0A=20= )=0A=20=0A=20;;=20Likewise,=20but=20with=20the=20offset=20being=20= zero-extended=20from=2032=20bits.=0A@@=20-2460,6=20+2534,7=20@@=0A=20=20=20= "@=0A=20=20=20=20st1\t%4.d,=20%5,=20[%0,=20%1.d,=20= uxtw]=0A=20=20=20=20st1\t%4.d,=20%5,=20[%0,=20%1.d,=20= uxtw=20%p3]"=0A+=20=20[(set_attr=20"type"=20"sve_store1_scatter,=20= sve_store1_scatter")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-2529,7=20+2604,8=20@@=0A=20=09=09=09=09=20=20=20CONST0_RTX=20= (mode)));=0A=20=20=20=20=20DONE;=0A=20=20=20}=0A-=20=20[(set_attr=20= "length"=20"4,4,8")]=0A+=20=20[(set_attr=20"length"=20"4,4,8")=0A+=20=20=20= (set_attr=20"type"=20"sve_move,=20sve_move,=20sve_load1")]=0A=20)=0A=20=0A= =20;;=20Duplicate=20an=20Advanced=20SIMD=20vector=20to=20fill=20an=20SVE=20= vector=20(LE=20version).=0A@@=20-2562,6=20+2638,7=20@@=0A=20=20=20=20=20= emit_insn=20(gen_aarch64_sve_ld1rq=20(operands[0],=20operands[1],=20= gp));=0A=20=20=20=20=20DONE;=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_splat,=20sve_load1")]=0A=20)=0A=20=0A=20;;=20Duplicate=20an=20= Advanced=20SIMD=20vector=20to=20fill=20an=20SVE=20vector=20(BE=20= version).=0A@@=20-2583,6=20+2660,7=20@@=0A=20=20=20=20=20operands[1]=20=3D= =20gen_rtx_REG=20(mode,=20REGNO=20(operands[1]));=0A=20=20=20=20=20= return=20"dup\t%0.q,=20%1.q[0]";=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_splat")]=0A=20)=0A=20=0A=20;;=20This=20is=20used=20for=20= vec_duplicates=20from=20memory,=20but=20can=20also=0A@@=20-2598,6=20= +2676,7=20@@=0A=20=09=20=20UNSPEC_SEL))]=0A=20=20=20"TARGET_SVE"=0A=20=20= =20"ld1r\t%0.,=20%1/z,=20%2"=0A+=20=20[(set_attr=20= "type"=20"sve_load1")]=0A=20)=0A=20=0A=20;;=20Load=20128=20bits=20from=20= memory=20under=20predicate=20control=20and=20duplicate=20to=0A@@=20= -2613,6=20+2692,7=20@@=0A=20=20=20=20=20operands[1]=20=3D=20gen_rtx_MEM=20= (mode,=20XEXP=20(operands[1],=200));=0A=20=20=20=20=20return=20= "ld1rq\t%0.,=20%2/z,=20%1";=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_load1")]=0A=20)=0A=20=0A=20(define_insn=20= "@aarch64_sve_ld1ro"=0A@@=20-2627,6=20+2707,7=20@@=0A=20=20=20=20=20= operands[1]=20=3D=20gen_rtx_MEM=20(mode,=20XEXP=20(operands[1],=20= 0));=0A=20=20=20=20=20return=20"ld1ro\t%0.,=20%2/z,=20= %1";=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_load1")]=0A=20)=0A=20= =0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2659,7=20+2740,8=20@@=0A=20=20=20=20insr\t%0.,=20= %2=0A=20=20=20=20movprfx\t%0,=20%1\;insr\t%0.,=20= %2=0A=20=20=20=20movprfx\t%0,=20%1\;insr\t%0.,=20= %2"=0A-=20=20[(set_attr=20"movprfx"=20"*,*,yes,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_ins_g,=20sve_ins,=20sve_ins_gx,=20sve_ins_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2679,6=20+2761,7=20@@=0A=20=20=20=20index\t%0.,=20#%1,=20= %2=0A=20=20=20=20index\t%0.,=20%1,=20#%2=0A=20=20= =20=20index\t%0.,=20%1,=20%2"=0A+=20=20= [(set_attr=20"type"=20"sve_index_g,=20sve_index_g,=20sve_index_g")]=0A=20= )=0A=20=0A=20;;=20Optimize=20{x,=20x,=20x,=20x,=20...}=20+=20{0,=20n,=20= 2*n,=203*n,=20...}=20if=20n=20is=20in=20range=0A@@=20-2694,6=20+2777,7=20= @@=0A=20=20=20=20=20operands[2]=20=3D=20= aarch64_check_zero_based_sve_index_immediate=20(operands[2]);=0A=20=20=20= =20=20return=20"index\t%0.,=20%1,=20#%2";=0A=20=20=20}=0A= +=20=20[(set_attr=20"type"=20"sve_index_g")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2846,6=20+2930,7=20@@=0A=20=20=20=20=20operands[0]=20=3D=20= gen_rtx_REG=20(mode,=20REGNO=20(operands[0]));=0A=20=20=20=20=20= return=20"dup\t%0.,=20%1.[%2]";=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_splat")]=0A=20)=0A=20=0A=20;;=20Extract=20an=20= element=20outside=20the=20range=20of=20DUP.=20=20This=20pattern=20= requires=20the=0A@@=20-2863,7=20+2948,8=20@@=0A=20=09=20=20=20=20?=20= "ext\t%0.b,=20%0.b,=20%0.b,=20#%2"=0A=20=09=20=20=20=20:=20"movprfx\t%0,=20= %1\;ext\t%0.b,=20%0.b,=20%1.b,=20#%2");=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_ext,=20sve_ext_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2886,6=20+2972,7=20@@=0A=20=20=20"@=0A=20=20=20=20= last\t%0,=20%1,=20%2.=0A=20=20=20=20= last\t%0,=20%1,=20%2."=0A+=20=20[(set_attr=20"type"=20= "sve_ins_g,=20sve_ins")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-2955,7=20+3042,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1/m,=20%2.=0A=20=20=20=20= movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%2."=0A-=20= =20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_arith,=20sve_arith_x")]=0A= =20)=0A=20=0A=20;;=20Predicated=20integer=20unary=20arithmetic=20with=20= merging.=0A@@=20-2983,7=20+3071,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1/m,=20%0.=0A=20=20=20=20= movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%2."=0A-=20= =20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_arith,=20sve_arith_x")]=0A= =20)=0A=20=0A=20;;=20Predicated=20integer=20unary=20arithmetic,=20= merging=20with=20an=20independent=20value.=0A@@=20-3006,7=20+3095,8=20@@=0A= =20=20=20=20\t%0.,=20%1/m,=20%2.=0A=20=20=20=20= movprfx\t%0.,=20%1/z,=20%2.\;\t%0.,=20= %1/m,=20%2.=0A=20=20=20=20movprfx\t%0,=20= %3\;\t%0.,=20%1/m,=20%2."=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_arith,=20sve_arith_x,=20= sve_arith_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-3032,7=20+3122,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1/m,=20%2.=0A=20=20=20=20= movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%2."=0A-=20= =20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_rev,=20sve_rev_x")]=0A=20= )=0A=20=0A=20;;=20Another=20way=20of=20expressing=20the=20REVB,=20REVH=20= and=20REVW=20patterns,=20with=20this=0A@@=20-3051,7=20+3142,8=20@@=0A=20=20= =20"@=0A=20=20=20=20rev\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %2\;rev\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_rev,=20sve_rev")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20= unary=20operations=20with=20merging.=0A@@=20-3069,7=20+3161,8=20@@=0A=20=20= =20=20\t%0.,=20%1/m,=20%2.=0A=20=20=20=20= movprfx\t%0.,=20%1/z,=20%2.\;\t%0.,=20= %1/m,=20%2.=0A=20=20=20=20movprfx\t%0,=20= %3\;\t%0.,=20%1/m,=20%2."=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_rev,=20sve_rev_x,=20= sve_rev_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-3110,7=20+3203,8=20@@=0A=20=20=20"@=0A=20=20=20=20= xt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %2\;xt\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_ext,=20sve_ext_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= truncate-and-sign-extend=20operations.=0A@@=20-3127,7=20+3221,8=20@@=0A=20= =20=20"@=0A=20=20=20=20= sxt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %2\;sxt\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_sext,=20sve_sext_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= truncate-and-sign-extend=20operations=20with=20merging.=0A@@=20-3146,7=20= +3241,8=20@@=0A=20=20=20=20= sxt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20= movprfx\t%0.,=20%1/z,=20= %2.\;sxt\t%0.,=20%1/m,=20%2.=0A=20=20=20=20movprfx\t%0,=20= %3\;sxt\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_sext,=20sve_sext_x,=20sve_sext_x")]=0A=20)=0A=20= =0A=20;;=20Predicated=20truncate-and-zero-extend=20operations,=20merging=20= with=20the=0A@@=20-3167,7=20+3263,8=20@@=0A=20=20=20"@=0A=20=20=20=20= uxt%e3\t%0.,=20%1/m,=20%0.=0A=20=20=20=20movprfx\t%0,=20= %2\;uxt%e3\t%0.,=20%1/m,=20%2."=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_uext,=20sve_sext_x")]=0A=20)=0A=20=0A=20;;=20= Predicated=20truncate-and-zero-extend=20operations,=20merging=20with=20= an=0A@@=20-3192,7=20+3289,8=20@@=0A=20=20=20=20uxt%e3\t%0.,=20= %1/m,=20%2.=0A=20=20=20=20movprfx\t%0.,=20%1/z,=20= %2.\;uxt%e3\t%0.,=20%1/m,=20%2.=0A=20=20=20=20= movprfx\t%0,=20%4\;uxt%e3\t%0.,=20%1/m,=20%2."=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_uext,=20sve_sext_x,=20= sve_sext_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-3263,7=20+3361,8=20@@=0A=20=20=20"@=0A=20=20=20=20= cnot\t%0.,=20%1/m,=20%2.=0A=20=20=20=20movprfx\t%0,=20= %2\;cnot\t%0.,=20%1/m,=20%2."=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_logic,=20sve_logic_x")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20logical=20inverse=20with=20merging.=0A@@=20-3319,7=20= +3418,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[5]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_logic,=20sve_logic_x")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20logical=20inverse,=20merging=20with=20an=20independent=20= value.=0A@@=20-3356,7=20+3456,8=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[5]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_logic,=20sve_logic_x,=20= sve_logic_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-3374,6=20+3475,7=20@@=0A=20=09=20=20SVE_FP_UNARY_INT))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"\t%0.,=20%1."=0A+=20=20= [(set_attr=20"type"=20"sve_fp_trig")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-3617,6=20+3719,7=20@@=0A=20=09=20=20(match_operand:PRED_ALL=201=20= "register_operand"=20"Upa")))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "not\t%0.b,=20%1/z,=20%2.b"=0A+=20=20[(set_attr=20"type"=20= "sve_logic_p")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-3820,7=20+3923,9=20@@=0A=20=20=20=20movprfx\t%0,=20= %1\;add\t%0.,=20%0.,=20#%D2=0A=20=20=20=20movprfx\t%0,=20= %1\;sub\t%0.,=20%0.,=20#%N2=0A=20=20=20=20= add\t%0.,=20%1.,=20%2."=0A-=20=20[(set_attr=20= "movprfx"=20"*,*,*,yes,yes,*")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,*,*,yes,yes,*")=0A+=20=20=20(set_attr=20"type"=20"sve_arith,=20= sve_arith,=20sve_cnt_p,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20sve_arith_x,=20sve_arith_x,=20sve_arith")]=0A=20)=0A=20=0A= =20;;=20Merging=20forms=20are=20handled=20through=20SVE_INT_BINARY.=0A@@=20= -3843,7=20+3948,8=20@@=0A=20=20=20=20sub\t%0.,=20%1.,=20= %2.=0A=20=20=20=20subr\t%0.,=20%0.,=20#%D1=0A=20=20= =20=20movprfx\t%0,=20%2\;subr\t%0.,=20%0.,=20#%D1"=0A-=20= =20[(set_attr=20"movprfx"=20"*,*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_arith,=20sve_arith,=20= sve_arith_x")]=0A=20)=0A=20=0A=20;;=20Merging=20forms=20are=20handled=20= through=20SVE_INT_BINARY.=0A@@=20-3865,6=20+3971,7=20@@=0A=20=09=20=20= UNSPEC_ADR))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"adr\t%0.,=20= [%1.,=20%2.]"=0A+=20=20[(set_attr=20"type"=20= "sve_arith")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20with=20the=20offset=20= being=20sign-extended=20from=20the=20low=2032=20bits.=0A@@=20-3885,6=20= +3992,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20=3D=20= CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_arith")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20with=20the=20offset=20= being=20zero-extended=20from=20the=20low=2032=20bits.=0A@@=20-3898,6=20= +4006,7=20@@=0A=20=09=20=20UNSPEC_ADR))]=0A=20=20=20"TARGET_SVE"=0A=20=20= =20"adr\t%0.d,=20[%1.d,=20%2.d,=20uxtw]"=0A+=20=20[(set_attr=20"type"=20= "sve_arith")]=0A=20)=0A=20=0A=20;;=20Same,=20matching=20as=20a=20PLUS=20= rather=20than=20unspec.=0A@@=20-3910,6=20+4019,7=20@@=0A=20=09=20=20= (match_operand:VNx2DI=201=20"register_operand"=20"w")))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"adr\t%0.d,=20[%1.d,=20%2.d,=20uxtw]"=0A+=20=20= [(set_attr=20"type"=20"sve_arith")]=0A=20)=0A=20=0A=20;;=20ADR=20with=20= a=20nonzero=20shift.=0A@@=20-3945,6=20+4055,7=20@@=0A=20=20=20{=0A=20=20=20= =20=20operands[4]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20= =20[(set_attr=20"type"=20"sve_arith")]=0A=20)=0A=20=0A=20;;=20Same,=20= but=20with=20the=20index=20being=20sign-extended=20from=20the=20low=2032=20= bits.=0A@@=20-3969,6=20+4080,7=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[5]=20=3D=20operands[4]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20= =20=20}=0A+=20=20[(set_attr=20"type"=20"sve_arith")]=0A=20)=0A=20=0A=20= ;;=20Same,=20but=20with=20the=20index=20being=20zero-extended=20from=20= the=20low=2032=20bits.=0A@@=20-3990,6=20+4102,7=20@@=0A=20=20=20{=0A=20=20= =20=20=20operands[5]=20=3D=20CONSTM1_RTX=20(VNx2BImode);=0A=20=20=20}=0A= +=20=20[(set_attr=20"type"=20"sve_arith")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-4035,7=20+4148,8=20@@=0A=20=20=20"@=0A=20=20=20=20= abd\t%0.,=20%1/m,=20%0.,=20%3.=0A=20=20=20=20= movprfx\t%0,=20%2\;abd\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_arith,=20sve_arith_x")]=0A=20)=0A=20=0A=20(define_expand=20= "@aarch64_cond_abd"=0A@@=20-4091,7=20+4205,8=20@@=0A=20=20=20{=0A= =20=20=20=20=20operands[4]=20=3D=20operands[5]=20=3D=20CONSTM1_RTX=20= (mode);=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_arith,=20sve_arith_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20= absolute=20difference,=20merging=20with=20the=20second=20input.=0A@@=20= -4122,7=20+4237,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[4]=20=3D=20= operands[5]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_arith,=20sve_arith_x")]=0A= =20)=0A=20=0A=20;;=20Predicated=20integer=20absolute=20difference,=20= merging=20with=20an=20independent=20value.=0A@@=20-4169,7=20+4285,8=20@@=0A= =20=20=20=20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_arith_x")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-4194,7=20+4311,8=20@@=0A=20=20=20=20movprfx\t%0,=20= %1\;\t%0.,=20%0.,=20#%D2=0A=20=20=20=20= movprfx\t%0,=20%1\;\t%0.,=20%0.,=20#%N2=0A= =20=20=20=20\t%0.,=20%1.,=20%2."=0A-=20= =20[(set_attr=20"movprfx"=20"*,*,yes,yes,*")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,*,yes,yes,*")=0A+=20=20=20(set_attr=20"type"=20= "sve_arith_sat,=20sve_arith_sat,=20sve_arith_sat_x,=20sve_arith_sat_x,=20= sve_arith_sat")]=0A=20)=0A=20=0A=20;;=20Unpredicated=20saturating=20= unsigned=20addition=20and=20subtraction.=0A@@=20-4208,7=20+4326,8=20@@=0A= =20=20=20=20\t%0.,=20%0.,=20#%D2=0A=20=20=20=20= movprfx\t%0,=20%1\;\t%0.,=20%0.,=20#%D2=0A=20= =20=20=20\t%0.,=20%1.,=20%2."=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,*")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,*")=0A+=20=20=20(set_attr=20"type"=20"sve_arith_sat,=20= sve_arith_sat_x,=20sve_arith_sat")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-4249,7=20+4368,8=20@@=0A=20=20=20"@=0A=20=20=20=20= mulh\t%0.,=20%1/m,=20%0.,=20%3.=0A=20=20=20=20= movprfx\t%0,=20%2\;mulh\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_mul,=20sve_mul_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20highpart=20= multiplications=20with=20merging.=0A@@=20-4286,7=20+4406,9=20@@=0A=20=20=20= "@=0A=20=20=20=20\t%0.,=20%1/m,=20%0.,=20= %3.=0A=20=20=20=20movprfx\t%0,=20%2\;\t%0.,=20= %1/m,=20%0.,=20%3."=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes")])=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_mul,=20sve_mul_x")]=0A+)=0A=20=0A=20;;=20= Predicated=20highpart=20multiplications,=20merging=20with=20zero.=0A=20= (define_insn=20"*cond__z"=0A@@=20-4303,7=20+4425,9=20@@=0A=20= =20=20"@=0A=20=20=20=20movprfx\t%0.,=20%1/z,=20= %0.\;\t%0.,=20%1/m,=20%0.,=20= %3.=0A=20=20=20=20movprfx\t%0.,=20%1/z,=20= %2.\;\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"yes")])=0A+=20=20= [(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_mul_x")]=0A+)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= =20;;=20----=20[INT]=20Division=0A@@=20-4344,7=20+4468,8=20@@=0A=20=20=20= =20\t%0.,=20%1/m,=20%0.,=20%3.=0A=20=20= =20=20r\t%0.,=20%1/m,=20%0.,=20%2.=0A= =20=20=20=20movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20= %0.,=20%3."=0A-=20=20[(set_attr=20"movprfx"=20= "*,*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_div,=20sve_div,=20sve_div_x")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20integer=20division=20with=20merging.=0A@@=20-4374,7=20= +4499,8=20@@=0A=20=20=20"@=0A=20=20=20=20\t%0.,=20= %1/m,=20%0.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %2\;\t%0.,=20%1/m,=20%0.,=20%3."=0A-=20= =20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_div,=20sve_div_x")]=0A=20= )=0A=20=0A=20;;=20Predicated=20integer=20division,=20merging=20with=20= the=20second=20input.=0A@@=20-4391,7=20+4517,8=20@@=0A=20=20=20"@=0A=20=20= =20=20\t%0.,=20%1/m,=20%0.,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %3\;\t%0.,=20%1/m,=20%0.,=20%2."=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_div,=20= sve_div_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20division,=20= merging=20with=20an=20independent=20value.=0A@@=20-4421,7=20+4548,8=20@@=0A= =20=09=09=09=09=09=20=20=20=20=20operands[4],=20operands[1]));=0A=20=20=20= =20=20operands[4]=20=3D=20operands[2]=20=3D=20operands[0];=0A=20=20=20}=0A= -=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_div_x")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-4444,7=20+4572,8=20@@=0A=20=20=20=20\t%0.,=20= %0.,=20#%C2=0A=20=20=20=20movprfx\t%0,=20= %1\;\t%0.,=20%0.,=20#%C2=0A=20=20=20=20= \t%0.d,=20%1.d,=20%2.d"=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes,*")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes,*")=0A+=20=20=20= (set_attr=20"type"=20"sve_logic,=20sve_logic_x,=20sve_logic")]=0A=20)=0A=20= =0A=20;;=20Merging=20forms=20are=20handled=20through=20SVE_INT_BINARY.=0A= @@=20-4487,6=20+4616,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_logic")]=0A=20)=0A=20=0A=20;;=20Predicated=20BIC=20with=20= merging.=0A@@=20-4517,7=20+4647,8=20@@=0A=20=20=20"@=0A=20=20=20=20= bic\t%0.,=20%1/m,=20%0.,=20%3.=0A=20=20=20=20= movprfx\t%0,=20%2\;bic\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_logic,=20sve_logic_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20= BIC,=20merging=20with=20an=20independent=20value.=0A@@=20-4545,7=20= +4676,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20operands[4],=20= operands[1]));=0A=20=20=20=20=20operands[4]=20=3D=20operands[2]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_logic_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-4623,7=20+4755,8=20@@=0A=20=20=20=20&&=20!register_operand=20= (operands[3],=20mode)"=0A=20=20=20[(set=20(match_dup=200)=20= (ASHIFT:SVE_I=20(match_dup=202)=20(match_dup=203)))]=0A=20=20=20""=0A-=20= =20[(set_attr=20"movprfx"=20"*,*,*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,*,*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_shift,=20= sve_shift,=20sve_shift,=20sve_shift_x")]=0A=20)=0A=20=0A=20;;=20= Unpredicated=20shift=20operations=20by=20a=20constant=20(post-RA=20= only).=0A@@=20-4636,6=20+4769,7=20@@=0A=20=09=20=20(match_operand:SVE_I=20= 2=20"aarch64_simd_shift_imm")))]=0A=20=20=20"TARGET_SVE=20&&=20= reload_completed"=0A=20=20=20"\t%0.,=20%1.,=20= #%2"=0A+=20=20[(set_attr=20"type"=20"sve_shift")]=0A=20)=0A=20=0A=20;;=20= Predicated=20integer=20shift,=20merging=20with=20the=20first=20input.=0A= @@=20-4652,7=20+4786,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1/m,=20%0.,=20#%3=0A=20=20=20=20= movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%0.,=20#%3"=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_shift,=20= sve_shift_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20shift,=20= merging=20with=20an=20independent=20value.=0A@@=20-4678,7=20+4813,8=20@@=0A= =20=09=09=09=09=09=20=20=20=20=20operands[4],=20operands[1]));=0A=20=20=20= =20=20operands[4]=20=3D=20operands[2]=20=3D=20operands[0];=0A=20=20=20}=0A= -=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_shift_x")]=0A=20)=0A=20=0A=20= ;;=20Unpredicated=20shifts=20of=20narrow=20elements=20by=2064-bit=20= amounts.=0A@@=20-4690,6=20+4826,7=20@@=0A=20=09=20=20SVE_SHIFT_WIDE))]=0A= =20=20=20"TARGET_SVE"=0A=20=20=20"\t%0.,=20= %1.,=20%2.d"=0A+=20=20[(set_attr=20"type"=20"sve_shift")]=0A=20)=0A= =20=0A=20;;=20Merging=20predicated=20shifts=20of=20narrow=20elements=20= by=2064-bit=20amounts.=0A@@=20-4722,7=20+4859,9=20@@=0A=20=20=20"@=0A=20=20= =20=20\t%0.,=20%1/m,=20%0.,=20%3.d=0A=20=20=20= =20movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%0.,=20= %3.d"=0A-=20=20[(set_attr=20"movprfx"=20"*,=20yes")])=0A+=20=20= [(set_attr=20"movprfx"=20"*,=20yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_shift,=20sve_shift_x")]=0A+)=0A=20=0A=20;;=20Predicated=20shifts=20= of=20narrow=20elements=20by=2064-bit=20amounts,=20merging=20with=20zero.=0A= =20(define_insn=20"*cond__z"=0A@@=20-4739,7=20+4878,9=20= @@=0A=20=20=20"@=0A=20=20=20=20movprfx\t%0.,=20%1/z,=20= %0.\;\t%0.,=20%1/m,=20%0.,=20%3.d=0A=20= =20=20=20movprfx\t%0.,=20%1/z,=20= %2.\;\t%0.,=20%1/m,=20%0.,=20%3.d"=0A= -=20=20[(set_attr=20"movprfx"=20"yes")])=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_shift_x")]=0A+)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= =20;;=20----=20[INT]=20Shifts=20(rounding=20towards=200)=0A@@=20-4781,7=20= +4922,9=20@@=0A=20=20=20"@=0A=20=20=20=20asrd\t%0.,=20%1/m,=20= %0.,=20#%3=0A=20=20=20=20movprfx\t%0,=20%2\;asrd\t%0.,=20= %1/m,=20%0.,=20#%3"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")])=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_shift_d,=20sve_shift_dx")]=0A+)=0A=20=0A=20;;=20Predicated=20shift=20= with=20merging.=0A=20(define_expand=20"@cond_"=0A@@=20= -4825,7=20+4968,9=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[4]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")])=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_shift,=20sve_shift_x")]=0A+)=0A=20=0A=20;;=20= Predicated=20shift,=20merging=20with=20an=20independent=20value.=0A=20= (define_insn_and_rewrite=20"*cond__any"=0A@@=20-4854,7=20= +4999,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20operands[4],=20= operands[1]));=0A=20=20=20=20=20operands[4]=20=3D=20operands[2]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_shift_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-4876,6=20+5022,7=20@@=0A=20=09=20=20SVE_FP_BINARY_INT))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"\t%0.,=20%1.,=20= %2."=0A+=20=20[(set_attr=20"type"=20"sve_fp_trig")]=0A=20)=0A=20=0A= =20;;=20Predicated=20floating-point=20binary=20operations=20that=20take=20= an=20integer=0A@@=20-4892,7=20+5039,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1/m,=20%0.,=20%3.=0A=20=20=20= =20movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_trig,=20sve_fp_trig_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= floating-point=20binary=20operations=20with=20merging,=20taking=20an=0A= @@=20-4934,7=20+5082,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[4]=20= =3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_fp_trig,=20sve_fp_trig_x")]=0A=20)=0A=20=0A=20= (define_insn=20"*cond__2_strict"=0A@@=20-4953,7=20+5102,8=20= @@=0A=20=20=20"@=0A=20=20=20=20\t%0.,=20%1/m,=20= %0.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %2\;\t%0.,=20%1/m,=20%0.,=20%3."=0A-=20= =20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_trig,=20= sve_fp_trig_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20floating-point=20= binary=20operations=20that=20take=20an=20integer=20as=0A@@=20-4992,7=20= +5142,8=20@@=0A=20=20=20=20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20= }=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_trig_x")]=0A=20= )=0A=20=0A=20(define_insn_and_rewrite=20"*cond__any_strict"=0A= @@=20-5021,7=20+5172,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20= operands[4],=20operands[1]));=0A=20=20=20=20=20operands[4]=20=3D=20= operands[2]=20=3D=20operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_trig_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-5042,7=20+5194,8=20@@=0A=20=09=20=20(match_operand:SVE_FULL_F=201=20= "register_operand"=20"w")=0A=20=09=20=20(match_operand:SVE_FULL_F=202=20= "register_operand"=20"w")))]=0A=20=20=20"TARGET_SVE=20&&=20= reload_completed"=0A-=20=20"\t%0.,=20%1.,=20= %2.")=0A+=20=20"\t%0.,=20%1.,=20= %2."=0A+)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= =20;;=20----=20[FP]=20General=20binary=20arithmetic=20corresponding=20to=20= unspecs=0A@@=20-5421,7=20+5574,9=20@@=0A=20=20=20=20&&=20INTVAL=20= (operands[4])=20=3D=3D=20SVE_RELAXED_GP"=0A=20=20=20[(set=20(match_dup=20= 0)=20(plus:SVE_FULL_F=20(match_dup=202)=20(match_dup=203)))]=0A=20=20=20= ""=0A-=20=20[(set_attr=20"movprfx"=20"*,*,*,*,yes,yes,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,*,*,*,yes,yes,yes")=0A+=20=20=20(set_attr=20= "type"=20"sve_fp_arith,=20sve_fp_arith,=20sve_fp_arith,=20sve_fp_arith,=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= sve_fp_arith_x,=20sve_fp_arith_x,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20floating-point=20addition=20of=20a=20constant,=20= merging=20with=20the=0A@@=20-5448,7=20+5603,8=20@@=0A=20=20=20{=0A=20=20=20= =20=20operands[4]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith,=20= sve_fp_arith,=20sve_fp_arith_x,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20= (define_insn=20"*cond_add_2_const_strict"=0A@@=20-5469,7=20+5625,8=20= @@=0A=20=20=20=20fsub\t%0.,=20%1/m,=20%0.,=20#%N3=0A=20=20= =20=20movprfx\t%0,=20%2\;fadd\t%0.,=20%1/m,=20%0.,=20#%3=0A= =20=20=20=20movprfx\t%0,=20%2\;fsub\t%0.,=20%1/m,=20%0.,=20= #%N3"=0A-=20=20[(set_attr=20"movprfx"=20"*,*,yes,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith,=20sve_fp_arith_x,=20sve_fp_arith_x")]=0A=20= )=0A=20=0A=20;;=20Predicated=20floating-point=20addition=20of=20a=20= constant,=20merging=20with=20an=0A@@=20-5509,7=20+5666,8=20@@=0A=20=20=20= =20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_arith_x")]=0A=20)=0A=20=0A=20= (define_insn_and_rewrite=20"*cond_add_any_const_strict"=0A@@=20= -5540,7=20+5698,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20operands[4],=20= operands[1]));=0A=20=20=20=20=20operands[4]=20=3D=20operands[2]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith_x")]=0A=20)=0A=20=0A=20;;=20Register=20merging=20forms=20= are=20handled=20through=20SVE_COND_FP_BINARY.=0A@@=20-5565,7=20+5724,8=20= @@=0A=20=20=20"@=0A=20=20=20=20fcadd\t%0.,=20%1/m,=20= %0.,=20%3.,=20#=0A=20=20=20=20movprfx\t%0,=20= %2\;fcadd\t%0.,=20%1/m,=20%0.,=20%3.,=20#"=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith_c,=20= sve_fp_arith_cx")]=0A=20)=0A=20=0A=20;;=20Predicated=20FCADD=20with=20= merging.=0A@@=20-5619,7=20+5779,8=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[4]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith_c,=20= sve_fp_arith_cx")]=0A=20)=0A=20=0A=20(define_insn=20= "*cond__2_strict"=0A@@=20-5638,7=20+5799,8=20@@=0A=20=20=20= "@=0A=20=20=20=20fcadd\t%0.,=20%1/m,=20%0.,=20= %3.,=20#=0A=20=20=20=20movprfx\t%0,=20= %2\;fcadd\t%0.,=20%1/m,=20%0.,=20%3.,=20#"=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith_c,=20= sve_fp_arith_cx")]=0A=20)=0A=20=0A=20;;=20Predicated=20FCADD,=20merging=20= with=20an=20independent=20value.=0A@@=20-5675,7=20+5837,8=20@@=0A=20=20=20= =20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_arith_cx")]=0A=20)=0A=20=0A=20= (define_insn_and_rewrite=20"*cond__any_strict"=0A@@=20= -5704,7=20+5867,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20operands[4],=20= operands[1]));=0A=20=20=20=20=20operands[4]=20=3D=20operands[2]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith_cx")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-5739,7=20+5903,9=20@@=0A=20=20=20=20&&=20INTVAL=20(operands[4])=20= =3D=3D=20SVE_RELAXED_GP"=0A=20=20=20[(set=20(match_dup=200)=20= (minus:SVE_FULL_F=20(match_dup=202)=20(match_dup=203)))]=0A=20=20=20""=0A= -=20=20[(set_attr=20"movprfx"=20"*,*,*,*,yes,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,*,*,*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith,=20sve_fp_arith,=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20sve_fp_arith,=20sve_fp_arith_x,=20= sve_fp_arith_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20floating-point=20= subtraction=20from=20a=20constant,=20merging=20with=20the=0A@@=20-5764,7=20= +5930,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[4]=20=3D=20copy_rtx=20= (operands[1]);=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20(define_insn=20= "*cond_sub_3_const_strict"=0A@@=20-5783,7=20+5950,8=20@@=0A=20=20=20= "@=0A=20=20=20=20fsubr\t%0.,=20%1/m,=20%0.,=20#%2=0A=20=20= =20=20movprfx\t%0,=20%3\;fsubr\t%0.,=20%1/m,=20%0.,=20= #%2"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith,=20= sve_fp_arith_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20floating-point=20= subtraction=20from=20a=20constant,=20merging=20with=20an=0A@@=20-5820,7=20= +5988,8=20@@=0A=20=20=20=20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20= }=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith_x")]=0A= =20)=0A=20=0A=20(define_insn_and_rewrite=20= "*cond_sub_const_strict"=0A@@=20-5848,7=20+6017,8=20@@=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20operands[4],=20= operands[1]));=0A=20=20=20=20=20operands[4]=20=3D=20operands[3]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith_x")]=0A=20)=0A=20;;=20Register=20merging=20forms=20are=20= handled=20through=20SVE_COND_FP_BINARY.=0A=20=0A@@=20-5896,7=20+6066,8=20= @@=0A=20=20=20{=0A=20=20=20=20=20operands[5]=20=3D=20copy_rtx=20= (operands[1]);=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20(define_insn=20= "*aarch64_pred_abd_strict"=0A@@=20-5915,7=20+6086,8=20@@=0A=20=20=20= "@=0A=20=20=20=20fabd\t%0.,=20%1/m,=20%0.,=20%3.=0A= =20=20=20=20movprfx\t%0,=20%2\;fabd\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20(define_expand=20= "@aarch64_cond_abd"=0A@@=20-5968,7=20+6140,8=20@@=0A=20=20=20=20=20= operands[4]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20=20=20= operands[5]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith,=20= sve_fp_arith_x")]=0A=20)=0A=20=0A=20(define_insn=20= "*aarch64_cond_abd_2_strict"=0A@@=20-5991,7=20+6164,8=20@@=0A=20=20= =20"@=0A=20=20=20=20fabd\t%0.,=20%1/m,=20%0.,=20= %3.=0A=20=20=20=20movprfx\t%0,=20%2\;fabd\t%0.,=20%1/m,=20= %0.,=20%3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= floating-point=20absolute=20difference,=20merging=20with=20the=20second=0A= @@=20-6022,7=20+6196,8=20@@=0A=20=20=20=20=20operands[4]=20=3D=20= copy_rtx=20(operands[1]);=0A=20=20=20=20=20operands[5]=20=3D=20copy_rtx=20= (operands[1]);=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20(define_insn=20= "*aarch64_cond_abd_3_strict"=0A@@=20-6045,7=20+6220,8=20@@=0A=20=20= =20"@=0A=20=20=20=20fabd\t%0.,=20%1/m,=20%0.,=20= %2.=0A=20=20=20=20movprfx\t%0,=20%3\;fabd\t%0.,=20%1/m,=20= %0.,=20%2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= floating-point=20absolute=20difference,=20merging=20with=20an=0A@@=20= -6094,7=20+6270,8=20@@=0A=20=20=20=20=20else=0A=20=20=20=20=20=20=20= FAIL;=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith_x")]=0A=20)=0A=20=0A=20(define_insn_and_rewrite=20= "*aarch64_cond_abd_any_strict"=0A@@=20-6130,7=20+6307,8=20@@=0A=20=09= =09=09=09=09=20=20=20=20=20operands[4],=20operands[1]));=0A=20=20=20=20=20= operands[4]=20=3D=20operands[3]=20=3D=20operands[0];=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_arith_x")]=0A=20)=0A=20=0A= =20;;=20= -------------------------------------------------------------------------=0A= @@=20-6163,7=20+6341,9=20@@=0A=20=20=20=20&&=20INTVAL=20(operands[4])=20= =3D=3D=20SVE_RELAXED_GP"=0A=20=20=20[(set=20(match_dup=200)=20= (mult:SVE_FULL_F=20(match_dup=202)=20(match_dup=203)))]=0A=20=20=20""=0A= -=20=20[(set_attr=20"movprfx"=20"*,*,*,yes,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,*,*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mul,=20*,=20sve_fp_mul,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20sve_fp_mul_x,=20sve_fp_mul_x")]=0A=20)=0A=20=0A=20= ;;=20Merging=20forms=20are=20handled=20through=20SVE_COND_FP_BINARY=20= and=0A@@=20-6180,6=20+6360,7=20@@=0A=20=09=20=20= (match_operand:SVE_FULL_F=201=20"register_operand"=20"w")))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"fmul\t%0.,=20%1.,=20= %2.[%3]"=0A+=20=20[(set_attr=20"type"=20"sve_fp_mul")]=0A=20)=0A=20= =0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-6243,6=20+6424,7=20@@=0A=20=09=20=20LOGICALF))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"\t%0.d,=20%1.d,=20%2.d"=0A+=20=20= [(set_attr=20"type"=20"sve_logic")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-6363,7=20+6545,9=20@@=0A=20=20=20=20\t%0.,=20= %1/m,=20%0.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %2\;\t%0.,=20%1/m,=20%0.,=20#%3=0A=20=20=20=20= movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20%0.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,*,yes,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_arith,=20sve_fp_arith,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20sve_fp_arith_x,=20sve_fp_arith_x")]=0A=20)=0A=20=0A= =20;;=20Merging=20forms=20are=20handled=20through=20SVE_COND_FP_BINARY=20= and=0A@@=20-6390,6=20+6574,7=20@@=0A=20=09=09=20=20=20=20=20=20= (match_operand:PRED_ALL=202=20"register_operand"=20"Upa")))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"and\t%0.b,=20%1/z,=20%2.b,=20%2.b"=0A+=20=20= [(set_attr=20"type"=20"sve_logic_p")]=0A=20)=0A=20=0A=20;;=20= Unpredicated=20predicate=20EOR=20and=20ORR.=0A@@=20-6416,6=20+6601,7=20= @@=0A=20=09=20=20(match_operand:PRED_ALL=201=20"register_operand"=20= "Upa")))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"\t%0.b,=20%1/z,=20= %2.b,=20%3.b"=0A+=20=20[(set_attr=20"type"=20"sve_logic_p")]=0A=20)=0A=20= =0A=20;;=20Perform=20a=20logical=20operation=20on=20operands=202=20and=20= 3,=20using=20operand=201=20as=0A@@=20-6438,6=20+6624,7=20@@=0A=20=09=09=20= =20=20=20=20=20(match_dup=204)))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "s\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20"type"=20= "sve_logic_ps")]=0A=20)=0A=20=0A=20;;=20Same=20with=20just=20the=20flags=20= result.=0A@@=20-6456,6=20+6643,7=20@@=0A=20=20=20=20(clobber=20= (match_scratch:VNx16BI=200=20"=3DUpa"))]=0A=20=20=20"TARGET_SVE"=0A=20=20= =20"s\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20= "type"=20"sve_logic_ps")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-6476,6=20+6664,7=20@@=0A=20=09=20=20(match_operand:PRED_ALL=201=20= "register_operand"=20"Upa")))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20"type"=20= "sve_logic_p")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20set=20the=20flags=20= as=20a=20side-effect.=0A@@=20-6499,6=20+6688,7=20@@=0A=20=09=09=20=20=20=20= =20=20(match_dup=204)))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "s\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20"type"=20= "sve_logic_ps")]=0A=20)=0A=20=0A=20;;=20Same=20with=20just=20the=20flags=20= result.=0A@@=20-6518,6=20+6708,7=20@@=0A=20=20=20=20(clobber=20= (match_scratch:VNx16BI=200=20"=3DUpa"))]=0A=20=20=20"TARGET_SVE"=0A=20=20= =20"s\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20= "type"=20"sve_logic_ps")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-6538,6=20+6729,7=20@@=0A=20=09=20=20(match_operand:PRED_ALL=201=20= "register_operand"=20"Upa")))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20= "type"=20"sve_logic")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20set=20the=20= flags=20as=20a=20side-effect.=0A@@=20-6562,6=20+6754,7=20@@=0A=20=09=09=20= =20=20=20=20=20(match_dup=204)))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "s\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20= "type"=20"sve_logic_ps")]=0A=20)=0A=20=0A=20;;=20Same=20with=20just=20= the=20flags=20result.=0A@@=20-6582,6=20+6775,7=20@@=0A=20=20=20=20= (clobber=20(match_scratch:VNx16BI=200=20"=3DUpa"))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"s\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A= +=20=20[(set_attr=20"type"=20"sve_logic_ps")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-6631,7=20+6825,8=20@@=0A=20=20=20=20mad\t%0.,=20%1/m,=20= %3.,=20%4.=0A=20=20=20=20mla\t%0.,=20%1/m,=20= %2.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %4\;mla\t%0.,=20%1/m,=20%2.,=20%3."=0A-=20=20= [(set_attr=20"movprfx"=20"*,*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_mla,=20sve_mla,=20= sve_mla_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20addition=20of=20= product=20with=20merging.=0A@@=20-6673,7=20+6868,8=20@@=0A=20=20=20"@=0A=20= =20=20=20mad\t%0.,=20%1/m,=20%3.,=20%4.=0A=20=20=20= =20movprfx\t%0,=20%2\;mad\t%0.,=20%1/m,=20%3.,=20= %4."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_mla,=20sve_mla_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20= addition=20of=20product,=20merging=20with=20the=20third=20input.=0A@@=20= -6692,7=20+6888,8=20@@=0A=20=20=20"@=0A=20=20=20=20mla\t%0.,=20= %1/m,=20%2.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %4\;mla\t%0.,=20%1/m,=20%2.,=20%3."=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_mla,=20sve_mla_x")]=0A=20= )=0A=20=0A=20;;=20Predicated=20integer=20addition=20of=20product,=20= merging=20with=20an=20independent=20value.=0A@@=20-6726,7=20+6923,8=20@@=0A= =20=09=09=09=09=09=20=20=20=20=20operands[5],=20operands[1]));=0A=20=20=20= =20=20operands[5]=20=3D=20operands[4]=20=3D=20operands[0];=0A=20=20=20}=0A= -=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_mla_x")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-6772,7=20+6970,8=20@@=0A=20=20=20=20msb\t%0.,=20%1/m,=20= %3.,=20%4.=0A=20=20=20=20mls\t%0.,=20%1/m,=20= %2.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %4\;mls\t%0.,=20%1/m,=20%2.,=20%3."=0A-=20=20= [(set_attr=20"movprfx"=20"*,*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_mla,=20sve_mla,=20= sve_mla_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20subtraction=20= of=20product=20with=20merging.=0A@@=20-6814,7=20+7013,8=20@@=0A=20=20=20= "@=0A=20=20=20=20msb\t%0.,=20%1/m,=20%3.,=20%4.=0A= =20=20=20=20movprfx\t%0,=20%2\;msb\t%0.,=20%1/m,=20%3.,=20= %4."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_mla,=20sve_mla_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20= subtraction=20of=20product,=20merging=20with=20the=20third=20input.=0A@@=20= -6833,7=20+7033,8=20@@=0A=20=20=20"@=0A=20=20=20=20mls\t%0.,=20= %1/m,=20%2.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %4\;mls\t%0.,=20%1/m,=20%2.,=20%3."=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_mla,=20sve_mla_x")]=0A=20= )=0A=20=0A=20;;=20Predicated=20integer=20subtraction=20of=20product,=20= merging=20with=20an=0A@@=20-6868,7=20+7069,8=20@@=0A=20=09=09=09=09=09=20= =20=20=20=20operands[5],=20operands[1]));=0A=20=20=20=20=20operands[5]=20= =3D=20operands[4]=20=3D=20operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_mla_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-6894,7=20+7096,8=20@@=0A=20=20=20"@=0A=20=20=20=20= dot\\t%0.,=20%1.,=20%2.=0A=20=20= =20=20movprfx\t%0,=20%3\;dot\\t%0.,=20%1.,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_dot,=20sve_dot_x")]=0A=20)=0A=20=0A=20;;=20Four-element=20integer=20= dot-product=20by=20selected=20lanes=20with=20accumulation.=0A@@=20= -6913,7=20+7116,8=20@@=0A=20=20=20"@=0A=20=20=20=20= dot\\t%0.,=20%1.,=20%2.[%3]=0A= =20=20=20=20movprfx\t%0,=20%4\;dot\\t%0.,=20= %1.,=20%2.[%3]"=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_dot,=20sve_dot_x")]=0A=20)=0A=20=0A=20= (define_insn=20"@dot_prod"=0A@@=20-6928,7=20+7132,8=20@@=0A=20= =20=20"@=0A=20=20=20=20dot\\t%0.s,=20%1.b,=20%2.b=0A=20=20=20=20= movprfx\t%0,=20%3\;dot\\t%0.s,=20%1.b,=20%2.b"=0A-=20=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_dot,=20sve_dot_x")]=0A=20= )=0A=20=0A=20(define_insn=20"@aarch64_dot_prod_lane"=0A@@=20= -6946,7=20+7151,8=20@@=0A=20=20=20"@=0A=20=20=20=20dot\\t%0.s,=20= %1.b,=20%2.b[%3]=0A=20=20=20=20movprfx\t%0,=20%4\;dot\\t%0.s,=20= %1.b,=20%2.b[%3]"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_dot,=20sve_dot_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-7000,7=20+7206,8=20@@=0A=20=20=20"@=0A=20=20=20=20= mmla\\t%0.s,=20%2.b,=20%3.b=0A=20=20=20=20movprfx\t%0,=20= %1\;mmla\\t%0.s,=20%2.b,=20%3.b"=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_mmla,=20sve_mmla_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-7048,7=20+7255,8=20@@=0A=20=20=20=20\t%0.,=20= %1/m,=20%2.,=20%3.=0A=20=20=20=20= \t%0.,=20%1/m,=20%3.,=20%4.=0A=20=20= =20=20movprfx\t%0,=20%4\;\t%0.,=20%1/m,=20= %2.,=20%3."=0A-=20=20[(set_attr=20"movprfx"=20= "*,*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_mla,=20sve_fp_mla,=20sve_fp_mla_x")]=0A=20)=0A= =20=0A=20;;=20Predicated=20floating-point=20ternary=20operations=20with=20= merging.=0A@@=20-7096,7=20+7304,8=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[5]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_mla,=20sve_fp_mla_x")]=0A= =20)=0A=20=0A=20(define_insn=20"*cond__2_strict"=0A@@=20= -7116,7=20+7325,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1/m,=20%3.,=20%4.=0A=20=20= =20=20movprfx\t%0,=20%2\;\t%0.,=20%1/m,=20= %3.,=20%4."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla,=20sve_fp_mla_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= floating-point=20ternary=20operations,=20merging=20with=20the=0A@@=20= -7142,7=20+7352,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[5]=20=3D=20= copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_mla,=20sve_fp_mla_x")]=0A=20)=0A=20=0A=20= (define_insn=20"*cond__4_strict"=0A@@=20-7162,7=20+7373,8=20= @@=0A=20=20=20"@=0A=20=20=20=20\t%0.,=20%1/m,=20= %2.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %4\;\t%0.,=20%1/m,=20%2.,=20%3."=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_mla,=20= sve_fp_mla_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20floating-point=20= ternary=20operations,=20merging=20with=20an=0A@@=20-7206,7=20+7418,8=20= @@=0A=20=20=20=20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20}=0A-=20= =20[(set_attr=20"movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_mla_x")]=0A=20)=0A=20=0A=20= (define_insn_and_rewrite=20"*cond__any_strict"=0A@@=20= -7241,7=20+7454,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20operands[5],=20= operands[1]));=0A=20=20=20=20=20operands[5]=20=3D=20operands[4]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla_x")]=0A=20)=0A=20=0A=20;;=20Unpredicated=20FMLA=20and=20FMLS=20= by=20selected=20lanes.=20=20It=20doesn't=20seem=20worth=20using=0A@@=20= -7260,7=20+7474,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \t%0.,=20%1.,=20%2.[%3]=0A=20=20=20=20= movprfx\t%0,=20%4\;\t%0.,=20%1.,=20= %2.[%3]"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla,=20sve_fp_mla_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-7284,7=20+7499,8=20@@=0A=20=20=20"@=0A=20=20=20=20= fcmla\t%0.,=20%1/m,=20%2.,=20%3.,=20#=0A=20=20= =20=20movprfx\t%0,=20%4\;fcmla\t%0.,=20%1/m,=20%2.,=20= %3.,=20#"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla_c,=20sve_fp_mla_cx")]=0A=20)=0A=20=0A=20;;=20unpredicated=20= optab=20pattern=20for=20auto-vectorizer=0A@@=20-7382,7=20+7598,8=20@@=0A=20= =20=20{=0A=20=20=20=20=20operands[5]=20=3D=20copy_rtx=20(operands[1]);=0A= =20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla_c,=20sve_fp_mla_cx")]=0A=20)=0A=20=0A=20(define_insn=20= "*cond__4_strict"=0A@@=20-7402,7=20+7619,8=20@@=0A=20=20=20= "@=0A=20=20=20=20fcmla\t%0.,=20%1/m,=20%2.,=20= %3.,=20#=0A=20=20=20=20movprfx\t%0,=20= %4\;fcmla\t%0.,=20%1/m,=20%2.,=20%3.,=20#"=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_mla_c,=20= sve_fp_mla_cx")]=0A=20)=0A=20=0A=20;;=20Predicated=20FCMLA,=20merging=20= with=20an=20independent=20value.=0A@@=20-7440,7=20+7658,8=20@@=0A=20=20=20= =20=20else=0A=20=20=20=20=20=20=20FAIL;=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"yes")]=0A+=20=20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_mla_cx")]=0A=20)=0A=20=0A=20= (define_insn_and_rewrite=20"*cond__any_strict"=0A@@=20= -7470,7=20+7689,8=20@@=0A=20=09=09=09=09=09=20=20=20=20=20operands[5],=20= operands[1]));=0A=20=20=20=20=20operands[5]=20=3D=20operands[4]=20=3D=20= operands[0];=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20"yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla_cx")]=0A=20)=0A=20=0A=20;;=20Unpredicated=20FCMLA=20with=20= indexing.=0A@@=20-7488,7=20+7708,8=20@@=0A=20=20=20"@=0A=20=20=20=20= fcmla\t%0.,=20%1.,=20%2.[%3],=20#=0A=20=20=20= =20movprfx\t%0,=20%4\;fcmla\t%0.,=20%1.,=20= %2.[%3],=20#"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mla_c,=20sve_fp_mla_cx")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-7509,7=20+7730,8=20@@=0A=20=20=20"@=0A=20=20=20=20= ftmad\t%0.,=20%0.,=20%2.,=20#%3=0A=20=20=20=20= movprfx\t%0,=20%1\;ftmad\t%0.,=20%0.,=20%2.,=20= #%3"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_trig,=20= sve_fp_trig_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-7571,7=20+7793,8=20@@=0A=20=20=20"@=0A=20=20=20=20= \\t%0.,=20%2.,=20%3.=0A=20=20=20=20= movprfx\t%0,=20%1\;\\t%0.,=20%2.,=20= %3."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_mmla,=20sve_fp_mmla_x")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-7639,7=20+7862,9=20@@=0A=20=20=20=20movprfx\t%0.,=20%3/z,=20= %0.\;fmov\t%0.,=20%3/m,=20#%1=0A=20=20=20=20movprfx\t%0,=20= %2\;mov\t%0.,=20%3/m,=20#%I1=0A=20=20=20=20movprfx\t%0,=20= %2\;fmov\t%0.,=20%3/m,=20#%1"=0A-=20=20[(set_attr=20"movprfx"=20= "*,*,*,*,yes,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,*,*,*,yes,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_move,=20= sve_move,=20sve_move,=20sve_fp_move,=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20sve_fp_move_x,=20sve_move_x,=20= sve_move_x")]=0A=20)=0A=20=0A=20;;=20Optimize=20selects=20between=20a=20= duplicated=20scalar=20variable=20and=20another=20vector,=0A@@=20-7662,7=20= +7887,9=20@@=0A=20=20=20=20movprfx\t%0.,=20%3/z,=20= %0.\;mov\t%0.,=20%3/m,=20%1=0A=20=20=20=20= movprfx\t%0,=20%2\;mov\t%0.,=20%3/m,=20%1=0A=20=20=20=20= movprfx\t%0,=20%2\;mov\t%0.,=20%3/m,=20%1"=0A-=20=20= [(set_attr=20"movprfx"=20"*,*,yes,yes,yes,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,*,yes,yes,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_move,=20sve_move,=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20sve_move_x,=20sve_move_x,=20sve_move_x,=20sve_move_x")]=0A= =20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-7813,6=20+8040,7=20@@=0A=20=20=20"@=0A=20=20=20=20= cmp\t%0.,=20%1/z,=20%3.,=20#%4=0A=20=20=20=20= cmp\t%0.,=20%1/z,=20%3.,=20%4."=0A+=20=20= [(set_attr=20"type"=20"sve_compare_s,=20sve_compare_s")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20integer=20comparisons=20in=20which=20both=20the=20flag=20= and=20predicate=0A@@=20-7849,6=20+8077,7=20@@=0A=20=20=20=20=20= operands[6]=20=3D=20copy_rtx=20(operands[4]);=0A=20=20=20=20=20= operands[7]=20=3D=20operands[5];=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_compare_s,=20sve_compare_s")]=0A=20)=0A=20=0A=20;;=20= Predicated=20integer=20comparisons=20in=20which=20only=20the=20flags=20= result=20is=0A@@=20-7878,6=20+8107,7=20@@=0A=20=20=20=20=20operands[6]=20= =3D=20copy_rtx=20(operands[4]);=0A=20=20=20=20=20operands[7]=20=3D=20= operands[5];=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_compare_s,=20= sve_compare_s")]=0A=20)=0A=20=0A=20;;=20Predicated=20integer=20= comparisons,=20formed=20by=20combining=20a=20PTRUE-predicated=0A@@=20= -7925,6=20+8155,7=20@@=0A=20=20=20=20(clobber=20(reg:CC_NZC=20= CC_REGNUM))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "cmp\t%0.,=20%1/z,=20%3.,=20%4.d"=0A+=20=20= [(set_attr=20"type"=20"sve_compare_s")]=0A=20)=0A=20=0A=20;;=20= Predicated=20integer=20wide=20comparisons=20in=20which=20both=20the=20= flag=20and=0A@@=20-7956,6=20+8187,7=20@@=0A=20=20=20"TARGET_SVE=0A=20=20=20= =20&&=20aarch64_sve_same_pred_for_ptest_p=20(&operands[4],=20= &operands[6])"=0A=20=20=20"cmp\t%0.,=20%1/z,=20= %2.,=20%3.d"=0A+=20=20[(set_attr=20"type"=20"sve_compare_s")]=0A=20= )=0A=20=0A=20;;=20Predicated=20integer=20wide=20comparisons=20in=20which=20= only=20the=20flags=20result=0A@@=20-7979,6=20+8211,7=20@@=0A=20=20=20= "TARGET_SVE=0A=20=20=20=20&&=20aarch64_sve_same_pred_for_ptest_p=20= (&operands[4],=20&operands[6])"=0A=20=20=20"cmp\t%0.,=20= %1/z,=20%2.,=20%3.d"=0A+=20=20[(set_attr=20"type"=20= "sve_compare_s")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8007,6=20+8240,7=20@@=0A=20=20=20=20(clobber=20(reg:CC_NZC=20= CC_REGNUM))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "while\t%0.,=20%1,=20%2"=0A+=20=20= [(set_attr=20"type"=20"sve_loop_gs")]=0A=20)=0A=20=0A=20;;=20The=20WHILE=20= instructions=20set=20the=20flags=20in=20the=20same=20way=20as=20a=20= PTEST=20with=0A@@=20-8036,6=20+8270,7=20@@=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(VNx16BImode);=0A=20=20=20=20=20operands[4]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_loop_gs")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20handle=20= the=20case=20in=20which=20only=20the=20flags=20result=20is=20useful.=0A= @@=20-8060,6=20+8295,7=20@@=0A=20=20=20=20=20operands[3]=20=3D=20= CONSTM1_RTX=20(VNx16BImode);=0A=20=20=20=20=20operands[4]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_loop_gs")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8104,6=20+8340,7=20@@=0A=20=20=20"@=0A=20=20=20=20= fcm\t%0.,=20%1/z,=20%3.,=20#0.0=0A=20=20=20=20= fcm\t%0.,=20%1/z,=20%3.,=20%4."=0A+=20=20= [(set_attr=20"type"=20"sve_fp_compare,=20sve_fp_compare")]=0A=20)=0A=20=0A= =20;;=20Same=20for=20unordered=20comparisons.=0A@@=20-8117,6=20+8354,7=20= @@=0A=20=09=20=20UNSPEC_COND_FCMUO))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "fcmuo\t%0.,=20%1/z,=20%3.,=20%4."=0A+=20=20= [(set_attr=20"type"=20"sve_fp_compare")]=0A=20)=0A=20=0A=20;;=20= Floating-point=20comparisons=20predicated=20on=20a=20PTRUE,=20with=20the=20= results=20ANDed=0A@@=20-8204,10=20+8442,10=20@@=0A=20=09=20=20= (not:=0A=20=09=20=20=20=20(match_dup=205))=0A=20=09=20=20= (match_dup=204)))]=0A-{=0A-=20=20if=20(can_create_pseudo_p=20())=0A-=20=20= =20=20operands[5]=20=3D=20gen_reg_rtx=20(mode);=0A-}=0A+=20=20{=0A= +=20=20=20=20if=20(can_create_pseudo_p=20())=0A+=20=20=20=20=20=20= operands[5]=20=3D=20gen_reg_rtx=20(mode);=0A+=20=20}=0A=20)=0A=20=0A= =20;;=20Make=20sure=20that=20we=20expand=20to=20a=20nor=20when=20the=20= operand=204=20of=0A@@=20-8245,10=20+8483,10=20@@=0A=20=09=20=20=20=20= (not:=0A=20=09=20=20=20=20=20=20(match_dup=204)))=0A=20=09=20=20= (match_dup=201)))]=0A-{=0A-=20=20if=20(can_create_pseudo_p=20())=0A-=20=20= =20=20operands[5]=20=3D=20gen_reg_rtx=20(mode);=0A-}=0A+=20=20{=0A= +=20=20=20=20if=20(can_create_pseudo_p=20())=0A+=20=20=20=20=20=20= operands[5]=20=3D=20gen_reg_rtx=20(mode);=0A+=20=20}=0A=20)=0A=20=0A= =20(define_insn_and_split=20"*fcmuo_bic_combine"=0A@@=20-8280,10=20= +8518,10=20@@=0A=20=09=20=20(not:=0A=20=09=20=20=20=20(match_dup=20= 5))=0A=20=09=20=20(match_dup=204)))]=0A-{=0A-=20=20if=20= (can_create_pseudo_p=20())=0A-=20=20=20=20operands[5]=20=3D=20= gen_reg_rtx=20(mode);=0A-}=0A+=20=20{=0A+=20=20=20=20if=20= (can_create_pseudo_p=20())=0A+=20=20=20=20=20=20operands[5]=20=3D=20= gen_reg_rtx=20(mode);=0A+=20=20}=0A=20)=0A=20=0A=20;;=20Same=20= for=20unordered=20comparisons.=0A@@=20-8320,10=20+8558,10=20@@=0A=20=09=20= =20=20=20(not:=0A=20=09=20=20=20=20=20=20(match_dup=204)))=0A=20=09= =20=20(match_dup=201)))]=0A-{=0A-=20=20if=20(can_create_pseudo_p=20())=0A= -=20=20=20=20operands[5]=20=3D=20gen_reg_rtx=20(mode);=0A-}=0A+=20= =20{=0A+=20=20=20=20if=20(can_create_pseudo_p=20())=0A+=20=20=20=20=20=20= operands[5]=20=3D=20gen_reg_rtx=20(mode);=0A+=20=20}=0A=20)=0A=20=0A= =20;;=20= -------------------------------------------------------------------------=0A= @@=20-8380,6=20+8618,7=20@@=0A=20=20=20=20=20operands[5]=20=3D=20= copy_rtx=20(operands[1]);=0A=20=20=20=20=20operands[6]=20=3D=20copy_rtx=20= (operands[1]);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_fp_compare")]=0A=20)=0A=20=0A=20(define_insn=20= "*aarch64_pred_fac_strict"=0A@@=20-8400,6=20+8639,7=20@@=0A= =20=09=20=20SVE_COND_FP_ABS_CMP))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "fac\t%0.,=20%1/z,=20%2.,=20%3."=0A+=20=20= [(set_attr=20"type"=20"sve_fp_compare")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8420,6=20+8660,7=20@@=0A=20=09=20=20=20=20(match_operand:PRED_ALL=20= 2=20"register_operand"=20"Upa"))))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "sel\t%0.b,=20%3,=20%1.b,=20%2.b"=0A+=20=20[(set_attr=20"type"=20= "sve_sel_p")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8468,6=20+8709,7=20@@=0A=20=09=09=20=20=20=20=20=20=20= UNSPEC_PTEST))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"ptest\t%0,=20%3.b"=0A= +=20=20[(set_attr=20"type"=20"sve_set_ps")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-8495,6=20+8737,7=20@@=0A=20=20=20"@=0A=20=20=20=20= clast\t%0,=20%2,=20%0,=20%3.=0A=20=20=20=20= clast\t%0,=20%2,=20%0,=20%3."=0A+=20=20= [(set_attr=20"type"=20"sve_cext,=20sve_cext")]=0A=20)=0A=20=0A=20= (define_insn=20"@aarch64_fold_extract_vector__"=0A@@=20= -8508,6=20+8751,8=20@@=0A=20=20=20"@=0A=20=20=20=20= clast\t%0.,=20%2,=20%0.,=20%3.=0A=20=20=20=20= movprfx\t%0,=20%1\;clast\t%0.,=20%2,=20%0.,=20= %3."=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_cext,=20sve_cext_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8548,6=20+8793,7=20@@=0A=20=09=09=20=20=20SVE_INT_ADDV))]=0A=20=20=20= "TARGET_SVE=20&&=20=20>=3D=20"=0A=20=20=20= "addv\t%d0,=20%1,=20%2."=0A+=20=20[(set_attr=20"type"=20= "sve_arith_r")]=0A=20)=0A=20=0A=20;;=20Unpredicated=20integer=20= reductions.=0A@@=20-8570,6=20+8816,7=20@@=0A=20=09=09=20=20=20=20=20=20= SVE_INT_REDUCTION))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "\t%0,=20%1,=20%2."=0A+=20=20[(set_attr=20= "type"=20"sve_arith_r")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8614,6=20+8861,7=20@@=0A=20=09=09=20=20=20=20=20=20= SVE_FP_REDUCTION))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "\t%0,=20%1,=20%2."=0A+=20=20[(set_attr=20= "type"=20"sve_fp_arith_r")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8645,6=20+8893,7=20@@=0A=20=09=09=20=20=20=20=20=20UNSPEC_FADDA))]=0A= =20=20=20"TARGET_SVE"=0A=20=20=20"fadda\t%0,=20%3,=20%0,=20= %2."=0A+=20=20[(set_attr=20"type"=20"sve_fp_arith_a")]=0A=20)=0A=20= =0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-8679,6=20+8928,7=20@@=0A=20=09=20=20UNSPEC_TBL))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"tbl\t%0.,=20%1.,=20%2."=0A= +=20=20[(set_attr=20"type"=20"sve_tbl")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8699,6=20+8949,7=20@@=0A=20=09=20=20UNSPEC_SVE_COMPACT))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"compact\t%0.,=20%1,=20%2."=0A+=20= =20[(set_attr=20"type"=20"sve_cext")]=0A=20)=0A=20=0A=20;;=20Duplicate=20= one=20element=20of=20a=20vector.=0A@@=20-8711,6=20+8962,7=20@@=0A=20=20=20= "TARGET_SVE=0A=20=20=20=20&&=20IN_RANGE=20(INTVAL=20(operands[2])=20*=20= =20/=208,=200,=2063)"=0A=20=20=20"dup\t%0.,=20= %1.[%2]"=0A+=20=20[(set_attr=20"type"=20"sve_splat")]=0A=20)=0A=20= =0A=20;;=20Use=20DUP.Q=20to=20duplicate=20a=20128-bit=20segment=20of=20a=20= register.=0A@@=20-8747,6=20+8999,7=20@@=0A=20=20=20=20=20operands[2]=20=3D= =20gen_int_mode=20(byte=20/=2016,=20DImode);=0A=20=20=20=20=20return=20= "dup\t%0.q,=20%1.q[%2]";=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_splat")]=0A=20)=0A=20=0A=20;;=20Reverse=20the=20order=20of=20= elements=20within=20a=20full=20vector.=0A@@=20-8756,7=20+9009,9=20@@=0A=20= =09=20=20[(match_operand:SVE_ALL=201=20"register_operand"=20"w")]=0A=20=09= =20=20UNSPEC_REV))]=0A=20=20=20"TARGET_SVE"=0A-=20=20"rev\t%0.,=20= %1.")=0A+=20=20"rev\t%0.,=20%1."=0A+=20=20= [(set_attr=20"type"=20"sve_rev")]=0A+)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= =20;;=20----=20[INT,FP]=20Special-purpose=20binary=20permutes=0A@@=20= -8784,7=20+9039,8=20@@=0A=20=20=20"@=0A=20=20=20=20splice\t%0.,=20= %1,=20%0.,=20%3.=0A=20=20=20=20movprfx\t%0,=20= %2\;splice\t%0.,=20%1,=20%0.,=20%3."=0A-=20=20= [(set_attr=20"movprfx"=20"*,=20yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,=20yes")=0A+=20=20=20(set_attr=20"type"=20"sve_cext,=20sve_cext_x")]=0A= =20)=0A=20=0A=20;;=20Permutes=20that=20take=20half=20the=20elements=20= from=20one=20vector=20and=20half=20the=0A@@=20-8797,6=20+9053,7=20@@=0A=20= =09=20=20PERMUTE))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "\t%0.,=20%1.,=20%2."=0A+=20=20= [(set_attr=20"type"=20"sve_ext")]=0A=20)=0A=20=0A=20;;=20Apply=20PERMUTE=20= to=20128-bit=20sequences.=20=20The=20behavior=20of=20these=20patterns=0A= @@=20-8809,6=20+9066,7=20@@=0A=20=09=20=20PERMUTEQ))]=0A=20=20=20= "TARGET_SVE_F64MM"=0A=20=20=20"\t%0.q,=20%1.q,=20%2.q"=0A+=20=20= [(set_attr=20"type"=20"sve_ext")]=0A=20)=0A=20=0A=20;;=20Concatenate=20= two=20vectors=20and=20extract=20a=20subvector.=20=20Note=20that=20the=0A= @@=20-8828,7=20+9086,8=20@@=0A=20=09=20=20=20=20?=20"ext\\t%0.b,=20%0.b,=20= %2.b,=20#%3"=0A=20=09=20=20=20=20:=20"movprfx\t%0,=20%1\;ext\\t%0.b,=20= %0.b,=20%2.b,=20#%3");=0A=20=20=20}=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_ext,=20sve_ext_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-8843,7=20+9102,9=20@@=0A=20=09(unspec:PRED_ALL=20= [(match_operand:PRED_ALL=201=20"register_operand"=20"Upa")]=0A=20=09=09=09= =20UNSPEC_REV))]=0A=20=20=20"TARGET_SVE"=0A-=20=20"rev\t%0.,=20= %1.")=0A+=20=20"rev\t%0.,=20%1."=0A+=20=20= [(set_attr=20"type"=20"sve_rev_p")]=0A+)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= =20;;=20----=20[PRED]=20Special-purpose=20binary=20permutes=0A@@=20= -8866,6=20+9127,7=20@@=0A=20=09=09=09=20PERMUTE))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"\t%0.,=20%1.,=20= %2."=0A+=20=20[(set_attr=20"type"=20"sve_trn_p")]=0A=20)=0A=20=0A= =20;;=20Special=20purpose=20permute=20used=20by=20the=20predicate=20= generation=20instructions.=0A@@=20-8880,6=20+9142,7=20@@=0A=20=09=09=09= UNSPEC_TRN1_CONV))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "trn1\t%0.,=20%1.,=20= %2."=0A+=20=20[(set_attr=20"type"=20"sve_trn_p")]=0A=20= )=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-8903,6=20+9166,7=20@@=0A=20=09=20=20UNSPEC_PACK))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"uzp1\t%0.,=20%1.,=20= %2."=0A+=20=20[(set_attr=20"type"=20"sve_zip")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-8939,6=20+9203,7=20@@=0A=20=09=20=20UNPACK))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"unpk\t%0.,=20= %1."=0A+=20=20[(set_attr=20"type"=20"sve_upk")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-8976,7=20+9241,8=20@@=0A=20=20=20"@=0A=20=20=20=20= fcvtz\t%0.,=20%1/m,=20%2.=0A= =20=20=20=20movprfx\t%0,=20%2\;fcvtz\t%0.,=20= %1/m,=20%2."=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_fp_to_int,=20sve_fp_to_int_x")]=0A=20)=0A=20=0A= =20;;=20Predicated=20narrowing=20float-to-integer=20conversion.=0A@@=20= -8991,7=20+9257,8=20@@=0A=20=20=20"@=0A=20=20=20=20= fcvtz\t%0.,=20%1/m,=20%2.=0A=20= =20=20=20movprfx\t%0,=20%2\;fcvtz\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_to_int,=20sve_fp_to_int_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= float-to-integer=20conversion=20with=20merging,=20either=20to=20the=20= same=0A@@=20-9035,7=20+9302,8=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[4]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_to_int,=20= sve_fp_to_int_x,=20sve_fp_to_int_x")]=0A=20)=0A=20=0A=20(define_insn=20= "*cond__nontrunc_strict"=0A= @@=20-9054,7=20+9322,8=20@@=0A=20=20=20=20= fcvtz\t%0.,=20%1/m,=20%2.=0A= =20=20=20=20movprfx\t%0.,=20%1/z,=20= %2.\;fcvtz\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %3\;fcvtz\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes,yes")=0A+=20=20=20(set_attr=20= "type"=20"sve_fp_to_int,=20sve_fp_to_int_x,=20sve_fp_to_int_x")]=0A=20)=0A= =20=0A=20;;=20Predicated=20narrowing=20float-to-integer=20conversion=20= with=20merging.=0A@@=20-9088,7=20+9357,8=20@@=0A=20=20=20=20= fcvtz\t%0.,=20%1/m,=20%2.=0A=20= =20=20=20movprfx\t%0.,=20%1/z,=20= %2.\;fcvtz\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %3\;fcvtz\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes,yes")=0A+=20=20=20(set_attr=20= "type"=20"sve_fp_to_int,=20sve_fp_to_int_x,=20sve_fp_to_int_x")]=0A=20)=0A= =20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9163,7=20+9433,8=20@@=0A=20=20=20"@=0A=20=20=20=20= cvtf\t%0.,=20%1/m,=20%2.=0A=20= =20=20=20movprfx\t%0,=20%2\;cvtf\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_int_to_fp,=20sve_int_to_fp_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= widening=20integer-to-float=20conversion.=0A@@=20-9178,7=20+9449,8=20@@=0A= =20=20=20"@=0A=20=20=20=20cvtf\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %2\;cvtf\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20= =20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_int_to_fp,=20sve_int_to_fp_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= integer-to-float=20conversion=20with=20merging,=20either=20to=20the=20= same=0A@@=20-9222,7=20+9494,8=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[4]=20=3D=20copy_rtx=20(operands[1]);=0A=20=20=20}=0A-=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_int_to_fp,=20= sve_int_to_fp_x,=20sve_int_to_fp_x")]=0A=20)=0A=20=0A=20(define_insn=20= "*cond__nonextend_strict"=0A= @@=20-9241,7=20+9514,8=20@@=0A=20=20=20=20= cvtf\t%0.,=20%1/m,=20%2.=0A=20= =20=20=20movprfx\t%0.,=20%1/z,=20= %2.\;cvtf\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %3\;cvtf\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20= "*,yes,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes,yes")=0A+=20=20=20= (set_attr=20"type"=20"sve_int_to_fp,=20sve_int_to_fp_x,=20= sve_int_to_fp_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20widening=20= integer-to-float=20conversion=20with=20merging.=0A@@=20-9275,7=20+9549,8=20= @@=0A=20=20=20=20cvtf\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0.,=20= %1/z,=20%2.\;cvtf\t%0.,=20= %1/m,=20%2.=0A=20=20=20=20movprfx\t%0,=20= %3\;cvtf\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes,yes")=0A+=20=20=20(set_attr=20= "type"=20"sve_int_to_fp,=20sve_int_to_fp_x,=20sve_int_to_fp_x")]=0A=20)=0A= =20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9361,7=20+9636,8=20@@=0A=20=20=20"@=0A=20=20=20=20= fcvt\t%0.,=20%1/m,=20%2.=0A=20=20= =20=20movprfx\t%0,=20%2\;fcvt\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_to_fp,=20sve_fp_to_fp_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= float-to-float=20truncation=20with=20merging.=0A@@=20-9395,7=20+9671,8=20= @@=0A=20=20=20=20fcvt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20= movprfx\t%0.,=20%1/z,=20= %2.\;fcvt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %3\;fcvt\t%0.,=20%1/m,=20%2."=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_to_fp,=20= sve_fp_to_fp_x,=20sve_fp_to_fp_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9418,7=20+9695,8=20@@=0A=20=20=20"@=0A=20=20=20=20bfcvt\t%0.h,=20= %1/m,=20%2.s=0A=20=20=20=20movprfx\t%0,=20%2\;bfcvt\t%0.h,=20%1/m,=20= %2.s"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_to_fp,=20= sve_fp_to_fp_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20BFCVT=20with=20= merging.=0A@@=20-9452,7=20+9730,8=20@@=0A=20=20=20=20bfcvt\t%0.h,=20= %1/m,=20%2.s=0A=20=20=20=20movprfx\t%0.s,=20%1/z,=20%2.s\;bfcvt\t%0.h,=20= %1/m,=20%2.s=0A=20=20=20=20movprfx\t%0,=20%3\;bfcvt\t%0.h,=20%1/m,=20= %2.s"=0A-=20=20[(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20= [(set_attr=20"movprfx"=20"*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_to_fp,=20sve_fp_to_fp_x,=20sve_fp_to_fp_x")]=0A=20)=0A=20=0A=20= ;;=20Predicated=20BFCVTNT.=20=20This=20doesn't=20give=20a=20natural=20= aarch64_pred_*/cond_*=0A@@=20-9470,6=20+9749,7=20@@=0A=20=09=20=20= UNSPEC_COND_FCVTNT))]=0A=20=20=20"TARGET_SVE_BF16"=0A=20=20=20= "bfcvtnt\t%0.h,=20%2/m,=20%3.s"=0A+=20=20[(set_attr=20"type"=20= "sve_fp_to_fp")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9518,7=20+9798,8=20@@=0A=20=20=20"@=0A=20=20=20=20= fcvt\t%0.,=20%1/m,=20%2.=0A=20=20= =20=20movprfx\t%0,=20%2\;fcvt\t%0.,=20%1/m,=20= %2."=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A= +=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20= "sve_fp_to_fp,=20sve_fp_to_fp_x")]=0A=20)=0A=20=0A=20;;=20Predicated=20= float-to-float=20extension=20with=20merging.=0A@@=20-9552,7=20+9833,8=20= @@=0A=20=20=20=20fcvt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20= movprfx\t%0.,=20%1/z,=20= %2.\;fcvt\t%0.,=20%1/m,=20= %2.=0A=20=20=20=20movprfx\t%0,=20= %3\;fcvt\t%0.,=20%1/m,=20%2."=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_fp_to_fp,=20= sve_fp_to_fp_x,=20sve_fp_to_fp_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9572,6=20+9854,7=20@@=0A=20=09=20=20UNSPEC_PACK))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"uzp1\t%0.,=20%1.,=20= %2."=0A+=20=20[(set_attr=20"type"=20"sve_zip_p")]=0A=20)=0A=20=0A= =20;;=20= -------------------------------------------------------------------------=0A= @@=20-9605,6=20+9888,7=20@@=0A=20=09=09=09UNPACK_UNSIGNED))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"punpk\t%0.h,=20%1.b"=0A+=20=20= [(set_attr=20"type"=20"sve_upk_p")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-9635,6=20+9919,7=20@@=0A=20=20=20"@=0A=20=20=20=20= brk\t%0.b,=20%1/z,=20%2.b=0A=20=20=20=20brk\t%0.b,=20= %1/m,=20%2.b"=0A+=20=20[(set_attr=20"type"=20"sve_loop_p,=20= sve_loop_p")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20also=20producing=20a=20= flags=20result.=0A@@=20-9658,6=20+9943,7=20@@=0A=20=09=20=20= SVE_BRK_UNARY))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"brks\t%0.b,=20= %1/z,=20%2.b"=0A+=20=20[(set_attr=20"type"=20"sve_loop_ps")]=0A=20)=0A=20= =0A=20;;=20Same,=20but=20with=20only=20the=20flags=20result=20being=20= interesting.=0A@@=20-9676,6=20+9962,7=20@@=0A=20=20=20=20(clobber=20= (match_scratch:VNx16BI=200=20"=3DUpa"))]=0A=20=20=20"TARGET_SVE"=0A=20=20= =20"brks\t%0.b,=20%1/z,=20%2.b"=0A+=20=20[(set_attr=20"type"=20= "sve_loop_ps")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9700,6=20+9987,7=20@@=0A=20=09=20=20SVE_BRK_BINARY))]=0A=20=20=20= "TARGET_SVE"=0A=20=20=20"brk\t%0.b,=20%1/z,=20%2.b,=20= %.b"=0A+=20=20[(set_attr=20"type"=20"sve_loop_p")]=0A=20)=0A= =20=0A=20;;=20BRKN,=20producing=20both=20a=20predicate=20and=20a=20flags=20= result.=20=20Unlike=20other=0A@@=20-9730,6=20+10018,7=20@@=0A=20=20=20=20= =20operands[4]=20=3D=20CONST0_RTX=20(VNx16BImode);=0A=20=20=20=20=20= operands[5]=20=3D=20CONST0_RTX=20(VNx16BImode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_loop_ps")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20= with=20only=20the=20flags=20result=20being=20interesting.=0A@@=20-9754,6=20= +10043,7=20@@=0A=20=20=20=20=20operands[4]=20=3D=20CONST0_RTX=20= (VNx16BImode);=0A=20=20=20=20=20operands[5]=20=3D=20CONST0_RTX=20= (VNx16BImode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_loop_ps")]=0A=20)=0A=20=0A=20;;=20BRKPA=20and=20BRKPB,=20producing=20= both=20a=20predicate=20and=20a=20flags=20result.=0A@@=20-9777,6=20= +10067,7=20@@=0A=20=09=20=20SVE_BRKP))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20= "brks\t%0.b,=20%1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20= "type"=20"sve_loop_ps")]=0A=20)=0A=20=0A=20;;=20Same,=20but=20with=20= only=20the=20flags=20result=20being=20interesting.=0A@@=20-9795,6=20= +10086,7=20@@=0A=20=20=20=20(clobber=20(match_scratch:VNx16BI=200=20= "=3DUpa"))]=0A=20=20=20"TARGET_SVE"=0A=20=20=20"brks\t%0.b,=20= %1/z,=20%2.b,=20%3.b"=0A+=20=20[(set_attr=20"type"=20"sve_loop_ps")]=0A=20= )=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9815,6=20+10107,7=20@@=0A=20=20=20=20(clobber=20(reg:CC_NZC=20= CC_REGNUM))]=0A=20=20=20"TARGET_SVE=20&&=20=20>=3D=20= "=0A=20=20=20"\t%0.,=20%1,=20= %0."=0A+=20=20[(set_attr=20"type"=20"sve_set_ps")]=0A=20)=0A=20=0A= =20;;=20Same,=20but=20also=20producing=20a=20flags=20result.=0A@@=20= -9845,6=20+10138,7=20@@=0A=20=20=20=20=20operands[4]=20=3D=20= operands[2];=0A=20=20=20=20=20operands[5]=20=3D=20operands[3];=0A=20=20=20= }=0A+=20=20[(set_attr=20"type"=20"sve_set_ps")]=0A=20)=0A=20=0A=20;;=20= Same,=20but=20with=20only=20the=20flags=20result=20being=20interesting.=0A= @@=20-9870,6=20+10164,7=20@@=0A=20=20=20=20=20operands[4]=20=3D=20= operands[2];=0A=20=20=20=20=20operands[5]=20=3D=20operands[3];=0A=20=20=20= }=0A+=20=20[(set_attr=20"type"=20"sve_set_ps")]=0A=20)=0A=20=0A=20;;=20= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= @@=20-9902,6=20+10197,7=20@@=0A=20=20=20{=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("cnt",=20"%x0",=20operands=20+=20= 1);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_cnt")]=0A=20)=0A=20=0A= =20;;=20= -------------------------------------------------------------------------=0A= @@=20-9928,6=20+10224,7=20@@=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("",=20"%x0",=0A=20=09=09= =09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_cnt")]=0A=20)=0A=20=0A=20;;=20Increment=20an=20SImode=20= register=20by=20the=20number=20of=20elements=20in=20an=20svpattern=0A@@=20= -9944,6=20+10241,7=20@@=0A=20=20=20{=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("inc",=20"%x0",=20operands=20+=20= 2);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_cnt")]=0A=20)=0A=20=0A= =20;;=20Increment=20an=20SImode=20register=20by=20the=20number=20of=20= elements=20in=20an=20svpattern=0A@@=20-9965,6=20+10263,7=20@@=0A=20=20=20= =20=20return=20aarch64_output_sve_cnt_pat_immediate=20("",=20= registers,=0A=20=09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A+=20= =20[(set_attr=20"type"=20"sve_cnt")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-9995,7=20+10294,8=20@@=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("",=20"%0.",=0A=20= =09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt,=20sve_cnt_x")]=0A=20)=0A=20=0A=20;;=20= Increment=20a=20vector=20of=20SIs=20by=20the=20number=20of=20elements=20= in=20an=20svpattern.=0A@@=20-10016,7=20+10316,8=20@@=0A=20=20=20=20=20= return=20aarch64_output_sve_cnt_pat_immediate=20("",=20= "%0.",=0A=20=09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_cnt,=20= sve_cnt_x")]=0A=20)=0A=20=0A=20;;=20Increment=20a=20vector=20of=20HIs=20= by=20the=20number=20of=20elements=20in=20an=20svpattern.=0A@@=20-10051,7=20= +10352,8=20@@=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("",=20"%0.",=0A=20= =09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt,=20sve_cnt_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-10078,6=20+10380,7=20@@=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("",=20"%x0",=0A=20=09=09= =09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_cnt")]=0A=20)=0A=20=0A=20;;=20Decrement=20an=20SImode=20= register=20by=20the=20number=20of=20elements=20in=20an=20svpattern=0A@@=20= -10094,6=20+10397,7=20@@=0A=20=20=20{=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("dec",=20"%x0",=20operands=20+=20= 2);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20"sve_cnt")]=0A=20)=0A=20=0A= =20;;=20Decrement=20an=20SImode=20register=20by=20the=20number=20of=20= elements=20in=20an=20svpattern=0A@@=20-10115,6=20+10419,7=20@@=0A=20=20=20= =20=20return=20aarch64_output_sve_cnt_pat_immediate=20("",=20= registers,=0A=20=09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A+=20= =20[(set_attr=20"type"=20"sve_cnt")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-10145,7=20+10450,8=20@@=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("",=20"%0.",=0A=20= =09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt,=20sve_cnt_x")]=0A=20)=0A=20=0A=20;;=20= Decrement=20a=20vector=20of=20SIs=20by=20the=20number=20of=20elements=20= in=20an=20svpattern.=0A@@=20-10166,7=20+10472,8=20@@=0A=20=20=20=20=20= return=20aarch64_output_sve_cnt_pat_immediate=20("",=20= "%0.",=0A=20=09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A= -=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_cnt,=20= sve_cnt_x")]=0A=20)=0A=20=0A=20;;=20Decrement=20a=20vector=20of=20HIs=20= by=20the=20number=20of=20elements=20in=20an=20svpattern.=0A@@=20-10201,7=20= +10508,8=20@@=0A=20=20=20=20=20return=20= aarch64_output_sve_cnt_pat_immediate=20("",=20"%0.",=0A=20= =09=09=09=09=09=09=20operands=20+=202);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt,=20sve_cnt_x")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-10221,7=20+10529,9=20@@=0A=20=09=09=20=20=20=20=20=20= (match_operand:PRED_ALL=203=20"register_operand"=20"Upa")]=0A=20=09=09=20= =20=20=20=20UNSPEC_CNTP)))]=0A=20=20=20"TARGET_SVE"=0A-=20=20"cntp\t%x0,=20= %1,=20%3.")=0A+=20=20"cntp\t%x0,=20%1,=20%3."=0A+=20=20= [(set_attr=20"type"=20"sve_cnt_p")]=0A+)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= =20;;=20----=20[INT]=20Increment=20by=20the=20number=20of=20elements=20= in=20a=20predicate=20(scalar)=0A@@=20-10264,6=20+10574,7=20@@=0A=20=20=20= {=0A=20=20=20=20=20operands[3]=20=3D=20CONSTM1_RTX=20= (mode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_cnt_p")]=0A=20)=0A=20=0A=20;;=20Increment=20an=20SImode=20register=20= by=20the=20number=20of=20set=20bits=20in=20a=20predicate=0A@@=20-10283,6=20= +10594,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20"type"=20= "sve_cnt_p")]=0A=20)=0A=20=0A=20;;=20Increment=20an=20SImode=20register=20= by=20the=20number=20of=20set=20bits=20in=20a=20predicate=0A@@=20-10324,6=20= +10636,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20[(set_attr=20= "type"=20"sve_cnt_p")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-10373,7=20+10686,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt_pv,=20sve_cnt_pvx")]=0A=20)=0A=20=0A=20= ;;=20Increment=20a=20vector=20of=20SIs=20by=20the=20number=20of=20set=20= bits=20in=20a=20predicate.=0A@@=20-10412,7=20+10726,8=20@@=0A=20=20=20{=0A= =20=20=20=20=20operands[3]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20= }=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_cnt_pv,=20= sve_cnt_pvx")]=0A=20)=0A=20=0A=20;;=20Increment=20a=20vector=20of=20HIs=20= by=20the=20number=20of=20set=20bits=20in=20a=20predicate.=0A@@=20= -10453,7=20+10768,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[4]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt_pv,=20sve_cnt_pvx")]=0A=20)=0A=20=0A=20= ;;=20= -------------------------------------------------------------------------=0A= @@=20-10497,6=20+10813,7=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_cnt_p")]=0A=20)=0A=20=0A=20;;=20Decrement=20= an=20SImode=20register=20by=20the=20number=20of=20set=20bits=20in=20a=20= predicate=0A@@=20-10516,6=20+10833,7=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[3]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A+=20=20= [(set_attr=20"type"=20"sve_cnt_p")]=0A=20)=0A=20=0A=20;;=20Decrement=20= an=20SImode=20register=20by=20the=20number=20of=20set=20bits=20in=20a=20= predicate=0A@@=20-10557,6=20+10875,7=20@@=0A=20=20=20{=0A=20=20=20=20=20= operands[3]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A= +=20=20[(set_attr=20"type"=20"sve_cnt_p")]=0A=20)=0A=20=0A=20;;=20= -------------------------------------------------------------------------=0A= @@=20-10606,7=20+10925,8=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[3]=20= =3D=20CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A+=20=20= =20(set_attr=20"type"=20"sve_cnt_pv,=20sve_cnt_pvx")]=0A=20)=0A=20=0A=20= ;;=20Decrement=20a=20vector=20of=20SIs=20by=20the=20number=20of=20set=20= bits=20in=20a=20predicate.=0A@@=20-10645,7=20+10965,8=20@@=0A=20=20=20{=0A= =20=20=20=20=20operands[3]=20=3D=20CONSTM1_RTX=20(mode);=0A=20=20=20= }=0A-=20=20[(set_attr=20"movprfx"=20"*,yes")]=0A+=20=20[(set_attr=20= "movprfx"=20"*,yes")=0A+=20=20=20(set_attr=20"type"=20"sve_cnt_pv,=20= sve_cnt_pvx")]=0A=20)=0A=20=0A=20;;=20Decrement=20a=20vector=20of=20HIs=20= by=20the=20number=20of=20set=20bits=20in=20a=20predicate.=0A@@=20= -10686,5=20+11007,6=20@@=0A=20=20=20{=0A=20=20=20=20=20operands[4]=20=3D=20= CONSTM1_RTX=20(mode);=0A=20=20=20}=0A-=20=20[(set_attr=20= "movprfx"=20"*,yes")]=0A-)=0A+=20=20[(set_attr=20"movprfx"=20"*,yes")=0A= +=20=20=20(set_attr=20"type"=20"sve_cnt_pv,=20sve_cnt_pvx")]=0A+)=0A\=20= No=20newline=20at=20end=20of=20file=0Adiff=20--git=20= a/gcc/config/arm/types.md=20b/gcc/config/arm/types.md=0Aindex=20= 83e29563c8e..baccdd02860=20100644=0A---=20a/gcc/config/arm/types.md=0A= +++=20b/gcc/config/arm/types.md=0A@@=20-562,6=20+562,183=20@@=0A=20;=20= crypto_sha256_slow=0A=20;=20crypto_pmull=0A=20;=0A+;=20The=20= classification=20below=20is=20for=20SVE=20instructions.=0A+;=0A+;=20SVE=20= Suffixes:=0A+;=20a:=20accumulated=20result=0A+;=20c:=20complex=20math=0A= +;=20d:=20double=20precision=0A+;=20g:=20GPR=20operand=0A+;=20l:=20= scaled=0A+;=20p:=20predicate=20operand=0A+;=20r:=20reduced=20result=0A+;=20= s:=20change=20flags=0A+;=20s:=20single=20precision=0A+;=20t:=20= trigonometry=20math=0A+;=20u:=20unscaled=0A+;=20v:=20vector=20operand=0A= +;=20x:=20prefixed=0A+;=0A+;=20sve_loop_p=0A+;=20sve_loop_ps=0A+;=20= sve_loop_gs=0A+;=20sve_loop_end=0A+;=0A+;=20sve_logic_p=0A+;=20= sve_logic_ps=0A+;=0A+;=20sve_cnt_p=0A+;=20sve_cnt_pv=0A+;=20sve_cnt_pvx=0A= +;=20sve_rev_p=0A+;=20sve_sel_p=0A+;=20sve_set_p=0A+;=20sve_set_ps=0A+;=20= sve_trn_p=0A+;=20sve_upk_p=0A+;=20sve_zip_p=0A+;=0A+;=20sve_arith=0A+;=20= sve_arith_sat=0A+;=20sve_arith_sat_x=0A+;=20sve_arith_r=0A+;=20= sve_arith_x=0A+;=20sve_logic=0A+;=20sve_logic_r=0A+;=20sve_logic_x=0A+;=0A= +;=20sve_shift=0A+;=20sve_shift_d=0A+;=20sve_shift_dx=0A+;=20sve_shift_x=0A= +;=0A+;=20sve_compare_s=0A+;=0A+;=20sve_cnt=0A+;=20sve_cnt_x=0A+;=20= sve_copy=0A+;=20sve_copy_g=0A+;=20sve_move=0A+;=20sve_move_x=0A+;=20= sve_move_g=0A+;=20sve_permute=0A+;=20sve_splat=0A+;=20sve_splat_m=0A+;=20= sve_splat_g=0A+;=20sve_cext=0A+;=20sve_cext_x=0A+;=20sve_cext_g=0A+;=20= sve_ext=0A+;=20sve_ext_x=0A+;=20sve_sext=0A+;=20sve_sext_x=0A+;=20= sve_uext=0A+;=20sve_uext_x=0A+;=20sve_index=0A+;=20sve_index_g=0A+;=20= sve_ins=0A+;=20sve_ins_x=0A+;=20sve_ins_g=0A+;=20sve_ins_gx=0A+;=20= sve_rev=0A+;=20sve_rev_x=0A+;=20sve_tbl=0A+;=20sve_trn=0A+;=20sve_upk=0A= +;=20sve_zip=0A+;=0A+;=20sve_int_to_fp=0A+;=20sve_int_to_fp_x=0A+;=20= sve_fp_round=0A+;=20sve_fp_round_x=0A+;=20sve_fp_to_int=0A+;=20= sve_fp_to_int_x=0A+;=20sve_fp_to_fp=0A+;=20sve_fp_to_fp_x=0A+;=20= sve_bf_to_fp=0A+;=20sve_bf_to_fp_x=0A+;=0A+;=20sve_div=0A+;=20sve_div_x=0A= +;=20sve_dot=0A+;=20sve_dot_x=0A+;=20sve_mla=0A+;=20sve_mla_x=0A+;=20= sve_mmla=0A+;=20sve_mmla_x=0A+;=20sve_mul=0A+;=20sve_mul_x=0A+;=0A+;=20= sve_prfx=0A+;=0A+;=20sve_fp_arith=0A+;=20sve_fp_arith_a=0A+;=20= sve_fp_arith_c=0A+;=20sve_fp_arith_cx=0A+;=20sve_fp_arith_r=0A+;=20= sve_fp_arith_x=0A+;=0A+;=20sve_fp_compare=0A+;=20sve_fp_copy=0A+;=20= sve_fp_move=0A+;=20sve_fp_move_x=0A+;=0A+;=20sve_fp_div_d=0A+;=20= sve_fp_div_dx=0A+;=20sve_fp_div_s=0A+;=20sve_fp_div_sx=0A+;=20sve_fp_dot=0A= +;=20sve_fp_mla=0A+;=20sve_fp_mla_x=0A+;=20sve_fp_mla_c=0A+;=20= sve_fp_mla_cx=0A+;=20sve_fp_mla_t=0A+;=20sve_fp_mla_tx=0A+;=20= sve_fp_mmla=0A+;=20sve_fp_mmla_x=0A+;=20sve_fp_mul=0A+;=20sve_fp_mul_x=0A= +;=20sve_fp_sqrt_d=0A+;=20sve_fp_sqrt_s=0A+;=20sve_fp_trig=0A+;=20= sve_fp_trig_x=0A+;=0A+;=20sve_fp_estimate,=0A+;=20sve_fp_step,=0A+;=0A+;=20= sve_bf_dot=0A+;=20sve_bf_dot_x=0A+;=20sve_bf_mla=0A+;=20sve_bf_mla_x=0A= +;=20sve_bf_mmla=0A+;=20sve_bf_mmla_x=0A+;=0A+;=20sve_ldr=0A+;=20= sve_ldr_p=0A+;=20sve_load1=0A+;=20sve_load1_gather_d=0A+;=20= sve_load1_gather_dl=0A+;=20sve_load1_gather_du=0A+;=20sve_load1_gather_s=0A= +;=20sve_load1_gather_sl=0A+;=20sve_load1_gather_su=0A+;=20sve_load2=0A= +;=20sve_load3=0A+;=20sve_load4=0A+;=0A+;=20sve_str=0A+;=20sve_str_p=0A= +;=20sve_store1=0A+;=20sve_store1_scatter=0A+;=20sve_store2=0A+;=20= sve_store3=0A+;=20sve_store4=0A+;=0A+;=20sve_rd_ffr=0A+;=20sve_rd_ffr_p=0A= +;=20sve_rd_ffr_ps=0A+;=20sve_wr_ffr=0A+;=0A=20;=20The=20classification=20= below=20is=20for=20coprocessor=20instructions=0A=20;=0A=20;=20coproc=0A= @@=20-1120,6=20+1297,171=20@@=0A=20=20=20crypto_sha3,\=0A=20=20=20= crypto_sm3,\=0A=20=20=20crypto_sm4,\=0A+\=0A+=20=20sve_loop_p,\=0A+=20=20= sve_loop_ps,\=0A+=20=20sve_loop_gs,\=0A+=20=20sve_loop_end,\=0A+\=0A+=20=20= sve_logic_p,\=0A+=20=20sve_logic_ps,\=0A+\=0A+=20=20sve_cnt_p,\=0A+=20=20= sve_cnt_pv,\=0A+=20=20sve_cnt_pvx,\=0A+=20=20sve_rev_p,\=0A+=20=20= sve_sel_p,\=0A+=20=20sve_set_p,\=0A+=20=20sve_set_ps,\=0A+=20=20= sve_trn_p,\=0A+=20=20sve_upk_p,\=0A+=20=20sve_zip_p,\=0A+\=0A+=20=20= sve_arith,\=0A+=20=20sve_arith_sat,\=0A+=20=20sve_arith_sat_x,\=0A+=20=20= sve_arith_r,\=0A+=20=20sve_arith_x,\=0A+=20=20sve_logic,\=0A+=20=20= sve_logic_r,\=0A+=20=20sve_logic_x,\=0A+\=0A+=20=20sve_shift,\=0A+=20=20= sve_shift_d,\=0A+=20=20sve_shift_dx,\=0A+=20=20sve_shift_x,\=0A+\=0A+=20=20= sve_compare_s,\=0A+\=0A+=20=20sve_cnt,\=0A+=20=20sve_cnt_x,\=0A+=20=20= sve_copy,\=0A+=20=20sve_copy_g,\=0A+=20=20sve_move,\=0A+=20=20= sve_move_x,\=0A+=20=20sve_move_g,\=0A+=20=20sve_permute,\=0A+=20=20= sve_splat,\=0A+=20=20sve_splat_m,\=0A+=20=20sve_splat_g,\=0A+=20=20= sve_cext,\=0A+=20=20sve_cext_x,\=0A+=20=20sve_cext_g,\=0A+=20=20= sve_ext,\=0A+=20=20sve_ext_x,\=0A+=20=20sve_sext,\=0A+=20=20sve_sext_x,\=0A= +=20=20sve_uext,\=0A+=20=20sve_uext_x,\=0A+=20=20sve_index,\=0A+=20=20= sve_index_g,\=0A+=20=20sve_ins,\=0A+=20=20sve_ins_x,\=0A+=20=20= sve_ins_g,\=0A+=20=20sve_ins_gx,\=0A+=20=20sve_rev,\=0A+=20=20= sve_rev_x,\=0A+=20=20sve_tbl,\=0A+=20=20sve_trn,\=0A+=20=20sve_upk,\=0A+=20= =20sve_zip,\=0A+\=0A+=20=20sve_int_to_fp,\=0A+=20=20sve_int_to_fp_x,\=0A= +=20=20sve_fp_round,\=0A+=20=20sve_fp_round_x,\=0A+=20=20sve_fp_to_int,\=0A= +=20=20sve_fp_to_int_x,\=0A+=20=20sve_fp_to_fp,\=0A+=20=20= sve_fp_to_fp_x,\=0A+=20=20sve_bf_to_fp,\=0A+=20=20sve_bf_to_fp_x,\=0A+\=0A= +=20=20sve_div,\=0A+=20=20sve_div_x,\=0A+=20=20sve_dot,\=0A+=20=20= sve_dot_x,\=0A+=20=20sve_mla,\=0A+=20=20sve_mla_x,\=0A+=20=20sve_mmla,\=0A= +=20=20sve_mmla_x,\=0A+=20=20sve_mul,\=0A+=20=20sve_mul_x,\=0A+\=0A+=20=20= sve_prfx,\=0A+\=0A+=20=20sve_fp_arith,\=0A+=20=20sve_fp_arith_a,\=0A+=20=20= sve_fp_arith_c,\=0A+=20=20sve_fp_arith_cx,\=0A+=20=20sve_fp_arith_r,\=0A= +=20=20sve_fp_arith_x,\=0A+\=0A+=20=20sve_fp_compare,\=0A+=20=20= sve_fp_copy,\=0A+=20=20sve_fp_move,\=0A+=20=20sve_fp_move_x,\=0A+\=0A+=20= =20sve_fp_div_d,\=0A+=20=20sve_fp_div_dx,\=0A+=20=20sve_fp_div_s,\=0A+=20= =20sve_fp_div_sx,\=0A+=20=20sve_fp_dot,\=0A+=20=20sve_fp_mla,\=0A+=20=20= sve_fp_mla_x,\=0A+=20=20sve_fp_mla_c,\=0A+=20=20sve_fp_mla_cx,\=0A+=20=20= sve_fp_mla_t,\=0A+=20=20sve_fp_mla_tx,\=0A+=20=20sve_fp_mmla,\=0A+=20=20= sve_fp_mmla_x,\=0A+=20=20sve_fp_mul,\=0A+=20=20sve_fp_mul_x,\=0A+=20=20= sve_fp_sqrt_d,\=0A+=20=20sve_fp_sqrt_dx,\=0A+=20=20sve_fp_sqrt_s,\=0A+=20= =20sve_fp_sqrt_sx,\=0A+=20=20sve_fp_trig,\=0A+=20=20sve_fp_trig_x,\=0A+\=0A= +=20=20sve_fp_estimate,=0A+=20=20sve_fp_estimate_x,=0A+=20=20= sve_fp_step,=0A+=20=20sve_fp_step_x,=0A+\=0A+=20=20sve_bf_dot,\=0A+=20=20= sve_bf_dot_x,\=0A+=20=20sve_bf_mla,\=0A+=20=20sve_bf_mla_x,\=0A+=20=20= sve_bf_mmla,\=0A+=20=20sve_bf_mmla_x,\=0A+\=0A+=20=20sve_ldr,\=0A+=20=20= sve_ldr_p,\=0A+=20=20sve_load1,\=0A+=20=20sve_load1_gather_d,\=0A+=20=20= sve_load1_gather_dl,\=0A+=20=20sve_load1_gather_du,\=0A+=20=20= sve_load1_gather_s,\=0A+=20=20sve_load1_gather_sl,\=0A+=20=20= sve_load1_gather_su,\=0A+=20=20sve_load2,\=0A+=20=20sve_load3,\=0A+=20=20= sve_load4,\=0A+\=0A+=20=20sve_str,\=0A+=20=20sve_str_p,\=0A+=20=20= sve_store1,\=0A+=20=20sve_store1_scatter,\=0A+=20=20sve_store2,\=0A+=20=20= sve_store3,\=0A+=20=20sve_store4,\=0A+\=0A+=20=20sve_rd_ffr,\=0A+=20=20= sve_rd_ffr_p,\=0A+=20=20sve_rd_ffr_ps,\=0A+=20=20sve_wr_ffr,\=0A+\=0A=20=20= =20coproc,\=0A=20=20=20tme,\=0A=20=20=20memtag,\=0A--=20=0A2.39.2=20= (Apple=20Git-143)=0A=0A= --Apple-Mail=_C4ECAB78-6812-4686-B8CE-AA3DF13FF921 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_C4ECAB78-6812-4686-B8CE-AA3DF13FF921--