[all-commits] [llvm/llvm-project] 72a723: [WebAssembly] Mark @llvm.wasm.shuffle lane indices...

Thomas Lively via All-commits all-commits at lists.llvm.org
Fri May 5 08:12:55 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 72a72315b052180a7df90a26000fdca4ef09dd94
  Author: Thomas Lively <tlively at google.com>
  Date:   2023-05-05 (Fri, 05 May 2023)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
    M llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll

  Log Message:
  [WebAssembly] Mark @llvm.wasm.shuffle lane indices as immediates

This intrinsic is meant to lower directly to the i8x16.shuffle instruction,
which takes its lane index arguments as immmediates. The ISel for the intrinsic
assumed that the lane index arguments were constants, so bitcode that
"incorrectly" used this intrinsic with non-immediate arguments caused an
assertion failure in the backend.

Avoid the crash by defining the lane index arguments to be immediates, matching
the underlying instruction. Update ISel accordingly. This change means that the
bitcode that previously caused a crash will now fail to validate.

Fixes #55559.

Reviewed By: dschuff

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

More information about the All-commits mailing list