============ avx::Int256 ============ Class which provides functionality to use ``int`` type with AVX2. Each object of class ``avx::Int256`` holds 8 ``int`` values. Supported operators =================== +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | Operator | Supported type(s) | Instructions used | Comment | +==============+========================+================================+============================================================+ | +, += |``int``, ``avx::Int256``| AVX, AVX2 | AVX is used when argument is scalar. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | -, -= |``int``, ``avx::Int256``| AVX, AVX2 | Same as above. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | \*, \*= |``int``, ``avx::Int256``| AVX, AVX2 | Same as above. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | /, /= |``int``, ``avx::Int256``| AVX, AVX2 (GCC), AVX512F | AVX512F is used when ``BUILD_USE_AVX512`` is ENABLED | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | %, %= |``int``, ``avx::Int256``| AVX, AVX2 (GCC), AVX512F | AVX512F is used when ``BUILD_USE_AVX512`` is ENABLED | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | <<, <<= |``int``, ``avx::Int256``| AVX2 | | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | >>, >>= |``int``, ``avx::Int256``| AVX2 | | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | &, &= |``int``, ``avx::Int256``| AVX, AVX2 | AVX is used when argument is scalar. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | \|, \|= |``int``, ``avx::Int256``| AVX, AVX2 | Same as above. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | ^, ^= |``int``, ``avx::Int256``| AVX, AVX2 | Same as above. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | ~ | \- | AVX2 | Unitary operator. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | ``[]`` | ``unsigned int`` | N/A | In GCC and MSVC disassembly no SIMD instructions were used | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | == |``int``, ``avx::Int256``| AVX, AVX2 | Returns true if ALL values ARE equal. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ | != |``int``, ``avx::Int256``| AVX, AVX2 | Returns true if ANY value is NOT equal. | +--------------+------------------------+--------------------------------+------------------------------------------------------------+ .. doxygenclass:: avx::Int256 :project: AVX_CPP :members: :undoc-members: :allow-dot-graphs: .. toctree:: :titlesonly: .. toctree:: :hidden: examples Source code