[all-commits] [llvm/llvm-project] 0eeee8: [VectorUtils] move x86's scaleShuffleMask to gener...

RotateRight via All-commits all-commits at lists.llvm.org
Mon Mar 23 07:04:12 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0eeee83d7513d1d9b5e6916c2f15cc67bd0707e2
      https://github.com/llvm/llvm-project/commit/0eeee83d7513d1d9b5e6916c2f15cc67bd0707e2
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-03-23 (Mon, 23 Mar 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/Target/X86/X86ISelLowering.h
    M llvm/unittests/Analysis/VectorUtilsTest.cpp

  Log Message:
  -----------
  [VectorUtils] move x86's scaleShuffleMask to generic VectorUtils

We have some long-standing missing shuffle optimizations that could
use this transform via VectorCombine now:
https://bugs.llvm.org/show_bug.cgi?id=35454
(and we still don't get that case in the backend either)

This function is apparently templated because there's existing code
in IR that treats mask values as unsigned and backend code that
treats masks values as signed.

The mask values are not endian-dependent (as shown by the existing
bitcast transform from DAGCombiner).

Differential Revision: https://reviews.llvm.org/D76508




More information about the All-commits mailing list