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
Madhav Madhusoodanan
abdeddef4f
fix: set default value for varname and type fields of the
...
parameters/return value of an intrinsic
2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
08dda1502d
fix: update arch flags being sent to the x86 compilation command
2025-10-26 17:48:20 +05:30
Madhav Madhusoodanan
6264634a73
feat: implement print_result_c for Intrinsic<X86IntrinsicType>
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
d54464ab87
feat: implemented compare_outputs of x86 module
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
962dcfd7b1
feat: implemented build_rust_file of x86 module
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
8deed38593
chore: added Regex crate, updated the structure of X86IntrinsicType
...
struct
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
e6d4838de7
fix: code cleanup
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
9e8b542723
feat: update building C code for x86 architecture.
...
Notes: 1. chunk_info has been moved to `common/mod.rs` since it will be
needed for all architectures
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
9eb0ff4296
feat: updated intrinsics creation
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
1f9a2e7d46
feat: added the XML intrinsic parser for x86
2025-10-26 17:47:48 +05:30
Madhav Madhusoodanan
f44a98a59d
feat: added the skeleton structure of the x86 module
2025-10-26 17:47:48 +05:30
Emmanuel Gil Peyrot
6039ddea09
Implement fjcvtzs under the name __jcvt like the C intrinsic
...
This instruction is only available when the jsconv target_feature is available,
so on ARMv8.3 or higher.
It is used e.g. by Ruffle[0] to speed up its conversion from f64 to i32, or by
any JS engine probably.
I’ve picked the stdarch_aarch64_jscvt feature because it’s the name of the
FEAT_JSCVT, but hesitated with naming it stdarch_aarch64_jsconv (the name of
the target_feature) or stdarch_aarch64_jcvt (the name of the C intrinsic) or
stdarch_aarch64_fjcvtzs (the name of the instruction), this choice is purely
arbitrary and I guess it could be argued one way or another. I wouldn’t expect
it to stay unstable for too long, so ultimately this shouldn’t matter much.
This feature is now tracked in this issue[1].
[0] https://github.com/ruffle-rs/ruffle/pull/21780
[1] https://github.com/rust-lang/rust/issues/147555
2025-10-10 13:29:42 +00:00
usamoi
39b2e433e6
intrinsic-test: test intrinsics with patched core_arch
2025-09-20 20:13:24 +08:00
Tsukasa OI
221eb1f0d5
intrinsic-test: Make Clippy happy
2025-09-12 11:50:25 +00:00
Folkert de Vries
4b549a7330
move target-specific definitions into constants
2025-09-07 14:11:02 +02:00
Folkert de Vries
ccec202727
move build_c_file and build_rust_file into SupportedArchitectureTest
2025-09-07 14:11:02 +02:00
Folkert de Vries
1697f36225
remove trait IntrinsicDefinition
2025-09-07 14:11:02 +02:00
Folkert de Vries
2ba0a6e489
move print_result_c into the trait
2025-09-07 14:11:02 +02:00
Folkert de Vries
9d9ca01bfa
move print_result_c into the inner intrinsic type
2025-09-07 14:11:02 +02:00
Folkert de Vries
916424f38d
move more constants into SupportedArchitectureTest
2025-09-07 14:11:01 +02:00