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,rs6000] Correct argument and result types for binary floating point built-in functions


On Thu, Jan 19, 2017 at 04:07:47PM -0700, Kelvin Nilsen wrote:
> 
> This patch corrects several errors in a patch originally committed on
> 2016-08-10.  The following corrections are required to maintain
> compliance with "Power Architecture 64-Bit ELF V2 ABI Specification",
> also known as "OpenPOWER ABI for Linux Supplement".
> 
>   vector unsigned long long vec_extract_exp (vector double);
>     (instead of vector long long vec_extract_exp (vector double))
>   vector unsigned int vec_extract_exp (vector float);
>     (instead of vector int vec_extract_exp (vector float))
>   vector unsigned long long vec_extract_sig (vector double);
>     (instead of vector long long vec_extract_sig (vector double))
>   vector unsigned int vec_extract_sig (vector float);
>     (instead of vector int vec_extract_sig (vector float))
>   vector double vec_insert_exp (vector double, vector unsigned long long);
>   vector float vec_insert_exp (vector float, vector unsigned int);
>     (the above two are new forms, to complement the existing 
>      forms which take matching integer arguments)
>   vector bool int vec_test_data_class (vector float, const int);
>     (instead of vector int vec_test_class (vector float, unsigned int))
>   vector bool long long vec_test_data_class (vector double, const int);
>     (instead of vector long long vec_test_data_class (vector double, unsigned int))
> 
> Though the following functions are not defined in the ABI
> specification, they were also corrected to provide improved consistency
> with the corresponding vector functions:
> 
>   double scalar_insert_exp (double, unsigned long long);
>     (The above was added to complement the existing form: 
>      double scalar_insert_exp (unsigned long long int, unsigned long long int))
>   bool scalar_test_data_class (double, const int);
>     (instead of int scalar_test_data_class (double, unsigned int))
>   bool scalar_test_data_class (float, const int);
>     (instead of int scalar_test_data_class (float, unsigned int))
>   bool scalar_test_neg (double);
>     (instead of int scalar_test_neg (double))
>   bool scalar_test_neg (float);
>     (instead of int scalar_test_neg (float))
> 
> This patch has bootstrapped and tested on
> powerpcle-unknown-linux (little-endian) and on
> powerpc-unknown-linux (big-endian, with both -m32 and -m64 target
> option) with no regressions.  Is this ok for the trunk?

Yes, this looks good, thanks!  One triviality in the changelog:

> 	int" to "int".  Addeod new overloaded function forms "vector float

Typo.  Looks like a powerpc mnemonic ;-)


Segher


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