[all-commits] [llvm/llvm-project] a64466: [RISCV] XTHeadMemPair: Fix invalid mempair combine...

Philipp Tomsich via All-commits all-commits at lists.llvm.org
Wed Feb 22 10:57:53 PST 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a6446668a339c1f596c34118b90eeb6127e5b550
  Author: Manolis Tsamis <manolis.tsamis at vrull.eu>
  Date:   2023-02-22 (Wed, 22 Feb 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/xtheadmempair.ll

  Log Message:
  [RISCV] XTHeadMemPair: Fix invalid mempair combine for types other than i32/i64

A mistake in the control flow of performMemPairCombine resulted in paired
loads/stores for types that were not supported by the instructions (i8/i16).
These loads/stores could not match the constraints of the patterns defined
in the THead td file and the compiler would throw a 'Cannot select' error.

This is now fixed and two new test functions have been added in xtheadmempair.ll
which would previously crash the compiler. The compiler was additionally tested
with a wide range of benchmarks and no issues were observed.

Reviewed By: craig.topper

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

More information about the All-commits mailing list