This is an archive of the discontinued LLVM Phabricator instance.

[X86] Remove avx512f integer and/or/xor/min/max reduction intrinsics and use generic equivalents
ClosedPublic

Authored by RKSimon on Jan 21 2022, 5:10 AM.

Details

Summary

None of these have any reordering issues, and they still emit the same reduction intrinsics without any change in the existing test coverage:

llvm-project\clang\test\CodeGen\X86\avx512-reduceIntrin.c
llvm-project\clang\test\CodeGen\X86\avx512-reduceMinMaxIntrin.c

Diff Detail

Event Timeline

RKSimon requested review of this revision.Jan 21 2022, 5:10 AM
RKSimon created this revision.
Herald added a project: Restricted Project. · View Herald TranscriptJan 21 2022, 5:10 AM

What's the difference between __builtin_reduce_and and generating a Intrinsic::vector_reduce_and in code? If this is just a simplification, why can't be applied to add too?

What's the difference between __builtin_reduce_and and generating a Intrinsic::vector_reduce_and in code? If this is just a simplification, why can't be applied to add too?

I believe that's https://reviews.llvm.org/D117829

This revision is now accepted and ready to land.Jan 21 2022, 10:46 PM

What's the difference between __builtin_reduce_and and generating a Intrinsic::vector_reduce_and in code? If this is just a simplification, why can't be applied to add too?

There's a few questions about whether we can reuse a __builtin_reduce_add builtin for both integer and float types - they need to be addressed before we can decide on its final functionality - same for __builtin_reduce_mul

pengfei accepted this revision.Jan 22 2022, 1:37 AM

I see. Thanks!

This revision was landed with ongoing or failed builds.Jan 24 2022, 4:00 AM
This revision was automatically updated to reflect the committed changes.