[WebAssembly] Custom combines for f64x2.promote_low_f32x4
authorThomas Lively <tlively@google.com>
Sat, 10 Jul 2021 01:59:29 +0000 (18:59 -0700)
committerThomas Lively <tlively@google.com>
Sat, 10 Jul 2021 01:59:29 +0000 (18:59 -0700)
commite5220104d0708e02f2faaacc091189fb3e47e30c
tree0c9a7cfd874881f5a4d8bc90536fc8ae61730a7d
parent04c203e310bd3fb58e16c936c0200d680100526e
[WebAssembly] Custom combines for f64x2.promote_low_f32x4

Replace the clang builtin function and LLVM intrinsic previously used to select
the f64x2.promote_low_f32x4 instruction with custom combines from standard
SelectionDAG nodes. Implement the new combines to share code with the similar
combines for f64x2.convert_low_i32x4_{s,u}. Resolves PR50232.

Differential Revision: https://reviews.llvm.org/D105675
clang/include/clang/Basic/BuiltinsWebAssembly.def
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/Headers/wasm_simd128.h
clang/test/CodeGen/builtins-wasm.c
clang/test/Headers/wasm.c
llvm/include/llvm/IR/IntrinsicsWebAssembly.td
llvm/lib/Target/WebAssembly/WebAssemblyISD.def
llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
llvm/test/CodeGen/WebAssembly/simd-conversions.ll
llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll