This is an archive of the discontinued LLVM Phabricator instance.

[X86][CodeGen] Add a dag pattern to fix #64323
ClosedPublic

Authored by Peter on Aug 19 2023, 9:09 PM.

Details

Summary

After recent patch D30189, #64323's error message become a new one.
When DAGCombiner was optimizing (vextract (scalar_to_vector val, 0) -> val, it didn't
consider the possibility that the inserted value type has less bit than the dest type.
This patch fixes that.

Diff Detail

Event Timeline

Peter created this revision.Aug 19 2023, 9:09 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 19 2023, 9:09 PM
Peter requested review of this revision.Aug 19 2023, 9:09 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 19 2023, 9:09 PM
pengfei added inline comments.Aug 21 2023, 12:14 AM
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
21705–21708

The comments need update.

21714

Do not use else when the previous condition ends with return.

21716

ditto.

RKSimon added inline comments.Aug 21 2023, 4:21 AM
llvm/test/CodeGen/X86/pr64323.ll
6

nounwind to reduce cfi noise

goldstein.w.n added inline comments.
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
21714

you can also just remove second if entirely.

Peter updated this revision to Diff 552430.Aug 22 2023, 10:46 AM

Update comment per request.

Peter marked 4 inline comments as done.Aug 22 2023, 10:50 AM
Peter updated this revision to Diff 552434.Aug 22 2023, 10:52 AM

nounwind for testcases to reduce noise.

Peter marked an inline comment as done.Aug 22 2023, 10:52 AM
pengfei accepted this revision.Aug 22 2023, 10:46 PM

LGTM.

This revision is now accepted and ready to land.Aug 22 2023, 10:46 PM
This revision was landed with ongoing or failed builds.Aug 23 2023, 10:50 AM
This revision was automatically updated to reflect the committed changes.