Index: include/clang/Basic/BuiltinsX86.def =================================================================== --- include/clang/Basic/BuiltinsX86.def +++ include/clang/Basic/BuiltinsX86.def @@ -2041,9 +2041,9 @@ TARGET_BUILTIN(__builtin_ia32_cvtusi2sd64, "V2dV2dULLiIi","","avx512f") TARGET_BUILTIN(__builtin_ia32_cvtusi2ss32, "V4fV4fUiIi","","avx512f") TARGET_BUILTIN(__builtin_ia32_cvtusi2ss64, "V4fV4fULLiIi","","avx512f") -TARGET_BUILTIN(__builtin_ia32_vpmultishiftqb512_mask, "V64cV64cV64cV64cULLi","","avx512vbmi") -TARGET_BUILTIN(__builtin_ia32_vpmultishiftqb128_mask, "V16cV16cV16cV16cUs","","avx512vbmi,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmultishiftqb256_mask, "V32cV32cV32cV32cUi","","avx512vbmi,avx512vl") +TARGET_BUILTIN(__builtin_ia32_vpmultishiftqb512_mask, "V8LLiV8LLiV8LLiV8LLiUc","","avx512vbmi") +TARGET_BUILTIN(__builtin_ia32_vpmultishiftqb128_mask, "V2LLiV2LLiV2LLiV2LLiUc","","avx512vbmi,avx512vl") +TARGET_BUILTIN(__builtin_ia32_vpmultishiftqb256_mask, "V4LLiV4LLiV4LLiV4LLiUc","","avx512vbmi,avx512vl") // generic select intrinsics TARGET_BUILTIN(__builtin_ia32_selectb_128, "V16cUsV16cV16c", "", "") Index: lib/Headers/avx512vbmiintrin.h =================================================================== --- lib/Headers/avx512vbmiintrin.h +++ lib/Headers/avx512vbmiintrin.h @@ -105,30 +105,30 @@ } static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_multishift_epi64_epi8 (__m512i __W, __mmask64 __M, __m512i __X, __m512i __Y) +_mm512_mask_multishift_epi64_epi8 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { - return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X, - (__v64qi) __Y, - (__v64qi) __W, - (__mmask64) __M); + return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) __W, + (__mmask8) __M); } static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_maskz_multishift_epi64_epi8 (__mmask64 __M, __m512i __X, __m512i __Y) +_mm512_maskz_multishift_epi64_epi8 (__mmask8 __M, __m512i __X, __m512i __Y) { - return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X, - (__v64qi) __Y, - (__v64qi) _mm512_setzero_si512 (), - (__mmask64) __M); + return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) _mm512_setzero_si512 (), + (__mmask8) __M); } static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_multishift_epi64_epi8 (__m512i __X, __m512i __Y) { - return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X, - (__v64qi) __Y, - (__v64qi) _mm512_undefined_epi32 (), - (__mmask64) -1); + return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v8di) __X, + (__v8di) __Y, + (__v8di) _mm512_undefined_epi32 (), + (__mmask8) -1); } Index: lib/Headers/avx512vbmivlintrin.h =================================================================== --- lib/Headers/avx512vbmivlintrin.h +++ lib/Headers/avx512vbmivlintrin.h @@ -184,61 +184,61 @@ } static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_mask_multishift_epi64_epi8 (__m128i __W, __mmask16 __M, __m128i __X, __m128i __Y) +_mm_mask_multishift_epi64_epi8 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { - return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X, - (__v16qi) __Y, - (__v16qi) __W, - (__mmask16) __M); + return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) __W, + (__mmask8) __M); } static __inline__ __m128i __DEFAULT_FN_ATTRS -_mm_maskz_multishift_epi64_epi8 (__mmask16 __M, __m128i __X, __m128i __Y) +_mm_maskz_multishift_epi64_epi8 (__mmask8 __M, __m128i __X, __m128i __Y) { - return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X, - (__v16qi) __Y, - (__v16qi) + return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) _mm_setzero_si128 (), - (__mmask16) __M); + (__mmask8) __M); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_multishift_epi64_epi8 (__m128i __X, __m128i __Y) { - return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X, - (__v16qi) __Y, - (__v16qi) + return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v2di) __X, + (__v2di) __Y, + (__v2di) _mm_undefined_si128 (), - (__mmask16) -1); + (__mmask8) -1); } static __inline__ __m256i __DEFAULT_FN_ATTRS -_mm256_mask_multishift_epi64_epi8 (__m256i __W, __mmask32 __M, __m256i __X, __m256i __Y) +_mm256_mask_multishift_epi64_epi8 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { - return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X, - (__v32qi) __Y, - (__v32qi) __W, - (__mmask32) __M); + return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) __W, + (__mmask8) __M); } static __inline__ __m256i __DEFAULT_FN_ATTRS -_mm256_maskz_multishift_epi64_epi8 (__mmask32 __M, __m256i __X, __m256i __Y) +_mm256_maskz_multishift_epi64_epi8 (__mmask8 __M, __m256i __X, __m256i __Y) { - return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X, - (__v32qi) __Y, - (__v32qi) + return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) _mm256_setzero_si256 (), - (__mmask32) __M); + (__mmask8) __M); } static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_multishift_epi64_epi8 (__m256i __X, __m256i __Y) { - return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X, - (__v32qi) __Y, - (__v32qi) + return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v4di) __X, + (__v4di) __Y, + (__v4di) _mm256_undefined_si256 (), - (__mmask32) -1); + (__mmask8) -1); } Index: test/CodeGen/avx512vbmi-builtins.c =================================================================== --- test/CodeGen/avx512vbmi-builtins.c +++ test/CodeGen/avx512vbmi-builtins.c @@ -45,13 +45,13 @@ return _mm512_mask_permutexvar_epi8(__W, __M, __A, __B); } -__m512i test_mm512_mask_multishift_epi64_epi8(__m512i __W, __mmask64 __M, __m512i __X, __m512i __Y) { +__m512i test_mm512_mask_multishift_epi64_epi8(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { // CHECK-LABEL: @test_mm512_mask_multishift_epi64_epi8 // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.512 return _mm512_mask_multishift_epi64_epi8(__W, __M, __X, __Y); } -__m512i test_mm512_maskz_multishift_epi64_epi8(__mmask64 __M, __m512i __X, __m512i __Y) { +__m512i test_mm512_maskz_multishift_epi64_epi8(__mmask8 __M, __m512i __X, __m512i __Y) { // CHECK-LABEL: @test_mm512_maskz_multishift_epi64_epi8 // CHECK: @llvm.x86.avx512.mask.pmultishift.qb.512 return _mm512_maskz_multishift_epi64_epi8(__M, __X, __Y);