Author: ctopper Date: Sat May 26 11:55:26 2018 New Revision: 333348 URL: http://llvm.org/viewvc/llvm-project?rev=333348&view=rev Log: [X86] Remove mask from avx512ifma builtins. Use a select instruction instead.
This reduces from 12 builtins to 6 since we no longer need a mask and maskz version. Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def cfe/trunk/lib/Headers/avx512ifmaintrin.h cfe/trunk/lib/Headers/avx512ifmavlintrin.h cfe/trunk/test/CodeGen/avx512ifma-builtins.c cfe/trunk/test/CodeGen/avx512ifmavl-builtins.c Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=333348&r1=333347&r2=333348&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original) +++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Sat May 26 11:55:26 2018 @@ -1461,18 +1461,12 @@ TARGET_BUILTIN(__builtin_ia32_movdqa64lo TARGET_BUILTIN(__builtin_ia32_movdqa64load256_mask, "V4LLiV4LLiC*V4LLiUc", "n", "avx512vl") TARGET_BUILTIN(__builtin_ia32_movdqa64store128_mask, "vV2LLi*V2LLiUc", "n", "avx512f") TARGET_BUILTIN(__builtin_ia32_movdqa64store256_mask, "vV4LLi*V4LLiUc", "n", "avx512f") -TARGET_BUILTIN(__builtin_ia32_vpmadd52huq512_mask, "V8LLiV8LLiV8LLiV8LLiUc", "nc", "avx512ifma") -TARGET_BUILTIN(__builtin_ia32_vpmadd52huq512_maskz, "V8LLiV8LLiV8LLiV8LLiUc", "nc", "avx512ifma") -TARGET_BUILTIN(__builtin_ia32_vpmadd52luq512_mask, "V8LLiV8LLiV8LLiV8LLiUc", "nc", "avx512ifma") -TARGET_BUILTIN(__builtin_ia32_vpmadd52luq512_maskz, "V8LLiV8LLiV8LLiV8LLiUc", "nc", "avx512ifma") -TARGET_BUILTIN(__builtin_ia32_vpmadd52huq128_mask, "V2LLiV2LLiV2LLiV2LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52huq128_maskz, "V2LLiV2LLiV2LLiV2LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52huq256_mask, "V4LLiV4LLiV4LLiV4LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52huq256_maskz, "V4LLiV4LLiV4LLiV4LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52luq128_mask, "V2LLiV2LLiV2LLiV2LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52luq128_maskz, "V2LLiV2LLiV2LLiV2LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52luq256_mask, "V4LLiV4LLiV4LLiV4LLiUc", "nc", "avx512ifma,avx512vl") -TARGET_BUILTIN(__builtin_ia32_vpmadd52luq256_maskz, "V4LLiV4LLiV4LLiV4LLiUc", "nc", "avx512ifma,avx512vl") +TARGET_BUILTIN(__builtin_ia32_vpmadd52huq512, "V8LLiV8LLiV8LLiV8LLi", "nc", "avx512ifma") +TARGET_BUILTIN(__builtin_ia32_vpmadd52luq512, "V8LLiV8LLiV8LLiV8LLi", "nc", "avx512ifma") +TARGET_BUILTIN(__builtin_ia32_vpmadd52huq128, "V2LLiV2LLiV2LLiV2LLi", "nc", "avx512ifma,avx512vl") +TARGET_BUILTIN(__builtin_ia32_vpmadd52huq256, "V4LLiV4LLiV4LLiV4LLi", "nc", "avx512ifma,avx512vl") +TARGET_BUILTIN(__builtin_ia32_vpmadd52luq128, "V2LLiV2LLiV2LLiV2LLi", "nc", "avx512ifma,avx512vl") +TARGET_BUILTIN(__builtin_ia32_vpmadd52luq256, "V4LLiV4LLiV4LLiV4LLi", "nc", "avx512ifma,avx512vl") TARGET_BUILTIN(__builtin_ia32_vpermi2varqi512_mask, "V64cV64cV64cV64cULLi", "nc", "avx512vbmi") TARGET_BUILTIN(__builtin_ia32_vpermt2varqi512_mask, "V64cV64cV64cV64cULLi", "nc", "avx512vbmi") TARGET_BUILTIN(__builtin_ia32_vpermt2varqi512_maskz, "V64cV64cV64cV64cULLi", "nc", "avx512vbmi") Modified: cfe/trunk/lib/Headers/avx512ifmaintrin.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512ifmaintrin.h?rev=333348&r1=333347&r2=333348&view=diff ============================================================================== --- cfe/trunk/lib/Headers/avx512ifmaintrin.h (original) +++ cfe/trunk/lib/Headers/avx512ifmaintrin.h Sat May 26 11:55:26 2018 @@ -34,57 +34,47 @@ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_madd52hi_epu64 (__m512i __X, __m512i __Y, __m512i __Z) { - return (__m512i) __builtin_ia32_vpmadd52huq512_mask ((__v8di) __X, - (__v8di) __Y, - (__v8di) __Z, - (__mmask8) -1); + return (__m512i)__builtin_ia32_vpmadd52huq512((__v8di) __X, (__v8di) __Y, + (__v8di) __Z); } static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_madd52hi_epu64 (__m512i __W, __mmask8 __M, __m512i __X, - __m512i __Y) +_mm512_mask_madd52hi_epu64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { - return (__m512i) __builtin_ia32_vpmadd52huq512_mask ((__v8di) __W, - (__v8di) __X, - (__v8di) __Y, - (__mmask8) __M); + return (__m512i)__builtin_ia32_selectq_512(__M, + (__v8di)_mm512_madd52hi_epu64(__W, __X, __Y), + (__v8di)__W); } static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_madd52hi_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) { - return (__m512i) __builtin_ia32_vpmadd52huq512_maskz ((__v8di) __X, - (__v8di) __Y, - (__v8di) __Z, - (__mmask8) __M); + return (__m512i)__builtin_ia32_selectq_512(__M, + (__v8di)_mm512_madd52hi_epu64(__X, __Y, __Z), + (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_madd52lo_epu64 (__m512i __X, __m512i __Y, __m512i __Z) { - return (__m512i) __builtin_ia32_vpmadd52luq512_mask ((__v8di) __X, - (__v8di) __Y, - (__v8di) __Z, - (__mmask8) -1); + return (__m512i)__builtin_ia32_vpmadd52luq512((__v8di) __X, (__v8di) __Y, + (__v8di) __Z); } static __inline__ __m512i __DEFAULT_FN_ATTRS -_mm512_mask_madd52lo_epu64 (__m512i __W, __mmask8 __M, __m512i __X, - __m512i __Y) +_mm512_mask_madd52lo_epu64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { - return (__m512i) __builtin_ia32_vpmadd52luq512_mask ((__v8di) __W, - (__v8di) __X, - (__v8di) __Y, - (__mmask8) __M); + return (__m512i)__builtin_ia32_selectq_512(__M, + (__v8di)_mm512_madd52lo_epu64(__W, __X, __Y), + (__v8di)__W); } static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_madd52lo_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) { - return (__m512i) __builtin_ia32_vpmadd52luq512_maskz ((__v8di) __X, - (__v8di) __Y, - (__v8di) __Z, - (__mmask8) __M); + return (__m512i)__builtin_ia32_selectq_512(__M, + (__v8di)_mm512_madd52lo_epu64(__X, __Y, __Z), + (__v8di)_mm512_setzero_si512()); } #undef __DEFAULT_FN_ATTRS Modified: cfe/trunk/lib/Headers/avx512ifmavlintrin.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512ifmavlintrin.h?rev=333348&r1=333347&r2=333348&view=diff ============================================================================== --- cfe/trunk/lib/Headers/avx512ifmavlintrin.h (original) +++ cfe/trunk/lib/Headers/avx512ifmavlintrin.h Sat May 26 11:55:26 2018 @@ -36,111 +36,93 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_madd52hi_epu64 (__m128i __X, __m128i __Y, __m128i __Z) { - return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __X, - (__v2di) __Y, - (__v2di) __Z, - (__mmask8) -1); + return (__m128i)__builtin_ia32_vpmadd52huq128((__v2di) __X, (__v2di) __Y, + (__v2di) __Z); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mask_madd52hi_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { - return (__m128i) __builtin_ia32_vpmadd52huq128_mask ((__v2di) __W, - (__v2di) __X, - (__v2di) __Y, - (__mmask8) __M); + return (__m128i)__builtin_ia32_selectq_128(__M, + (__v2di)_mm_madd52hi_epu64(__W, __X, __Y), + (__v2di)__W); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_maskz_madd52hi_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { - return (__m128i) __builtin_ia32_vpmadd52huq128_maskz ((__v2di) __X, - (__v2di) __Y, - (__v2di) __Z, - (__mmask8) __M); + return (__m128i)__builtin_ia32_selectq_128(__M, + (__v2di)_mm_madd52hi_epu64(__X, __Y, __Z), + (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z) { - return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __X, - (__v4di) __Y, - (__v4di) __Z, - (__mmask8) -1); + return (__m256i)__builtin_ia32_vpmadd52huq256((__v4di)__X, (__v4di)__Y, + (__v4di)__Z); } static __inline__ __m256i __DEFAULT_FN_ATTRS -_mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X, - __m256i __Y) +_mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { - return (__m256i) __builtin_ia32_vpmadd52huq256_mask ((__v4di) __W, - (__v4di) __X, - (__v4di) __Y, - (__mmask8) __M); + return (__m256i)__builtin_ia32_selectq_256(__M, + (__v4di)_mm256_madd52hi_epu64(__W, __X, __Y), + (__v4di)__W); } static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_maskz_madd52hi_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { - return (__m256i) __builtin_ia32_vpmadd52huq256_maskz ((__v4di) __X, - (__v4di) __Y, - (__v4di) __Z, - (__mmask8) __M); + return (__m256i)__builtin_ia32_selectq_256(__M, + (__v4di)_mm256_madd52hi_epu64(__X, __Y, __Z), + (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z) { - return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __X, - (__v2di) __Y, - (__v2di) __Z, - (__mmask8) -1); + return (__m128i)__builtin_ia32_vpmadd52luq128((__v2di)__X, (__v2di)__Y, + (__v2di)__Z); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mask_madd52lo_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { - return (__m128i) __builtin_ia32_vpmadd52luq128_mask ((__v2di) __W, - (__v2di) __X, - (__v2di) __Y, - (__mmask8) __M); + return (__m128i)__builtin_ia32_selectq_128(__M, + (__v2di)_mm_madd52lo_epu64(__W, __X, __Y), + (__v2di)__W); } static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_maskz_madd52lo_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { - return (__m128i) __builtin_ia32_vpmadd52luq128_maskz ((__v2di) __X, - (__v2di) __Y, - (__v2di) __Z, - (__mmask8) __M); + return (__m128i)__builtin_ia32_selectq_128(__M, + (__v2di)_mm_madd52lo_epu64(__X, __Y, __Z), + (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z) { - return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __X, - (__v4di) __Y, - (__v4di) __Z, - (__mmask8) -1); + return (__m256i)__builtin_ia32_vpmadd52luq256((__v4di)__X, (__v4di)__Y, + (__v4di)__Z); } static __inline__ __m256i __DEFAULT_FN_ATTRS -_mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X, - __m256i __Y) +_mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { - return (__m256i) __builtin_ia32_vpmadd52luq256_mask ((__v4di) __W, - (__v4di) __X, - (__v4di) __Y, - (__mmask8) __M); + return (__m256i)__builtin_ia32_selectq_256(__M, + (__v4di)_mm256_madd52lo_epu64(__W, __X, __Y), + (__v4di)__W); } static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_maskz_madd52lo_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { - return (__m256i) __builtin_ia32_vpmadd52luq256_maskz ((__v4di) __X, - (__v4di) __Y, - (__v4di) __Z, - (__mmask8) __M); + return (__m256i)__builtin_ia32_selectq_256(__M, + (__v4di)_mm256_madd52lo_epu64(__X, __Y, __Z), + (__v4di)_mm256_setzero_si256()); } Modified: cfe/trunk/test/CodeGen/avx512ifma-builtins.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512ifma-builtins.c?rev=333348&r1=333347&r2=333348&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/avx512ifma-builtins.c (original) +++ cfe/trunk/test/CodeGen/avx512ifma-builtins.c Sat May 26 11:55:26 2018 @@ -5,36 +5,40 @@ __m512i test_mm512_madd52hi_epu64(__m512i __X, __m512i __Y, __m512i __Z) { // CHECK-LABEL: @test_mm512_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52h.uq.512 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.512 return _mm512_madd52hi_epu64(__X, __Y, __Z); } __m512i test_mm512_mask_madd52hi_epu64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { // CHECK-LABEL: @test_mm512_mask_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52h.uq.512 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.512 + // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_mask_madd52hi_epu64(__W, __M, __X, __Y); } __m512i test_mm512_maskz_madd52hi_epu64(__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) { // CHECK-LABEL: @test_mm512_maskz_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.maskz.vpmadd52h.uq.512 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.512 + // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_maskz_madd52hi_epu64(__M, __X, __Y, __Z); } __m512i test_mm512_madd52lo_epu64(__m512i __X, __m512i __Y, __m512i __Z) { // CHECK-LABEL: @test_mm512_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.512 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.512 return _mm512_madd52lo_epu64(__X, __Y, __Z); } __m512i test_mm512_mask_madd52lo_epu64(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { // CHECK-LABEL: @test_mm512_mask_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.512 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.512 + // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_mask_madd52lo_epu64(__W, __M, __X, __Y); } __m512i test_mm512_maskz_madd52lo_epu64(__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) { // CHECK-LABEL: @test_mm512_maskz_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.512 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.512 + // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} return _mm512_maskz_madd52lo_epu64(__M, __X, __Y, __Z); } Modified: cfe/trunk/test/CodeGen/avx512ifmavl-builtins.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512ifmavl-builtins.c?rev=333348&r1=333347&r2=333348&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/avx512ifmavl-builtins.c (original) +++ cfe/trunk/test/CodeGen/avx512ifmavl-builtins.c Sat May 26 11:55:26 2018 @@ -4,72 +4,80 @@ __m128i test_mm_madd52hi_epu64(__m128i __X, __m128i __Y, __m128i __Z) { // CHECK-LABEL: @test_mm_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52h.uq.128 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128 return _mm_madd52hi_epu64(__X, __Y, __Z); } __m128i test_mm_mask_madd52hi_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { // CHECK-LABEL: @test_mm_mask_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52h.uq.128 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128 + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_madd52hi_epu64(__W, __M, __X, __Y); } __m128i test_mm_maskz_madd52hi_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { // CHECK-LABEL: @test_mm_maskz_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.maskz.vpmadd52h.uq.128 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128 + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_madd52hi_epu64(__M, __X, __Y, __Z); } __m256i test_mm256_madd52hi_epu64(__m256i __X, __m256i __Y, __m256i __Z) { // CHECK-LABEL: @test_mm256_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52h.uq.256 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256 return _mm256_madd52hi_epu64(__X, __Y, __Z); } __m256i test_mm256_mask_madd52hi_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { // CHECK-LABEL: @test_mm256_mask_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52h.uq.256 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256 + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_madd52hi_epu64(__W, __M, __X, __Y); } __m256i test_mm256_maskz_madd52hi_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { // CHECK-LABEL: @test_mm256_maskz_madd52hi_epu64 - // CHECK: @llvm.x86.avx512.maskz.vpmadd52h.uq.256 + // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256 + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_madd52hi_epu64(__M, __X, __Y, __Z); } __m128i test_mm_madd52lo_epu64(__m128i __X, __m128i __Y, __m128i __Z) { // CHECK-LABEL: @test_mm_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.128 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128 return _mm_madd52lo_epu64(__X, __Y, __Z); } __m128i test_mm_mask_madd52lo_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { // CHECK-LABEL: @test_mm_mask_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.128 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128 + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_mask_madd52lo_epu64(__W, __M, __X, __Y); } __m128i test_mm_maskz_madd52lo_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { // CHECK-LABEL: @test_mm_maskz_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.maskz.vpmadd52l.uq.128 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128 + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} return _mm_maskz_madd52lo_epu64(__M, __X, __Y, __Z); } __m256i test_mm256_madd52lo_epu64(__m256i __X, __m256i __Y, __m256i __Z) { // CHECK-LABEL: @test_mm256_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.256 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256 return _mm256_madd52lo_epu64(__X, __Y, __Z); } __m256i test_mm256_mask_madd52lo_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { // CHECK-LABEL: @test_mm256_mask_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.256 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256 + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_mask_madd52lo_epu64(__W, __M, __X, __Y); } __m256i test_mm256_maskz_madd52lo_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { // CHECK-LABEL: @test_mm256_maskz_madd52lo_epu64 - // CHECK: @llvm.x86.avx512.mask.vpmadd52l.uq.256 + // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256 + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} return _mm256_maskz_madd52lo_epu64(__M, __X, __Y, __Z); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits