Displaying 4 results from an estimated 4 matches for "__illegal__".
2012 Jun 01
0
[LLVMdev] Predicate registers/condition codes question
...newly promoted ones. Then as Ivan was suggesting, we will have to
> provide custom expansion to promote the "illegal" ops on i8 on almost
> all the operations, except logical ops.
I think there is also another (and cleaner) workaround, a kind of
operation-based type promotion of __illegal__ types.
This can be done by simply setting the operation with illegal type
result to have a custom expander, for example:
setOperationAction(ISD::AND, MVT::i1, Custom)
See LowerOperationWrapper() & ReplaceNodeResults() hooks in
TargetLowering. If you make this work only on logical ops, the r...
2012 May 25
3
[LLVMdev] Predicate registers/condition codes question
On Thu, May 24, 2012 at 5:40 PM, Sebastian Pop <spop at codeaurora.org> wrote:
> On Thu, May 24, 2012 at 5:06 PM, Hal Finkel <hfinkel at anl.gov> wrote:
>> Sebastian,
>>
>> First, it might be useful to look at what is done in the PowerPC
>> backend. PPC also has condition registers that are larger than the
>> 1-bit conditional results, and it defines
2012 Jun 01
3
[LLVMdev] Predicate registers/condition codes question
... Then as Ivan was suggesting, we will have to
>> provide custom expansion to promote the "illegal" ops on i8 on almost
>> all the operations, except logical ops.
>
> I think there is also another (and cleaner) workaround, a kind of
> operation-based type promotion of __illegal__ types.
> This can be done by simply setting the operation with illegal type
> result to have a custom expander, for example:
>
> setOperationAction(ISD::AND, MVT::i1, Custom)
>
I was exploring something similar using exactly this function.
> See LowerOperationWrapper() & Rep...
2012 Jun 03
0
[LLVMdev] Predicate registers/condition codes question
...uggesting, we will have to
>>> provide custom expansion to promote the "illegal" ops on i8 on almost
>>> all the operations, except logical ops.
>>
>> I think there is also another (and cleaner) workaround, a kind of
>> operation-based type promotion of __illegal__ types.
>> This can be done by simply setting the operation with illegal type
>> result to have a custom expander, for example:
>>
>> setOperationAction(ISD::AND, MVT::i1, Custom)
>>
>
> I was exploring something similar using exactly this function.
>
>>...