This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][AArch64] Fix FAIL: gcc.target/aarch64/cmn.c scan-assembler cmn\tw[0-9]


On 09/09/13 13:50, Kyrylo Tkachov wrote:
> Hi Richard,
> 
>> On 29/07/13 14:58, Kyrylo Tkachov wrote:
>>> Hi all,
>>>
>>> Now that combine emits the canonical form for (eq (neg x) (y)) instead
>> of (eq
>>> (x) (neg y)), this patch fixes up the corresponding pattern in aarch64
>> to
>>> match that. This enables combine to properly generate the cmn
>> instruction
>>> where appropriate.
>>>
>>> Tested aarch64-none-elf on model.
>>>
>>> Ok for trunk?
>>>
>>
>> No, this is wrong for inequalities, since in reality it's the second
>> operand that's inverted.
>>
>> You'll need to use CC_SWP mode and then arrange for this to be correctly
>> picked by select_cc_mode.
>>
> 
> How's this?
> 
> aarch64_select_cc_mode is updated to return CC_SWPmode for these comparisons and
> the MD pattern is updated accordingly.
> 
> Tested aarch64-none-elf on a model.
> 
> Is this ok?
> 
> Thanks,
> Kyrill
> 
> 2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
> 	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
> 	comparison with negated operand.
> 	* config/aarch64/aarch64.md (compare_neg<mode>): Match canonical RTL form.
> 	
> 2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
> 	* gcc.target/aarch64/cmn-neg.c: New test.
> 
> 
> 

OK.

R.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]