================
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -triple aarch64-- -target-feature +neon -target-feature 
+sve\
+// RUN:   -target-feature -sve -emit-llvm %s -o - | FileCheck %s
+
+// Reproducer for bug where clang would reject always_inline for unrelated
+// target features if they were disable with `-feature` on the command line.
+// CHECK: @bar
+__attribute__((always_inline)) __attribute__((target("neon"))) void foo() {}
----------------
tmatheson-arm wrote:

That's true, but the header shouldn't be doing that. `neon` is the LLVM 
subtarget feature name which shouldn't be exposed to the user, `simd` is the 
user-facing name that is used on the command line with `-march`. `target` 
attribute parameters should match the command line, but historically it accepts 
any LLVM subtarget feature, which we are trying to clean up. Because `neon` is 
used here rather than `simd`, I believe it is not recognised as an extension 
and just gets passed through to LLVM as-is, and therefore takes a different 
codepath.

https://github.com/llvm/llvm-project/pull/142236
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to