[all-commits] [llvm/llvm-project] c26e86: [RISCV] Custom type legalize i32 fshl/fshr on RV64...

Craig Topper via All-commits all-commits at lists.llvm.org
Wed Nov 25 10:08:14 PST 2020


  Branch: refs/heads/temp-test-main
  Home:   https://github.com/llvm/llvm-project
  Commit: c26e8697d71eea5fa08944a2db039a2187abf27c
      https://github.com/llvm/llvm-project/commit/c26e8697d71eea5fa08944a2db039a2187abf27c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2020-11-25 (Wed, 25 Nov 2020)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    M llvm/test/CodeGen/RISCV/rv64Zbt.ll

  Log Message:
  -----------
  [RISCV] Custom type legalize i32 fshl/fshr on RV64 with Zbt.

This adds custom opcodes for FSLW/FSRW so we can type legalize
fshl/fshr without needing to match a sign_extend_inreg.

I've used the operand order from fshl/fshr to make the isel
pattern similar to the non-W form. It was also hard to decide
another order since the register instruction has the shift amount
as the second operand, but the immediate instruction has it as
the third operand.

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




More information about the All-commits mailing list