This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC][GISel]fcmp support
ClosedPublic

Authored by shchenz on Jan 3 2023, 1:52 AM.

Details

Reviewers
Kai
amyk
arsenm
nemanjai
Group Reviewers
Restricted Project
Commits
rGac93a4e77d1e: [PowerPC][GISel]fcmp support
Summary

This patch includes:
1: CRRegBank support
2: Some workarounds in PPC table gen for anyext/setcc patterns selection. (Will address this issue in utils/TableGen/GlobalISelEmitter.cpp later)

Diff Detail

Event Timeline

shchenz created this revision.Jan 3 2023, 1:52 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 3 2023, 1:52 AM
shchenz requested review of this revision.Jan 3 2023, 1:52 AM
shchenz updated this revision to Diff 485941.Jan 3 2023, 1:53 AM
shchenz added inline comments.Jan 3 2023, 1:56 AM
llvm/lib/Target/PowerPC/PPCInstrInfo.td
3332

Some workarounds for GlobalISelEmitter to handle this anyext pattern. This looks like an issue in GlobalISelEmitter, otherwise there will be many same manual modifications.

3738

Some workarounds for GlobalISelEmitter to handle this setcc pattern

arsenm accepted this revision.Jan 3 2023, 7:02 AM
arsenm added inline comments.
llvm/lib/Target/PowerPC/PPCInstrInfo.td
3332

I think output patterns should really specify the class, not the type. The 1:1 mapping of type to class is one of the conceptual issues with the DAG and its patterns

3738

As above, I think output patterns should use classes

This revision is now accepted and ready to land.Jan 3 2023, 7:02 AM
shchenz marked an inline comment as done.Jan 4 2023, 11:49 PM
shchenz added inline comments.
llvm/lib/Target/PowerPC/PPCInstrInfo.td
3738

Ty can be f32/f64/f128, it may need another parameter for the low level register class. Let me just use MVT for now since I am working on addressing this issue in GlobalISelEmitter.cpp.

This revision was automatically updated to reflect the committed changes.