Displaying 5 results from an estimated 5 matches for "g_extract".
Did you mean:
extract
2019 Jan 07
2
GlobalISel legalization artifact legalization
Hi,
I’m trying to handle some vector operations with splitting/scalarization and keep running into similar sorts of issues which are making me question the intended function of the various legalization operations (particularly G_MERGE_VALUES/G_UNMERGE_VALUES, but also G_EXTRACT/G_INSERT and conversion instructions) and what the contract between the legalizer and selector actually is.
For scalar values, things seem clearer, but I’m still confused. The AArch64 selector code seems content to allow strange sized values in the source of G_EXTRACT/G_SEXT etc, and then just set...
2018 Sep 21
2
[GlobalISel] Legalize generic instructions that also depend on type of scalar, not only scalar size
...floating point instructions, while i64 instructions
have to be emulated with i32 instructions. This means that G_LOAD should
be custom legalized for s64 integer value, and be legal for s64 floating
point value. There are also other generic instructions with the same
problem: G_STORE, G_SELECT, G_EXTRACT, and G_INSERT.
There are also other configurations where integer and floating point
instructions of the same size are not simultaneously available. This
problem was already addressed here
http://lists.llvm.org/pipermail/llvm-dev/2017-July/114978.html for
G_LOAD/G_STORE.
Legality of an instruc...
2020 Feb 27
2
Correct modelling of instructions with types smaller than the register class
...er class and simply allowed smaller types <s32.
What I am gathering now from this discussion is that this is basically
an incorrect modelling and only works around another problem. Could you
expand on this in more detail?
I was thinking about implementing some custom legalization which uses
G_EXTRACT or shifts to get what I want, but G_EXTRACT extracts as many
bits as the destination type, so I would end up with the same problem
again. Shifts are also not optimal, since we have a target instruction
available to extract n bits from a given offset. Is it valid to emit
target instructions duri...
2017 Jan 21
12
[GlobalISel] Quick Status
...f the project anyway.
*** Per Pass Status ***
** IRTranslator **
Mostly done.
* What’s Left? *
Some instructions are not yet supported.
** Legalizer **
Core logic is present.
* What’s Left? *
- A lot of instructions are missing, in particular the vector ones.
- Legalization of G_SEQUENCE/G_EXTRACT still up in the air for complex cases.
Note: The lack of broad vector support is one on the reason we target O0, i.e., the vectorizer doesn’t run and we are less likely to hit the missing implementation.
** RegBankSelect **
- Core logic is present, no optimizations yet, or more accurately, the...
2020 Mar 02
2
Correct modelling of instructions with types smaller than the register class
...on
the COPY being eliminated. I would much rather not emit it at all, but
this obviously means that I would throw away the carry vreg of
G_UADDO/UADDE, potentially changing the semantics of the instruction.
>
>
>> I was thinking about implementing some custom legalization which uses G_EXTRACT or shifts to get what I want, but G_EXTRACT extracts as many bits as the destination type, so I would end up with the same problem again. Shifts are also not optimal, since we have a target instruction available to extract n bits from a given offset. Is it valid to emit target instructions during l...