Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
1eee9ed
feat: added the skeleton structure of the x86 module
madhav-madhusoodanan Aug 2, 2025
07f20f4
feat: added the XML intrinsic parser for x86
madhav-madhusoodanan Aug 2, 2025
191614a
feat: updated intrinsics creation
madhav-madhusoodanan Aug 3, 2025
a952d3b
feat: update building C code for x86 architecture.
madhav-madhusoodanan Aug 3, 2025
417f729
fix: code cleanup
madhav-madhusoodanan Aug 3, 2025
4c19bd2
chore: added Regex crate, updated the structure of X86IntrinsicType
madhav-madhusoodanan Aug 5, 2025
3e3bf65
feat: implemented build_rust_file of `x86` module
madhav-madhusoodanan Aug 5, 2025
3e95708
feat: implemented compare_outputs of `x86` module
madhav-madhusoodanan Aug 5, 2025
fbb8214
feat: implement `print_result_c` for `Intrinsic<X86IntrinsicType>`
madhav-madhusoodanan Aug 5, 2025
6c69404
feat: Added x86 to CI pipeline
madhav-madhusoodanan Aug 5, 2025
0d62fe4
fix: update arch flags being sent to the x86 compilation command
madhav-madhusoodanan Aug 5, 2025
bd48f59
fix: set default value for varname and type fields of the
madhav-madhusoodanan Aug 5, 2025
8a69c61
fix: correcting semantical logic for setting vec_len
madhav-madhusoodanan Aug 5, 2025
83bc235
fix: more support for Mask types
madhav-madhusoodanan Sep 5, 2025
76359ef
fix: remove unused imports
madhav-madhusoodanan Sep 6, 2025
0c803aa
feat: implemented print_result_c in the case the target type is
madhav-madhusoodanan Sep 7, 2025
a7dac63
feat: implemented get_lane_function for x86
madhav-madhusoodanan Sep 7, 2025
68b2b2c
chore: update c_prefix for mask and print_result_c for vector type
madhav-madhusoodanan Sep 7, 2025
1951ed0
feat: handled extraction for 64-bit vector elements
madhav-madhusoodanan Sep 8, 2025
9726455
feat: add 8x8 case for get_lane_function for 64-bit vector
madhav-madhusoodanan Sep 8, 2025
1a07650
debug: printing self incase print_result_c fails.
madhav-madhusoodanan Sep 9, 2025
e79129a
chore: update x86 module, removed intrinsicDefinition trait, formatting
madhav-madhusoodanan Sep 10, 2025
8efed65
fixed errors that caused errors with cpp file generation (un-handled
madhav-madhusoodanan Sep 13, 2025
33ead37
feat: correcting errors with generated C artifacts
madhav-madhusoodanan Sep 14, 2025
30e0642
fix: vec_len -> simd_len (an error was present due to setting vec_len…
madhav-madhusoodanan Sep 14, 2025
6f9e90e
feat: updating intrinsic-run execution bash script
madhav-madhusoodanan Sep 16, 2025
6fbdf07
chore: revert default target
madhav-madhusoodanan Sep 16, 2025
d3dbbd6
chore: adding comments about memory alignment of variables and bash s…
madhav-madhusoodanan Sep 17, 2025
adb8124
chore: adding backtracing for better debugging
madhav-madhusoodanan Sep 17, 2025
218c360
chore: add compilation flags
madhav-madhusoodanan Sep 17, 2025
e32b078
chore: add better error handling when writing and compiling mod_{i}.cpp,
madhav-madhusoodanan Sep 18, 2025
07024e9
feat: Fixed FP16 errors, made the loading function generation more
madhav-madhusoodanan Sep 20, 2025
5383867
chore: Ensuring "const" appears for constant arguments to intrinsics.
madhav-madhusoodanan Sep 24, 2025
7454872
chore: allowing cast() function to allow implicity type conversion for
madhav-madhusoodanan Sep 24, 2025
b28fc7a
feat: matching the expected number of elements for array to load
madhav-madhusoodanan Sep 24, 2025
f7f0d4e
feat: updated with debug printing and ostream implementation for vector
madhav-madhusoodanan Sep 24, 2025
2913908
chore: corrected the legal range of values for constrained arguments
madhav-madhusoodanan Sep 24, 2025
1e56470
feat: filter for duplicates in the definition of intrinsics
madhav-madhusoodanan Sep 24, 2025
39425f3
chore: vector types cannot be the type of an individual element in an
madhav-madhusoodanan Sep 24, 2025
51c8750
chore: accomodate for `immwidth` field for constraints
madhav-madhusoodanan Sep 24, 2025
52c0c08
feat: defined more load functions that are natively not defined (such as
madhav-madhusoodanan Sep 24, 2025
c5717c3
chore: corrected the imm-width correction location for _mm_mpsadbw_epu8
madhav-madhusoodanan Sep 24, 2025
06f1b0c
feat: added exclusion list to intrinsic-test CI pipeline
madhav-madhusoodanan Sep 24, 2025
9c1ec7d
chore: clean up unused variables
madhav-madhusoodanan Sep 24, 2025
c824690
feat: moved cast<T1, T2> to architecture-specific definitions
madhav-madhusoodanan Sep 27, 2025
3a1aab8
fix: remove extra brackets for cast definition in arm/config.rs
madhav-madhusoodanan Sep 27, 2025
3a4ae99
make `std::ostream& operator<<(std::ostream& os, float16_t value);`
madhav-madhusoodanan Sep 27, 2025
ab00695
feat: add missing_x86.txt to filter out intrinsics that cannot be tested
madhav-madhusoodanan Sep 27, 2025
06bb848
feat: added custom helper functions (that helped load intrinsic
madhav-madhusoodanan Sep 27, 2025
599b68f
chore: add more compiler flags for compiling x86 intrinsics in C++
madhav-madhusoodanan Sep 28, 2025
3a0fef0
chore: add verbose cli option to C++ compiler
madhav-madhusoodanan Sep 28, 2025
f123a9b
feat: add clang to dockerfile and change clang++-19 to clang++
madhav-madhusoodanan Sep 28, 2025
ce16379
fix: add `libstdc++-dev` to fix `iostream not found` error
madhav-madhusoodanan Sep 28, 2025
411fbcd
fix: making compilation step run one by one to prevent the process from
madhav-madhusoodanan Sep 29, 2025
ee2f1e7
feat: attempting compilation of smaller chunks for faster parallel
madhav-madhusoodanan Sep 29, 2025
4b06d4b
feat: add c_programs to PATH and increase chunk size to 400
madhav-madhusoodanan Sep 30, 2025
87e39a2
feat: display __mmask8 values so that non-utf8 values are not displayed
madhav-madhusoodanan Oct 2, 2025
3b77dc5
feat: add formatting for __m128i, __m256i, __m512i types that is similar
madhav-madhusoodanan Oct 3, 2025
9dbc078
feat: make the debug_i16 into a generic debug_as function that adapts to
madhav-madhusoodanan Oct 5, 2025
8c19290
feat: casting the results of the lane function by preserving the bits
madhav-madhusoodanan Oct 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 52 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion ci/docker/x86_64-unknown-linux-gnu/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
make \
ca-certificates \
wget \
xz-utils
xz-utils \
clang \
libstdc++-14-dev \
build-essential \
lld

RUN wget http://ci-mirrors.rust-lang.org/stdarch/sde-external-9.58.0-2025-06-16-lin.tar.xz -O sde.tar.xz
RUN mkdir intel-sde
Expand Down
21 changes: 21 additions & 0 deletions ci/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,13 @@ fi
# Test targets compiled with extra features.
case ${TARGET} in
x86_64-unknown-linux-gnu)
TEST_CPPFLAGS="-fuse-ld=lld -I/usr/include/x86_64-linux-gnu/"
TEST_CXX_COMPILER="clang++"
TEST_RUNNER="${CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER}"
TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_x86.txt
export STDARCH_DISABLE_ASSERT_INSTR=1
PATH="$PATH":"$(pwd)"/c_programs
export PATH

export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+avx"
cargo_test "${PROFILE}"
Expand Down Expand Up @@ -181,6 +187,21 @@ case "${TARGET}" in
--linker "${CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_LINKER}" \
--cxx-toolchain-dir "${AARCH64_BE_TOOLCHAIN}"
;;

x86_64-unknown-linux-gnu*)
# `CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER` is not necessary for `intrinsic-test`
# because the binary needs to run directly on the host.
# Hence the use of `env -u`.
env -u CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER \
CPPFLAGS="${TEST_CPPFLAGS}" RUSTFLAGS="${HOST_RUSTFLAGS}" \
RUST_LOG=warn RUST_BACKTRACE=1 \
cargo run "${INTRINSIC_TEST}" "${PROFILE}" \
--bin intrinsic-test -- intrinsics_data/x86-intel.xml \
--runner "${TEST_RUNNER}" \
--skip "${TEST_SKIP_INTRINSICS}" \
--cppcompiler "${TEST_CXX_COMPILER}" \
--target "${TARGET}"
;;
*)
;;
esac
Expand Down
3 changes: 3 additions & 0 deletions crates/intrinsic-test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ pretty_env_logger = "0.5.0"
rayon = "1.5.0"
diff = "0.1.12"
itertools = "0.14.0"
quick-xml = { version = "0.37.5", features = ["serialize", "overlapped-lists"] }
serde-xml-rs = "0.8.0"
regex = "1.11.1"
Loading
Loading