https://github.com/guy-david updated https://github.com/llvm/llvm-project/pull/147184
>From 3336929fcd243162d2063998a2624017e4e89143 Mon Sep 17 00:00:00 2001 From: Guy David <guyd...@gmail.com> Date: Sun, 6 Jul 2025 15:22:38 +0300 Subject: [PATCH] [PowerPC] Test SPE incompatibility with VSX PPCSubtarget is not always initialized, depending on which passes are running, and in our downstream fork, -enable-matrix is the default configuration (regardless of whether matrix intrinsics are present in the IR), which triggers a fatal error in builtins-ppc-fpconstrained.c. --- clang/test/CodeGen/PowerPC/builtins-ppc-fpconstrained.c | 2 +- llvm/test/CodeGen/PowerPC/spe-vsx-incompatibility.ll | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 llvm/test/CodeGen/PowerPC/spe-vsx-incompatibility.ll diff --git a/clang/test/CodeGen/PowerPC/builtins-ppc-fpconstrained.c b/clang/test/CodeGen/PowerPC/builtins-ppc-fpconstrained.c index 838db02415fe5..b46fa9f2cf157 100644 --- a/clang/test/CodeGen/PowerPC/builtins-ppc-fpconstrained.c +++ b/clang/test/CodeGen/PowerPC/builtins-ppc-fpconstrained.c @@ -11,7 +11,7 @@ // RUN: -S -ffp-exception-behavior=strict \ // RUN: -o - %s | FileCheck --check-prefix=CHECK-ASM \ // RUN: --check-prefix=FIXME-CHECK %s -// RUN: %clang_cc1 -triple powerpcspe -ffp-exception-behavior=strict \ +// RUN: %clang_cc1 -triple powerpc -ffp-exception-behavior=strict \ // RUN: -target-feature +vsx -fexperimental-strict-floating-point -emit-llvm \ // RUN: %s -o - | FileCheck --check-prefix=CHECK-CONSTRAINED %s diff --git a/llvm/test/CodeGen/PowerPC/spe-vsx-incompatibility.ll b/llvm/test/CodeGen/PowerPC/spe-vsx-incompatibility.ll new file mode 100644 index 0000000000000..06c8f9a3b4bb6 --- /dev/null +++ b/llvm/test/CodeGen/PowerPC/spe-vsx-incompatibility.ll @@ -0,0 +1,8 @@ +; Adding -enable-matrix, which is disabled by default, forces the initialization +; of the PPCSubtarget which verifies the incompatible CPU features. +; RUN: not llc -mtriple=powerpcspe -mattr=+vsx -enable-matrix < %s 2>&1 | FileCheck %s + +; CHECK: SPE and traditional floating point cannot both be enabled +define void @test() { + ret void +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits