diff mbox

[ARM] Delete f_sels, f_seld types, use fcsel instead

Message ID 53E3625C.8060103@arm.com
State New
Headers show

Commit Message

Kyrylo Tkachov Aug. 7, 2014, 11:26 a.m. UTC
Hi all,

During the great types rework this must have slipped through the cracks. 
We had two different types to describe the fcsel (A64) and vsel (A32) 
instructions: fcsel and f_sel[s,d].
In the A53 pipeline description we use fcsel, so the AArch32 version was 
presumably scheduled improperly
This patch removes the f_sel[s,d] (I don't think we need the granularity 
for any cores) types and gets the cmov pattern in arm.md to use the 
fcsel like the equivalent aarch64.md pattern.

Tested arm-none-eabi on an emulator.

Ok for trunk?

2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
     * config/arm/types.md (f_sels, f_seld): Delete.

Comments

Richard Earnshaw Aug. 7, 2014, 2:27 p.m. UTC | #1
On 07/08/14 12:26, Kyrill Tkachov wrote:
> Hi all,
> 
> During the great types rework this must have slipped through the cracks. 
> We had two different types to describe the fcsel (A64) and vsel (A32) 
> instructions: fcsel and f_sel[s,d].
> In the A53 pipeline description we use fcsel, so the AArch32 version was 
> presumably scheduled improperly
> This patch removes the f_sel[s,d] (I don't think we need the granularity 
> for any cores) types and gets the cmov pattern in arm.md to use the 
> fcsel like the equivalent aarch64.md pattern.
> 
> Tested arm-none-eabi on an emulator.
> 
> Ok for trunk?
> 
> 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>      * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
>      * config/arm/types.md (f_sels, f_seld): Delete.
> 
> 

OK.  I guess if we ever do need to distinguish between 32-bit and 64-bit
selects we can add the s/d distinction back in.

R.
diff mbox

Patch

diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 6ae240e..397da96 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -7416,7 +7416,7 @@ 
     return \"\";
   }"
   [(set_attr "conds" "use")
-   (set_attr "type" "f_sel<vfp_type>")]
+   (set_attr "type" "fcsel")]
 )
 
 (define_insn_and_split "*movsicc_insn"
diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md
index efbf7a7..f4feb2d 100644
--- a/gcc/config/arm/types.md
+++ b/gcc/config/arm/types.md
@@ -66,7 +66,6 @@ 
 ; f_mrc              transfer vfp to arm reg.
 ; f_mrrc             transfer vfp to two arm regs.
 ; f_rint[d,s]        double/single floating point rount to integral.
-; f_sel[d,s]         double/single floating byte select.
 ; f_store[d,s]       double/single store to memory.  Used for VFP unit.
 ; fadd[d,s]          double/single floating-point scalar addition.
 ; fcmp[d,s]          double/single floating-point compare.
@@ -571,8 +570,6 @@ 
   f_mrrc,\
   f_rintd,\
   f_rints,\
-  f_seld,\
-  f_sels,\
   f_stored,\
   f_stores,\
   faddd,\