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