__m256i test_mm256_mulhi_epu16(__m256i a, __m256i b) { // CHECK-LABEL: test_mm256_mulhi_epu16 // CHECK: call <16 x i16> @llvm.x86.avx2.pmulhu.w(<16 x i16> %{{.*}}, <16 x i16> %{{.*}}) return _mm256_mulhi_epu16(a, b); }
__m256i test_mm256_mulhi_epu16(__m256i a, __m256i b) { // CHECK: @llvm.x86.avx2.pmulhu.w return _mm256_mulhi_epu16(a, b); }
template<bool align> SIMD_INLINE __m256i AverageRow16(const Buffer & buffer, size_t offset) { return _mm256_mulhi_epu16(K16_DIVISION_BY_9_FACTOR, _mm256_add_epi16( _mm256_add_epi16(K16_0005, Load<align>((__m256i*)(buffer.src0 + offset))), _mm256_add_epi16(Load<align>((__m256i*)(buffer.src1 + offset)), Load<align>((__m256i*)(buffer.src2 + offset))))); }