forked from OSchip/llvm-project
Revert "[PowerPC] [Clang] Enable float128 feature on VSX targets"
This commit brought build break in some f128 related tests. But that's not the root cause. There exists some differences between Clang and GCC's definition for 128-bit float types on PPC, so macros/functions in glibc may not work with clang -mfloat128 well. We need to handle this carefully and reland it.
This commit is contained in:
parent
34c098b780
commit
cbd93cee9b
|
@ -328,12 +328,6 @@ 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;
|
||||
|
@ -362,9 +356,9 @@ bool PPCTargetInfo::initFeatureMap(
|
|||
if (!ppcUserFeaturesCheck(Diags, FeaturesVec))
|
||||
return false;
|
||||
|
||||
if (!(ArchDefs & ArchDefinePwr7) && (ArchDefs & ArchDefinePpcgr) &&
|
||||
if (!(ArchDefs & ArchDefinePwr9) && (ArchDefs & ArchDefinePpcgr) &&
|
||||
llvm::find(FeaturesVec, "+float128") != FeaturesVec.end()) {
|
||||
// We have __float128 on PPC but not pre-VSX targets.
|
||||
// We have __float128 on PPC but not power 9 and above.
|
||||
Diags.Report(diag::err_opt_not_valid_with_opt) << "-mfloat128" << CPU;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -2,17 +2,13 @@
|
|||
// 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=pwr6 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// RUN: -mcpu=pwr8 -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// RUN: not %clang -target powerpc64le-unknown-linux-gnu -fsyntax-only \
|
||||
// RUN: -mno-vsx -mfloat128 %s 2>&1 | FileCheck %s --check-prefix=NOF128
|
||||
// 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
|
||||
|
||||
#ifdef __FLOAT128__
|
||||
static_assert(false, "__float128 enabled");
|
||||
|
|
Loading…
Reference in New Issue