[PATCH] D120307: [X86] Add helper macros for ternary intrinsics
Simon Pilgrim via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 22 03:23:32 PST 2022
RKSimon added a comment.
Are similar macros used by any other compilers at all?
================
Comment at: clang/lib/Headers/avx512fintrin.h:5932
-#define _mm512_ternarylogic_epi32(A, B, C, imm) \
- ((__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \
- (__v16si)(__m512i)(B), \
- (__v16si)(__m512i)(C), (int)(imm), \
- (__mmask16)-1))
-
-#define _mm512_mask_ternarylogic_epi32(A, U, B, C, imm) \
- ((__m512i)__builtin_ia32_pternlogd512_mask((__v16si)(__m512i)(A), \
- (__v16si)(__m512i)(B), \
- (__v16si)(__m512i)(C), (int)(imm), \
- (__mmask16)(U)))
-
-#define _mm512_maskz_ternarylogic_epi32(U, A, B, C, imm) \
- ((__m512i)__builtin_ia32_pternlogd512_maskz((__v16si)(__m512i)(A), \
- (__v16si)(__m512i)(B), \
- (__v16si)(__m512i)(C), \
- (int)(imm), (__mmask16)(U)))
-
-#define _mm512_ternarylogic_epi64(A, B, C, imm) \
- ((__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \
- (__v8di)(__m512i)(B), \
- (__v8di)(__m512i)(C), (int)(imm), \
- (__mmask8)-1))
-
-#define _mm512_mask_ternarylogic_epi64(A, U, B, C, imm) \
- ((__m512i)__builtin_ia32_pternlogq512_mask((__v8di)(__m512i)(A), \
- (__v8di)(__m512i)(B), \
- (__v8di)(__m512i)(C), (int)(imm), \
- (__mmask8)(U)))
-
-#define _mm512_maskz_ternarylogic_epi64(U, A, B, C, imm) \
- ((__m512i)__builtin_ia32_pternlogq512_maskz((__v8di)(__m512i)(A), \
- (__v8di)(__m512i)(B), \
- (__v8di)(__m512i)(C), (int)(imm), \
- (__mmask8)(U)))
+#define _MM_TERNLOG_A 0xF0
+#define _MM_TERNLOG_B 0xCC
----------------
Add a doxygen comment for these?
================
Comment at: clang/test/CodeGen/X86/avx512f-builtins.c:6010
// CHECK-LABEL: @test_mm512_ternarylogic_epi32
// CHECK: @llvm.x86.avx512.pternlog.d.512
+ return _mm512_ternarylogic_epi32(__A, __B, __C, _MM_TERNLOG_A);
----------------
check the immediate value?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120307/new/
https://reviews.llvm.org/D120307
More information about the cfe-commits
mailing list