Re: [PATCH] i386: add alias for f*mul_*ch intrinsics

2021-11-17 Thread Hongtao Liu via Gcc-patches
On Tue, Nov 16, 2021 at 4:35 PM Hongtao Liu  wrote:
>
> On Tue, Nov 16, 2021 at 4:23 PM Kong, Lingling via Gcc-patches
>  wrote:
> >
> > Hi,
> >
> > This patch is to add alias for f*mul_*ch intrinsics.
> >
> > Ok for master?
> This patch just adds some macro definitions (new aliases for
> intrinsic) to the header file, and I think this should be low risk.
> And considering that the intel intrinsic guide has been updated with
> those aliases, it would be inconvenienced if they were not in the
> latest gcc, so I think we should install this.
> Ok if there's no other objections.
I've installed the patch.
> >
> > gcc/ChangeLog:
> >
> > * config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for 
> > _mm512_fmul_pch.
> > (_mm512_mask_mul_pch): Likewise.
> > (_mm512_maskz_mul_pch): Likewise.
> > (_mm512_mul_round_pch): Likewise.
> > (_mm512_mask_mul_round_pch): Likewise.
> > (_mm512_maskz_mul_round_pch): Likewise.
> > (_mm512_cmul_pch): Likewise.
> > (_mm512_mask_cmul_pch): Likewise.
> > (_mm512_maskz_cmul_pch): Likewise.
> > (_mm512_cmul_round_pch): Likewise.
> > (_mm512_mask_cmul_round_pch): Likewise.
> > (_mm512_maskz_cmul_round_pch): Likewise.
> > (_mm_mul_sch): Likewise.
> > (_mm_mask_mul_sch): Likewise.
> > (_mm_maskz_mul_sch): Likewise.
> > (_mm_mul_round_sch): Likewise.
> > (_mm_mask_mul_round_sch): Likewise.
> > (_mm_maskz_mul_round_sch): Likewise.
> > (_mm_cmul_sch): Likewise.
> > (_mm_mask_cmul_sch): Likewise.
> > (_mm_maskz_cmul_sch): Likewise.
> > (_mm_cmul_round_sch): Likewise.
> > (_mm_mask_cmul_round_sch): Likewise.
> > (_mm_maskz_cmul_round_sch): Likewise.
> > * config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise.
> > (_mm_mask_mul_pch): Likewise.
> > (_mm_maskz_mul_pch): Likewise.
> > (_mm256_mul_pch): Likewise.
> > (_mm256_mask_mul_pch): Likewise.
> > (_mm256_maskz_mul_pch): Likewise.
> > (_mm_cmul_pch): Likewise.
> > (_mm_mask_cmul_pch): Likewise.
> > (_mm_maskz_cmul_pch): Likewise.
> > (_mm256_cmul_pch): Likewise.
> > (_mm256_mask_cmul_pch): Likewise.
> > (_mm256_maskz_cmul_pch): Likewise.
> >
> > gcc/testsuite/ChangeLog:
> >
> > * gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Add new test for alias.
> > * gcc.target/i386/avx512fp16-vfcmulcsh-1a.c: Likewise.
> > * gcc.target/i386/avx512fp16-vfmulcph-1a.c: Likewise.
> > * gcc.target/i386/avx512fp16-vfmulcsh-1a.c: Likewise.
> > * gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Likewise.
> > * gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Likewise.
> > ---
> >  gcc/config/i386/avx512fp16intrin.h| 39 +++
> >  gcc/config/i386/avx512fp16vlintrin.h  | 17 
> >  .../gcc.target/i386/avx512fp16-vfcmulcph-1a.c | 19 ++---  
> > .../gcc.target/i386/avx512fp16-vfcmulcsh-1a.c | 19 ++---  
> > .../gcc.target/i386/avx512fp16-vfmulcph-1a.c  | 19 ++---  
> > .../gcc.target/i386/avx512fp16-vfmulcsh-1a.c  | 19 ++---
> >  .../i386/avx512fp16vl-vfcmulcph-1a.c  | 20 +++---
> >  .../i386/avx512fp16vl-vfmulcph-1a.c   | 20 +++---
> >  8 files changed, 136 insertions(+), 36 deletions(-)
> >
> > diff --git a/gcc/config/i386/avx512fp16intrin.h 
> > b/gcc/config/i386/avx512fp16intrin.h
> > index 44c5e24f234..fe73e693897 100644
> > --- a/gcc/config/i386/avx512fp16intrin.h
> > +++ b/gcc/config/i386/avx512fp16intrin.h
> > @@ -7162,6 +7162,45 @@ _mm512_set1_pch (_Float16 _Complex __A)
> >return (__m512h) _mm512_set1_ps (u.b);  }
> >
> > +// intrinsics below are alias for f*mul_*ch #define _mm512_mul_pch(A,
> > +B) _mm512_fmul_pch ((A), (B))
> > +#define _mm512_mask_mul_pch(W, U, A, B)
> >   \
> > +  _mm512_mask_fmul_pch ((W), (U), (A), (B)) #define
> > +_mm512_maskz_mul_pch(U, A, B) _mm512_maskz_fmul_pch ((U), (A), (B))
> > +#define _mm512_mul_round_pch(A, B, R) _mm512_fmul_round_pch ((A), (B), (R))
> > +#define _mm512_mask_mul_round_pch(W, U, A, B, R) \
> > +  _mm512_mask_fmul_round_pch ((W), (U), (A), (B), (R))
> > +#define _mm512_maskz_mul_round_pch(U, A, B, R)   \
> > +  _mm512_maskz_fmul_round_pch ((U), (A), (B), (R))
> > +
> > +#define _mm512_cmul_pch(A, B) _mm512_fcmul_pch ((A), (B))
> > +#define _mm512_mask_cmul_pch(W, U, A, B) \
> > +  _mm512_mask_fcmul_pch ((W), (U), (A), (B)) #define
> > +_mm512_maskz_cmul_pch(U, A, B) _mm512_maskz_fcmul_pch ((U), (A), (B))
> > +#define _mm512_cmul_round_pch(A, B, R) _mm512_fcmul_round_pch ((A), (B), 
> > (R))
> > +#define _mm512_mask_cmul_round_pch(W, U, A, B, R)\
> > +  _mm512_mask_fcmul_round_pch ((W), (U), (A), (B), (R))
> > +#define _mm512_maskz_cmul_round_pch(U, A, B, R) 

Re: [PATCH] i386: add alias for f*mul_*ch intrinsics

2021-11-16 Thread Hongtao Liu via Gcc-patches
On Tue, Nov 16, 2021 at 4:23 PM Kong, Lingling via Gcc-patches
 wrote:
>
> Hi,
>
> This patch is to add alias for f*mul_*ch intrinsics.
>
> Ok for master?
This patch just adds some macro definitions (new aliases for
intrinsic) to the header file, and I think this should be low risk.
And considering that the intel intrinsic guide has been updated with
those aliases, it would be inconvenienced if they were not in the
latest gcc, so I think we should install this.
Ok if there's no other objections.
>
> gcc/ChangeLog:
>
> * config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for 
> _mm512_fmul_pch.
> (_mm512_mask_mul_pch): Likewise.
> (_mm512_maskz_mul_pch): Likewise.
> (_mm512_mul_round_pch): Likewise.
> (_mm512_mask_mul_round_pch): Likewise.
> (_mm512_maskz_mul_round_pch): Likewise.
> (_mm512_cmul_pch): Likewise.
> (_mm512_mask_cmul_pch): Likewise.
> (_mm512_maskz_cmul_pch): Likewise.
> (_mm512_cmul_round_pch): Likewise.
> (_mm512_mask_cmul_round_pch): Likewise.
> (_mm512_maskz_cmul_round_pch): Likewise.
> (_mm_mul_sch): Likewise.
> (_mm_mask_mul_sch): Likewise.
> (_mm_maskz_mul_sch): Likewise.
> (_mm_mul_round_sch): Likewise.
> (_mm_mask_mul_round_sch): Likewise.
> (_mm_maskz_mul_round_sch): Likewise.
> (_mm_cmul_sch): Likewise.
> (_mm_mask_cmul_sch): Likewise.
> (_mm_maskz_cmul_sch): Likewise.
> (_mm_cmul_round_sch): Likewise.
> (_mm_mask_cmul_round_sch): Likewise.
> (_mm_maskz_cmul_round_sch): Likewise.
> * config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise.
> (_mm_mask_mul_pch): Likewise.
> (_mm_maskz_mul_pch): Likewise.
> (_mm256_mul_pch): Likewise.
> (_mm256_mask_mul_pch): Likewise.
> (_mm256_maskz_mul_pch): Likewise.
> (_mm_cmul_pch): Likewise.
> (_mm_mask_cmul_pch): Likewise.
> (_mm_maskz_cmul_pch): Likewise.
> (_mm256_cmul_pch): Likewise.
> (_mm256_mask_cmul_pch): Likewise.
> (_mm256_maskz_cmul_pch): Likewise.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Add new test for alias.
> * gcc.target/i386/avx512fp16-vfcmulcsh-1a.c: Likewise.
> * gcc.target/i386/avx512fp16-vfmulcph-1a.c: Likewise.
> * gcc.target/i386/avx512fp16-vfmulcsh-1a.c: Likewise.
> * gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Likewise.
> * gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Likewise.
> ---
>  gcc/config/i386/avx512fp16intrin.h| 39 +++
>  gcc/config/i386/avx512fp16vlintrin.h  | 17 
>  .../gcc.target/i386/avx512fp16-vfcmulcph-1a.c | 19 ++---  
> .../gcc.target/i386/avx512fp16-vfcmulcsh-1a.c | 19 ++---  
> .../gcc.target/i386/avx512fp16-vfmulcph-1a.c  | 19 ++---  
> .../gcc.target/i386/avx512fp16-vfmulcsh-1a.c  | 19 ++---
>  .../i386/avx512fp16vl-vfcmulcph-1a.c  | 20 +++---
>  .../i386/avx512fp16vl-vfmulcph-1a.c   | 20 +++---
>  8 files changed, 136 insertions(+), 36 deletions(-)
>
> diff --git a/gcc/config/i386/avx512fp16intrin.h 
> b/gcc/config/i386/avx512fp16intrin.h
> index 44c5e24f234..fe73e693897 100644
> --- a/gcc/config/i386/avx512fp16intrin.h
> +++ b/gcc/config/i386/avx512fp16intrin.h
> @@ -7162,6 +7162,45 @@ _mm512_set1_pch (_Float16 _Complex __A)
>return (__m512h) _mm512_set1_ps (u.b);  }
>
> +// intrinsics below are alias for f*mul_*ch #define _mm512_mul_pch(A,
> +B) _mm512_fmul_pch ((A), (B))
> +#define _mm512_mask_mul_pch(W, U, A, B)  
> \
> +  _mm512_mask_fmul_pch ((W), (U), (A), (B)) #define
> +_mm512_maskz_mul_pch(U, A, B) _mm512_maskz_fmul_pch ((U), (A), (B))
> +#define _mm512_mul_round_pch(A, B, R) _mm512_fmul_round_pch ((A), (B), (R))
> +#define _mm512_mask_mul_round_pch(W, U, A, B, R) \
> +  _mm512_mask_fmul_round_pch ((W), (U), (A), (B), (R))
> +#define _mm512_maskz_mul_round_pch(U, A, B, R)   \
> +  _mm512_maskz_fmul_round_pch ((U), (A), (B), (R))
> +
> +#define _mm512_cmul_pch(A, B) _mm512_fcmul_pch ((A), (B))
> +#define _mm512_mask_cmul_pch(W, U, A, B) \
> +  _mm512_mask_fcmul_pch ((W), (U), (A), (B)) #define
> +_mm512_maskz_cmul_pch(U, A, B) _mm512_maskz_fcmul_pch ((U), (A), (B))
> +#define _mm512_cmul_round_pch(A, B, R) _mm512_fcmul_round_pch ((A), (B), (R))
> +#define _mm512_mask_cmul_round_pch(W, U, A, B, R)\
> +  _mm512_mask_fcmul_round_pch ((W), (U), (A), (B), (R))
> +#define _mm512_maskz_cmul_round_pch(U, A, B, R)  
> \
> +  _mm512_maskz_fcmul_round_pch ((U), (A), (B), (R))
> +
> +#define _mm_mul_sch(A, B) _mm_fmul_sch ((A), (B)) #define
> +_mm_mask_mul_sch(W, U, A, B) _mm_mask_fmul_sch ((W), (U), (A), (B))
> +#define _mm_maskz_mul_sch(U, A, B) _mm_maskz_fmul_sch ((U), (A), (B))
> +#def

[PATCH] i386: add alias for f*mul_*ch intrinsics

2021-11-16 Thread Kong, Lingling via Gcc-patches
Hi,

This patch is to add alias for f*mul_*ch intrinsics. 

Ok for master?

gcc/ChangeLog:

* config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for 
_mm512_fmul_pch.
(_mm512_mask_mul_pch): Likewise.
(_mm512_maskz_mul_pch): Likewise.
(_mm512_mul_round_pch): Likewise.
(_mm512_mask_mul_round_pch): Likewise.
(_mm512_maskz_mul_round_pch): Likewise.
(_mm512_cmul_pch): Likewise.
(_mm512_mask_cmul_pch): Likewise.
(_mm512_maskz_cmul_pch): Likewise.
(_mm512_cmul_round_pch): Likewise.
(_mm512_mask_cmul_round_pch): Likewise.
(_mm512_maskz_cmul_round_pch): Likewise.
(_mm_mul_sch): Likewise.
(_mm_mask_mul_sch): Likewise.
(_mm_maskz_mul_sch): Likewise.
(_mm_mul_round_sch): Likewise.
(_mm_mask_mul_round_sch): Likewise.
(_mm_maskz_mul_round_sch): Likewise.
(_mm_cmul_sch): Likewise.
(_mm_mask_cmul_sch): Likewise.
(_mm_maskz_cmul_sch): Likewise.
(_mm_cmul_round_sch): Likewise.
(_mm_mask_cmul_round_sch): Likewise.
(_mm_maskz_cmul_round_sch): Likewise.
* config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise.
(_mm_mask_mul_pch): Likewise.
(_mm_maskz_mul_pch): Likewise.
(_mm256_mul_pch): Likewise.
(_mm256_mask_mul_pch): Likewise.
(_mm256_maskz_mul_pch): Likewise.
(_mm_cmul_pch): Likewise.
(_mm_mask_cmul_pch): Likewise.
(_mm_maskz_cmul_pch): Likewise.
(_mm256_cmul_pch): Likewise.
(_mm256_mask_cmul_pch): Likewise.
(_mm256_maskz_cmul_pch): Likewise.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Add new test for alias.
* gcc.target/i386/avx512fp16-vfcmulcsh-1a.c: Likewise.
* gcc.target/i386/avx512fp16-vfmulcph-1a.c: Likewise.
* gcc.target/i386/avx512fp16-vfmulcsh-1a.c: Likewise.
* gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Likewise.
* gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Likewise.
---
 gcc/config/i386/avx512fp16intrin.h| 39 +++
 gcc/config/i386/avx512fp16vlintrin.h  | 17 
 .../gcc.target/i386/avx512fp16-vfcmulcph-1a.c | 19 ++---  
.../gcc.target/i386/avx512fp16-vfcmulcsh-1a.c | 19 ++---  
.../gcc.target/i386/avx512fp16-vfmulcph-1a.c  | 19 ++---  
.../gcc.target/i386/avx512fp16-vfmulcsh-1a.c  | 19 ++---
 .../i386/avx512fp16vl-vfcmulcph-1a.c  | 20 +++---
 .../i386/avx512fp16vl-vfmulcph-1a.c   | 20 +++---
 8 files changed, 136 insertions(+), 36 deletions(-)

diff --git a/gcc/config/i386/avx512fp16intrin.h 
b/gcc/config/i386/avx512fp16intrin.h
index 44c5e24f234..fe73e693897 100644
--- a/gcc/config/i386/avx512fp16intrin.h
+++ b/gcc/config/i386/avx512fp16intrin.h
@@ -7162,6 +7162,45 @@ _mm512_set1_pch (_Float16 _Complex __A)
   return (__m512h) _mm512_set1_ps (u.b);  }
 
+// intrinsics below are alias for f*mul_*ch #define _mm512_mul_pch(A, 
+B) _mm512_fmul_pch ((A), (B))
+#define _mm512_mask_mul_pch(W, U, A, B)  \
+  _mm512_mask_fmul_pch ((W), (U), (A), (B)) #define 
+_mm512_maskz_mul_pch(U, A, B) _mm512_maskz_fmul_pch ((U), (A), (B)) 
+#define _mm512_mul_round_pch(A, B, R) _mm512_fmul_round_pch ((A), (B), (R))
+#define _mm512_mask_mul_round_pch(W, U, A, B, R) \
+  _mm512_mask_fmul_round_pch ((W), (U), (A), (B), (R))
+#define _mm512_maskz_mul_round_pch(U, A, B, R)   \
+  _mm512_maskz_fmul_round_pch ((U), (A), (B), (R))
+
+#define _mm512_cmul_pch(A, B) _mm512_fcmul_pch ((A), (B))
+#define _mm512_mask_cmul_pch(W, U, A, B) \
+  _mm512_mask_fcmul_pch ((W), (U), (A), (B)) #define 
+_mm512_maskz_cmul_pch(U, A, B) _mm512_maskz_fcmul_pch ((U), (A), (B)) 
+#define _mm512_cmul_round_pch(A, B, R) _mm512_fcmul_round_pch ((A), (B), (R))
+#define _mm512_mask_cmul_round_pch(W, U, A, B, R)\
+  _mm512_mask_fcmul_round_pch ((W), (U), (A), (B), (R))
+#define _mm512_maskz_cmul_round_pch(U, A, B, R)  \
+  _mm512_maskz_fcmul_round_pch ((U), (A), (B), (R))
+
+#define _mm_mul_sch(A, B) _mm_fmul_sch ((A), (B)) #define 
+_mm_mask_mul_sch(W, U, A, B) _mm_mask_fmul_sch ((W), (U), (A), (B)) 
+#define _mm_maskz_mul_sch(U, A, B) _mm_maskz_fmul_sch ((U), (A), (B)) 
+#define _mm_mul_round_sch(A, B, R) _mm_fmul_round_sch ((A), (B), (R))
+#define _mm_mask_mul_round_sch(W, U, A, B, R)\
+  _mm_mask_fmul_round_sch ((W), (U), (A), (B), (R))
+#define _mm_maskz_mul_round_sch(U, A, B, R)  \
+  _mm_maskz_fmul_round_sch ((U), (A), (B), (R))
+
+#define _mm_cmul_sch(A, B) _mm_fcmul_sch ((A), (B)) #define 
+_mm_mask_cmul_sch(W, U, A, B) _mm_mask_fcmul_sch ((W), (U), (A), (B)) 
+#define _mm_maskz_cmul_sch(U, A, B) _mm_maskz_fcmul_sch ((U), (A), (B)) 
+#define _mm_cmul_round_sch(A, B, R) _mm_fcmul_round_sch ((A), (B), (R))
+#define