[clang] f0c38ad - [Clang][SVE] Zero svcount_t directly rather than casting a svbool_t zero. (#217256)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 25 03:46:55 PDT 2026
Author: Paul Walker
Date: 2026-08-25T11:46:48+01:00
New Revision: f0c38ad37f5c6b32ad624d22891b4267e71d3a53
URL: https://github.com/llvm/llvm-project/commit/f0c38ad37f5c6b32ad624d22891b4267e71d3a53
DIFF: https://github.com/llvm/llvm-project/commit/f0c38ad37f5c6b32ad624d22891b4267e71d3a53.diff
LOG: [Clang][SVE] Zero svcount_t directly rather than casting a svbool_t zero. (#217256)
Added:
Modified:
clang/lib/CodeGen/TargetBuiltins/ARM.cpp
clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_pfalse.c
Removed:
################################################################################
diff --git a/clang/lib/CodeGen/TargetBuiltins/ARM.cpp b/clang/lib/CodeGen/TargetBuiltins/ARM.cpp
index 22e0dfc55157f..662ec6d549986 100644
--- a/clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+++ b/clang/lib/CodeGen/TargetBuiltins/ARM.cpp
@@ -4226,12 +4226,8 @@ Value *CodeGenFunction::EmitAArch64SVEBuiltinExpr(unsigned BuiltinID,
case SVE::BI__builtin_sve_svpfalse_b:
return ConstantInt::getFalse(Ty);
- case SVE::BI__builtin_sve_svpfalse_c: {
- auto SVBoolTy = ScalableVectorType::get(Builder.getInt1Ty(), 16);
- Function *CastToSVCountF =
- CGM.getIntrinsic(Intrinsic::aarch64_sve_convert_from_svbool, Ty);
- return Builder.CreateCall(CastToSVCountF, ConstantInt::getFalse(SVBoolTy));
- }
+ case SVE::BI__builtin_sve_svpfalse_c:
+ return Constant::getNullValue(Ty);
case SVE::BI__builtin_sve_svlen_bf16:
case SVE::BI__builtin_sve_svlen_f16:
diff --git a/clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_pfalse.c b/clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_pfalse.c
index fdf9c498341fa..6cbb561ebb00a 100644
--- a/clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_pfalse.c
+++ b/clang/test/CodeGen/AArch64/sve2p1-intrinsics/acle_sve2p1_pfalse.c
@@ -17,13 +17,11 @@
// CHECK-LABEL: @test_svpfalse_c(
// CHECK-NEXT: entry:
-// CHECK-NEXT: [[TMP0:%.*]] = tail call target("aarch64.svcount") @llvm.aarch64.sve.convert.from.svbool.taarch64.svcountt(<vscale x 16 x i1> zeroinitializer)
-// CHECK-NEXT: ret target("aarch64.svcount") [[TMP0]]
+// CHECK-NEXT: ret target("aarch64.svcount") zeroinitializer
//
// CPP-CHECK-LABEL: @_Z15test_svpfalse_cv(
// CPP-CHECK-NEXT: entry:
-// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call target("aarch64.svcount") @llvm.aarch64.sve.convert.from.svbool.taarch64.svcountt(<vscale x 16 x i1> zeroinitializer)
-// CPP-CHECK-NEXT: ret target("aarch64.svcount") [[TMP0]]
+// CPP-CHECK-NEXT: ret target("aarch64.svcount") zeroinitializer
//
svcount_t test_svpfalse_c(void) ATTR
{
More information about the cfe-commits
mailing list