Similar to what was done to max/min recently.
These already reduced the vector width to 256 and 128 bit as we go unlike the original max/min code.
Paths
| Differential D48346
[X86] Rewrite the add/mul/or/and reduction intrinsics to make better use of other intrinsics and remove undef shuffle indices. ClosedPublic Authored by craig.topper on Jun 19 2018, 10:13 PM.
Details Summary Similar to what was done to max/min recently. These already reduced the vector width to 256 and 128 bit as we go unlike the original max/min code.
Diff Detail
Event Timeline
This revision is now accepted and ready to land.Jun 21 2018, 4:59 AM Closed by commit rC335253: [X86] Rewrite the add/mul/or/and reduction intrinsics to make better use of… (authored by ctopper). · Explain WhyJun 21 2018, 9:46 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 152330 lib/Headers/avx512fintrin.h
test/CodeGen/avx512-reduceIntrin.c |
We're using -O2 here but most codegen tests use -O0 - is that OK? It makes much more recognisable codegen, but I don't know what people expect from these intrinsics without optimization.