diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-08-26 21:17:12 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-08-26 21:17:12 +0000 |
| commit | 5aba9925c0bbc63f65077e55fef73211c16d5974 (patch) | |
| tree | c89046ce38fe90453a72d0f99023a02539d6fdbb /clang/test/CodeGen | |
| parent | 0ab4b5b52e5828a23c7d7d37b7c5cba6cf86895a (diff) | |
| download | bcm5719-llvm-5aba9925c0bbc63f65077e55fef73211c16d5974.tar.gz bcm5719-llvm-5aba9925c0bbc63f65077e55fef73211c16d5974.zip | |
[X86][SSE] Add _mm_undefined_* intrinsics
Added missing SSE/AVX 'undefined' intrinsics (PR24040):
_mm_undefined_pd, _mm_undefined_ps + _mm_undefined_si128
_mm256_undefined_pd, _mm256_undefined_ps + _mm256_undefined_si256
_mm512_undefined, _mm512_undefined_ps, _mm512_undefined_pd + _mm512_undefined_epi32
Added builtin intrinsicss:
__builtin_ia32_undef128, __builtin_ia32_undef256 + __builtin_ia32_undef512
Differential Revision: http://reviews.llvm.org/D12052
llvm-svn: 246083
Diffstat (limited to 'clang/test/CodeGen')
| -rw-r--r-- | clang/test/CodeGen/avx-builtins.c | 18 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 24 | ||||
| -rw-r--r-- | clang/test/CodeGen/sse-builtins.c | 18 |
3 files changed, 60 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx-builtins.c b/clang/test/CodeGen/avx-builtins.c index 99d063385c4..077c36ef789 100644 --- a/clang/test/CodeGen/avx-builtins.c +++ b/clang/test/CodeGen/avx-builtins.c @@ -147,3 +147,21 @@ __m256i test_256_insert_epi64(__m256i __a) { // CHECK: insertelement <4 x i64> {{.*}}, i64 {{.*}}, i32 {{.*}} return _mm256_insert_epi64(__a, 42, 3); } + +__m256 test_mm256_undefined_ps() { + // CHECK-LABEL: @test_mm256_undefined_ps + // CHECK: ret <8 x float> undef + return _mm256_undefined_ps(); +} + +__m256d test_mm256_undefined_pd() { + // CHECK-LABEL: @test_mm256_undefined_pd + // CHECK: ret <4 x double> undef + return _mm256_undefined_pd(); +} + +__m256i test_mm256_undefined_si256() { + // CHECK-LABEL: @test_mm256_undefined_si256 + // CHECK: ret <4 x i64> undef + return _mm256_undefined_si256(); +} diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index 3bebd10539c..d2ddb04be5a 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -1875,3 +1875,27 @@ __m128d test_mm_maskz_min_sd(__mmask8 __U, __m128d __A, __m128d __B) { // CHECK: @llvm.x86.avx512.mask.min.sd.round return _mm_maskz_min_sd(__U,__A,__B); } + +__m512 test_mm512_undefined() { + // CHECK-LABEL: @test_mm512_undefined + // CHECK: ret <16 x float> undef + return _mm512_undefined(); +} + +__m512 test_mm512_undefined_ps() { + // CHECK-LABEL: @test_mm512_undefined_ps + // CHECK: ret <16 x float> undef + return _mm512_undefined_ps(); +} + +__m512d test_mm512_undefined_pd() { + // CHECK-LABEL: @test_mm512_undefined_pd + // CHECK: ret <8 x double> undef + return _mm512_undefined_pd(); +} + +__m512i test_mm512_undefined_epi32() { + // CHECK-LABEL: @test_mm512_undefined_epi32 + // CHECK: ret <8 x i64> undef + return _mm512_undefined_epi32(); +} diff --git a/clang/test/CodeGen/sse-builtins.c b/clang/test/CodeGen/sse-builtins.c index 45c2c12448e..887322d05a6 100644 --- a/clang/test/CodeGen/sse-builtins.c +++ b/clang/test/CodeGen/sse-builtins.c @@ -649,3 +649,21 @@ __m128i test_mm_cvtepu32_epi64(__m128i a) { // CHECK: call <2 x i64> @llvm.x86.sse41.pmovzxdq(<4 x i32> {{.*}}) return _mm_cvtepu32_epi64(a); } + +__m128 test_mm_undefined_ps() { + // CHECK-LABEL: @test_mm_undefined_ps + // CHECK: ret <4 x float> undef + return _mm_undefined_ps(); +} + +__m128d test_mm_undefined_pd() { + // CHECK-LABEL: @test_mm_undefined_pd + // CHECK: ret <2 x double> undef + return _mm_undefined_pd(); +} + +__m128i test_mm_undefined_si128() { + // CHECK-LABEL: @test_mm_undefined_si128 + // CHECK: ret <2 x i64> undef + return _mm_undefined_si128(); +} |

