https://github.com/Amichaxx updated https://github.com/llvm/llvm-project/pull/151703
>From ca704a51308363d6f09047d4d0a1d6e88b667a5e Mon Sep 17 00:00:00 2001 From: Amina Chabane <amina.chab...@arm.com> Date: Fri, 1 Aug 2025 14:11:19 +0000 Subject: [PATCH] [AArch64] Updated predication of SVE Compact intrinsic to be available in streaming mode. Included Sema test acle_sve_compact.cpp. - Updated arm_sve.td - Updated Sema test - Removed changes to .ll tests --- clang/include/clang/Basic/arm_sve.td | 4 ++-- .../acle_sve_compact.cpp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 clang/test/Sema/aarch64-sve-intrinsics/acle_sve_compact.cpp diff --git a/clang/include/clang/Basic/arm_sve.td b/clang/include/clang/Basic/arm_sve.td index 07786c6c8a7ee..7513a3e79bdf7 100644 --- a/clang/include/clang/Basic/arm_sve.td +++ b/clang/include/clang/Basic/arm_sve.td @@ -980,8 +980,8 @@ defm SVCLASTA_N : SVEPerm<"svclasta[_n_{d}]", "sPsd", "aarch64_sve_clasta_n">; defm SVCLASTB : SVEPerm<"svclastb[_{d}]", "dPdd", "aarch64_sve_clastb">; defm SVCLASTB_N : SVEPerm<"svclastb[_n_{d}]", "sPsd", "aarch64_sve_clastb_n">; -let SVETargetGuard = "sve", SMETargetGuard = InvalidMode in { -def SVCOMPACT : SInst<"svcompact[_{d}]", "dPd", "ilUiUlfd", MergeNone, "aarch64_sve_compact">; +let SVETargetGuard = "sve", SMETargetGuard = "sme2p2" in { +def SVCOMPACT : SInst<"svcompact[_{d}]", "dPd", "ilUiUlfd", MergeNone, "aarch64_sve_compact", [VerifyRuntimeMode]>; } // Note: svdup_lane is implemented using the intrinsic for TBL to represent a diff --git a/clang/test/Sema/aarch64-sve-intrinsics/acle_sve_compact.cpp b/clang/test/Sema/aarch64-sve-intrinsics/acle_sve_compact.cpp new file mode 100644 index 0000000000000..4de3f39928f16 --- /dev/null +++ b/clang/test/Sema/aarch64-sve-intrinsics/acle_sve_compact.cpp @@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve \ +// RUN: -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme \ +// RUN: -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s +// REQUIRES: aarch64-registered-target +// expected-no-diagnostics + +#include <arm_sve.h> + +__attribute__((target("sme2p2"))) +void test_svcompact(svbool_t pg, svfloat32_t op) __arm_streaming{ + svcompact(pg, op); +} + +void test_svcompact_nofeature(svbool_t pg, svfloat32_t op) __arm_streaming{ + // expected-error@+1 {{'svcompact' needs target feature (sve)|(sme, sme2p2)}} + svcompact(pg, op); +} \ No newline at end of file _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits