https://github.com/paulwalker-arm created 
https://github.com/llvm/llvm-project/pull/205332

These builtins only care about the size of the element type and do not require 
bfloat specific instructions.

I missed this when implementing 
https://github.com/llvm/llvm-project/pull/204201.

>From 0b81cd36e0d18b2885146dad17aef8b39bef6fc8 Mon Sep 17 00:00:00 2001
From: Paul Walker <[email protected]>
Date: Tue, 23 Jun 2026 12:29:32 +0000
Subject: [PATCH] [Clang][SVE ACLE] Remove +bf16 requirement from neon-sve
 bridge builtins.

---
 .../clang/Basic/BuiltinsAArch64NeonSVEBridge.def       |  6 +++---
 .../acle_neon_sve_bridge_dup_neonq.c                   | 10 +++++-----
 .../acle_neon_sve_bridge_get_neonq.c                   | 10 +++++-----
 .../acle_neon_sve_bridge_set_neonq.c                   | 10 +++++-----
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge.def 
b/clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge.def
index b8bb054d4cce4..926ae1f424292 100644
--- a/clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge.def
+++ b/clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge.def
@@ -10,7 +10,7 @@ TARGET_BUILTIN(__builtin_sve_svget_neonq_u64, "V2UWiq2UWi", 
"n", "sve")
 TARGET_BUILTIN(__builtin_sve_svget_neonq_f16, "V8hq8h", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svget_neonq_f32, "V4fq4f", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svget_neonq_f64, "V2dq2d", "n", "sve")
-TARGET_BUILTIN(__builtin_sve_svget_neonq_bf16, "V8yq8y", "n", "sve,bf16")
+TARGET_BUILTIN(__builtin_sve_svget_neonq_bf16, "V8yq8y", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svset_neonq_s8, "q16Scq16ScV16Sc", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svset_neonq_s16, "q8sq8sV8s", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svset_neonq_s32, "q4iq4iV4i", "n", "sve")
@@ -22,7 +22,7 @@ TARGET_BUILTIN(__builtin_sve_svset_neonq_u64, 
"q2UWiq2UWiV2UWi", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svset_neonq_f16, "q8hq8hV8h", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svset_neonq_f32, "q4fq4fV4f", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svset_neonq_f64, "q2dq2dV2d", "n", "sve")
-TARGET_BUILTIN(__builtin_sve_svset_neonq_bf16, "q8yq8yV8y", "n", "sve,bf16")
+TARGET_BUILTIN(__builtin_sve_svset_neonq_bf16, "q8yq8yV8y", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svdup_neonq_s8, "q16ScV16Sc", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svdup_neonq_s16, "q8sV8s", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svdup_neonq_s32, "q4iV4i", "n", "sve")
@@ -34,6 +34,6 @@ TARGET_BUILTIN(__builtin_sve_svdup_neonq_u64, "q2UWiV2UWi", 
"n", "sve")
 TARGET_BUILTIN(__builtin_sve_svdup_neonq_f16, "q8hV8h", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svdup_neonq_f32, "q4fV4f", "n", "sve")
 TARGET_BUILTIN(__builtin_sve_svdup_neonq_f64, "q2dV2d", "n", "sve")
-TARGET_BUILTIN(__builtin_sve_svdup_neonq_bf16, "q8yV8y", "n", "sve,bf16")
+TARGET_BUILTIN(__builtin_sve_svdup_neonq_bf16, "q8yV8y", "n", "sve")
 #endif
 
diff --git 
a/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_dup_neonq.c
 
b/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_dup_neonq.c
index 516e9aba9849a..e0d63178f3633 100644
--- 
a/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_dup_neonq.c
+++ 
b/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_dup_neonq.c
@@ -1,10 +1,10 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // REQUIRES: aarch64-registered-target
-// RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +sve 
-target-feature +bf16 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
-// RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +sve 
-target-feature +bf16 -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck 
%s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +sve 
-target-feature +bf16 -S -O1 -Werror -Wall -o /dev/null %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -O1 -Werror -Wall -emit-llvm 
-o - %s | FileCheck %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -O1 -Werror -Wall -emit-llvm 
-o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +sve 
-O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +sve 
-O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s 
-check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -triple aarch64 -target-feature +neon -target-feature +sve 
-S -O1 -Werror -Wall -o /dev/null %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature 
+neon -target-feature +sve -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature 
+neon -target-feature +sve -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | 
FileCheck %s -check-prefix=CPP-CHECK
 #include <arm_neon_sve_bridge.h>
 
 #ifdef SVE_OVERLOADED_FORMS
diff --git 
a/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_get_neonq.c
 
b/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_get_neonq.c
index 87f0a9e69c0b6..744b3d55dc00d 100644
--- 
a/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_get_neonq.c
+++ 
b/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_get_neonq.c
@@ -1,10 +1,10 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // REQUIRES: aarch64-registered-target
-// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -O1 -Werror -Wall -emit-llvm 
-o - %s | FileCheck %s
-// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -O1 -Werror -Wall -emit-llvm 
-o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -S -O1 -Werror -Wall -o 
/dev/null %s
-// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -target-feature +bf16 -O1 
-Werror -Wall -emit-llvm -o - %s | FileCheck %s
-// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -target-feature +bf16 -O1 
-Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | 
FileCheck %s -check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -S -O1 -Werror -Wall -o /dev/null %s
+// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -O1 -Werror -Wall -emit-llvm 
-o - %s | FileCheck %s
+// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -O1 -Werror -Wall -emit-llvm 
-o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 #include <arm_neon_sve_bridge.h>
 
 #ifdef SVE_OVERLOADED_FORMS
diff --git 
a/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_set_neonq.c
 
b/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_set_neonq.c
index a32c1446b2df7..d548182fbb0a6 100644
--- 
a/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_set_neonq.c
+++ 
b/clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_set_neonq.c
@@ -1,10 +1,10 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // REQUIRES: aarch64-registered-target
-// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -O1 -Werror -Wall -emit-llvm 
-o - %s | FileCheck %s
-// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -O1 -Werror -Wall -emit-llvm 
-o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -target-feature +bf16 -S -O1 -Werror -Wall -o 
/dev/null %s
-// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -target-feature +bf16 -O1 
-Werror -Wall -emit-llvm -o - %s | FileCheck %s
-// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -target-feature +bf16 -O1 
-Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | 
FileCheck %s -check-prefix=CPP-CHECK
+// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature 
+neon -target-feature +sve -S -O1 -Werror -Wall -o /dev/null %s
+// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -O1 -Werror -Wall -emit-llvm 
-o - %s | FileCheck %s
+// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple 
aarch64 -target-feature +neon -target-feature +sve -O1 -Werror -Wall -emit-llvm 
-o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 #include <arm_neon_sve_bridge.h>
 
 #ifdef SVE_OVERLOADED_FORMS

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to