2004 Commits

Author SHA1 Message Date
Madhav Madhusoodanan
09be05e467 feat: updated exclusion list with more intrinsics, that can be fixed
immediately
2025-10-26 17:51:33 +05:30
Madhav Madhusoodanan
06ab6d7cb2 feat: explicitly casting the result of the lane function to unsigned
variants for compatibility with the Rust version
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
a5926b3ede Feat: allow downcasting (useful for certain cases where uint32_t needs
to be cast to float16_t because the bits are stored in the lower half of
the type)
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
1eed14abdc Feat: Compile C++ testfiles using C++23 standard 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
e6f4153526 feat: update cast<> function to reduce spurious cast functions (cases
like integer to float or vice versa)
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
b567c62fd7 Explicitly cast bits instead of allowing C++ to automatically cast the
same (during typecasting)
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
c9ae1f47dd fix: update the display of uint8_t type in C++ 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
928baef9fc feat: casting the results of the lane function by preserving the bits
instead of letting C++ do it (and potentially change the bits)
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
5bd9531fa1 feat: make the debug_i16 into a generic debug_as function that adapts to
base type
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
a2f64b368c feat: add formatting for __m128i, __m256i, __m512i types that is similar
to C++ version of the same.
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
0606f2421b feat: display __mmask8 values so that non-utf8 values are not displayed 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
12510bfbb1 feat: add c_programs to PATH and increase chunk size to 400 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
08bb69e186 feat: attempting compilation of smaller chunks for faster parallel
processing
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
98f4db287f fix: making compilation step run one by one to prevent the process from
being killed. Also separated declarations and definitions for C++
testfiles.
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
11263b7358 chore: add verbose cli option to C++ compiler 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
33894358d2 chore: add more compiler flags for compiling x86 intrinsics in C++ 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
057e645d5c feat: added custom helper functions (that helped load intrinsic
arguments in Rust) to C++ testfiles. Also added extra compilation flags
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
89130019e9 feat: add missing_x86.txt to filter out intrinsics that cannot be tested
currently
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
afcc241301 make std::ostream& operator<<(std::ostream& os, float16_t value);
definition available for armv7 also
2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
62182b5466 fix: remove extra brackets for cast definition in arm/config.rs 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
c16d05191c feat: moved cast<T1, T2> to architecture-specific definitions 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
c2c3de09a7 chore: clean up unused variables 2025-10-26 17:51:07 +05:30
Madhav Madhusoodanan
1a2aacb46e chore: corrected the imm-width correction location for _mm_mpsadbw_epu8
intrinsic
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
e00cfd2f67 feat: defined more load functions that are natively not defined (such as
arguments with UI16 etype and __m128d type)
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
115dc3c298 chore: accomodate for immwidth field for constraints
extras: 1. call update_simd_len() after inferring bit_len for arguments
of certain intrinsics

2. handle the effective bit_len for _mm_mpsadbw_epu8 intrinsic's `imm8`
argument which has only 3 bits that are used
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
fbe9a25287 chore: vector types cannot be the type of an individual element in an
array.

Extra: 1. Added better load fuctions 2. Added an update_simd_len()
function to support cases where the bit_len of the element need to be
inferred from its partner arguments before calculating the simd_len
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
9c2dd24bb6 feat: filter for duplicates in the definition of intrinsics 2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
4cbca6c247 chore: corrected the legal range of values for constrained arguments
such as _MM_FROUND_SAE and _MM_ROUND_MODE
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
c59e6702d3 feat: updated with debug printing and ostream implementation for vector
types
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
ab6c74c3a3 feat: matching the expected number of elements for array to load
arguments, accommodating for signed variables too
2025-10-26 17:50:38 +05:30
Madhav Madhusoodanan
6c91fe59be chore: allowing cast() function to allow implicity type conversion for
certain cases (like uint32_t to uint64_t)

extras: 1. added more C++ headers 2. typecasting integer constants (for
example, the MM_FROUND arguments) for type compatibility
2025-10-26 17:50:37 +05:30
Madhav Madhusoodanan
6ab76d81c6 chore: Ensuring "const" appears for constant arguments to intrinsics.
Extra changes: 1. Using "as _" to allow for implicit typecasting
2025-10-26 17:50:37 +05:30
Madhav Madhusoodanan
e7c94dcafb feat: Fixed FP16 errors, made the loading function generation more
accurate
2025-10-26 17:50:37 +05:30
Madhav Madhusoodanan
b22467a4d2 chore: add better error handling when writing and compiling mod_{i}.cpp,
neatly organize C++ headers
2025-10-26 17:50:37 +05:30
Madhav Madhusoodanan
bae0e30160 chore: add compilation flags 2025-10-26 17:50:37 +05:30
Madhav Madhusoodanan
b8ffa6b4da chore: adding comments about memory alignment of variables and bash scripts that will be used in CI 2025-10-26 17:50:03 +05:30
Madhav Madhusoodanan
bb2a9fc0e5 chore: revert default target 2025-10-26 17:49:44 +05:30
Madhav Madhusoodanan
67ba9ec177 fix: vec_len -> simd_len (an error was present due to setting vec_len instead of simd_len for AVX register types) 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
6e2c8af78b feat: correcting errors with generated C artifacts 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
0c40b9490c fixed errors that caused errors with cpp file generation (un-handled
edge cases for Vector and Mask types)
2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
f621ff8ae1 chore: update x86 module, removed intrinsicDefinition trait, formatting
updates
2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
829933a996 debug: printing self incase print_result_c fails. 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
bcbb6d46d9 feat: add 8x8 case for get_lane_function for 64-bit vector 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
d4bc29a077 feat: handled extraction for 64-bit vector elements 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
1d9aed0f2a chore: update c_prefix for mask and print_result_c for vector type 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
b736008c2e feat: implemented get_lane_function for x86 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
8849eebc3b feat: implemented print_result_c in the case the target type is
Mask-based
2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
662c5b1b1f fix: remove unused imports 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
cdb9d86c3e fix: more support for Mask types 2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
bfe1e01e10 fix: correcting semantical logic for setting vec_len 2025-10-26 17:48:20 +05:30