[clang] [CXXNameMangler] Correct the mangling of SVE ACLE types within function names. (PR #69460)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 18 06:27:52 PDT 2023
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Paul Walker (paulwalker-arm)
<details>
<summary>Changes</summary>
* Mark SVE ACLE types as substitution candidates.
* Change mangling of svbfloat16_t from __SVBFloat16_t to
__SVBfloat16_t.
https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst
This is an ABI break with the old behaviour available via
"-fclang-abi-compat=17".
---
Patch is 2.04 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/69460.diff
286 Files Affected:
- (modified) clang/include/clang/Basic/AArch64SVEACLETypes.def (+1-1)
- (modified) clang/lib/AST/ItaniumMangle.cpp (+14-3)
- (modified) clang/test/AST/ast-dump-aarch64-sve-types.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i32.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za32.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c (+5-5)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za32.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c (+5-5)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_read.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_write.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abd.c (+33-33)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abs.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acge.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acgt.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acle.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_aclt.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_add.c (+33-33)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrb.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrd.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrh.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrw.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_and.c (+25-25)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfdot.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalb.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalt.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmmla.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bic.c (+25-25)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brka.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkb.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkn.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkpa.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkpb.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cadd.c (+10-10)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta-bfloat.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb-bfloat.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clz.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmla.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpeq.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpge.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpgt.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmple.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmplt.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpne.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpuo.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnot.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt-bfloat.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntp.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvt-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvtnt.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_div.c (+21-21)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_divr.c (+21-21)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dot.c (+10-10)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup-bfloat.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_eor.c (+25-25)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_extb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_exth.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_extw.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_insr-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lasta-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lastb-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_len-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lsl.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lsr.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mad.c (+66-66)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_matmul_fp32.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_matmul_fp64.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_max.c (+33-33)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxnm.c (+9-9)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_min.c (+33-33)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minnm.c (+9-9)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mla.c (+72-72)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mls.c (+72-72)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mmla.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mov.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_msb.c (+66-66)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mul.c (+39-39)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulh.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulx.c (+9-9)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nand.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_neg.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmad.c (+18-18)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmla.c (+18-18)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmls.c (+18-18)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmsb.c (+18-18)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nor.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_not.c (+9-9)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orn.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orr.c (+25-25)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pfirst.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pnext.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ptest.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qadd.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qsub.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rbit.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recps.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recpx.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revh.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revw.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rinta.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rinti.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintm.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintn.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintp.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintx.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintz.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rsqrts.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sqrt.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1.c (+14-14)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sub.c (+33-33)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_subr.c (+33-33)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tmad.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2.c (+15-15)
- (modified) clang/test/CodeGen/aarch64-sve.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c (+22-22)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c (+40-40)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c (+22-22)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c (+22-22)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c (+11-11)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c (+17-17)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c (+17-17)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c (+17-17)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c (+17-17)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c (+14-14)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c (+14-14)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c (+8-8)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c (+3-3)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c (+10-10)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c (+7-7)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c (+4-4)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c (+20-20)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c (+14-14)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c (+14-14)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c (+10-10)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c (+2-2)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c (+24-24)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c (+12-12)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c (+1-1)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c (+16-16)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c (+6-6)
- (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c (+4-4)
``````````diff
diff --git a/clang/include/clang/Basic/AArch64SVEACLETypes.def b/clang/include/clang/Basic/AArch64SVEACLETypes.def
index 56af270e1d10aad..fa9c1ac0491c454 100644
--- a/clang/include/clang/Basic/AArch64SVEACLETypes.def
+++ b/clang/include/clang/Basic/AArch64SVEACLETypes.def
@@ -71,7 +71,7 @@ SVE_VECTOR_TYPE("__SVFloat16_t", "__SVFloat16_t", SveFloat16, SveFloat16Ty, 8, 1
SVE_VECTOR_TYPE("__SVFloat32_t", "__SVFloat32_t", SveFloat32, SveFloat32Ty, 4, 32, true, true, false)
SVE_VECTOR_TYPE("__SVFloat64_t", "__SVFloat64_t", SveFloat64, SveFloat64Ty, 2, 64, true, true, false)
-SVE_VECTOR_TYPE("__SVBFloat16_t", "__SVBFloat16_t", SveBFloat16, SveBFloat16Ty, 8, 16, true, false, true)
+SVE_VECTOR_TYPE("__SVBfloat16_t", "__SVBfloat16_t", SveBFloat16, SveBFloat16Ty, 8, 16, true, false, true)
//
// x2
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 8862f4d4fbd7bf9..8124630346a39f2 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -2889,6 +2889,10 @@ static bool isTypeSubstitutable(Qualifiers Quals, const Type *Ty,
return true;
if (Ty->isOpenCLSpecificType())
return true;
+ // From Clang 18.0 we correctly treat SVE types as substitution candidates.
+ if (Ty->isSVESizelessBuiltinType() &&
+ Ctx.getLangOpts().getClangABICompat() > LangOptions::ClangABI::Ver17)
+ return true;
if (Ty->isBuiltinType())
return false;
// Through to Clang 6.0, we accidentally treated undeduced auto types as
@@ -3372,9 +3376,16 @@ void CXXNameMangler::mangleType(const BuiltinType *T) {
#define SVE_VECTOR_TYPE(InternalName, MangledName, Id, SingletonId, NumEls, \
ElBits, IsSigned, IsFP, IsBF) \
case BuiltinType::Id: \
- type_name = MangledName; \
- Out << (type_name == InternalName ? "u" : "") << type_name.size() \
- << type_name; \
+ if (T->getKind() == BuiltinType::SveBFloat16 && \
+ isCompatibleWith(LangOptions::ClangABI::Ver17)) { \
+ /* Prior to Clang 18.0 we used this incorrect mangled name */ \
+ type_name = "__SVBFloat16_t"; \
+ Out << "u" << type_name.size() << type_name; \
+ } else { \
+ type_name = MangledName; \
+ Out << (type_name == InternalName ? "u" : "") << type_name.size() \
+ << type_name; \
+ } \
break;
#define SVE_PREDICATE_TYPE(InternalName, MangledName, Id, SingletonId, NumEls) \
case BuiltinType::Id: \
diff --git a/clang/test/AST/ast-dump-aarch64-sve-types.c b/clang/test/AST/ast-dump-aarch64-sve-types.c
index dd14868c42b9bb0..b5a0b00b492803d 100644
--- a/clang/test/AST/ast-dump-aarch64-sve-types.c
+++ b/clang/test/AST/ast-dump-aarch64-sve-types.c
@@ -42,8 +42,8 @@
// CHECK: TypedefDecl {{.*}} implicit __SVFloat64_t '__SVFloat64_t'
// CHECK-NEXT: -BuiltinType {{.*}} '__SVFloat64_t'
-// CHECK: TypedefDecl {{.*}} implicit __SVBFloat16_t '__SVBFloat16_t'
-// CHECK-NEXT: -BuiltinType {{.*}} '__SVBFloat16_t'
+// CHECK: TypedefDecl {{.*}} implicit __SVBfloat16_t '__SVBfloat16_t'
+// CHECK-NEXT: -BuiltinType {{.*}} '__SVBfloat16_t'
// CHECK: TypedefDecl {{.*}} implicit __SVBool_t '__SVBool_t'
// CHECK-NEXT: -BuiltinType {{.*}} '__SVBool_t'
diff --git a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i32.c b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i32.c
index 1b181bd59e7c846..cf4ec7afe3d7d9a 100644
--- a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i32.c
+++ b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i32.c
@@ -22,7 +22,7 @@
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv4i32(i32 0, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za32_u32u10__SVBool_tu10__SVBool_tu12__SVUint32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za32_u32u10__SVBool_tS_u12__SVUint32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -42,7 +42,7 @@ void test_svaddha_za32_u32(svbool_t pn, svbool_t pm, svuint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv4i32(i32 3, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za32_u32_1u10__SVBool_tu10__SVBool_tu12__SVUint32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za32_u32_1u10__SVBool_tS_u12__SVUint32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -62,7 +62,7 @@ void test_svaddha_za32_u32_1(svbool_t pn, svbool_t pm, svuint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv4i32(i32 0, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za32_s32u10__SVBool_tu10__SVBool_tu11__SVInt32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za32_s32u10__SVBool_tS_u11__SVInt32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -82,7 +82,7 @@ void test_svaddha_za32_s32(svbool_t pn, svbool_t pm, svint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv4i32(i32 3, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za32_s32_1u10__SVBool_tu10__SVBool_tu11__SVInt32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za32_s32_1u10__SVBool_tS_u11__SVInt32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -102,7 +102,7 @@ void test_svaddha_za32_s32_1(svbool_t pn, svbool_t pm, svint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv4i32(i32 0, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za32_u32u10__SVBool_tu10__SVBool_tu12__SVUint32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za32_u32u10__SVBool_tS_u12__SVUint32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -122,7 +122,7 @@ void test_svaddva_za32_u32(svbool_t pn, svbool_t pm, svuint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv4i32(i32 3, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za32_u32_1u10__SVBool_tu10__SVBool_tu12__SVUint32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za32_u32_1u10__SVBool_tS_u12__SVUint32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -142,7 +142,7 @@ void test_svaddva_za32_u32_1(svbool_t pn, svbool_t pm, svuint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv4i32(i32 0, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za32_s32u10__SVBool_tu10__SVBool_tu11__SVInt32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za32_s32u10__SVBool_tS_u11__SVInt32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
@@ -162,7 +162,7 @@ void test_svaddva_za32_s32(svbool_t pn, svbool_t pm, svint32_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv4i32(i32 3, <vscale x 4 x i1> [[TMP0]], <vscale x 4 x i1> [[TMP1]], <vscale x 4 x i32> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za32_s32_1u10__SVBool_tu10__SVBool_tu11__SVInt32_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za32_s32_1u10__SVBool_tS_u11__SVInt32_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 4 x i32> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> [[PN]])
diff --git a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c
index fdccafbebf006b2..ce866fc7a090592 100644
--- a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c
+++ b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c
@@ -22,7 +22,7 @@
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv2i64(i32 0, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za64_u64u10__SVBool_tu10__SVBool_tu12__SVUint64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za64_u64u10__SVBool_tS_u12__SVUint64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -42,7 +42,7 @@ void test_svaddha_za64_u64(svbool_t pn, svbool_t pm, svuint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv2i64(i32 7, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za64_u64_1u10__SVBool_tu10__SVBool_tu12__SVUint64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za64_u64_1u10__SVBool_tS_u12__SVUint64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -62,7 +62,7 @@ void test_svaddha_za64_u64_1(svbool_t pn, svbool_t pm, svuint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv2i64(i32 0, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za64_s64u10__SVBool_tu10__SVBool_tu11__SVInt64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddha_za64_s64u10__SVBool_tS_u11__SVInt64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -82,7 +82,7 @@ void test_svaddha_za64_s64(svbool_t pn, svbool_t pm, svint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addha.nxv2i64(i32 7, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za64_s64_1u10__SVBool_tu10__SVBool_tu11__SVInt64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddha_za64_s64_1u10__SVBool_tS_u11__SVInt64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -102,7 +102,7 @@ void test_svaddha_za64_s64_1(svbool_t pn, svbool_t pm, svint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv2i64(i32 0, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za64_u64u10__SVBool_tu10__SVBool_tu12__SVUint64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za64_u64u10__SVBool_tS_u12__SVUint64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -122,7 +122,7 @@ void test_svaddva_za64_u64(svbool_t pn, svbool_t pm, svuint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv2i64(i32 7, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za64_u64_1u10__SVBool_tu10__SVBool_tu12__SVUint64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za64_u64_1u10__SVBool_tS_u12__SVUint64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -142,7 +142,7 @@ void test_svaddva_za64_u64_1(svbool_t pn, svbool_t pm, svuint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv2i64(i32 0, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za64_s64u10__SVBool_tu10__SVBool_tu11__SVInt64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svaddva_za64_s64u10__SVBool_tS_u11__SVInt64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
@@ -162,7 +162,7 @@ void test_svaddva_za64_s64(svbool_t pn, svbool_t pm, svint64_t zn) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.addva.nxv2i64(i32 7, <vscale x 2 x i1> [[TMP0]], <vscale x 2 x i1> [[TMP1]], <vscale x 2 x i64> [[ZN]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za64_s64_1u10__SVBool_tu10__SVBool_tu11__SVInt64_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z23test_svaddva_za64_s64_1u10__SVBool_tS_u11__SVInt64_t(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 2 x i64> [[ZN:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 2 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv2i1(<vscale x 16 x i1> [[PN]])
diff --git a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za32.c b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za32.c
index f1382b699f637a8..02ce353291a82ca 100644
--- a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za32.c
+++ b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za32.c
@@ -20,7 +20,7 @@
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.smopa.wide.nxv16i8(i32 0, <vscale x 16 x i1> [[PN]], <vscale x 16 x i1> [[PM]], <vscale x 16 x i8> [[ZN]], <vscale x 16 x i8> [[ZM]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z19test_svmopa_za32_s8u10__SVBool_tu10__SVBool_tu10__SVInt8_tu10__SVInt8_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z19test_svmopa_za32_s8u10__SVBool_tS_u10__SVInt8_tS0_(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.smopa.wide.nxv16i8(i32 0, <vscale x 16 x i1> [[PN]], <vscale x 16 x i1> [[PM]], <vscale x 16 x i8> [[ZN]], <vscale x 16 x i8> [[ZM]])
@@ -36,7 +36,7 @@ void test_svmopa_za32_s8(svbool_t pn, svbool_t pm, svint8_t zn, svint8_t zm) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.umopa.wide.nxv16i8(i32 0, <vscale x 16 x i1> [[PN]], <vscale x 16 x i1> [[PM]], <vscale x 16 x i8> [[ZN]], <vscale x 16 x i8> [[ZM]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z19test_svmopa_za32_u8u10__SVBool_tu10__SVBool_tu11__SVUint8_tu11__SVUint8_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z19test_svmopa_za32_u8u10__SVBool_tS_u11__SVUint8_tS0_(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.umopa.wide.nxv16i8(i32 0, <vscale x 16 x i1> [[PN]], <vscale x 16 x i1> [[PM]], <vscale x 16 x i8> [[ZN]], <vscale x 16 x i8> [[ZM]])
@@ -54,7 +54,7 @@ void test_svmopa_za32_u8(svbool_t pn, svbool_t pm, svuint8_t zn, svuint8_t zm) {
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.mopa.wide.nxv8bf16(i32 0, <vscale x 8 x i1> [[TMP0]], <vscale x 8 x i1> [[TMP1]], <vscale x 8 x bfloat> [[ZN]], <vscale x 8 x bfloat> [[ZM]])
// CHECK-C-NEXT: ret void
//
-// CHECK-CXX-LABEL: define dso_local void @_Z21test_svmopa_za32_bf16u10__SVBool_tu10__SVBool_tu14__SVBFloat16_tu14__SVBFloat16_t(
+// CHECK-CXX-LABEL: define dso_local void @_Z21test_svmopa_za32_bf16u10__SVBool_tS_u14__SVBfloat16_tS0_(
// CHECK-CXX-SAME: <vscale x 16 x i1> [[PN:%.*]], <vscale x 16 x i1> [[PM:%.*]], <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]]) local_unnamed_addr #[[ATTR0]] {
// CHECK-CXX-NEXT: entry:
// CHECK-CXX-NEXT: [[TMP0:%.*]] = tail call <vscale x 8 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv8i1(<vscale x 16 x i1> [[PN]])
@@ -74,7 +74,7 @@ void test_svmopa_za32_bf16(svbool_t pn, svbool_t pm, svbfloat16_t zn, svbfloat16
// CHECK-C-NEXT: tail call void @llvm.aarch64.sme.mopa.wide.nxv8f16(i32 1, <vscale x 8 x i1> [[TMP0]], <...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/69460
More information about the cfe-commits
mailing list