It's better to use our shuffle lowering code to handle these than loading an immediate into a k-register.
It really feels like this should be a DAG combine optimization rather than a lowering operation, but that's a problem for another day.
Paths
| Differential D38932
[X86] Lower vselect with constant condition to vector_shuffle even with AVX512 instructions. ClosedPublic Authored by craig.topper on Oct 14 2017, 11:09 PM.
Details Summary It's better to use our shuffle lowering code to handle these than loading an immediate into a k-register. It really feels like this should be a DAG combine optimization rather than a lowering operation, but that's a problem for another day.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.Oct 14 2017, 11:28 PM Closed by commit rL315849: [X86] Lower vselect with constant condition to vector_shuffle even with AVX512… (authored by ctopper). · Explain WhyOct 14 2017, 11:39 PM This revision was automatically updated to reflect the committed changes. Comment Actions I suggest to open a ticket in bugzilla about possible replacement of "select" with constant mask with shuffle to avoid mask instructions on AVX-512.
Revision Contents
Diff 119059 lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx512-mask-op.ll
test/CodeGen/X86/avx512-schedule.ll
test/CodeGen/X86/vector-shuffle-combining-avx2.ll
|