[all-commits] [llvm/llvm-project] acf6c9: [X86] Teach lower512BitShuffle to try bitmask and ...
topperc via All-commits
all-commits at lists.llvm.org
Thu Jul 2 15:36:35 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: acf6c94a3881859988c4cb62172e5bc08ece7f9a
https://github.com/llvm/llvm-project/commit/acf6c94a3881859988c4cb62172e5bc08ece7f9a
Author: Craig Topper <craig.topper at intel.com>
Date: 2020-07-02 (Thu, 02 Jul 2020)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/avx512-mask-op.ll
M llvm/test/CodeGen/X86/combine-sdiv.ll
M llvm/test/CodeGen/X86/pr45443.ll
M llvm/test/CodeGen/X86/vector-fshl-512.ll
M llvm/test/CodeGen/X86/vector-fshr-512.ll
M llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll
M llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll
M llvm/test/CodeGen/X86/vector-shuffle-avx512.ll
Log Message:
-----------
[X86] Teach lower512BitShuffle to try bitmask and bitblend before splitting v32i16/v64i8 on av512f only targets.
We consider v32i16/v64i8 to be legal types on avx512f, but we
don't have most operations until avx512bw. But we can use
and/or/xor operations. So try those before splitting.
This is especially helpful since we turn some ands with constant
masks into shuffles in early DAG combines. So we should make sure
we recover those back to AND.
More information about the All-commits
mailing list