AltiVec

AltiVec-移動
| 移動 || 演算 |


vec_ld / d = vec_ld(a, b);
a : 整数.
b : ポインタ
d : vector

b + a の16byteアライメントした位置から16byteのデータを読み出し, d に格納する.

d u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
vec_st / vec_st(a, b, c);
a : vector
b : 整数
c : ポインタ

a の16byteデータを c + b の16byteアライメントした位置へ書き込む.

a u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
vec_perm / d = vec_perm(a, b, c);
a : vector
b : vector
c : vector
d : vector

a, b の要素を c に示された規則に従って取り出し, d に格納する.

a u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
b u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
c u8 u8 u8 u8 u8 u8 u8 u8 u8 u8 u8
d u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
vec_mergeh / d = vec_mergeh(a, b);
a : vector
b : vector
d : vector

a, b の上位要素を交互に並べて, d に格納する.

a u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
b u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
d u8 s8 b8 u16 s16 b16 u32 s32 b32 f p


例) short 型
a a0 a1 a2 a3 a4 a5 a6 a7
b b0 b1 b2 b3 b4 b5 b6 b7
d a0 b0 a1 b1 a2 b2 a3 b3
vec_mergel / d = vec_mergel(a, b);
a : vector
b : vector
d : vector

a, b の下位要素を交互に並べて, d に格納する.

a u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
b u8 s8 b8 u16 s16 b16 u32 s32 b32 f p
d u8 s8 b8 u16 s16 b16 u32 s32 b32 f p


例) short 型
a a0 a1 a2 a3 a4 a5 a6 a7
b b0 b1 b2 b3 b4 b5 b6 b7
d a4 b4 a5 b5 a6 b6 a7 b7
vec_packs, vec_packsu / d = vec_packs(a, b), d = vec_packsu(a, b);
a : vector
b : vector
d : vector

a, b の各要素を, 符号 (あり, なし) 飽和処理して, a:b の順で d に格納する.

a u16 s16 b16 u32 s32 b32
b u16 s16 b16 u32 s32 b32
d u8 s8 b8 u16 s16 b16


例) short 型
a a0 a1 a2 a3 a4 a5 a6 a7
b b0 b1 b2 b3 b4 b5 b6 b7
d a0 a1 a2 a3 a4 a5 a6 a7 b0 b1 b2 b3 b4 b5 b6 b7
※ 但し d の各要素は, 飽和処理を行ったものを格納する.


ご意見は altivec@s22.xrea.com までお願いします.
最終更新: