12.07.2015 Views

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

使 用 NEON 支 持E.3.1加 法以 下 内 在 函 数 对 向 量 进 行 加 法 运 算 。 结 果 中 的 每 条 向 量 线 都 是 对 每 个 操 作 数 向量 中 的 相 应 向 量 线 执 行 加 法 运 算 的 结 果 。 执 行 的 运 算 如 下 :• 向 量 加 法 :vadd -> Vr[i]:=Va[i]+Vb[i]• 向 量 长 型 加 法 :vadd -> Vr[i]:=Va[i]+Vb[i]• 第 E-6 页 的 向 量 宽 型 加 法 :vadd -> Vr[i]:=Va[i]+Vb[i]• 第 E-6 页 的 向 量 半 加 :vhadd -> Vr[i]:=(Va[i]+Vb[i])>>1• 第 E-6 页 的 向 量 舍 入 半 加 :vrhadd -> Vr[i]:=(Va[i]+Vb[i]+1)>>1• 第 E-7 页 的 向 量 饱 和 加 法 :vqadd -> Vr[i]:=sat(Va[i]+Vb[i])• 第 E-7 页 的 高 位 半 部 分 向 量 加 法 :- > Vr[i]:=Va[i]+Vb[i]• 第 E-7 页 的 高 位 半 部 分 向 量 舍 入 加 法向 量 加 法 :vadd -> Vr[i]:=Va[i]+Vb[i]Vr、 Va、 Vb 具 有 相 等 的 向 量 线 大 小 。int8x8_t vadd_s8(int8x8_t a, int8x8_t b); // VADD.I8 d0,d0,d0int16x4_t vadd_s16(int16x4_t a, int16x4_t b); // VADD.I16 d0,d0,d0int32x2_t vadd_s32(int32x2_t a, int32x2_t b); // VADD.I32 d0,d0,d0int64x1_t vadd_s64(int64x1_t a, int64x1_t b); // VADD.I64 d0,d0,d0float32x2_t vadd_f32(float32x2_t a, float32x2_t b); // VADD.F32 d0,d0,d0uint8x8_t vadd_u8(uint8x8_t a, uint8x8_t b); // VADD.I8 d0,d0,d0uint16x4_t vadd_u16(uint16x4_t a, uint16x4_t b); // VADD.I16 d0,d0,d0uint32x2_t vadd_u32(uint32x2_t a, uint32x2_t b); // VADD.I32 d0,d0,d0uint64x1_t vadd_u64(uint64x1_t a, uint64x1_t b); // VADD.I64 d0,d0,d0int8x16_t vaddq_s8(int8x16_t a, int8x16_t b); // VADD.I8 q0,q0,q0int16x8_t vaddq_s16(int16x8_t a, int16x8_t b); // VADD.I16 q0,q0,q0int32x4_t vaddq_s32(int32x4_t a, int32x4_t b); // VADD.I32 q0,q0,q0int64x2_t vaddq_s64(int64x2_t a, int64x2_t b); // VADD.I64 q0,q0,q0float32x4_t vaddq_f32(float32x4_t a, float32x4_t b); // VADD.F32 q0,q0,q0uint8x16_t vaddq_u8(uint8x16_t a, uint8x16_t b); // VADD.I8 q0,q0,q0uint16x8_t vaddq_u16(uint16x8_t a, uint16x8_t b); // VADD.I16 q0,q0,q0uint32x4_t vaddq_u32(uint32x4_t a, uint32x4_t b); // VADD.I32 q0,q0,q0uint64x2_t vaddq_u64(uint64x2_t a, uint64x2_t b); // VADD.I64 q0,q0,q0向 量 长 型 加 法 :vadd -> Vr[i]:=Va[i]+Vb[i]Va、 Vb 具 有 相 等 的 向 量 线 大 小 , 结 果 为 向 量 线 宽 度 变 成 两 倍 的 128 位 向 量 。int16x8_t vaddl_s8(int8x8_t a, int8x8_t b);int32x4_t vaddl_s16(int16x4_t a, int16x4_t b);int64x2_t vaddl_s32(int32x2_t a, int32x2_t b);// VADDL.S8 q0,d0,d0// VADDL.S16 q0,d0,d0// VADDL.S32 q0,d0,d0<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. E-5ID090708Non-Confidential, Unrestricted Access

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!