157 Commits

Author SHA1 Message Date
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
Folkert de Vries
6ab097b245
move platform headers into SupportedArchitectureTest 2025-09-07 14:11:01 +02:00
Folkert de Vries
d70ef4f0a7
move compare_outputs implementation into SupportedArchitectureTest definition 2025-09-07 14:11:01 +02:00
Folkert de Vries
de01bd3c72
use IntoIterator for the add_flags methods 2025-08-05 12:42:03 +02:00
Madhav Madhusoodanan
e84116db8e chore: moved chunk_info to common and code cleanup 2025-08-05 13:27:36 +05:30
Madhav Madhusoodanan
76dce27325 feat: cleaned the IntrinsicType struct and associated functions.
Changes: 1. Removed `from_c` from the IntrinsicType definition. 2. Moved
the `from_c` arm-specific definition to an ArmIntrinsicType-specific
impl block
2025-08-05 13:21:47 +05:30
Madhav Madhusoodanan
3b216c3f6f feat: Added another variant of the Constraint enum 2025-08-03 15:33:46 +05:30
Madhav Madhusoodanan
c07f8bbdc2 chore: handling the case where --generate-only flag is passed 2025-07-27 18:00:41 +05:30