using _mm256_castsi128_si256 instead of _mm256_insertf128_si256 in shift_left/shift_right to avoid uninitialized warning