This is an archive of the discontinued LLVM Phabricator instance.

[X86] Add STRICT versions of CVTTP2SI, CVTTP2UI, CMPM, and CMPP.
ClosedPublic

Authored by craig.topper on Dec 23 2019, 8:42 PM.

Event Timeline

craig.topper created this revision.Dec 23 2019, 8:42 PM
Herald added a project: Restricted Project. · View Herald TranscriptDec 23 2019, 8:42 PM
Herald added a subscriber: hiraditya. · View Herald Transcript
craig.topper marked an inline comment as done.Dec 23 2019, 8:46 PM
craig.topper added inline comments.
llvm/lib/Target/X86/X86InstrAVX512.td
2532
NOTE: This line with X86cmpm_su is for masked compares that match an 'and' node. But that doesn't properly handle exceptions for strict FP so we'll need a strict_masked_cmpm node for that.
pengfei added inline comments.Dec 23 2019, 9:47 PM
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
546–549

This can be removed. Do we need handle strict cases?

Address review comment

pengfei added inline comments.Dec 23 2019, 11:39 PM
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
542

How about STRICT_FSETCC/STRICT_FSETCCS?

craig.topper marked an inline comment as done.Dec 23 2019, 11:57 PM
craig.topper added inline comments.
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
542

STRICT_FSETCC/STRICT_FSETCC don't make it to isel. They become CMPP/CMPM during lowering. ISD::SETCC only makes it here with integer vector argument type.

pengfei accepted this revision.Dec 24 2019, 12:13 AM

Thanks. LGTM.

This revision is now accepted and ready to land.Dec 24 2019, 12:13 AM
This revision was automatically updated to reflect the committed changes.