forked from OSchip/llvm-project
[PowerPC] [Clang] Enable float128 feature on VSX targets
Reviewed By: nemanjai, steven.zhang Differential Revision: https://reviews.llvm.org/D92815
This commit is contained in:
parent
f8306647fa
commit
febbe4b5a0
|
@ -328,6 +328,12 @@ bool PPCTargetInfo::initFeatureMap(
|
|||
.Case("pwr9", true)
|
||||
.Case("pwr8", true)
|
||||
.Default(false);
|
||||
Features["float128"] = llvm::StringSwitch<bool>(CPU)
|
||||
.Case("ppc64le", true)
|
||||
.Case("pwr9", true)
|
||||
.Case("pwr8", true)
|
||||
.Case("pwr7", true)
|
||||
.Default(false);
|
||||
|
||||
// ROP Protect is off by default.
|
||||
Features["rop-protect"] = false;
|
||||
|
@ -356,9 +362,9 @@ bool PPCTargetInfo::initFeatureMap(
|
|||
if (!ppcUserFeaturesCheck(Diags, FeaturesVec))
|
||||
return false;
|
||||
|
||||
if (!(ArchDefs & ArchDefinePwr9) && (ArchDefs & ArchDefinePpcgr) &&
|
||||
if (!(ArchDefs & ArchDefinePwr7) && (ArchDefs & ArchDefinePpcgr) &&
|
||||
llvm::find(FeaturesVec, "+float128") != FeaturesVec.end()) {
|
||||
// We have __float128 on PPC but not power 9 and above.
|
||||
// We have __float128 on PPC but not pre-VSX targets.
|
||||
Diags.Report(diag::err_opt_not_valid_with_opt) << "-mfloat128" << CPU;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -2,13 +2,17 @@
|
|||
// RUN: -mcpu=pwr9 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=HASF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mcpu=power9 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=HASF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mcpu=pwr8 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=HASF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mcpu=pwr7 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=HASF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=HASF128
|
||||
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mcpu=pwr8 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// RUN: -mcpu=pwr6 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mcpu=pwr7 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// RUN: -mno-vsx -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
|
||||
#ifdef __FLOAT128__
|
||||
static_assert(false, "__float128 enabled");
|
||||
|
|
Loading…
Reference in New Issue