FRINT uses dynamic rounding mode instead of static rounding mode. The patch
rename VFCVT_X_F_VL to VFCVT_RM_X_F_VL for static rounding mode uses and added
new ISDNode VFCVT_X_F_VL directly selected to PseudoVFCVT_X_F_V.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Time | Test | |
---|---|---|
1,440 ms | x64 debian > libFuzzer.libFuzzer::fuzzer-finalstats.test |
Event Timeline
Rename lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND to lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND_FRINT.
llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp | ||
---|---|---|
518 | Why is LT.first added? Shouldn't it be multiplied? stepvector is special because if LT.first > 1, it's a single vid.v and LT.first-1 adds. |
llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp | ||
---|---|---|
518 | Yes, you are right. And also I think it is terrible mistake and I will reflect on my careless code. |
Rebase and use original name lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND to follow lowerFTRUNC_FCEIL_FFLOOR_FROUND.
Add TLI->isOperationCustom(ISD::VP_FRINT, LT.second) to make sure that legalized types of vp.rint have target customized lowering.
VP_RINT -> VP_FRINT