Skip to content

Conversation

virt00l
Copy link
Contributor

@virt00l virt00l commented Mar 7, 2025

Do forward declare all necessary intrinsic funcs in-place to avoid including <intrin.h> as on clang-cl it's includes a lot of headers.

Also enable accelerated intrin code path on arm64 in bitset<>

Do forward declare all necessary intrinsic funcs in-place to avoid
including <intrin.h> as on clang-cl it's includes a lot of headers.

Also enable accelerated intrin code path on arm64 in bitset<>
@virt00l
Copy link
Contributor Author

virt00l commented Mar 7, 2025

Example of includes when building in clang-cl mode:

Note: including file:      ...\EASTL/algorithm.h
Note: including file:       ...\EASTL/internal/copy_help.h
Note: including file:        ...\EASTL/iterator.h
Note: including file:         ...\EASTL/initializer_list.h
Note: including file:         d:\...\include\stddef.h
Note: including file:       ...\EASTL/internal/fill_help.h
Note: including file:        d:\...\include\intrin.h
Note: including file:         d:\...\include\x86intrin.h
Note: including file:          d:\...\include\ia32intrin.h
Note: including file:          d:\...\include\immintrin.h
Note: including file:           d:\...\include\x86gprintrin.h
Note: including file:            d:\...\include\hresetintrin.h
Note: including file:            d:\...\include\uintrintrin.h
Note: including file:            d:\...\include\crc32intrin.h
Note: including file:           d:\...\include\mmintrin.h
Note: including file:           d:\...\include\xmmintrin.h
Note: including file:            d:\...\include\mm_malloc.h
Note: including file:             d:\...\include/10.0.19041.0/ucrt\malloc.h
Note: including file:            d:\...\include\emmintrin.h
Note: including file:             d:\...\include\xmmintrin.h
Note: including file:           d:\...\include\pmmintrin.h
Note: including file:           d:\...\include\tmmintrin.h
Note: including file:           d:\...\include\smmintrin.h
Note: including file:            d:\...\include\popcntintrin.h
Note: including file:           d:\...\include\wmmintrin.h
Note: including file:            d:\...\include\__wmmintrin_aes.h
Note: including file:            d:\...\include\__wmmintrin_pclmul.h
Note: including file:           d:\...\include\clflushoptintrin.h
Note: including file:           d:\...\include\clwbintrin.h
Note: including file:           d:\...\include\avxintrin.h
Note: including file:           d:\...\include\avx2intrin.h
Note: including file:           d:\...\include\f16cintrin.h
Note: including file:           d:\...\include\bmiintrin.h
Note: including file:           d:\...\include\bmi2intrin.h
Note: including file:           d:\...\include\lzcntintrin.h
Note: including file:           d:\...\include\fmaintrin.h
Note: including file:           d:\...\include\avx512fintrin.h
Note: including file:           d:\...\include\avx512vlintrin.h
Note: including file:           d:\...\include\avx512bwintrin.h
Note: including file:           d:\...\include\avx512bitalgintrin.h
Note: including file:           d:\...\include\avx512cdintrin.h
Note: including file:           d:\...\include\avx512vpopcntdqintrin.h
Note: including file:           d:\...\include\avx512vpopcntdqvlintrin.h
Note: including file:           d:\...\include\avx512vnniintrin.h
Note: including file:           d:\...\include\avx512vlvnniintrin.h
Note: including file:           d:\...\include\avxvnniintrin.h
Note: including file:           d:\...\include\avx512dqintrin.h
Note: including file:           d:\...\include\avx512vlbitalgintrin.h
Note: including file:           d:\...\include\avx512vlbwintrin.h
Note: including file:           d:\...\include\avx512vlcdintrin.h
Note: including file:           d:\...\include\avx512vldqintrin.h
Note: including file:           d:\...\include\avx512erintrin.h
Note: including file:           d:\...\include\avx512ifmaintrin.h
Note: including file:           d:\...\include\avx512ifmavlintrin.h
Note: including file:           d:\...\include\avx512vbmiintrin.h
Note: including file:           d:\...\include\avx512vbmivlintrin.h
Note: including file:           d:\...\include\avx512vbmi2intrin.h
Note: including file:           d:\...\include\avx512vlvbmi2intrin.h
Note: including file:           d:\...\include\avx512pfintrin.h
Note: including file:           d:\...\include\avx512bf16intrin.h
Note: including file:           d:\...\include\avx512vlbf16intrin.h
Note: including file:           d:\...\include\pkuintrin.h
Note: including file:           d:\...\include\vpclmulqdqintrin.h
Note: including file:           d:\...\include\vaesintrin.h
Note: including file:           d:\...\include\gfniintrin.h
Note: including file:           d:\...\include\rtmintrin.h
Note: including file:           d:\...\include\xtestintrin.h
Note: including file:           d:\...\include\shaintrin.h
Note: including file:           d:\...\include\fxsrintrin.h
Note: including file:           d:\...\include\xsaveintrin.h
Note: including file:           d:\...\include\xsaveoptintrin.h
Note: including file:           d:\...\include\xsavecintrin.h
Note: including file:           d:\...\include\xsavesintrin.h
Note: including file:           d:\...\include\cetintrin.h
Note: including file:           d:\...\include\adxintrin.h
Note: including file:           d:\...\include\rdseedintrin.h
Note: including file:           d:\...\include\wbnoinvdintrin.h
Note: including file:           d:\...\include\cldemoteintrin.h
Note: including file:           d:\...\include\waitpkgintrin.h
Note: including file:           d:\...\include\movdirintrin.h
Note: including file:           d:\...\include\pconfigintrin.h
Note: including file:           d:\...\include\sgxintrin.h
Note: including file:           d:\...\include\ptwriteintrin.h
Note: including file:           d:\...\include\invpcidintrin.h
Note: including file:           d:\...\include\keylockerintrin.h
Note: including file:           d:\...\include\amxintrin.h
Note: including file:           d:\...\include\avx512vp2intersectintrin.h
Note: including file:           d:\...\include\avx512vlvp2intersectintrin.h
Note: including file:           d:\...\include\enqcmdintrin.h
Note: including file:           d:\...\include\serializeintrin.h
Note: including file:           d:\...\include\tsxldtrkintrin.h
Note: including file:          d:\...\include\mm3dnow.h
Note: including file:           d:\...\include\prfchwintrin.h
Note: including file:          d:\...\include\prfchwintrin.h
Note: including file:          d:\...\include\ammintrin.h
Note: including file:          d:\...\include\fma4intrin.h
Note: including file:          d:\...\include\xopintrin.h
Note: including file:           d:\...\include\fma4intrin.h
Note: including file:          d:\...\include\tbmintrin.h
Note: including file:          d:\...\include\lwpintrin.h
Note: including file:          d:\...\include\mwaitxintrin.h
Note: including file:          d:\...\include\clzerointrin.h
Note: including file:          d:\...\include\rdpruintrin.h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant