diff options
| author | Adam Nemet <anemet@apple.com> | 2014-07-28 17:14:42 +0000 | 
|---|---|---|
| committer | Adam Nemet <anemet@apple.com> | 2014-07-28 17:14:42 +0000 | 
| commit | a3ebe6214b7bc1f1217ca745ccd825e85c3026cb (patch) | |
| tree | 604635a0328551166a735eb06036bd325f507c68 | |
| parent | 0d5bb5530dae51f205390eb0a93799cf97ecffbb (diff) | |
| download | bcm5719-llvm-a3ebe6214b7bc1f1217ca745ccd825e85c3026cb.tar.gz bcm5719-llvm-a3ebe6214b7bc1f1217ca745ccd825e85c3026cb.zip  | |
[AVX512] Add FP add/sub/mul intrinsics
Part of <rdar://problem/17688758>
llvm-svn: 214098
| -rw-r--r-- | clang/lib/Headers/avx512fintrin.h | 36 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 28 | 
2 files changed, 64 insertions, 0 deletions
diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h index 9ea5da9e343..785d5281bc0 100644 --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -93,6 +93,42 @@ _mm512_setzero_pd(void)  /* Arithmetic */ +static __inline __m512d __attribute__((__always_inline__, __nodebug__)) +_mm512_add_pd(__m512d __a, __m512d __b) +{ +  return __a + __b; +} + +static __inline __m512 __attribute__((__always_inline__, __nodebug__)) +_mm512_add_ps(__m512 __a, __m512 __b) +{ +  return __a + __b; +} + +static __inline __m512d __attribute__((__always_inline__, __nodebug__)) +_mm512_mul_pd(__m512d __a, __m512d __b) +{ +  return __a * __b; +} + +static __inline __m512 __attribute__((__always_inline__, __nodebug__)) +_mm512_mul_ps(__m512 __a, __m512 __b) +{ +  return __a * __b; +} + +static __inline __m512d __attribute__((__always_inline__, __nodebug__)) +_mm512_sub_pd(__m512d __a, __m512d __b) +{ +  return __a - __b; +} + +static __inline __m512 __attribute__((__always_inline__, __nodebug__)) +_mm512_sub_ps(__m512 __a, __m512 __b) +{ +  return __a - __b; +} +  static  __inline__ __m512d __attribute__((__always_inline__, __nodebug__))  _mm512_max_pd(__m512d __A, __m512d __B)  { diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index e58a89a97c4..968c015c870 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -32,3 +32,31 @@ __m512 test_mm512_rsqrt14_ps(__m512 a)    // CHECK: @llvm.x86.avx512.rsqrt14.ps.512    return _mm512_rsqrt14_ps(a);  } + +__m512 test_mm512_add_ps(__m512 a, __m512 b) +{ +  // CHECK-LABEL: @test_mm512_add_ps +  // CHECK: fadd <16 x float> +  return _mm512_add_ps(a, b); +} + +__m512d test_mm512_add_pd(__m512d a, __m512d b) +{ +  // CHECK-LABEL: @test_mm512_add_pd +  // CHECK: fadd <8 x double> +  return _mm512_add_pd(a, b); +} + +__m512 test_mm512_mul_ps(__m512 a, __m512 b) +{ +  // CHECK-LABEL: @test_mm512_mul_ps +  // CHECK: fmul <16 x float> +  return _mm512_mul_ps(a, b); +} + +__m512d test_mm512_mul_pd(__m512d a, __m512d b) +{ +  // CHECK-LABEL: @test_mm512_mul_pd +  // CHECK: fmul <8 x double> +  return _mm512_mul_pd(a, b); +}  | 

