Implement VSX Intrinsics
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
该 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 小时
- 30 天内合并 PR
- 14
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 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 于 102 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 48/100
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 55/100
rust-lang/stdarch#2154 · 1 条评论 ·
维护者通常 1 天内回复
查看 rust-lang/stdarch 的全部 Issue
相似的 Issue
-
area:desktop priority:p2 type:bug
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 88/100
fritzprix/libr-agent#2165 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 69/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
-
area:ecosystem bug
难度 2/5 1-3 小时 新手友好度 75/100
Chelis-Lang/chelis#3942 ·
维护者通常 1 天内回复