[PATCH] D26802: [X86][AVX512] Detect repeated constant patterns in BUILD_VECTOR suitable for broadcasting.

Ayman Musa via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 17 08:46:27 PST 2016


aymanmus created this revision.
aymanmus added reviewers: igorb, delena, zvi.
aymanmus added a subscriber: llvm-commits.

Check if a build_vector node includes a repeated constant pattern and replace it with a broadcast of that pattern.
For example:
"build_vector <0, 1, 2, 3, 0, 1, 2, 3>" would be replaced by "broadcast <0, 1, 2, 3>"

This would decrease the code size and the size of chunks loaded from constant pool (less cache line splits and forwarding problems).


https://reviews.llvm.org/D26802

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/avg.ll
  test/CodeGen/X86/avx-logic.ll
  test/CodeGen/X86/avx-vperm2x128.ll
  test/CodeGen/X86/avx2-conversions.ll
  test/CodeGen/X86/avx2-nontemporal.ll
  test/CodeGen/X86/avx512-arith.ll
  test/CodeGen/X86/avx512-ext.ll
  test/CodeGen/X86/avx512-gather-scatter-intrin.ll
  test/CodeGen/X86/avx512-mask-op.ll
  test/CodeGen/X86/avx512bw-intrinsics.ll
  test/CodeGen/X86/broadcast-elm-cross-splat-vec.ll
  test/CodeGen/X86/clear_upper_vector_element_bits.ll
  test/CodeGen/X86/combine-sdiv.ll
  test/CodeGen/X86/combine-srem.ll
  test/CodeGen/X86/promote-vec3.ll
  test/CodeGen/X86/vec_fp_to_int.ll
  test/CodeGen/X86/vec_shift6.ll
  test/CodeGen/X86/vector-blend.ll
  test/CodeGen/X86/vector-rotate-256.ll
  test/CodeGen/X86/vector-shift-ashr-256.ll
  test/CodeGen/X86/vector-shift-ashr-512.ll
  test/CodeGen/X86/vector-shift-lshr-256.ll
  test/CodeGen/X86/vector-shift-lshr-512.ll
  test/CodeGen/X86/vector-shift-shl-256.ll
  test/CodeGen/X86/vector-shift-shl-512.ll
  test/CodeGen/X86/vector-shuffle-128-v16.ll
  test/CodeGen/X86/vector-shuffle-256-v32.ll
  test/CodeGen/X86/vector-shuffle-combining-avx2.ll
  test/CodeGen/X86/vector-zext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26802.78369.patch
Type: text/x-patch
Size: 111542 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161117/07f9d1bc/attachment-0001.bin>


More information about the llvm-commits mailing list