This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Add support for STRICT_LRINT/LLRINT/LROUND/LLROUND. Tests for other strict intrinsics.
ClosedPublic

Authored by craig.topper on Dec 27 2021, 4:18 PM.

Details

Summary

This patch adds isel support for STRICT_LRINT/LLRINT/LROUND/LLROUND.

It also adds test cases for f32 and f64 constrained intrinsics that
correspond to the intrinsics in float-intrinsics.ll and
double-intrinsics.ll. Support for promoting the integer argument of
STRICT_FPOWI was added.

I've skipped adding tests for f16 intrinsics, since we don't have libcalls
for them and we have inconsistent support for promoting them in LegalizeDAG.
This will need to be examined more closely.

Diff Detail

Event Timeline

craig.topper created this revision.Dec 27 2021, 4:18 PM
craig.topper requested review of this revision.Dec 27 2021, 4:18 PM
Herald added a project: Restricted Project. · View Herald TranscriptDec 27 2021, 4:18 PM
Herald added a subscriber: MaskRay. · View Herald Transcript
asb accepted this revision.EditedDec 30 2021, 2:57 AM

clang-format has a couple of suggestions that are worth looking at (the ones in PromoteIntOp_FPOWI), but otherwise this looks good to me.

This revision is now accepted and ready to land.Dec 30 2021, 2:57 AM
This revision was landed with ongoing or failed builds.Dec 30 2021, 11:55 AM
This revision was automatically updated to reflect the committed changes.