-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
PowerPC SPE targets don't have spe target feature enabled #138960
Copy link
Copy link
Open
Labels
A-target-featureArea: Enabling/disabling target features like AVX, Neon, etc.Area: Enabling/disabling target features like AVX, Neon, etc.C-bugCategory: This is a bug.Category: This is a bug.O-PowerPCTarget: PowerPC processorsTarget: PowerPC processorsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-target-featureArea: Enabling/disabling target features like AVX, Neon, etc.Area: Enabling/disabling target features like AVX, Neon, etc.C-bugCategory: This is a bug.Category: This is a bug.O-PowerPCTarget: PowerPC processorsTarget: PowerPC processorsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
I tried this code when targeting any of the PowerPC SPE targets such as
powerpc-unknown-linux-muslspe(compiler explorer):I expected to see this happen: The assembly to use SPE instructions as this is an SPE target.
Instead, this happened: The assembly uses regular PowerPC FPU floating point instructions, as none of the three
powerpc-*spetargets actually have thespetarget feature enabled. According to the Debian PowerPCSPEPort wiki page, PowerPC SPE lacks the standard PowerPC FPU, and the Signal Processing Engine (SPE) Programming Environments Manual doesn't listfadds(which the targets currently compile thex + yto) as an SPE instruction, so the status quo is almost certainly incorrect.cc @BKPepe as target maintainer of
powerpc-unknown-linux-muslspe. Also cc @glaubitz who addedpowerpc-unknown-linux-gnuspein #48484 and @BaoshanPang who addedpowerpc-wrs-vxworks-spein #61946, as neither of those two targets have any target maintainers.Meta
rustc --version --verbose: