Skip to content

Commit 92b8c2d

Browse files
committed
Revert "[X86][EVEX512] Restrict attaching EVEX512 for default CPU only, NFCI (llvm#65920)"
breaks qmcpack This reverts commit 8a58407. Change-Id: Ife1e7e0c5e9ab5a2349b57dde856cae023579b7a
1 parent 8ed7fd9 commit 92b8c2d

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

llvm/lib/Target/X86/X86Subtarget.cpp

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -273,23 +273,18 @@ void X86Subtarget::initSubtargetFeatures(StringRef CPU, StringRef TuneCPU,
273273
if (!FS.empty())
274274
FullFS = (Twine(FullFS) + "," + FS).str();
275275

276-
// Attach EVEX512 feature when we have AVX512 features with a default CPU.
277-
// "pentium4" is default CPU for 32-bit targets.
278-
// "x86-64" is default CPU for 64-bit targets.
279-
if (CPU == "generic" || CPU == "pentium4" || CPU == "x86-64") {
280-
size_t posNoEVEX512 = FS.rfind("-evex512");
281-
// Make sure we won't be cheated by "-avx512fp16".
282-
size_t posNoAVX512F = FS.endswith("-avx512f") ? FS.size() - 8
283-
: FS.rfind("-avx512f,");
284-
size_t posEVEX512 = FS.rfind("+evex512");
285-
// Any AVX512XXX will enable AVX512F.
286-
size_t posAVX512F = FS.rfind("+avx512");
287-
288-
if (posAVX512F != StringRef::npos &&
289-
(posNoAVX512F == StringRef::npos || posNoAVX512F < posAVX512F))
290-
if (posEVEX512 == StringRef::npos && posNoEVEX512 == StringRef::npos)
291-
FullFS += ",+evex512";
292-
}
276+
// Attach EVEX512 feature when we have AVX512 features and EVEX512 is not set.
277+
size_t posNoEVEX512 = FS.rfind("-evex512");
278+
// Make sure we won't be cheated by "-avx512fp16".
279+
size_t posNoAVX512F = FS.endswith("-avx512f") ? FS.size() - 8
280+
: FS.rfind("-avx512f,");
281+
size_t posEVEX512 = FS.rfind("+evex512");
282+
size_t posAVX512F = FS.rfind("+avx512"); // Any AVX512XXX will enable AVX512F.
283+
284+
if (posAVX512F != StringRef::npos &&
285+
(posNoAVX512F == StringRef::npos || posNoAVX512F < posAVX512F))
286+
if (posEVEX512 == StringRef::npos && posNoEVEX512 == StringRef::npos)
287+
FullFS += ",+evex512";
293288

294289
// Parse features string and set the CPU.
295290
ParseSubtargetFeatures(CPU, TuneCPU, FullFS);

0 commit comments

Comments
 (0)