Lokathor/safe_arch

Full double check of all sideline functions (The ones not `sse` through `avx2`)

Lokathor opened this issue · 1 comments

A shuffled list of all the functions not from the "main line" of sse stuff up trough avx2.

Note that part of "the point" of doing it in this chaotic random order is to prevent you from accidentally making assumptions about one function based on the previous similar function. And also hopefully it will reduce the "boringness" of the task.

Also we probably won't do this all at once because it's a heck of a lot.

  • unsigned __int64 _lzcnt_u64 (unsigned __int64 a)
  • unsigned __int64 _andn_u64 (unsigned __int64 a, unsigned __int64 b)
  • unsigned int _blsi_u32 (unsigned int a)
  • __m128i _mm_aeskeygenassist_si128 (__m128i a, const int imm8)
  • unsigned int _tzcnt_u32 (unsigned int a)
  • int _rdrand64_step (unsigned __int64* val)
  • unsigned __int64 _tzcnt_u64 (unsigned __int64 a)
  • unsigned int _blsr_u32 (unsigned int a)
  • int _rdseed32_step (unsigned int * val)
  • unsigned int _pdep_u32 (unsigned int a, unsigned int mask)
  • unsigned __int64 _mulx_u64 (unsigned __int64 a, unsigned __int64 b, unsigned __int64* hi)
  • __m128i _mm_clmulepi64_si128 (__m128i a, __m128i b, const int imm8)
  • __m128i _mm_aesdeclast_si128 (__m128i a, __m128i RoundKey)
  • unsigned __int64 _pext_u64 (unsigned __int64 a, unsigned __int64 mask)
  • unsigned __int64 _bextr2_u64 (unsigned __int64 a, unsigned __int64 control)
  • int _rdseed16_step (unsigned short * val)
  • unsigned int _andn_u32 (unsigned int a, unsigned int b)
  • unsigned __int64 _blsmsk_u64 (unsigned __int64 a)
  • unsigned int _blsmsk_u32 (unsigned int a)
  • unsigned int _bextr2_u32 (unsigned int a, unsigned int control)
  • int _rdrand16_step (unsigned short* val)
  • unsigned char _addcarryx_u32 (unsigned char c_in, unsigned int a, unsigned int b, unsigned int * out)
  • unsigned int _bextr_u32 (unsigned int a, unsigned int start, unsigned int len)
  • unsigned __int64 _bzhi_u64 (unsigned __int64 a, unsigned int index)
  • int _rdrand32_step (unsigned int* val)
  • unsigned char _addcarryx_u64 (unsigned char c_in, unsigned __int64 a, unsigned __int64 b, unsigned __int64 * out)
  • int _rdseed64_step (unsigned __int64 * val)
  • unsigned __int64 _blsi_u64 (unsigned __int64 a)
  • unsigned __int64 _pdep_u64 (unsigned __int64 a, unsigned __int64 mask)
  • unsigned int _mulx_u32 (unsigned int a, unsigned int b, unsigned int* hi)
  • __m128i _mm_aesenc_si128 (__m128i a, __m128i RoundKey)
  • int _popcnt64 (__int64 a)
  • int _popcnt32 (int a)
  • unsigned int _lzcnt_u32 (unsigned int a)
  • __m128i _mm_aesenclast_si128 (__m128i a, __m128i RoundKey)
  • __m128i _mm_aesdec_si128 (__m128i a, __m128i RoundKey)
  • unsigned int _bzhi_u32 (unsigned int a, unsigned int index)
  • unsigned int _pext_u32 (unsigned int a, unsigned int mask)
  • unsigned __int64 _blsr_u64 (unsigned __int64 a)
  • __m128i _mm_aesimc_si128 (__m128i a)
  • unsigned __int64 _bextr_u64 (unsigned __int64 a, unsigned int start, unsigned int len)

Not In Rust

  • int _mm_tzcnt_32 (unsigned int a)
  • __int64 _mm_tzcnt_64 (unsigned __int64 a)
  • __int64 _mm_popcnt_u64 (unsigned __int64 a)
  • int _mm_popcnt_u32 (unsigned int a)

Closed out in bd48361