Support -march=tigerlake for x86.
Compare with Icelake Client, It include 4 more new features ,they are avx512vp2intersect, movdiri, movdir64b, shstk.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
clang/lib/Basic/Targets/X86.cpp | ||
---|---|---|
167 ↗ | (On Diff #213769) | Are we ok with introducing this kind of thing again or should we use goto? |
clang/test/Preprocessor/predefined-arch-macros.c | ||
1569 ↗ | (On Diff #213769) | You test for no-wbnoinvd - do we need to do the same for pconfig? |
llvm/lib/Support/Host.cpp | ||
749 ↗ | (On Diff #213769) | Check for tigerlake with avx512vp2intersect cpuid bit? @craig.topper any suggestions? |
clang/lib/Basic/Targets/X86.cpp | ||
---|---|---|
167 ↗ | (On Diff #213769) | We had a bunch of ifs like this in the switch before and turned into a maintenance issue because multiple ifs needed to be updated everytime someone added something to the stop of the switch. They were removed in https://reviews.llvm.org/D63018 |
clang/test/Preprocessor/predefined-arch-macros.c | ||
1535 ↗ | (On Diff #213769) | Missing a check for AVX512VP2INTERSECT |
1569 ↗ | (On Diff #213769) | I think icelake ended up like that because we had a bug once due to the ifs in the switch. Go ahead and add a NOT for PCONFIG |
llvm/lib/Support/Host.cpp | ||
749 ↗ | (On Diff #213769) | Sounds good to me. |
clang/test/Preprocessor/predefined-arch-macros.c | ||
---|---|---|
1571 ↗ | (On Diff #214337) | This is only effective if its alphabetically where PCONFIG should be. |
llvm/include/llvm/Support/X86TargetParser.def | ||
164 ↗ | (On Diff #214337) | The COMPAT macro is for things implemented in libgcc. I don't know if this one is yet. So it should be at position 70 instead. |
llvm/lib/Support/Host.cpp | ||
750 ↗ | (On Diff #214337) | There 3 variables Features, Features2, and Feature3. Each are 32 bits. The current bit position you have would put it in Features2, but when you move it to 70 it will be Features3. |
llvm/lib/Support/Host.cpp | ||
---|---|---|
1088 ↗ | (On Diff #214506) | This also needs HasAVX512Save. Sorry I didn't catch that earlier. |
llvm/lib/Support/Host.cpp | ||
---|---|---|
1088 ↗ | (On Diff #214506) | OK, seems all AVX512 features AND the HasAVX512Save, but I check the SPEC of avxvp2intersect, it just show CPUID.7.0.EDX[8]. |
llvm/lib/Support/Host.cpp | ||
---|---|---|
1088 ↗ | (On Diff #214506) | It's in the E4NF table where it says "State requirement, Table 2-37 not met" |