Implement VSX Intrinsics
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
この issue ではファイルもテストも指定されていません。まず、列挙されている VSX intrinsic を、stdarch にある既存のベンダー固有 intrinsic 実装およびそのテストと比較してください。完了するには、チェックリスト全体を実装し、結果として得られる API セットを検証する必要があります。
索引モデルが issue の本文から書いたものです。
説明
VSX introduces 64bits-2lanes vector types.
note: some altivec instructions have alternate encodings in VSX.
-
fn vec_abs(vector_double) -> vector_double -
fn vec_add(vector_double, vector_double) -> vector_double -
fn vec_and(vector_double, vector_double) -> vector_double -
fn vec_and(vector_double, vector_bool_long) -> vector_double -
fn vec_and(vector_bool_long, vector_double) -> vector_double -
fn vec_and(vector_long, vector_long) -> vector_long -
fn vec_and(vector_long, vector_bool_long) -> vector_long -
fn vec_and(vector_bool_long, vector_long) -> vector_long -
fn vec_and(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_and(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_and(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_andc(vector_double, vector_double) -> vector_double -
fn vec_andc(vector_double, vector_bool_long) -> vector_double -
fn vec_andc(vector_bool_long, vector_double) -> vector_double -
fn vec_andc(vector_long, vector_long) -> vector_long -
fn vec_andc(vector_long, vector_bool_long) -> vector_long -
fn vec_andc(vector_bool_long, vector_long) -> vector_long -
fn vec_andc(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_andc(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_andc(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_ceil(vector_double) -> vector_double -
fn vec_cmpeq(vector_double, vector_double) -> vector_bool_long -
fn vec_cmpge(vector_double, vector_double) -> vector_bool_long -
fn vec_cmpgt(vector_double, vector_double) -> vector_bool_long -
fn vec_cmple(vector_double, vector_double) -> vector_bool_long -
fn vec_cmplt(vector_double, vector_double) -> vector_bool_long -
fn vec_cpsgn(vector_double, vector_double) -> vector_double -
fn vec_div(vector_float, vector_float) -> vector_float -
fn vec_div(vector_double, vector_double) -> vector_double -
fn vec_div(vector_long, vector_long) -> vector_long -
fn vec_div(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_floor(vector_double) -> vector_double -
fn vec_ld(&mut i32, &vector___int128) -> vector___int128 -
fn vec_ld(&mut i32, &vector_unsigned___int128) -> vector_unsigned___int128 -
fn vec_ld(&mut i32, &i__int128) -> vector___int128 -
fn vec_ld(&mut i32, &u__int128) -> vector_unsigned___int128 -
fn vec_ld(&mut i32, &vector_double) -> vector_double -
fn vec_ld(&mut i32, &f64) -> vector_double -
fn vec_ldl(&mut i32, &vector_double) -> vector_double -
fn vec_ldl(&mut i32, &f64) -> vector_double -
fn vec_lvsl(&mut i32, &f64) -> vector_unsigned_char -
fn vec_lvsr(&mut i32, &f64) -> vector_unsigned_char -
fn vec_madd(vector_double, vector_double, vector_double) -> vector_double -
fn vec_max(vector_double, vector_double) -> vector_double -
fn vec_mergeh(vector_signed_long, vector_signed_long) -> vector_signed_long -
fn vec_mergeh(vector_signed_long, vector_bool_long) -> vector_signed_long -
fn vec_mergeh(vector_bool_long, vector_signed_long) -> vector_signed_long -
fn vec_mergeh(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_mergeh(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_mergeh(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_mergel(vector_signed_long, vector_signed_long) -> vector_signed_long -
fn vec_mergel(vector_signed_long, vector_bool_long) -> vector_signed_long -
fn vec_mergel(vector_bool_long, vector_signed_long) -> vector_signed_long -
fn vec_mergel(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_mergel(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_mergel(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_min(vector_double, vector_double) -> vector_double -
fn vec_msub(vector_float, vector_float, vector_float) -> vector_float -
fn vec_msub(vector_double, vector_double, vector_double) -> vector_double -
fn vec_mul(vector_float, vector_float) -> vector_float -
fn vec_mul(vector_double, vector_double) -> vector_double -
fn vec_mul(vector_long, vector_long) -> vector_long -
fn vec_mul(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_nearbyint(vector_float) -> vector_float -
fn vec_nearbyint(vector_double) -> vector_double -
fn vec_nmadd(vector_float, vector_float, vector_float) -> vector_float -
fn vec_nmadd(vector_double, vector_double, vector_double) -> vector_double -
fn vec_nmsub(vector_double, vector_double, vector_double) -> vector_double -
fn vec_nor(vector_double, vector_double) -> vector_double -
fn vec_nor(vector_long, vector_long) -> vector_long -
fn vec_nor(vector_long, vector_bool_long) -> vector_long -
fn vec_nor(vector_bool_long, vector_long) -> vector_long -
fn vec_nor(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_nor(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_nor(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_or(vector_double, vector_double) -> vector_double -
fn vec_or(vector_double, vector_bool_long) -> vector_double -
fn vec_or(vector_bool_long, vector_double) -> vector_double -
fn vec_or(vector_long, vector_long) -> vector_long -
fn vec_or(vector_long, vector_bool_long) -> vector_long -
fn vec_or(vector_bool_long, vector_long) -> vector_long -
fn vec_or(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_or(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_or(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_perm(vector_double, vector_double, vector_unsigned_char) -> vector_double -
fn vec_perm(vector_long, vector_long, vector_unsigned_char) -> vector_long -
fn vec_perm(vector_unsigned_long, vector_unsigned_long, vector_unsigned_char) -> vector_unsigned_long -
fn vec_permxor(vector_bool_char, vector_bool_char, vector_bool_char) -> vector_bool_char -
fn vec_permxor(vector_signed_char, vector_signed_char, vector_signed_char) -> vector_unsigned_char -
fn vec_permxor(vector_unsigned_char, vector_unsigned_char, vector_unsigned_char) -> vector_unsigned_char -
fn vec_rint(vector_double) -> vector_double -
fn vec_recip(vector_double, vector_double) -> vector_double -
fn vec_rsqrt(vector_double) -> vector_double -
fn vec_rsqrte(vector_double) -> vector_double -
fn vec_sel(vector_double, vector_double, vector_bool_long) -> vector_double -
fn vec_sel(vector_double, vector_double, vector_unsigned_long) -> vector_double -
fn vec_sel(vector_long, vector_long, vector_long) -> vector_long -
fn vec_sel(vector_long, vector_long, vector_unsigned_long) -> vector_long -
fn vec_sel(vector_long, vector_long, vector_bool_long) -> vector_long -
fn vec_sel(vector_unsigned_long, vector_unsigned_long, vector_long) -> vector_unsigned_long -
fn vec_sel(vector_unsigned_long, vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_sel(vector_unsigned_long, vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_splats(&mut f64) -> vector_double -
fn vec_splats(&mut i64) -> vector_signed_long -
fn vec_splats(&mut u64) -> vector_unsigned_long -
fn vec_sqrt(vector_float) -> vector_float -
fn vec_sqrt(vector_double) -> vector_double -
fn vec_st(vector_double, &mut i32, vector_double) -> () -
fn vec_st(vector_double, &mut i32, &mut f64) -> () -
fn vec_sub(vector_double, vector_double) -> vector_double -
fn vec_trunc(vector_double) -> vector_double -
fn vec_xl(&mut i32, vector_double) -> vector_double -
fn vec_xl(&mut i32, &mut f64) -> vector_double -
fn vec_xl(&mut i32, vector_long_long) -> vector_long_long -
fn vec_xl(&mut i32, &mut i64) -> vector_long_long -
fn vec_xl(&mut i32, vector_unsigned_long_long) -> vector_unsigned_long_long -
fn vec_xl(&mut i32, &mut u128) -> vector_unsigned_long_long -
fn vec_xl(&mut i32, vector_float) -> vector_float -
fn vec_xl(&mut i32, &mut i32) -> vector_float -
fn vec_xl(&mut i32, vector_int) -> vector_int -
fn vec_xl(&mut i32, &mut i32) -> vector_int -
fn vec_xl(&mut i32, vector_unsigned_int) -> vector_unsigned_int -
fn vec_xl(&mut i32, &mut u32) -> vector_unsigned_int -
fn vec_xor(vector_double, vector_double) -> vector_double -
fn vec_xor(vector_double, vector_bool_long) -> vector_double -
fn vec_xor(vector_bool_long, vector_double) -> vector_double -
fn vec_xor(vector_long, vector_long) -> vector_long -
fn vec_xor(vector_long, vector_bool_long) -> vector_long -
fn vec_xor(vector_bool_long, vector_long) -> vector_long -
fn vec_xor(vector_unsigned_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_xor(vector_unsigned_long, vector_bool_long) -> vector_unsigned_long -
fn vec_xor(vector_bool_long, vector_unsigned_long) -> vector_unsigned_long -
fn vec_xst(vector_double, &mut i32, vector_double) -> () -
fn vec_xst(vector_double, &mut i32, &mut f64) -> () -
fn vec_xst(vector_long_long, &mut i32, vector_long_long) -> () -
fn vec_xst(vector_long_long, &mut i32, &mut i64) -> () -
fn vec_xst(vector_unsigned_long_long, &mut i32, vector_unsigned_long_long) -> () -
fn vec_xst(vector_unsigned_long_long, &mut i32, &mut u128) -> () -
fn vec_xst(vector_float, &mut i32, vector_float) -> () -
fn vec_xst(vector_float, &mut i32, &mut i32) -> () -
fn vec_xst(vector_int, &mut i32, vector_int) -> () -
fn vec_xst(vector_int, &mut i32, &mut i32) -> () -
fn vec_xst(vector_unsigned_int, &mut i32, vector_unsigned_int) -> () -
fn vec_xst(vector_unsigned_int, &mut i32, &mut u32) -> () -
fn vec_all_eq(vector_double, vector_double) -> &mut i32 -
fn vec_all_ge(vector_double, vector_double) -> &mut i32 -
fn vec_all_gt(vector_double, vector_double) -> &mut i32 -
fn vec_all_le(vector_double, vector_double) -> &mut i32 -
fn vec_all_lt(vector_double, vector_double) -> &mut i32 -
fn vec_all_nan(vector_double) -> &mut i32 -
fn vec_all_ne(vector_double, vector_double) -> &mut i32 -
fn vec_all_nge(vector_double, vector_double) -> &mut i32 -
fn vec_all_ngt(vector_double, vector_double) -> &mut i32 -
fn vec_all_nle(vector_double, vector_double) -> &mut i32 -
fn vec_all_nlt(vector_double, vector_double) -> &mut i32 -
fn vec_all_numeric(vector_double) -> &mut i32 -
fn vec_any_eq(vector_double, vector_double) -> &mut i32 -
fn vec_any_ge(vector_double, vector_double) -> &mut i32 -
fn vec_any_gt(vector_double, vector_double) -> &mut i32 -
fn vec_any_le(vector_double, vector_double) -> &mut i32 -
fn vec_any_lt(vector_double, vector_double) -> &mut i32 -
fn vec_any_nan(vector_double) -> &mut i32 -
fn vec_any_ne(vector_double, vector_double) -> &mut i32 -
fn vec_any_nge(vector_double, vector_double) -> &mut i32 -
fn vec_any_ngt(vector_double, vector_double) -> &mut i32 -
fn vec_any_nle(vector_double, vector_double) -> &mut i32 -
fn vec_any_nlt(vector_double, vector_double) -> &mut i32 -
fn vec_any_numeric(vector_double) -> &mut i32 -
fn vec_vsx_ld(&mut i32, &vector_double) -> vector_double -
fn vec_vsx_ld(&mut i32, &f64) -> vector_double -
fn vec_vsx_ld(&mut i32, &vector_float) -> vector_float -
fn vec_vsx_ld(&mut i32, &i32) -> vector_float -
fn vec_vsx_ld(&mut i32, &vector_bool_int) -> vector_bool_int -
fn vec_vsx_ld(&mut i32, &vector_signed_int) -> vector_signed_int -
fn vec_vsx_ld(&mut i32, &i32) -> vector_signed_int -
fn vec_vsx_ld(&mut i32, &i64) -> vector_signed_int -
fn vec_vsx_ld(&mut i32, &vector_unsigned_int) -> vector_unsigned_int -
fn vec_vsx_ld(&mut i32, &u32) -> vector_unsigned_int -
fn vec_vsx_ld(&mut i32, &u64) -> vector_unsigned_int -
fn vec_vsx_ld(&mut i32, &vector_bool_short) -> vector_bool_short -
fn vec_vsx_ld(&mut i32, &vector_pixel) -> vector_pixel -
fn vec_vsx_ld(&mut i32, &vector_signed_short) -> vector_signed_short -
fn vec_vsx_ld(&mut i32, &i16) -> vector_signed_short -
fn vec_vsx_ld(&mut i32, &vector_unsigned_short) -> vector_unsigned_short -
fn vec_vsx_ld(&mut i32, &u16) -> vector_unsigned_short -
fn vec_vsx_ld(&mut i32, &vector_bool_char) -> vector_bool_char -
fn vec_vsx_ld(&mut i32, &vector_signed_char) -> vector_signed_char -
fn vec_vsx_ld(&mut i32, &i8) -> vector_signed_char -
fn vec_vsx_ld(&mut i32, &vector_unsigned_char) -> vector_unsigned_char -
fn vec_vsx_ld(&mut i32, &u8) -> vector_unsigned_char -
fn vec_vsx_st(vector_double, &mut i32, vector_double) -> () -
fn vec_vsx_st(vector_double, &mut i32, &mut f64) -> () -
fn vec_vsx_st(vector_float, &mut i32, vector_float) -> () -
fn vec_vsx_st(vector_float, &mut i32, &mut i32) -> () -
fn vec_vsx_st(vector_signed_int, &mut i32, vector_signed_int) -> () -
fn vec_vsx_st(vector_signed_int, &mut i32, &mut i32) -> () -
fn vec_vsx_st(vector_unsigned_int, &mut i32, vector_unsigned_int) -> () -
fn vec_vsx_st(vector_unsigned_int, &mut i32, &mut u32) -> () -
fn vec_vsx_st(vector_bool_int, &mut i32, vector_bool_int) -> () -
fn vec_vsx_st(vector_bool_int, &mut i32, &mut u32) -> () -
fn vec_vsx_st(vector_bool_int, &mut i32, &mut i32) -> () -
fn vec_vsx_st(vector_signed_short, &mut i32, vector_signed_short) -> () -
fn vec_vsx_st(vector_signed_short, &mut i32, &mut i16) -> () -
fn vec_vsx_st(vector_unsigned_short, &mut i32, vector_unsigned_short) -> () -
fn vec_vsx_st(vector_unsigned_short, &mut i32, &mut u16) -> () -
fn vec_vsx_st(vector_bool_short, &mut i32, vector_bool_short) -> () -
fn vec_vsx_st(vector_bool_short, &mut i32, &mut u16) -> () -
fn vec_vsx_st(vector_pixel, &mut i32, vector_pixel) -> () -
fn vec_vsx_st(vector_pixel, &mut i32, &mut u16) -> () -
fn vec_vsx_st(vector_pixel, &mut i32, &mut i16) -> () -
fn vec_vsx_st(vector_bool_short, &mut i32, &mut i16) -> () -
fn vec_vsx_st(vector_signed_char, &mut i32, vector_signed_char) -> () -
fn vec_vsx_st(vector_signed_char, &mut i32, &mut i8) -> () -
fn vec_vsx_st(vector_unsigned_char, &mut i32, vector_unsigned_char) -> () -
fn vec_vsx_st(vector_unsigned_char, &mut i32, &mut u8) -> () -
fn vec_vsx_st(vector_bool_char, &mut i32, vector_bool_char) -> () -
fn vec_vsx_st(vector_bool_char, &mut i32, &mut u8) -> () -
fn vec_vsx_st(vector_bool_char, &mut i32, &mut i8) -> () -
fn vec_xxpermdi(vector_double, vector_double, i32) -> vector_double -
fn vec_xxpermdi(vector_float, vector_float, i32) -> vector_float -
fn vec_xxpermdi(vector_long_long, vector_long_long, i32) -> vector_long_long -
fn vec_xxpermdi(vector_unsigned_long_long, vector_unsigned_long_long, i32) -> vector_unsigned_long_long -
fn vec_xxpermdi(vector_int, vector_int, i32) -> vector_int -
fn vec_xxpermdi(vector_unsigned_int, vector_unsigned_int, i32) -> vector_unsigned_int -
fn vec_xxpermdi(vector_short, vector_short, i32) -> vector_short -
fn vec_xxpermdi(vector_unsigned_short, vector_unsigned_short, i32) -> vector_unsigned_short -
fn vec_xxpermdi(vector_signed_char, vector_signed_char, i32) -> vector_signed_char -
fn vec_xxpermdi(vector_unsigned_char, vector_unsigned_char, i32) -> vector_unsigned_char -
fn vec_xxsldi(vector_double, vector_double, &mut i32) -> vector_double -
fn vec_xxsldi(vector_float, vector_float, &mut i32) -> vector_float -
fn vec_xxsldi(vector_long_long, vector_long_long, &mut i32) -> vector_long_long -
fn vec_xxsldi(vector_unsigned_long_long, vector_unsigned_long_long, &mut i32) -> vector_unsigned_long_long -
fn vec_xxsldi(vector_int, vector_int, &mut i32) -> vector_int -
fn vec_xxsldi(vector_unsigned_int, vector_unsigned_int, &mut i32) -> vector_unsigned_int -
fn vec_xxsldi(vector_short, vector_short, &mut i32) -> vector_short -
fn vec_xxsldi(vector_unsigned_short, vector_unsigned_short, &mut i32) -> vector_unsigned_short -
fn vec_xxsldi(vector_signed_char, vector_signed_char, &mut i32) -> vector_signed_char -
fn vec_xxsldi(vector_unsigned_char, vector_unsigned_char, &mut i32) -> vector_unsigned_char
- 主要言語
- Rust
- スター
- 694
- フォーク
- 341
- 平均マージ
- 3日 2時間
- マージ済み PR(30日)
- 14
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
rust-lang/stdarch のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rust-lang/stdarch#2218 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
A-x86 P-high
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rust-lang/stdarch#522 · コメント 26 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 64/100
rust-lang/stdarch#2216 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Can non-temporal loads use the LLVM intrinsic instead?対応中かも @ruriww が 101 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
rust-lang/stdarch#2154 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
rust-lang/stdarch の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
nautechsystems/nautilus_trader#5365 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
IntersectMBO/developer-experience#347 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
registrystack/registry-stack#2168 ·
メンテナーはふだん 1 日以内に返信
-
bug crate: 3d help wanted triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
kornia/kornia-rs#1203 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信