[all-commits] [llvm/llvm-project] 11bb7e: [WebAssembly] Remove intrinsics for SIMD widening ops

Thomas Lively via All-commits all-commits at lists.llvm.org
Tue Jul 28 18:26:13 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 11bb7eef4152cab895983f19e638f0cfdf8a580f
      https://github.com/llvm/llvm-project/commit/11bb7eef4152cab895983f19e638f0cfdf8a580f
  Author: Thomas Lively <tlively at google.com>
  Date:   2020-07-28 (Tue, 28 Jul 2020)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsWebAssembly.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/wasm_simd128.h
    M clang/test/CodeGen/builtins-wasm.c
    M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
    M llvm/lib/Target/WebAssembly/WebAssemblyISD.def
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
    M llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
    A llvm/test/CodeGen/WebAssembly/simd-widening.ll

  Log Message:
  -----------
  [WebAssembly] Remove intrinsics for SIMD widening ops

Instead, pattern match extends of extract_subvectors to generate
widening operations. Since extract_subvector is not a legal node, this
is implemented via a custom combine that recognizes extract_subvector
nodes before they are legalized. The combine produces custom ISD nodes
that are later pattern matched directly, just like the intrinsic was.

Also removes the clang builtins for these operations since the
instructions can now be generated from portable code sequences.

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




More information about the All-commits mailing list