SuccessChanges

Summary

  1. [GlobalISel][AArch64] Import + select LDR*roW and STR*roW patterns (details)
  2. [X86] Add ueq/one fp128 quiet compare tests. NFC (details)
Commit 9949b1a1753aa0f229c5b55ea01ec96f48164d9e by Jessica Paquette
[GlobalISel][AArch64] Import + select LDR*roW and STR*roW patterns
This adds support for selecting a large chunk of the load/store *roW
patterns.
This is pretty much a straight port of
AArch64DAGToDAGISel::SelectAddrModeWRO into GISel. The code is very
similar to the XRO code. The main difference is that in the *roW
patterns, we want to try and fold in an extend, and *possibly* a shift
along with it. A good portion of this patch is refactoring the existing
XRO code.
- Add selectAddrModeWRO
- Factor out the code from selectAddrModeShiftedExtendXReg which is used
by both
selectAddrModeXRO and selectAddrModeWRO into selectExtendedSHL.
This is similar to the function of the same name in
AArch64DAGToDAGISel.
- Add support for extends to the factored out code in selectExtendedSHL.
- Teach getExtendTypeForInst how to handle AND masks that are intended
to be
used in loads/stores (necessary for this addressing mode.)
- Make getExtendTypeForInst not static because moving it made an
annoying diff
and I wanted to have the WRO/XRO functions close to each other while I
was
writing the code.
Differential Revision: https://reviews.llvm.org/D72426
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/store-wro-addressing-modes.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrFormats.td
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/load-wro-addressing-modes.mir
Commit 4e003aad42d985dade66cd5928d64dd09edecceb by craig.topper
[X86] Add ueq/one fp128 quiet compare tests. NFC
The ONE expansion calls OGT/OLT libcalls which will signal for QNAN. The
UEQ expansion uses unord and eq libcalls which won't signal. We should
probably use those libcalls for ONE with appropriate logic.
Quiet OGT/OLT/OLE/OGE have similar issue, but not sure how to fix those
yet.
The file was modifiedllvm/test/CodeGen/X86/fp128-compare.ll
The file was modifiedllvm/test/CodeGen/X86/fp128-libcalls-strict.ll