llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-aarch64 Author: Tomas Matheson (tmatheson-arm) <details> <summary>Changes</summary> When FMV was added to AArch64, it added a dependency expansion step after the -cc1 command line was parsed but before Sema, in `AArch64TargetInfo::initFeatureMap`. One effect of this is that `-target-features` specified on the `-cc1` command line had some level of incomplete and broken dependency expansion. Since then, many tests have been added which depend on this behaviour. The dependency expansion can be considered broken at this stage because dependency expansion is already performed by the driver to generate the `-target-feature` flags using an `ExtensionSet`. This class does dependency evaluation and then generates a flattened representation of the dependency graph in the form of `-target-features`, which are passed to `-cc1` in an arbitrary order (determined by the order of bits in the bitset). Any dependency expansion done after `-cc1` will be inherently contradictory. It is impossible to accurately treat negative features once the dependency graph has been flattened and the order randomised. This patch fixes a large number of those tests, specifically ones where only a dependent feature (e.g. `-target-feature +sme2p1`) was added to the test `-cc1` command, and not the necessary dependencies (e.g. `-target-feature +sme`). Here is an example of the typical error that occurs with such tests when the dependency expansion is removed: ``` RUN: at line 4: /ssd/llvm/main/build/bin/clang -cc1 -internal-isystem /ssd/llvm/main/build/lib/clang/19/include -nostdsysteminc -fclang-abi-compat=latest -triple aarch64 -target-feature +sve2 -O1 -Werror -Wall -emit-llvm -o - /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c | /ssd/llvm/main/build/bin/FileCheck /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c + /ssd/llvm/main/build/bin/clang -cc1 -internal-isystem /ssd/llvm/main/build/lib/clang/19/include -nostdsysteminc -fclang-abi-compat=latest -triple aarch64 -target-feature +sve2 -O1 -Werror -Wall -emit-llvm -o - /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c + /ssd/llvm/main/build/bin/FileCheck /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c:28:10: error: SVE vector type 'svint8_t' (aka '__SVInt8_t') cannot be used in a target without sve 28 | svint8_t test_svrsubhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3) | ^ /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c:28:10: error: SVE vector type 'svint16_t' (aka '__SVInt16_t') cannot be used in a target without sve /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c:28:10: error: SVE vector type 'svint16_t' (aka '__SVInt16_t') cannot be used in a target without sve /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c:28:10: error: SVE vector type 'svint8_t' (aka '__SVInt8_t') cannot be used in a target without sve /ssd/llvm/main/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c:43:11: error: SVE vector type 'svint16_t' (aka '__SVInt16_t') cannot be used in a target without sve 43 | svint16_t test_svrsubhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3) | ^ ``` The tests have been updated in a mechanical change with the following script: ```python #!/usr/bin/env python3 import re FILES = [ "clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c", "clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c", "clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_bmop.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvtn.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_fmlas16.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_fp_dots.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_frint.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_int_dots.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x2.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x4.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x2.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x4.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mla.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlal.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlall.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mls.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlsl.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mop.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mopa_nonwide.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_read.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_reinterpret_svcount_svbool.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sqdmulh.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sub.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_unpkx2.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_unpkx4.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vdot.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_add.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_qrshr.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_rshl.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_selx2.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_selx4.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_uzpx2.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_uzpx4.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_zipx2.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_zipx4.c", "clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_write.c", "clang/test/CodeGen/aarch64-sme2p1-intrinsics/acle_sme2p1_zero.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c", "clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_revd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c", "clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfclamp.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla_lane.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls_lane.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmlsl.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_cntp.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_create2_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_create4_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_dot.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_dupq.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_extq.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_fclamp.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_fp_reduce.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_get2_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_get4_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_int_reduce.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ld1_single.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ld1.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ldnt1.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_loads.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pext.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pfalse.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pmov_to_pred.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_pmov_to_vector.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_psel_svcount.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_psel.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ptrue.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_qcvtn.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_qrshr.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_sclamp.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_set2_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_set4_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_st1_single.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_st1.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_stnt1.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_store.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_tblq.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_tbxq.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uclamp.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_undef_bool.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uzpq1.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_uzpq2.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_while_pn.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_while_x2.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_zipq1.c", "clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_zipq2.c", "clang/test/CodeGen/arm-vector_type-params-returns.c", "clang/test/Sema/aarch64-incompat-sm-builtin-calls.c", "clang/test/Sema/aarch64-sme-func-attrs.c", "clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_b16b16.cpp", "clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_imm.cpp", "clang/test/Sema/aarch64-sme2p1-diagnostics.c", "clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_bfloat.cpp", "clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_n.cpp", "clang/test/Sema/aarch64-sve2p1-intrinsics/acle_sve2p1_imm.cpp", ] def update_runline(runline: str): target_features = re.findall(r"-target-feature ([+-][\w-]+)\b", runline) if not target_features: # Nothing to do return runline print(f"Features: {target_features}") print(f"old runline: {runline}") sme2_dependent = ( "+sme2p1" in target_features or "+sme-f64f64" in target_features or "+sme-i16i64" in target_features ) sve2_dependent = ( "+sve2p1" in target_features or "+sve2-aes" in target_features or "+sve2-bitperm" in target_features or "+sve2-sha3" in target_features or "+sve2-sm4" in target_features ) sme2 = "+sme2" in target_features sve2 = "+sve2" in target_features sme = "+sme" in target_features sve = "+sve" in target_features bf16 = "+bf16" in target_features if sme2_dependent and not sme2: runline = re.sub( r"(?=-target-feature \+[\w-]+\b)", "-target-feature +sme2 ", runline, 1 ) sme2 = True if sve2_dependent and not sve2: runline = re.sub( r"(?=-target-feature \+[\w-]+\b)", "-target-feature +sve2 ", runline, 1 ) sve2 = True if sme2 and not sme: runline = re.sub( r"(?=-target-feature \+[\w-]+\b)", "-target-feature +sme ", runline, 1 ) sme = True if sve2 and not sve: runline = re.sub( r"(?=-target-feature \+[\w-]+\b)", "-target-feature +sve ", runline, 1 ) sve = True if sme and not bf16: runline = re.sub( r"(?=-target-feature \+[\w-]+\b)", "-target-feature +bf16 ", runline, 1 ) bf16 = True print(f"new runline: {runline}") return runline def main(): for filename in FILES: print(f"-------- {filename} --------") with open(filename, "r") as input_file: lines = input_file.readlines() with open(filename, "w") as output_file: for line in lines: if line.startswith("// RUN: "): line = update_runline(line) output_file.write(line) if __name__ == "__main__": main() ``` The list of erroneous tests was generated by applying c0371abb7d0d3fd7093c117bf15da1e3ed0a1ce2, which effectively disables dependency expansion at this stage _except_ for FMV attributes (`target_versions` and `target_clonse`), and seeing which tests break. c0371abb7d0d3fd7093c117bf15da1e3ed0a1ce2 is not part of this patch, because it would break tests for the `target` attribute, which now also depends on the same mechanism to work. To fix this, dependency expansion needs to be added to the handling of the `target` attribute and removed from `initFeatureMap`, but that will be a separate PR. Fixing these tests is NFC from a user-perspective and will make future work easier. Here is a list of tests broken by c0371abb7d0d3fd7093c117bf15da1e3ed0a1ce2 that are not fixed in this PR: ```python # These look like tests that can't be fixed automatically like this. # diagnostics seen but not expected: "clang/test/CodeGen/aarch64-targetattr-crypto.c", "clang/test/Sema/aarch64-sme-func-attrs-without-target-feature.cpp", "clang/test/Sema/aarch64-sme2-sve2p1-diagnostics.c", "clang/test/Sema/aarch64-sve-intrinsics/acle_sve_target.cpp", "clang/test/Sema/arm-sve-target.cpp", # Tests where the target features string has changed: "clang/test/CodeGen/aarch64-cpu-supports-target.c", "clang/test/CodeGen/aarch64-sme-intrinsics/aarch64-sme-attrs.cpp", "clang/test/CodeGen/aarch64-targetattr.c", "clang/test/CodeGen/attr-target-clones-aarch64.c", ``` --- Patch is 571.01 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/93695.diff 280 Files Affected: - (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp (+1-1) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_bmop.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvtn.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_fmlas16.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_fp_dots.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_frint.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_int_dots.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x2.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti2_lane_zt_x4.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x2.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_luti4_lane_zt_x4.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mla.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlal.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlall.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mls.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mlsl.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mop.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mopa_nonwide.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_read.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_reinterpret_svcount_svbool.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sqdmulh.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sub.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_unpkx2.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_unpkx4.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vdot.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_add.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_qrshr.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_rshl.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_selx2.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_selx4.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_uzpx2.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_uzpx4.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_zipx2.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_zipx4.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_write.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sme2p1-intrinsics/acle_sme2p1_zero.c (+3-3) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c (+1-1) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c (+4-4) - (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 (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c (+4-4) - (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 (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c (+4-4) - (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 (+4-4) - (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 (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_revd.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c (+4-4) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfclamp.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla_lane.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls_lane.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmlsl.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_cntp.c (+7-7) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_create2_bool.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_create4_bool.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_dot.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_dupq.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_extq.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_fclamp.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_fp_reduce.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_get2_bool.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_get4_bool.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_int_reduce.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ld1.c (+8-8) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ld1_single.c (+5-5) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_ldnt1.c (+6-6) - (modified) clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_loads.c (+5-5) ``````````diff 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 b911c27914414..c341ff9bb29e6 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 @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-i16i64 -S -O1 -Werror -o /dev/null %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -S -O1 -Werror -o /dev/null %s #include <arm_sme.h> diff --git a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c index 37d5d73e97a6b..61c41450d6457 100644 --- a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c +++ b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -S -O1 -Werror -o /dev/null %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -S -O1 -Werror -o /dev/null %s #include <arm_sme.h> diff --git a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c index 72c63bc3389a7..9d205beb05f28 100644 --- a/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c +++ b/clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -S -O1 -Werror -o /dev/null %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-f64f64 -target-feature +sme-i16i64 -target-feature +bf16 -S -O1 -Werror -o /dev/null %s #include <arm_sme.h> diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp b/clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp index ccf05de7f4e90..15b9ac42cbcf3 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/aarch64-sme2-attrs.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 \ // RUN: -disable-O0-optnone -Werror -emit-llvm -o - %s \ // RUN: | opt -S -passes=mem2reg \ // RUN: | opt -S -passes=inline \ diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c index 1dec2d6957a5f..135bcf743e5e6 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c @@ -2,11 +2,11 @@ // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-i16i64 -target-feature +sme-f64f64 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include <arm_sme.h> diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c index 9a8aa448d3780..6336f435b8687 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 4 -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +sme-f16f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -// RUN: %clang_cc1 -x c++ -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +sme-f8f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-CXX -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +sme-f8f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -x c++ -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +sme-f16f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-CXX +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-f16f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -x c++ -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-f8f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-CXX +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-f8f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -x c++ -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-f16f16 -target-feature +b16b16 -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-CXX -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +sme-f16f16 -target-feature +b16b16 -O2 -S -Werror -Wall -o /dev/null +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme-f16f16 -target-feature +b16b16 -O2 -S -Werror -Wall -o /dev/null // REQUIRES: aarch64-registered-target diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_bmop.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_bmop.c index 47ff02eb9fb5a..84521e7e47644 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_bmop.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_bmop.c @@ -2,11 +2,11 @@ // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sme2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include <arm_sme.h> diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c index 21a8229bbf244..30d963d5425c4 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c @@ -1,14 +1,14 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ // RUN: -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include <arm_sme.h> diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c index e26499d3a63cc..686e4f4f99afe 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_cvt.c @@ -2,11 +2,11 @... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/93695 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits