Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 14 additions & 28 deletions clang/lib/Headers/avx512fintrin.h
Original file line number Diff line number Diff line change
Expand Up @@ -1450,26 +1450,19 @@ _mm512_mask_mullox_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
(__v8df)_mm512_sqrt_round_pd((A), (R)), \
(__v8df)_mm512_setzero_pd()))

static __inline__ __m512d __DEFAULT_FN_ATTRS512
_mm512_sqrt_pd(__m512d __A)
{
return (__m512d)__builtin_ia32_sqrtpd512((__v8df)__A,
_MM_FROUND_CUR_DIRECTION);
static __inline__ __m512d __DEFAULT_FN_ATTRS512 _mm512_sqrt_pd(__m512d __A) {
return (__m512d)__builtin_elementwise_sqrt((__v8df)__A);
}

static __inline__ __m512d __DEFAULT_FN_ATTRS512
_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
{
return (__m512d)__builtin_ia32_selectpd_512(__U,
(__v8df)_mm512_sqrt_pd(__A),
_mm512_mask_sqrt_pd(__m512d __W, __mmask8 __U, __m512d __A) {
return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_sqrt_pd(__A),
(__v8df)__W);
}

static __inline__ __m512d __DEFAULT_FN_ATTRS512
_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
{
return (__m512d)__builtin_ia32_selectpd_512(__U,
(__v8df)_mm512_sqrt_pd(__A),
_mm512_maskz_sqrt_pd(__mmask8 __U, __m512d __A) {
return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_sqrt_pd(__A),
(__v8df)_mm512_setzero_pd());
}

Expand All @@ -1486,26 +1479,19 @@ _mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
(__v16sf)_mm512_sqrt_round_ps((A), (R)), \
(__v16sf)_mm512_setzero_ps()))

static __inline__ __m512 __DEFAULT_FN_ATTRS512
_mm512_sqrt_ps(__m512 __A)
{
return (__m512)__builtin_ia32_sqrtps512((__v16sf)__A,
_MM_FROUND_CUR_DIRECTION);
static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_sqrt_ps(__m512 __A) {
return (__m512)__builtin_elementwise_sqrt((__v16sf)__A);
}

static __inline__ __m512 __DEFAULT_FN_ATTRS512
_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A)
{
return (__m512)__builtin_ia32_selectps_512(__U,
(__v16sf)_mm512_sqrt_ps(__A),
static __inline__ __m512 __DEFAULT_FN_ATTRS512
_mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A) {
return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_sqrt_ps(__A),
(__v16sf)__W);
}

static __inline__ __m512 __DEFAULT_FN_ATTRS512
_mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A)
{
return (__m512)__builtin_ia32_selectps_512(__U,
(__v16sf)_mm512_sqrt_ps(__A),
static __inline__ __m512 __DEFAULT_FN_ATTRS512
_mm512_maskz_sqrt_ps(__mmask16 __U, __m512 __A) {
return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_sqrt_ps(__A),
(__v16sf)_mm512_setzero_ps());
}

Expand Down
14 changes: 5 additions & 9 deletions clang/lib/Headers/avx512fp16intrin.h
Original file line number Diff line number Diff line change
Expand Up @@ -1401,24 +1401,20 @@ _mm_maskz_scalef_sh(__mmask8 __U, __m128h __A, __m128h __B) {
(__v32hf)_mm512_setzero_ph()))

static __inline__ __m512h __DEFAULT_FN_ATTRS512 _mm512_sqrt_ph(__m512h __A) {
return (__m512h)__builtin_ia32_sqrtph512((__v32hf)__A,
_MM_FROUND_CUR_DIRECTION);
return (__m512h)__builtin_elementwise_sqrt((__v32hf)__A);
}

static __inline__ __m512h __DEFAULT_FN_ATTRS512
_mm512_mask_sqrt_ph(__m512h __W, __mmask32 __U, __m512h __A) {
return (__m512h)__builtin_ia32_selectph_512(
(__mmask32)(__U),
(__v32hf)__builtin_ia32_sqrtph512((__A), (_MM_FROUND_CUR_DIRECTION)),
(__v32hf)(__m512h)(__W));
(__mmask32)(__U), (__v32hf)_mm512_sqrt_ph(__A), (__v32hf)(__m512h)(__W));
}

static __inline__ __m512h __DEFAULT_FN_ATTRS512
_mm512_maskz_sqrt_ph(__mmask32 __U, __m512h __A) {
return (__m512h)__builtin_ia32_selectph_512(
(__mmask32)(__U),
(__v32hf)__builtin_ia32_sqrtph512((__A), (_MM_FROUND_CUR_DIRECTION)),
(__v32hf)_mm512_setzero_ph());
return (__m512h)__builtin_ia32_selectph_512((__mmask32)(__U),
(__v32hf)_mm512_sqrt_ph(__A),
(__v32hf)_mm512_setzero_ph());
}

#define _mm_sqrt_round_sh(A, B, R) \
Expand Down
8 changes: 4 additions & 4 deletions clang/test/CodeGen/X86/avx512fp16-builtins-constrained.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ __m512h test_mm512_sqrt_ph(__m512h x) {
__m512h test_mm512_mask_sqrt_ph (__m512h __W, __mmask32 __U, __m512h __A)
{
// COMMON-LABEL: test_mm512_mask_sqrt_ph
// UNCONSTRAINED: call <32 x half> @llvm.sqrt.v32f16(<32 x half> %{{.*}})
// CONSTRAINED: call <32 x half> @llvm.experimental.constrained.sqrt.v32f16(<32 x half> %{{.*}}, metadata !{{.*}})
// UNCONSTRAINED: call {{.*}}<32 x half> @llvm.sqrt.v32f16(<32 x half> %{{.*}})
// CONSTRAINED: call {{.*}}<32 x half> @llvm.experimental.constrained.sqrt.v32f16(<32 x half> %{{.*}}, metadata !{{.*}})
// CHECK-ASM: vsqrtph %zmm{{.*}},
// COMMONIR: bitcast i32 %{{.*}} to <32 x i1>
// COMMONIR: select <32 x i1> %{{.*}}, <32 x half> %{{.*}}, <32 x half> %{{.*}}
Expand All @@ -76,8 +76,8 @@ __m512h test_mm512_mask_sqrt_ph (__m512h __W, __mmask32 __U, __m512h __A)
__m512h test_mm512_maskz_sqrt_ph (__mmask32 __U, __m512h __A)
{
// COMMON-LABEL: test_mm512_maskz_sqrt_ph
// UNCONSTRAINED: call <32 x half> @llvm.sqrt.v32f16(<32 x half> %{{.*}})
// CONSTRAINED: call <32 x half> @llvm.experimental.constrained.sqrt.v32f16(<32 x half> %{{.*}}, metadata !{{.*}})
// UNCONSTRAINED: call {{.*}}<32 x half> @llvm.sqrt.v32f16(<32 x half> %{{.*}})
// CONSTRAINED: call {{.*}}<32 x half> @llvm.experimental.constrained.sqrt.v32f16(<32 x half> %{{.*}}, metadata !{{.*}})
// CHECK-ASM: vsqrtph %zmm{{.*}},
// COMMONIR: bitcast i32 %{{.*}} to <32 x i1>
// COMMONIR: select <32 x i1> %{{.*}}, <32 x half> %{{.*}}, <32 x half> {{.*}}
Expand Down
Loading