Commit Graph

325888 Commits

Author SHA1 Message Date
Sayantan Chakraborty bee0bf631e Merge pull request #2103 from heiher/vadda
loongarch: Use `intrinsics::simd` for vadda
2026-05-10 05:33:12 +00:00
Folkert de Vries 256c08376a Merge pull request #2108 from sayantn/cleanup-gen-arm
A lot of cleanup in stdarch-gen-arm
2026-05-09 08:38:01 +00:00
WANG Rui 494200ba48 loongarch: Use intrinsics::simd for vadda 2026-05-09 15:45:57 +08:00
Sayantan Chakraborty 51877654ba Merge pull request #2097 from heiher/vsadd-sub
loongarch: Use `intrinsics::simd` for vs{add,sub}
2026-05-09 06:23:59 +00:00
sayantn 63385588de Split vcopyq_lane{q}_p64 due to vsetq_lane_p64 requiring aes 2026-05-09 10:01:01 +05:30
sayantn 95e2c0ff2c Change implementation of v{us,su,}dot_lane 2026-05-09 09:41:26 +05:30
sayantn 0d1fd7fa47 Change implementation of vld1_dup 2026-05-09 09:41:25 +05:30
sayantn cee8ece450 Change implementation of vmul_lane 2026-05-09 09:41:25 +05:30
sayantn 3dd1690288 Change implementation of vr{add,sub}hn_high 2026-05-09 09:41:25 +05:30
sayantn d4bb7f4fdd Change implementation of v{q}{r}shr{u}n_high_n 2026-05-09 09:41:25 +05:30
sayantn 933aa5c3b5 Change implementation of vqrdml{a,s}h_lane 2026-05-09 09:41:24 +05:30
sayantn 077f63f91e Change implementation of vqmov{u}n_high 2026-05-09 09:41:24 +05:30
sayantn 1404a1e5b0 Change implementation of vqdmull{_high}{_lane} and vqrdmulh_lane 2026-05-09 09:41:24 +05:30
sayantn 63d8cef02f Change implementation of v{add,sub}{l,w}_high 2026-05-09 09:41:24 +05:30
sayantn 401582dd27 Change implementation of vmulx_lane 2026-05-09 09:41:24 +05:30
sayantn c02a41ccaa Change implementation of vmull_{high,lane} 2026-05-09 09:41:24 +05:30
sayantn ccb273a3c5 Change implementation of vmov{n,l}_high 2026-05-09 09:41:23 +05:30
sayantn da1b2021f5 Change implementation of vml{a,s}{l}_lane 2026-05-09 09:41:23 +05:30
sayantn 4871c490cb Change implementation of vcvt{x}_f32_f64 2026-05-09 09:41:23 +05:30
sayantn 8d56c77c04 Change implementation of vab{a,d}l_high 2026-05-09 09:41:23 +05:30
sayantn f603c7fb4b Change implementation of vcopy{q}_lane{q} 2026-05-09 09:41:22 +05:30
sayantn 229d480cdc Change implementation of vext 2026-05-09 09:41:22 +05:30
sayantn a2e77970c2 replace uses of simd_extract with vget_lane 2026-05-08 16:11:44 +05:30
Folkert de Vries 0d76cbef9b Merge pull request #2107 from sayantn/gen-arm-improvements
gen-arm: Change definitions of some intrinsics
2026-05-08 10:25:19 +00:00
sayantn aa37c1b535 gen-arm: fix vfmlal and vfmlsl 2026-05-08 12:47:02 +05:30
sayantn a023ebf71f gen-arm: fix vmlal, vmlsl and vmull 2026-05-08 12:46:59 +05:30
WANG Rui c80d077ffc loongarch: Use intrinsics::simd for vs{add,sub} 2026-05-08 10:52:55 +08:00
Amanieu d'Antras 1964b04a31 Merge pull request #2100 from sayantn/gen-arm-ports
Porting some intrinsics to stdarch-gen-arm
2026-05-08 00:40:07 +00:00
Folkert de Vries 37473be4d0 Merge pull request #2093 from heiher/vbit-clr-rev-set
loongarch: Use `intrinsics::simd` for vbit{clr,rev,set}
2026-05-07 20:14:46 +00:00
Folkert de Vries 55c9debc59 Merge pull request #2105 from sayantn/gen-arm-improvements
Some more changes in stdarch-gen-arm
2026-05-07 20:14:02 +00:00
David Wood 6218201806 gen-arm: write vtbx{1,2,3,4} in terms of vqtbx
Writing these intrinsics in terms of the `vqtbx_$ty` functions rather
than the `vqtbx` helper function preserves the behaviour while making
them work in big endian.
2026-05-08 01:16:19 +05:30
David Wood a5073bcca9 gen-arm: write vtbl{1,2,3,4} in terms of vqtbl
Writing these intrinsics in terms of the `vqtbl_$ty` functions rather
than the `vqtbl` helper function preserves the behaviour while making
them work in big endian.
2026-05-08 01:16:18 +05:30
David Wood 1e13d52faf gen-arm: change defn of vabdl_high_u{8,16,32}
Changes the definition of `vabdl_high_u{8,16,32}` to match that of
`vabdl_high_s{8,16,32}` so that the `big_endian_inverse` transformation
can apply.
2026-05-08 01:16:18 +05:30
WANG Rui 11fd314918 loongarch: Use intrinsics::simd for vbit{clr,rev,set} 2026-05-07 22:34:29 +08:00
David Wood 1c2d423713 core_arch: remove redundant tests
Manually written tests for `vcopy_laneq`, `vget{,q}_{high,low,lane}`,
`vcombine` and `vaddw_high` don't account for the expected differences
in output for big endian intrinsics and given that they duplicate the
testing of `intrinsic-test`, can be removed.
2026-05-07 11:15:14 +01:00
David Wood 4661e734dc gen-arm: port vcombine_f64 to generator
This enables the `big_endian_inverse` transform to apply to this
intrinsic.
2026-05-07 11:15:13 +01:00
David Wood fe3e89d2d5 gen-arm: port vgetq_lane_f64 to generator
This enables the `big_endian_inverse` transform to apply to this
intrinsic.
2026-05-07 11:15:06 +01:00
David Wood 54b56a3d95 gen-arm: port vget_{high,low}_{p,f}64 to generator
This enables the `big_endian_inverse` transform to apply to these
intrinsics.
2026-05-07 11:14:54 +01:00
David Wood cf3ac4997a gen-arm: port vcopy_laneq_{f,u,s,p}64 to generator
This enables the `big_endian_inverse` transformation to apply to these
intrinsics.
2026-05-07 11:14:46 +01:00
David Wood 1d556c4405 gen-arm: port vcopy_lane_{s,u,p,f}64 to generator
This enables the `big_endian_inverse` transformation to apply to this
intrinsic.
2026-05-07 11:14:38 +01:00
Folkert de Vries 75fb1cb872 Merge pull request #2099 from sayantn/gen-arm-improvements
Some small overall improvements to stdarch-gen-arm
2026-05-06 20:03:36 +00:00
Folkert de Vries ea71582ec0 Merge pull request #2101 from sayantn/revert-passes
Revert changing number of passes depending on number of parameters
2026-05-06 20:01:48 +00:00
David Wood 3d5f588f83 gen-arm: skip assert_instr on big-endian
Some intrinsics optimise to different instructions on big endian which
leads to `assert_instr` failing
2026-05-07 00:38:15 +05:30
David Wood 51f8123fa7 gen-arm: use neon-stable anchor throughout
Instead of duplicating the stability attribute, re-use the `neon-stable`
anchor through
2026-05-07 00:37:41 +05:30
David Wood af754dcaf3 gen-arm: resolve outdated big_endian_inverse todo
Earlier patches added `big_endian_inverse` and used `transmute` instead
of using `vreinterpret` due to an LLVM bug that has since been resolved
2026-05-07 00:37:38 +05:30
Folkert de Vries f3773626f0 Merge pull request #2104 from Jamesbarford/remove-inline-always-target-feature
Remove inline always
2026-05-06 18:48:18 +00:00
James Barford-Evans 4c3bde6036 replace more instances of #[inline(always)] 2026-05-06 16:53:04 +01:00
James Barford-Evans a854325c91 remove target_feature_inline_always from lib.rs 2026-05-06 16:39:21 +01:00
James Barford-Evans 13979fcd88 Remove #[inline(always)] from loongarch intrinsic generator & re-generate intrinsics 2026-05-06 16:28:46 +01:00
James Barford-Evans 6169e94e9b Remove #[inline(always)] from hexagon intrinsic generator & re-generate intrinsics 2026-05-06 16:28:26 +01:00