diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-10-20 19:28:52 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-10-20 19:28:52 +0000 |
| commit | eae26bf73715994c2bd145f9b6dc3836aa4ffd4f (patch) | |
| tree | 058f60bd6d36955dbcddfc4a0aabfd8c27e4635e /clang/test/CodeGen/avx512vlbw-builtins.c | |
| parent | 58508be3c01db0a6b544d47dff3150b626d7b604 (diff) | |
| download | bcm5719-llvm-eae26bf73715994c2bd145f9b6dc3836aa4ffd4f.tar.gz bcm5719-llvm-eae26bf73715994c2bd145f9b6dc3836aa4ffd4f.zip | |
[X86] Add more intrinsics to match icc.
This adds
_mm_loadu_epi8, _mm256_loadu_epi8, _mm512_loadu_epi8
_mm_loadu_epi16, _mm256_loadu_epi16, _mm512_loadu_epi16
_mm_storeu_epi8, _mm256_storeu_epi8, _mm512_storeu_epi8
_mm_storeu_epi16, _mm256_storeu_epi16, _mm512_storeu_epi16
llvm-svn: 344862
Diffstat (limited to 'clang/test/CodeGen/avx512vlbw-builtins.c')
| -rw-r--r-- | clang/test/CodeGen/avx512vlbw-builtins.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c index 06fa935acc5..06a48b5b27f 100644 --- a/clang/test/CodeGen/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/avx512vlbw-builtins.c @@ -2465,6 +2465,12 @@ __m256i test_mm256_maskz_mov_epi8(__mmask32 __U, __m256i __A) { return _mm256_maskz_mov_epi8(__U, __A); } +__m128i test_mm_loadu_epi16(void const *__P) { + // CHECK-LABEL: @test_mm_loadu_epi16 + // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}} + return _mm_loadu_epi16(__P); +} + __m128i test_mm_mask_loadu_epi16(__m128i __W, __mmask8 __U, void const *__P) { // CHECK-LABEL: @test_mm_mask_loadu_epi16 // CHECK: @llvm.masked.load.v8i16.p0v8i16(<8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i16> %{{.*}}) @@ -2477,6 +2483,12 @@ __m128i test_mm_maskz_loadu_epi16(__mmask8 __U, void const *__P) { return _mm_maskz_loadu_epi16(__U, __P); } +__m256i test_mm256_loadu_epi16(void const *__P) { + // CHECK-LABEL: @test_mm256_loadu_epi16 + // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}} + return _mm256_loadu_epi16(__P); +} + __m256i test_mm256_mask_loadu_epi16(__m256i __W, __mmask16 __U, void const *__P) { // CHECK-LABEL: @test_mm256_mask_loadu_epi16 // CHECK: @llvm.masked.load.v16i16.p0v16i16(<16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i16> %{{.*}}) @@ -2489,6 +2501,12 @@ __m256i test_mm256_maskz_loadu_epi16(__mmask16 __U, void const *__P) { return _mm256_maskz_loadu_epi16(__U, __P); } +__m128i test_mm_loadu_epi8(void const *__P) { + // CHECK-LABEL: @test_mm_loadu_epi8 + // CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}} + return _mm_loadu_epi8(__P); +} + __m128i test_mm_mask_loadu_epi8(__m128i __W, __mmask16 __U, void const *__P) { // CHECK-LABEL: @test_mm_mask_loadu_epi8 // CHECK: @llvm.masked.load.v16i8.p0v16i8(<16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i8> %{{.*}}) @@ -2501,6 +2519,12 @@ __m128i test_mm_maskz_loadu_epi8(__mmask16 __U, void const *__P) { return _mm_maskz_loadu_epi8(__U, __P); } +__m256i test_mm256_loadu_epi8(void const *__P) { + // CHECK-LABEL: @test_mm256_loadu_epi8 + // CHECK: load <4 x i64>, <4 x i64>* %{{.*}}, align 1{{$}} + return _mm256_loadu_epi8(__P); +} + __m256i test_mm256_mask_loadu_epi8(__m256i __W, __mmask32 __U, void const *__P) { // CHECK-LABEL: @test_mm256_mask_loadu_epi8 // CHECK: @llvm.masked.load.v32i8.p0v32i8(<32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}}, <32 x i8> %{{.*}}) @@ -2513,24 +2537,48 @@ __m256i test_mm256_maskz_loadu_epi8(__mmask32 __U, void const *__P) { return _mm256_maskz_loadu_epi8(__U, __P); } +void test_mm_storeu_epi16(void *__p, __m128i __a) { + // check-label: @test_mm_storeu_epi16 + // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}} + return _mm_storeu_epi16(__p, __a); +} + void test_mm_mask_storeu_epi16(void *__P, __mmask8 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_storeu_epi16 // CHECK: @llvm.masked.store.v8i16.p0v8i16(<8 x i16> %{{.*}}, <8 x i16>* %{{.*}}, i32 1, <8 x i1> %{{.*}}) return _mm_mask_storeu_epi16(__P, __U, __A); } +void test_mm256_storeu_epi16(void *__P, __m256i __A) { + // CHECK-LABEL: @test_mm256_storeu_epi16 + // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}} + return _mm256_storeu_epi16(__P, __A); +} + void test_mm256_mask_storeu_epi16(void *__P, __mmask16 __U, __m256i __A) { // CHECK-LABEL: @test_mm256_mask_storeu_epi16 // CHECK: @llvm.masked.store.v16i16.p0v16i16(<16 x i16> %{{.*}}, <16 x i16>* %{{.*}}, i32 1, <16 x i1> %{{.*}}) return _mm256_mask_storeu_epi16(__P, __U, __A); } +void test_mm_storeu_epi8(void *__p, __m128i __a) { + // check-label: @test_mm_storeu_epi8 + // check: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1{{$}} + return _mm_storeu_epi8(__p, __a); +} + void test_mm_mask_storeu_epi8(void *__P, __mmask16 __U, __m128i __A) { // CHECK-LABEL: @test_mm_mask_storeu_epi8 // CHECK: @llvm.masked.store.v16i8.p0v16i8(<16 x i8> %{{.*}}, <16 x i8>* %{{.*}}, i32 1, <16 x i1> %{{.*}}) return _mm_mask_storeu_epi8(__P, __U, __A); } +void test_mm256_storeu_epi8(void *__P, __m256i __A) { + // CHECK-LABEL: @test_mm256_storeu_epi8 + // CHECK: store <4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, align 1{{$}} + return _mm256_storeu_epi8(__P, __A); +} + void test_mm256_mask_storeu_epi8(void *__P, __mmask32 __U, __m256i __A) { // CHECK-LABEL: @test_mm256_mask_storeu_epi8 // CHECK: @llvm.masked.store.v32i8.p0v32i8(<32 x i8> %{{.*}}, <32 x i8>* %{{.*}}, i32 1, <32 x i1> %{{.*}}) |

