[PATCH] D67017: [X86] Add initial support for unfolding broadcast loads from arithmetic instructions to enable LICM hoisting of the load
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 30 13:10:35 PDT 2019
craig.topper marked 3 inline comments as done.
craig.topper added inline comments.
================
Comment at: llvm/lib/Target/X86/X86InstrFoldTables.h:28
TB_INDEX_4 = 4,
- TB_INDEX_MASK = 0xf,
+ TB_INDEX_MASK = 0x7,
----------------
This was done to get a free bit for the TB_FOLDED_BCAST flag
================
Comment at: llvm/lib/Target/X86/X86InstrFoldTables.h:44
// Minimum alignment required for load/store.
- // Used for RegOp->MemOp conversion.
- // (stored in bits 8 - 15)
+ // Used for RegOp->MemOp conversion. Encoded as Log2(Align) + 1 to allow 0
+ // to mean align of 0.
----------------
I re-encoded these to get room for the broadcast type. I can pre-commit this.
================
Comment at: llvm/lib/Target/X86/X86InstrInfo.cpp:4808
unsigned MinAlign = (I->Flags & TB_ALIGN_MASK) >> TB_ALIGN_SHIFT;
+ MinAlign = MinAlign ? 1 << (MinAlign - 1) : 0;
if (Align < MinAlign)
----------------
Part of the re-encoding of the alignment field.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67017/new/
https://reviews.llvm.org/D67017
More information about the llvm-commits
mailing list