[PATCH] D140531: [X86] Add reduce_*_ep[i|u]8/16 series intrinsics.

Freddy, Ye via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 22 19:16:49 PST 2022


FreddyYe added inline comments.


================
Comment at: clang/test/CodeGen/X86/avx512vlbw-reduceIntrin.c:115
+
+char test_mm_reduce_mul_epi8(__m128i __W){
+// CHECK-LABEL: @test_mm_reduce_mul_epi8(
----------------
skan wrote:
> skan wrote:
> > char has different meaning on different platforms. Should we use "signed char" or "unsigned char" explicitly?
> > char has different meaning on different platforms. Should we use "signed char" or "unsigned char" explicitly?
> 
> Sorry, I think you misuderstood. It's a question, not a request. I already saw 
> 
> ```
> _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A)
> _mm_maskz_set1_epi8 (__mmask16 __M, char __A)
> _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A)
> _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
> ```
> 
> in this file, but I am not if using "char" is appropriate.
After investigating, I think we should use `signed char` and `_v\d+qs` instead of `_v\d+qi` for new intrinsic here for 2 reasons:
1) _epi8 means `signed i8` here.
2) implement is using LLVM builtins but not x86 builtins.

And intrinsics not fitting two conditions above don't need to use explictly `signed char`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140531/new/

https://reviews.llvm.org/D140531



More information about the cfe-commits mailing list