[all-commits] [llvm/llvm-project] 6e532f: [RISCV] Add test case showing vmerge fold miscompi...

Luke Lau via All-commits all-commits at lists.llvm.org
Tue Aug 22 02:39:39 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6e532f94eb0e2c9c93a3d75b4cf53bf12ab9f518
      https://github.com/llvm/llvm-project/commit/6e532f94eb0e2c9c93a3d75b4cf53bf12ab9f518
  Author: Luke Lau <luke at igalia.com>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll

  Log Message:
  -----------
  [RISCV] Add test case showing vmerge fold miscompile with tail policy

Reviewed By: reames

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


  Commit: 007b41b3939832b6938bb1ba91e9febebf93d3b8
      https://github.com/llvm/llvm-project/commit/007b41b3939832b6938bb1ba91e9febebf93d3b8
  Author: Luke Lau <luke at igalia.com>
  Date:   2023-08-22 (Tue, 22 Aug 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll

  Log Message:
  -----------
  [RISCV] Don't relax policy to ta when vmerge's VL shrinks during folding

When folding a vmerge into its operands, if the resulting VL is smaller than
what the vmerge had originally then what was previously in its body then gets
moved to the tail. In that case, we can't relax the tail policy to agnostic
when the merge operand is undefined, since we need to preserve these elements
past the new VL.

Fixes https://github.com/llvm/llvm-project/issues/64754

Reviewed By: craig.topper, reames

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


Compare: https://github.com/llvm/llvm-project/compare/0b91b1aec480...007b41b39398


More information about the All-commits mailing list