Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions clang/lib/Basic/Targets/PPC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,11 @@ bool PPCTargetInfo::initFeatureMap(
return false;
}

if (llvm::is_contained(FeaturesVec, "-hard-float")) {
Features["altivec"] = false;
Features["vsx"] = false;
}

return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec);
}

Expand Down
13 changes: 13 additions & 0 deletions clang/test/Driver/ppc-soft-float.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// RUN: %clang -target powerpc64-unknown-unknown -mcpu=pwr10 -msoft-float -S -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECKSOFT
// RUN: %clang -target powerpc64-unknown-unknown -mcpu=pwr10 -S -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECKNOSOFT

int main () {
return 0;
}

// CHECKSOFT-DAG: -hard-float
// CHECKSOFT-DAG: -vsx
// CHECKSOFT-DAG: -altivec

// CHECKNOSOFT-DAG: +vsx
// CHECKNOSOFT-DAG: +altivec