MCPcopy Create free account
hub / github.com/numpy/numpy / npyv_lut32_u32

Function npyv_lut32_u32

numpy/core/src/common/simd/vec/memory.h:665–676  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

663// uses vector as indexes into a table
664// that contains 32 elements of float32.
665NPY_FINLINE npyv_u32 npyv_lut32_u32(const npy_uint32 *table, npyv_u32 idx)
666{
667 const unsigned i0 = vec_extract(idx, 0);
668 const unsigned i1 = vec_extract(idx, 1);
669 const unsigned i2 = vec_extract(idx, 2);
670 const unsigned i3 = vec_extract(idx, 3);
671 npyv_u32 r = vec_promote(table[i0], 0);
672 r = vec_insert(table[i1], r, 1);
673 r = vec_insert(table[i2], r, 2);
674 r = vec_insert(table[i3], r, 3);
675 return r;
676}
677NPY_FINLINE npyv_s32 npyv_lut32_s32(const npy_int32 *table, npyv_u32 idx)
678{ return (npyv_s32)npyv_lut32_u32((const npy_uint32*)table, idx); }
679#if NPY_SIMD_F32

Callers 2

npyv_lut32_s32Function · 0.70
npyv_lut32_f32Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected