add AVX implentation