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

Method test_reorder

numpy/core/tests/test_simd.py:944–980  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

942 self.npyv.cleanup()
943
944 def test_reorder(self):
945 data_a, data_b = self._data(), self._data(reverse=True)
946 vdata_a, vdata_b = self.load(data_a), self.load(data_b)
947 # lower half part
948 data_a_lo = data_a[:self.nlanes//2]
949 data_b_lo = data_b[:self.nlanes//2]
950 # higher half part
951 data_a_hi = data_a[self.nlanes//2:]
952 data_b_hi = data_b[self.nlanes//2:]
953 # combine two lower parts
954 combinel = self.combinel(vdata_a, vdata_b)
955 assert combinel == data_a_lo + data_b_lo
956 # combine two higher parts
957 combineh = self.combineh(vdata_a, vdata_b)
958 assert combineh == data_a_hi + data_b_hi
959 # combine x2
960 combine = self.combine(vdata_a, vdata_b)
961 assert combine == (data_a_lo + data_b_lo, data_a_hi + data_b_hi)
962
963 # zip(interleave)
964 data_zipl = self.load([
965 v for p in zip(data_a_lo, data_b_lo) for v in p
966 ])
967 data_ziph = self.load([
968 v for p in zip(data_a_hi, data_b_hi) for v in p
969 ])
970 vzip = self.zip(vdata_a, vdata_b)
971 assert vzip == (data_zipl, data_ziph)
972 vzip = [0]*self.nlanes*2
973 self._x2("store")(vzip, (vdata_a, vdata_b))
974 assert vzip == list(data_zipl) + list(data_ziph)
975
976 # unzip(deinterleave)
977 unzip = self.unzip(data_zipl, data_ziph)
978 assert unzip == (data_a, data_b)
979 unzip = self._x2("load")(list(data_zipl) + list(data_ziph))
980 assert unzip == (data_a, data_b)
981
982 def test_reorder_rev64(self):
983 # Reverse elements of each 64-bit lane

Callers

nothing calls this directly

Calls 2

_x2Method · 0.80
_dataMethod · 0.45

Tested by

no test coverage detected