diff mbox series

AArch64: Remove redundant check in aarch64_simd_mov

Message ID PAWPR08MB8982FB057D800FA48F17D9FA83472@PAWPR08MB8982.eurprd08.prod.outlook.com
State New
Headers show
Series AArch64: Remove redundant check in aarch64_simd_mov | expand

Commit Message

Wilco Dijkstra Oct. 17, 2024, 3:10 p.m. UTC
The split condition in aarch64_simd_mov uses aarch64_simd_special_constant_p.  While
doing the split, it checks the mode before calling aarch64_maybe_generate_simd_constant.
This risky since it may result in unexpectedly calling aarch64_split_simd_move instead
of aarch64_maybe_generate_simd_constant.  Since the mode is already checked, remove the
spurious explicit mode check.

Passes bootstrap & regress, OK for commit?

---

Comments

Victor Do Nascimento Oct. 17, 2024, 8:32 p.m. UTC | #1
FWIW, I definitely agree about the spuriousness of the V2DI mode check.
While I can't approve, I can confirm it looks good.

Thanks,
Victor.

On 10/17/24 16:10, Wilco Dijkstra wrote:
> 
> The split condition in aarch64_simd_mov uses aarch64_simd_special_constant_p.  While
> doing the split, it checks the mode before calling aarch64_maybe_generate_simd_constant.
> This risky since it may result in unexpectedly calling aarch64_split_simd_move instead
> of aarch64_maybe_generate_simd_constant.  Since the mode is already checked, remove the
> spurious explicit mode check.
> 
> Passes bootstrap & regress, OK for commit?
> 
> ---
> 
> diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
> index 18795a08b61da874a9e811822ed82e7eb9350bb4..5ac80103502112664528d37e3b8e24edc16eb932 100644
> --- a/gcc/config/aarch64/aarch64-simd.md
> +++ b/gcc/config/aarch64/aarch64-simd.md
> @@ -208,7 +208,6 @@ (define_insn_and_split "*aarch64_simd_mov<VQMOV:mode>"
>       else
>         {
>   	if (FP_REGNUM_P (REGNO (operands[0]))
> -	    && <MODE>mode == V2DImode
>   	    && aarch64_maybe_generate_simd_constant (operands[0], operands[1],
>   						     <MODE>mode))
>   	  ;
>
Kyrylo Tkachov Oct. 18, 2024, 7:45 a.m. UTC | #2
> On 17 Oct 2024, at 22:32, Victor Do Nascimento <victor.donascimento@arm.com> wrote:
> 
> FWIW, I definitely agree about the spuriousness of the V2DI mode check.
> While I can't approve, I can confirm it looks good.

Thanks for looking at it Victor.
The patch is ok.
Kyrill

> 
> Thanks,
> Victor.
> 
> On 10/17/24 16:10, Wilco Dijkstra wrote:
>> The split condition in aarch64_simd_mov uses aarch64_simd_special_constant_p.  While
>> doing the split, it checks the mode before calling aarch64_maybe_generate_simd_constant.
>> This risky since it may result in unexpectedly calling aarch64_split_simd_move instead
>> of aarch64_maybe_generate_simd_constant.  Since the mode is already checked, remove the
>> spurious explicit mode check.
>> Passes bootstrap & regress, OK for commit?
>> ---
>> diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
>> index 18795a08b61da874a9e811822ed82e7eb9350bb4..5ac80103502112664528d37e3b8e24edc16eb932 100644
>> --- a/gcc/config/aarch64/aarch64-simd.md
>> +++ b/gcc/config/aarch64/aarch64-simd.md
>> @@ -208,7 +208,6 @@ (define_insn_and_split "*aarch64_simd_mov<VQMOV:mode>"
>>      else
>>        {
>>   if (FP_REGNUM_P (REGNO (operands[0]))
>> -    && <MODE>mode == V2DImode
>>      && aarch64_maybe_generate_simd_constant (operands[0], operands[1],
>>       <MODE>mode))
>>    ;
diff mbox series

Patch

diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 18795a08b61da874a9e811822ed82e7eb9350bb4..5ac80103502112664528d37e3b8e24edc16eb932 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -208,7 +208,6 @@  (define_insn_and_split "*aarch64_simd_mov<VQMOV:mode>"
     else
       {
 	if (FP_REGNUM_P (REGNO (operands[0]))
-	    && <MODE>mode == V2DImode
 	    && aarch64_maybe_generate_simd_constant (operands[0], operands[1],
 						     <MODE>mode))
 	  ;