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,i386] Fix adxintrin on mingw.


On Thu, Oct 2, 2014 at 7:29 AM, Ilya Tocar <tocarip.intel@gmail.com> wrote:
> Hi,
>
> sizeof (long) == 4 on windows, so we should use long long as param type.
> Patch below does it.

The same is true for x32.  Can you add a testcase to show it
fails on x32 without the fix?

> Ok for trunk?
>
> 2014-10-02  Ilya Tocar  <ilya.tocar@intel.com>
>
>         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
>         type.
>         (_addcarry_u64): Ditto.
>         (_addcarryx_u64): Ditto.
>
> ---
>  gcc/config/i386/adxintrin.h | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/config/i386/adxintrin.h b/gcc/config/i386/adxintrin.h
> index 8f2c01a..00a9b86 100644
> --- a/gcc/config/i386/adxintrin.h
> +++ b/gcc/config/i386/adxintrin.h
> @@ -55,24 +55,24 @@ _addcarryx_u32 (unsigned char __CF, unsigned int __X,
>  #ifdef __x86_64__
>  extern __inline unsigned char
>  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
> -_subborrow_u64 (unsigned char __CF, unsigned long __X,
> -               unsigned long __Y, unsigned long long *__P)
> +_subborrow_u64 (unsigned char __CF, unsigned long long __X,
> +               unsigned long long __Y, unsigned long long *__P)
>  {
>      return __builtin_ia32_sbb_u64 (__CF, __Y, __X, __P);
>  }
>
>  extern __inline unsigned char
>  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
> -_addcarry_u64 (unsigned char __CF, unsigned long __X,
> -              unsigned long __Y, unsigned long long *__P)
> +_addcarry_u64 (unsigned char __CF, unsigned long long __X,
> +              unsigned long long __Y, unsigned long long *__P)
>  {
>      return __builtin_ia32_addcarryx_u64 (__CF, __X, __Y, __P);
>  }
>
>  extern __inline unsigned char
>  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
> -_addcarryx_u64 (unsigned char __CF, unsigned long __X,
> -               unsigned long __Y, unsigned long long *__P)
> +_addcarryx_u64 (unsigned char __CF, unsigned long long __X,
> +               unsigned long long __Y, unsigned long long *__P)
>  {
>      return __builtin_ia32_addcarryx_u64 (__CF, __X, __Y, __P);
>  }
> --
> 1.8.3.1
>



-- 
H.J.


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