E.3.19. 将所有向量线设置为相同的值

以下内在函数将所有向量线设置为相同的值。

将所有向量线设置为相同的值


uint8x8_t   vdup_n_u8(uint8_t value);      // VDUP.8 d0,r0 

uint16x4_t  vdup_n_u16(uint16_t value);    // VDUP.16 d0,r0

uint32x2_t  vdup_n_u32(uint32_t value);    // VDUP.32 d0,r0

int8x8_t    vdup_n_s8(int8_t value);       // VDUP.8 d0,r0 

int16x4_t   vdup_n_s16(int16_t value);     // VDUP.16 d0,r0

int32x2_t   vdup_n_s32(int32_t value);     // VDUP.32 d0,r0

poly8x8_t   vdup_n_p8(poly8_t value);      // VDUP.8 d0,r0 

poly16x4_t  vdup_n_p16(poly16_t value);    // VDUP.16 d0,r0

float32x2_t vdup_n_f32(float32_t value);   // VDUP.32 d0,r0

uint8x16_t  vdupq_n_u8(uint8_t value);     // VDUP.8 q0,r0 

uint16x8_t  vdupq_n_u16(uint16_t value);   // VDUP.16 q0,r0

uint32x4_t  vdupq_n_u32(uint32_t value);   // VDUP.32 q0,r0

int8x16_t   vdupq_n_s8(int8_t value);      // VDUP.8 q0,r0 

int16x8_t   vdupq_n_s16(int16_t value);    // VDUP.16 q0,r0

int32x4_t   vdupq_n_s32(int32_t value);    // VDUP.32 q0,r0

poly8x16_t  vdupq_n_p8(poly8_t value);     // VDUP.8 q0,r0 

poly16x8_t  vdupq_n_p16(poly16_t value);   // VDUP.16 q0,r0

float32x4_t vdupq_n_f32(float32_t value);  // VDUP.32 q0,r0

int64x1_t   vdup_n_s64(int64_t value);     // VMOV d0,r0,r0

uint64x1_t  vdup_n_u64(uint64_t value);    // VMOV d0,r0,r0

int64x2_t   vdupq_n_s64(int64_t value);    // VMOV d0,r0,r0

uint64x2_t  vdupq_n_u64(uint64_t value);   // VMOV d0,r0,r0

uint8x8_t   vmov_n_u8(uint8_t value);      // VDUP.8 d0,r0 

uint16x4_t  vmov_n_u16(uint16_t value);    // VDUP.16 d0,r0

uint32x2_t  vmov_n_u32(uint32_t value);    // VDUP.32 d0,r0

int8x8_t    vmov_n_s8(int8_t value);       // VDUP.8 d0,r0 

int16x4_t   vmov_n_s16(int16_t value);     // VDUP.16 d0,r0

int32x2_t   vmov_n_s32(int32_t value);     // VDUP.32 d0,r0

poly8x8_t   vmov_n_p8(poly8_t value);      // VDUP.8 d0,r0 

poly16x4_t  vmov_n_p16(poly16_t value);    // VDUP.16 d0,r0

float32x2_t vmov_n_f32(float32_t value);   // VDUP.32 d0,r0

uint8x16_t  vmovq_n_u8(uint8_t value);     // VDUP.8 q0,r0 

uint16x8_t  vmovq_n_u16(uint16_t value);   // VDUP.16 q0,r0

uint32x4_t  vmovq_n_u32(uint32_t value);   // VDUP.32 q0,r0

int8x16_t   vmovq_n_s8(int8_t value);      // VDUP.8 q0,r0 

int16x8_t   vmovq_n_s16(int16_t value);    // VDUP.16 q0,r0

int32x4_t   vmovq_n_s32(int32_t value);    // VDUP.32 q0,r0

poly8x16_t  vmovq_n_p8(poly8_t value);     // VDUP.8 q0,r0 

poly16x8_t  vmovq_n_p16(poly16_t value);   // VDUP.16 q0,r0

float32x4_t vmovq_n_f32(float32_t value);  // VDUP.32 q0,r0

int64x1_t   vmov_n_s64(int64_t value);     // VMOV d0,r0,r0

uint64x1_t  vmov_n_u64(uint64_t value);    // VMOV d0,r0,r0

int64x2_t   vmovq_n_s64(int64_t value);    // VMOV d0,r0,r0

uint64x2_t  vmovq_n_u64(uint64_t value);   // VMOV d0,r0,r0

将向量的所有向量线设置为一条向量线的值


uint8x8_t   vdup_lane_u8(uint8x8_t vec, __constrange(0,7) int lane);     // VDUP.8 d0,d0[0] 

uint16x4_t  vdup_lane_u16(uint16x4_t vec, __constrange(0,3) int lane);   // VDUP.16 d0,d0[0]

uint32x2_t  vdup_lane_u32(uint32x2_t vec, __constrange(0,1) int lane);   // VDUP.32 d0,d0[0]

int8x8_t    vdup_lane_s8(int8x8_t vec, __constrange(0,7) int lane);      // VDUP.8 d0,d0[0] 

int16x4_t   vdup_lane_s16(int16x4_t vec, __constrange(0,3) int lane);    // VDUP.16 d0,d0[0]

int32x2_t   vdup_lane_s32(int32x2_t vec, __constrange(0,1) int lane);    // VDUP.32 d0,d0[0]

poly8x8_t   vdup_lane_p8(poly8x8_t vec, __constrange(0,7) int lane);     // VDUP.8 d0,d0[0] 

poly16x4_t  vdup_lane_p16(poly16x4_t vec, __constrange(0,3) int lane);   // VDUP.16 d0,d0[0]

float32x2_t vdup_lane_f32(float32x2_t vec, __constrange(0,1) int lane);  // VDUP.32 d0,d0[0]

uint8x16_t  vdupq_lane_u8(uint8x8_t vec, __constrange(0,7) int lane);    // VDUP.8 q0,d0[0] 

uint16x8_t  vdupq_lane_u16(uint16x4_t vec, __constrange(0,3) int lane);  // VDUP.16 q0,d0[0]

uint32x4_t  vdupq_lane_u32(uint32x2_t vec, __constrange(0,1) int lane);  // VDUP.32 q0,d0[0]

int8x16_t   vdupq_lane_s8(int8x8_t vec, __constrange(0,7) int lane);     // VDUP.8 q0,d0[0] 

int16x8_t   vdupq_lane_s16(int16x4_t vec, __constrange(0,3) int lane);   // VDUP.16 q0,d0[0]

int32x4_t   vdupq_lane_s32(int32x2_t vec, __constrange(0,1) int lane);   // VDUP.32 q0,d0[0]

poly8x16_t  vdupq_lane_p8(poly8x8_t vec, __constrange(0,7) int lane);    // VDUP.8 q0,d0[0] 

poly16x8_t  vdupq_lane_p16(poly16x4_t vec, __constrange(0,3) int lane);  // VDUP.16 q0,d0[0]

float32x4_t vdupq_lane_f32(float32x2_t vec, __constrange(0,1) int lane); // VDUP.32 q0,d0[0]

int64x1_t   vdup_lane_s64(int64x1_t vec, __constrange(0,0) int lane);    // VMOV d0,d0      

uint64x1_t  vdup_lane_u64(uint64x1_t vec, __constrange(0,0) int lane);   // VMOV d0,d0      

int64x2_t   vdupq_lane_s64(int64x1_t vec, __constrange(0,0) int lane);   // VMOV q0,q0      

uint64x2_t  vdupq_lane_u64(uint64x1_t vec, __constrange(0,0) int lane);  // VMOV q0,q0      

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential