| 669 | #endif |
| 670 | |
| 671 | GI_FORCEINLINE |
| 672 | enum GiSimdType GiGetSimdType() { |
| 673 | //! override by special macro to insure ci have test naive and sse2 |
| 674 | //! now we do not imp GI_AVX to now and x64 ci device will test GI_SSE42 |
| 675 | //! now arm ci device will test GI_NEON |
| 676 | //! insure test GI_SSE2 by command: |
| 677 | //! --copt -march=core2 --copt -mno-sse4.2 |
| 678 | //! --copt -mno-sse3 --copt -DGI_TEST_SSE2 |
| 679 | //! insure test GI_NAIVE by command: |
| 680 | //! --copt -DGI_TEST_SSE2 |
| 681 | //! DNN code at least need sse2 at x86 |
| 682 | //! so we can not test GI_NAIVE by |
| 683 | //! --copt -march=core2 --copt -mno-sse4.2 |
| 684 | //! --copt -mno-sse3 --copt -mno-sse2 |
| 685 | //! --copt -DGI_TEST_NAIVE |
| 686 | //! about CMake, can override build flags to CMAKE_CXX_FLAGS/CMAKE_C_FLAGS |
| 687 | //! by EXTRA_CMAKE_ARGS when use scripts/cmake-build/*.sh |
| 688 | #if defined(GI_TEST_NAIVE) |
| 689 | #undef __gi_simd_type |
| 690 | #define __gi_simd_type GI_NAIVE |
| 691 | #elif defined(GI_TEST_SSE2) |
| 692 | #undef __gi_simd_type |
| 693 | #define __gi_simd_type GI_SSE2 |
| 694 | #endif |
| 695 | |
| 696 | return __gi_simd_type; |
| 697 | } |
| 698 | |
| 699 | GI_FORCEINLINE |
| 700 | GI_FLOAT32_t GiBroadcastFloat32(float Value) { |
nothing calls this directly
no outgoing calls
no test coverage detected