diff options
| author | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-13 12:58:01 +0000 |
|---|---|---|
| committer | Michael Zuckerman <Michael.zuckerman@intel.com> | 2016-04-13 12:58:01 +0000 |
| commit | c2b6128a8f28b83b6e9a3feffc98ce509a66dc4c (patch) | |
| tree | b3219cb354f5067c8f9e4d330caa4b05637c0916 /clang/test/CodeGen/avx512vldq-builtins.c | |
| parent | cc901b57d54c398c2b22f522eeb26fbc8dfc9b56 (diff) | |
| download | bcm5719-llvm-c2b6128a8f28b83b6e9a3feffc98ce509a66dc4c.tar.gz bcm5719-llvm-c2b6128a8f28b83b6e9a3feffc98ce509a66dc4c.zip | |
[Clang][AVX512][Builtin] Adding support for VBROADCAST and VPBROADCASTB/W/D/Q instruction set
Differential Revision: http://reviews.llvm.org/D19012
llvm-svn: 266195
Diffstat (limited to 'clang/test/CodeGen/avx512vldq-builtins.c')
| -rw-r--r-- | clang/test/CodeGen/avx512vldq-builtins.c | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512vldq-builtins.c b/clang/test/CodeGen/avx512vldq-builtins.c index 5e765f93774..dc3f318ea82 100644 --- a/clang/test/CodeGen/avx512vldq-builtins.c +++ b/clang/test/CodeGen/avx512vldq-builtins.c @@ -857,3 +857,93 @@ __mmask8 test_mm256_movepi64_mask(__m256i __A) { return _mm256_movepi64_mask(__A); } + +__m256 test_mm256_broadcast_f32x2(__m128 __A) { + // CHECK-LABEL: @test_mm256_broadcast_f32x2 + // CHECK: @llvm.x86.avx512.mask.broadcastf32x2 + return _mm256_broadcast_f32x2(__A); +} + +__m256 test_mm256_mask_broadcast_f32x2(__m256 __O, __mmask8 __M, __m128 __A) { + // CHECK-LABEL: @test_mm256_mask_broadcast_f32x2 + // CHECK: @llvm.x86.avx512.mask.broadcastf32x2 + return _mm256_mask_broadcast_f32x2(__O, __M, __A); +} + +__m256 test_mm256_maskz_broadcast_f32x2(__mmask8 __M, __m128 __A) { + // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x2 + // CHECK: @llvm.x86.avx512.mask.broadcastf32x2 + return _mm256_maskz_broadcast_f32x2(__M, __A); +} + +__m256d test_mm256_broadcast_f64x2(__m128d __A) { + // CHECK-LABEL: @test_mm256_broadcast_f64x2 + // CHECK: @llvm.x86.avx512.mask.broadcastf64x2 + return _mm256_broadcast_f64x2(__A); +} + +__m256d test_mm256_mask_broadcast_f64x2(__m256d __O, __mmask8 __M, __m128d __A) { + // CHECK-LABEL: @test_mm256_mask_broadcast_f64x2 + // CHECK: @llvm.x86.avx512.mask.broadcastf64x2 + return _mm256_mask_broadcast_f64x2(__O, __M, __A); +} + +__m256d test_mm256_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) { + // CHECK-LABEL: @test_mm256_maskz_broadcast_f64x2 + // CHECK: @llvm.x86.avx512.mask.broadcastf64x2 + return _mm256_maskz_broadcast_f64x2(__M, __A); +} + +__m128i test_mm_broadcast_i32x2(__m128i __A) { + // CHECK-LABEL: @test_mm_broadcast_i32x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti32x2 + return _mm_broadcast_i32x2(__A); +} + +__m128i test_mm_mask_broadcast_i32x2(__m128i __O, __mmask8 __M, __m128i __A) { + // CHECK-LABEL: @test_mm_mask_broadcast_i32x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti32x2 + return _mm_mask_broadcast_i32x2(__O, __M, __A); +} + +__m128i test_mm_maskz_broadcast_i32x2(__mmask8 __M, __m128i __A) { + // CHECK-LABEL: @test_mm_maskz_broadcast_i32x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti32x2 + return _mm_maskz_broadcast_i32x2(__M, __A); +} + +__m256i test_mm256_broadcast_i32x2(__m128i __A) { + // CHECK-LABEL: @test_mm256_broadcast_i32x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti32x2 + return _mm256_broadcast_i32x2(__A); +} + +__m256i test_mm256_mask_broadcast_i32x2(__m256i __O, __mmask8 __M, __m128i __A) { + // CHECK-LABEL: @test_mm256_mask_broadcast_i32x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti32x2 + return _mm256_mask_broadcast_i32x2(__O, __M, __A); +} + +__m256i test_mm256_maskz_broadcast_i32x2(__mmask8 __M, __m128i __A) { + // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti32x2 + return _mm256_maskz_broadcast_i32x2(__M, __A); +} + +__m256i test_mm256_broadcast_i64x2(__m128i __A) { + // CHECK-LABEL: @test_mm256_broadcast_i64x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti64x2 + return _mm256_broadcast_i64x2(__A); +} + +__m256i test_mm256_mask_broadcast_i64x2(__m256i __O, __mmask8 __M, __m128i __A) { + // CHECK-LABEL: @test_mm256_mask_broadcast_i64x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti64x2 + return _mm256_mask_broadcast_i64x2(__O, __M, __A); +} + +__m256i test_mm256_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) { + // CHECK-LABEL: @test_mm256_maskz_broadcast_i64x2 + // CHECK: @llvm.x86.avx512.mask.broadcasti64x2 + return _mm256_maskz_broadcast_i64x2(__M, __A); +} |

