Added: OR, SMAX, SMIN, UMAX, UMIN, ABS, SHL, SRL, SRA, MUL
Intentionally not generically using TLI.isBinOp as that causes
regressions as there are many binops that cannot combine with masked
instructions.
Paths
| Differential D143860
[X86] Add additional operations that masked instructions can combine with ClosedPublic Authored by goldstein.w.n on Feb 12 2023, 2:16 PM.
Details Summary Added: OR, SMAX, SMIN, UMAX, UMIN, ABS, SHL, SRL, SRA, MUL Intentionally not generically using TLI.isBinOp as that causes
Diff Detail
Event Timelinegoldstein.w.n added a parent revision: D143789: [X86] Widen i16 shuffle masks if vector width < 512 even with BWI.Feb 12 2023, 2:24 PM
goldstein.w.n added a parent revision: D144144: [X86] Add tests for combining mask with shuffles; NFC.Feb 15 2023, 3:30 PM goldstein.w.n removed a parent revision: D143789: [X86] Widen i16 shuffle masks if vector width < 512 even with BWI. goldstein.w.n marked an inline comment as done. Comment Actions Thanks - do you have ISD::SETCC coverage? That one I'm the most worried given it has different src/dst types Comment Actions
Dropped SETCC for now. This revision is now accepted and ready to land.Feb 17 2023, 2:39 AM This revision was landed with ongoing or failed builds.Feb 26 2023, 10:12 AM Closed by commit rGb5fc2a474eba: Add additional operations that masked instructions can combine with (authored by goldstein.w.n). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 499029 llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/combine-mask-with-shuffle.ll
llvm/test/CodeGen/X86/vselect-avx512.ll
|
I can see test changes for some of the integer min/max opcodes but nothing else - could you add additional test coverage first?