[llvm] 6c90a65 - [RISCV] Simplify some code in lowering vector int<->fp conversions. NFC
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 23 12:10:38 PDT 2022
Author: Craig Topper
Date: 2022-03-23T12:09:05-07:00
New Revision: 6c90a654bbbc2f6eb575cc2e75f74f7652bec296
URL: https://github.com/llvm/llvm-project/commit/6c90a654bbbc2f6eb575cc2e75f74f7652bec296
DIFF: https://github.com/llvm/llvm-project/commit/6c90a654bbbc2f6eb575cc2e75f74f7652bec296.diff
LOG: [RISCV] Simplify some code in lowering vector int<->fp conversions. NFC
Don't call EltVT.getSizeInBits() or SrcEltVT.getSizeInBits() a second
time. They are already in EltSize or SrcEltSize variables.
Refactor some comparisons to use multiply instead of division.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index d607ebbbb82f0..fd7a43cb78331 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -3381,10 +3381,10 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
bool IsInt2FP = SrcEltVT.isInteger();
// Widening conversions
- if (EltSize > SrcEltSize && (EltSize / SrcEltSize >= 4)) {
+ if (EltSize > (2 * SrcEltSize)) {
if (IsInt2FP) {
// Do a regular integer sign/zero extension then convert to float.
- MVT IVecVT = MVT::getVectorVT(MVT::getIntegerVT(EltVT.getSizeInBits()),
+ MVT IVecVT = MVT::getVectorVT(MVT::getIntegerVT(EltSize),
VT.getVectorElementCount());
unsigned ExtOpcode = Op.getOpcode() == ISD::UINT_TO_FP
? ISD::ZERO_EXTEND
@@ -3402,7 +3402,7 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
}
// Narrowing conversions
- if (SrcEltSize > EltSize && (SrcEltSize / EltSize >= 4)) {
+ if (SrcEltSize > (2 * EltSize)) {
if (IsInt2FP) {
// One narrowing int_to_fp, then an fp_round.
assert(EltVT == MVT::f16 && "Unexpected [US]_TO_FP lowering");
@@ -3413,9 +3413,8 @@ SDValue RISCVTargetLowering::LowerOperation(SDValue Op,
// FP2Int
// One narrowing fp_to_int, then truncate the integer. If the float isn't
// representable by the integer, the result is poison.
- MVT IVecVT =
- MVT::getVectorVT(MVT::getIntegerVT(SrcEltVT.getSizeInBits() / 2),
- VT.getVectorElementCount());
+ MVT IVecVT = MVT::getVectorVT(MVT::getIntegerVT(SrcEltSize / 2),
+ VT.getVectorElementCount());
SDValue FP2Int = DAG.getNode(Op.getOpcode(), DL, IVecVT, Src);
return DAG.getNode(ISD::TRUNCATE, DL, VT, FP2Int);
}
More information about the llvm-commits
mailing list