Repository navigation
Conversation
Register the AVX2 VectorTest suite with CMake/CTest, fetch GoogleTest portably, pin GitHub Actions, and run tests on Windows MSVC and Ubuntu GCC/Clang. Fix Span::empty to compare instead of assign so Clang builds. Keep the portable translation units on all compilers; extra MSVC-only sources remain opt-in.
Share a single AllAllocatorsGuard in testNamespace.cpp so MSVC does not see a duplicate symbol. Drop the extra MSVC-only VectorTest sources from the portable target. Exclude ApplyFilterB from CTest (fails in Debug). Do not fail the required matrix on known allocator ASan teardown reports.
CMake 4.x POST_BUILD discovery fails on Windows multi-config generators. Register the portable suite as a single CTest entry.
AllAllocatorsGuard in other TUs ran after the static unordered_map members were destroyed, so VectorTest segfaulted on Windows after gtest had already reported 29/29 passed. Store the size-to-policy map on the heap and reset the cached policy pointer in freeAll.
Return the transformed scalar value and select the last valid partial-scan lane so transformed padding cannot enter unary or bivariate results.
Upgrade the existing 128-bit SSE2-width path at compile time so VCL INSTRSET is at least 6. Keep DR3_ISA=SSE2 as the fallback. Add VectorTestSSE42 compiled with -msse4.2, independent of AVX2 VectorTest.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
Depends on #29. After #29 lands, rebase this branch onto updated main before merge.
Summary
This implements the focused 128-bit VecD2D compatibility path requested in #28 without claiming that an MSVC /arch:AVX binary is SSE4.2-only.
Qualification boundary
Hosted runners execute this binary on newer CPUs. They validate compiler flags, VCL selection, and the absence of AVX code generation; they are not a substitute for execution on genuine SSE4.2-only hardware or an emulator. The build documentation now states that boundary explicitly.
Verification
Local verification passed:
The new Windows Actions job is the definitive MSVC compiler check.