Generalize the 16-bit FPR to 32-bit GPR logic to work for all cases where destination size is bigger than source size.
Also fixed CheckCopy() always returning true instead of the result of isValidCopy().
Paths
| Differential D77530
[AArch64][GlobalISel] Generalize logic for promoting copies ClosedPublic Authored by tambre on Apr 6 2020, 1:17 AM.
Details Summary Generalize the 16-bit FPR to 32-bit GPR logic to work for all cases where destination size is bigger than source size. Also fixed CheckCopy() always returning true instead of the result of isValidCopy().
Diff Detail
Unit TestsFailed
Event Timelinetambre retitled this revision from [AArch64] Generalize logic for subregister copies to [AArch64][GlobalISel] Generalize logic for subregister copies.Apr 6 2020, 1:17 AM Comment Actions This actually breaks CodeGen/AArch64/f16-instructions.ll's test_select. Will investigate.
tambre marked 4 inline comments as done. Comment ActionsGeneralized SUBREG_TO_REG logic Tests now pass. Comment Actions Added proper generalization for the DstSize > SrcSize aka SUBREG_TO_REG case. Also moved the missing comment to SrcSize > DstSize.
tambre retitled this revision from [AArch64][GlobalISel] Generalize logic for subregister copies to [AArch64][GlobalISel] Generalize logic for promoting copies.Apr 7 2020, 8:46 AM Comment Actions
I didn't add any testcases. The testcase changes are now gone that I fixed the code to work correctly. This is now a NFC. This revision is now accepted and ready to land.Apr 23 2020, 10:23 AM Closed by commit rG9f31446c99bd: [AArch64][GlobalISel] Generalize logic for promoting copies (authored by paquette). · Explain WhyApr 28 2020, 3:08 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 255249 llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
llvm/test/CodeGen/AArch64/GlobalISel/fp16-copy-gpr.mir
llvm/test/CodeGen/AArch64/GlobalISel/opt-fold-ext-tbz-tbnz.mir
llvm/test/CodeGen/AArch64/GlobalISel/preselect-process-phis.mir
|
clang-format-diff not found in user's PATH; not linting file.