================
@@ -166,6 +174,11 @@ void AArch64::ExtensionSet::enable(ArchExtKind E) {
   Touched.set(E);
   Enabled.set(E);
 
+  // These depend on each other, meaning you can't have one without the other.
+  // We don't want this to be in ExtensionDependencies to avoid infinite loops.
+  if (E == AEK_FP)
+    enable(AEK_SIMD);
----------------
labrinea wrote:

Not unrelated. To be fair we should also disable FP when SIMD is disabled. That 
will make `Clang :: Preprocessor/aarch64-target-features.c` fail but I can fix 
it. My argument is that since this is a dependency for FMV why would it not be 
for everything else? Why treat the attributes `target` and `target_version` 
differently in terms of the backend features we want to enable? Similarly the 
command line. This is another example of inconsistency. Either remove the 
dependency from FMV or be consisitent about it everywhere (march, target, 
target_version, etc).

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

Reply via email to