[RISCV] Make the operand order for RISCVISD::FSL(W)/FSR(W) match the instruction...
authorCraig Topper <craig.topper@sifive.com>
Tue, 18 Jan 2022 17:26:28 +0000 (09:26 -0800)
committerCraig Topper <craig.topper@sifive.com>
Tue, 18 Jan 2022 17:47:28 +0000 (09:47 -0800)
commitb634f8a663d56877663f5224a785d9f0263c4176
tree49fe73b86e764914bb7882c270fee273f8d51481
parent3e8553aab47ab3c257fc4fade12f38d9774a2fdb
[RISCV] Make the operand order for RISCVISD::FSL(W)/FSR(W) match the instruction register numbering.

Previous we used the fshl/fshr operand ordering for simplicity. This
made things confusing when D117468 proposed adding intrinsics for
the instructions. We can't just use the generic funnel shifting
intrinsics because fsl/fsr have different functionality that should
be exposed to software.

Now we use rs1, rs3, rs2/shamt order which matches the instruction
printing order and the order used in this intrinsic header
https://github.com/riscv/riscv-bitmanip/blob/main-history/cproofs/rvintrin.h
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
llvm/lib/Target/RISCV/RISCVISelLowering.h
llvm/lib/Target/RISCV/RISCVInstrInfoZb.td