Author: Simon Pilgrim Date: 2022-05-09T14:10:28+01:00 New Revision: ec6024d0811b3116e0a29481b01179d5081a3b92
URL: https://github.com/llvm/llvm-project/commit/ec6024d0811b3116e0a29481b01179d5081a3b92 DIFF: https://github.com/llvm/llvm-project/commit/ec6024d0811b3116e0a29481b01179d5081a3b92.diff LOG: [X86] Replace avx512f integer mul reduction builtins with generic builtin D117829 added the generic "__builtin_reduce_mul" which we can use to replace the x86 specific integer mul reduction builtins - internally these were mapping to the same intrinsic already so there are no test changes required. Differential Revision: https://reviews.llvm.org/D125222 Added: Modified: clang/include/clang/Basic/BuiltinsX86.def clang/lib/CodeGen/CGBuiltin.cpp clang/lib/Headers/avx512fintrin.h Removed: ################################################################################ diff --git a/clang/include/clang/Basic/BuiltinsX86.def b/clang/include/clang/Basic/BuiltinsX86.def index 6de7e6f89b47d..3e5c376f9bc1b 100644 --- a/clang/include/clang/Basic/BuiltinsX86.def +++ b/clang/include/clang/Basic/BuiltinsX86.def @@ -2010,8 +2010,6 @@ TARGET_BUILTIN(__builtin_ia32_reduce_fmul_ps512, "ffV16f", "ncV:512:", "avx512f" TARGET_BUILTIN(__builtin_ia32_reduce_fmul_ph512, "xxV32x", "ncV:512:", "avx512fp16") TARGET_BUILTIN(__builtin_ia32_reduce_fmul_ph256, "xxV16x", "ncV:256:", "avx512fp16,avx512vl") TARGET_BUILTIN(__builtin_ia32_reduce_fmul_ph128, "xxV8x", "ncV:128:", "avx512fp16,avx512vl") -TARGET_BUILTIN(__builtin_ia32_reduce_mul_d512, "iV16i", "ncV:512:", "avx512f") -TARGET_BUILTIN(__builtin_ia32_reduce_mul_q512, "OiV8Oi", "ncV:512:", "avx512f") // MONITORX/MWAITX TARGET_BUILTIN(__builtin_ia32_monitorx, "vvC*UiUi", "n", "mwaitx") diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index bd689b2063c69..eed8b35d4a880 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -14409,12 +14409,6 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID, Builder.getFastMathFlags().setNoNaNs(); return Builder.CreateCall(F, {Ops[0]}); } - case X86::BI__builtin_ia32_reduce_mul_d512: - case X86::BI__builtin_ia32_reduce_mul_q512: { - Function *F = - CGM.getIntrinsic(Intrinsic::vector_reduce_mul, Ops[0]->getType()); - return Builder.CreateCall(F, {Ops[0]}); - } // 3DNow! case X86::BI__builtin_ia32_pswapdsf: diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 3a6b9543fe92c..61bc89c2b8951 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -9323,7 +9323,7 @@ static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_add_epi64(__m512 } static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_mul_epi64(__m512i __W) { - return __builtin_ia32_reduce_mul_q512(__W); + return __builtin_reduce_mul((__v8di)__W); } static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_reduce_and_epi64(__m512i __W) { @@ -9343,7 +9343,7 @@ _mm512_mask_reduce_add_epi64(__mmask8 __M, __m512i __W) { static __inline__ long long __DEFAULT_FN_ATTRS512 _mm512_mask_reduce_mul_epi64(__mmask8 __M, __m512i __W) { __W = _mm512_mask_mov_epi64(_mm512_set1_epi64(1), __M, __W); - return __builtin_ia32_reduce_mul_q512(__W); + return __builtin_reduce_mul((__v8di)__W); } static __inline__ long long __DEFAULT_FN_ATTRS512 @@ -9388,7 +9388,7 @@ _mm512_reduce_add_epi32(__m512i __W) { static __inline__ int __DEFAULT_FN_ATTRS512 _mm512_reduce_mul_epi32(__m512i __W) { - return __builtin_ia32_reduce_mul_d512((__v16si)__W); + return __builtin_reduce_mul((__v16si)__W); } static __inline__ int __DEFAULT_FN_ATTRS512 @@ -9410,7 +9410,7 @@ _mm512_mask_reduce_add_epi32( __mmask16 __M, __m512i __W) { static __inline__ int __DEFAULT_FN_ATTRS512 _mm512_mask_reduce_mul_epi32( __mmask16 __M, __m512i __W) { __W = _mm512_mask_mov_epi32(_mm512_set1_epi32(1), __M, __W); - return __builtin_ia32_reduce_mul_d512((__v16si)__W); + return __builtin_reduce_mul((__v16si)__W); } static __inline__ int __DEFAULT_FN_ATTRS512 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits