[all-commits] [llvm/llvm-project] 291101: [WebAssembly] Optimize vector shift using a splat ...
Yolanda-Chen via All-commits
all-commits at lists.llvm.org
Fri Aug 25 08:13:44 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 291101aa8ea56b094c8c887b1a2cf4af36ac6dea
https://github.com/llvm/llvm-project/commit/291101aa8ea56b094c8c887b1a2cf4af36ac6dea
Author: Yolanda Chen <yolanda.chen at intel.com>
Date: 2023-08-25 (Fri, 25 Aug 2023)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
A llvm/test/CodeGen/WebAssembly/simd-shift-in-loop.ll
Log Message:
-----------
[WebAssembly] Optimize vector shift using a splat value from outside block
The vector shift operation in WebAssembly uses an i32 shift amount type, while
the LLVM IR requires binary operator uses the same type of operands. When the
shift amount operand is splated from a different block, the splat source will
not be exported and the vector shift will be unrolled to scalar shifts. This
patch enables the vector shift to identify the splat source value from the other
block, and generate expected WebAssembly bytecode when lowering.
Reviewed By: tlively
Differential Revision: https://reviews.llvm.org/D158399
More information about the All-commits
mailing list