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

Method test_operators_shift

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

Source from the content-addressed store, hash-verified

247 To test all integer vector types at once
248 """
249 def test_operators_shift(self):
250 if self.sfx in ("u8", "s8"):
251 return
252
253 data_a = self._data(self._int_max() - self.nlanes)
254 data_b = self._data(self._int_min(), reverse=True)
255 vdata_a, vdata_b = self.load(data_a), self.load(data_b)
256
257 for count in range(self._scalar_size()):
258 # load to cast
259 data_shl_a = self.load([a << count for a in data_a])
260 # left shift
261 shl = self.shl(vdata_a, count)
262 assert shl == data_shl_a
263 # load to cast
264 data_shr_a = self.load([a >> count for a in data_a])
265 # right shift
266 shr = self.shr(vdata_a, count)
267 assert shr == data_shr_a
268
269 # shift by zero or max or out-range immediate constant is not applicable and illogical
270 for count in range(1, self._scalar_size()):
271 # load to cast
272 data_shl_a = self.load([a << count for a in data_a])
273 # left shift by an immediate constant
274 shli = self.shli(vdata_a, count)
275 assert shli == data_shl_a
276 # load to cast
277 data_shr_a = self.load([a >> count for a in data_a])
278 # right shift by an immediate constant
279 shri = self.shri(vdata_a, count)
280 assert shri == data_shr_a
281
282 def test_arithmetic_subadd_saturated(self):
283 if self.sfx in ("u32", "s32", "u64", "s64"):

Callers

nothing calls this directly

Calls 4

_int_maxMethod · 0.80
_int_minMethod · 0.80
_scalar_sizeMethod · 0.80
_dataMethod · 0.45

Tested by

no test coverage detected