1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/unittests/CodeGen/GlobalISel
Jessica Paquette ae291b6dfb [GlobalISel] Add G_SBFX + G_UBFX (bitfield extraction opcodes)
There is a bunch of similar bitfield extraction code throughout *ISelDAGToDAG.

E.g, ARMISelDAGToDAG, AArch64ISelDAGToDAG, and AMDGPUISelDAGToDAG all contain
code that matches a bitfield extract from an and + right shift.

Rather than duplicating code in the same way, this adds two opcodes:

- G_UBFX (unsigned bitfield extract)
- G_SBFX (signed bitfield extract)

They work like this

```
%x = G_UBFX %y, %lsb, %width
```

Where `lsb` and `width` are

- The least-significant bit of the extraction
- The width of the extraction

This will extract `width` bits from `%y`, starting at `lsb`. G_UBFX zero-extends
the result, while G_SBFX sign-extends the result.

This should allow us to use the combiner to match the bitfield extraction
patterns rather than duplicating pattern-matching code in each target.

Differential Revision: https://reviews.llvm.org/D98464
2021-03-19 14:37:19 -07:00
..
CMakeLists.txt Reland [GlobalISel] Start using vectors in GISelKnownBits 2021-03-04 21:47:13 +01:00
ConstantFoldingTest.cpp
CSETest.cpp [GlobalISel] Fix CSEMIRBuilder silently allowing use-before-def. 2020-10-05 11:00:00 -07:00
GISelMITest.cpp
GISelMITest.h Reland [FileCheck] Move FileCheck implementation out of LLVMSupport into its own library 2020-09-01 14:59:28 +02:00
GISelUtilsTest.cpp GlobalISel: Rewrite getLCMType 2020-07-20 21:06:30 -04:00
KnownBitsTest.cpp Reland [GlobalISel] Start using vectors in GISelKnownBits 2021-03-04 21:47:13 +01:00
KnownBitsVectorTest.cpp Reland [GlobalISel] Start using vectors in GISelKnownBits 2021-03-04 21:47:13 +01:00
LegalizerHelperTest.cpp GlobalISel: Try to combine G_[SU]DIV and G_[SU]REM 2021-03-10 18:46:07 +05:30
LegalizerInfoTest.cpp Use pragmas to work around MSVC x86_32 debug miscompile bug 2020-09-10 14:50:01 -07:00
LegalizerTest.cpp [mir] Change 'undef' for MMO base addresses to 'unknown-address' 2021-03-10 16:46:44 -08:00
MachineIRBuilderTest.cpp [GlobalISel] Add G_SBFX + G_UBFX (bitfield extraction opcodes) 2021-03-19 14:37:19 -07:00
PatternMatchTest.cpp [MIPatternMatch] Add m_OneNonDBGUse 2021-01-15 10:18:46 -08:00