diff options
Diffstat (limited to 'test/CodeGen/avx512bw-builtins.c')
| -rw-r--r-- | test/CodeGen/avx512bw-builtins.c | 212 |
1 files changed, 210 insertions, 2 deletions
diff --git a/test/CodeGen/avx512bw-builtins.c b/test/CodeGen/avx512bw-builtins.c index 6cc02ef705db..7addd98b112d 100644 --- a/test/CodeGen/avx512bw-builtins.c +++ b/test/CodeGen/avx512bw-builtins.c @@ -1,4 +1,8 @@ -// RUN: %clang_cc1 %s -O0 -triple=x86_64-apple-darwin -ffreestanding -target-feature +avx512bw -emit-llvm -o - -Werror | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -emit-llvm -o - -Werror | FileCheck %s +// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -fno-signed-char -emit-llvm -o - -Werror | FileCheck %s + +// Don't include mm_malloc.h, it's system specific. +#define __MM_MALLOC_H #include <immintrin.h> @@ -830,6 +834,210 @@ __m512i test_mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i _ } __m512i test_mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, __m512i __B) { // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi16 - // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512 + // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.512 return _mm512_maskz_permutex2var_epi16(__U,__A,__I,__B); } + +__m512i test_mm512_mulhrs_epi16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mulhrs_epi16 + // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512 + return _mm512_mulhrs_epi16(__A,__B); +} +__m512i test_mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_mulhrs_epi16 + // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512 + return _mm512_mask_mulhrs_epi16(__W,__U,__A,__B); +} +__m512i test_mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_mulhrs_epi16 + // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512 + return _mm512_maskz_mulhrs_epi16(__U,__A,__B); +} +__m512i test_mm512_mulhi_epi16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mulhi_epi16 + // CHECK: @llvm.x86.avx512.mask.pmulh.w.512 + return _mm512_mulhi_epi16(__A,__B); +} +__m512i test_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_mulhi_epi16 + // CHECK: @llvm.x86.avx512.mask.pmulh.w.512 + return _mm512_mask_mulhi_epi16(__W,__U,__A,__B); +} +__m512i test_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_mulhi_epi16 + // CHECK: @llvm.x86.avx512.mask.pmulh.w.512 + return _mm512_maskz_mulhi_epi16(__U,__A,__B); +} +__m512i test_mm512_mulhi_epu16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mulhi_epu16 + // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512 + return _mm512_mulhi_epu16(__A,__B); +} +__m512i test_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_mulhi_epu16 + // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512 + return _mm512_mask_mulhi_epu16(__W,__U,__A,__B); +} +__m512i test_mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_mulhi_epu16 + // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512 + return _mm512_maskz_mulhi_epu16(__U,__A,__B); +} + +__m512i test_mm512_maddubs_epi16(__m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_maddubs_epi16 + // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512 + return _mm512_maddubs_epi16(__X,__Y); +} +__m512i test_mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_mask_maddubs_epi16 + // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512 + return _mm512_mask_maddubs_epi16(__W,__U,__X,__Y); +} +__m512i test_mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) { + // CHECK-LABEL: @test_mm512_maskz_maddubs_epi16 + // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512 + return _mm512_maskz_maddubs_epi16(__U,__X,__Y); +} +__m512i test_mm512_madd_epi16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_madd_epi16 + // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512 + return _mm512_madd_epi16(__A,__B); +} +__m512i test_mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_madd_epi16 + // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512 + return _mm512_mask_madd_epi16(__W,__U,__A,__B); +} +__m512i test_mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_madd_epi16 + // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512 + return _mm512_maskz_madd_epi16(__U,__A,__B); +} + +__m256i test_mm512_cvtsepi16_epi8(__m512i __A) { + // CHECK-LABEL: @test_mm512_cvtsepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512 + return _mm512_cvtsepi16_epi8(__A); +} + +__m256i test_mm512_mask_cvtsepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) { + // CHECK-LABEL: @test_mm512_mask_cvtsepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512 + return _mm512_mask_cvtsepi16_epi8(__O, __M, __A); +} + +__m256i test_mm512_maskz_cvtsepi16_epi8(__mmask32 __M, __m512i __A) { + // CHECK-LABEL: @test_mm512_maskz_cvtsepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512 + return _mm512_maskz_cvtsepi16_epi8(__M, __A); +} + +__m256i test_mm512_cvtusepi16_epi8(__m512i __A) { + // CHECK-LABEL: @test_mm512_cvtusepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512 + return _mm512_cvtusepi16_epi8(__A); +} + +__m256i test_mm512_mask_cvtusepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) { + // CHECK-LABEL: @test_mm512_mask_cvtusepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512 + return _mm512_mask_cvtusepi16_epi8(__O, __M, __A); +} + +__m256i test_mm512_maskz_cvtusepi16_epi8(__mmask32 __M, __m512i __A) { + // CHECK-LABEL: @test_mm512_maskz_cvtusepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512 + return _mm512_maskz_cvtusepi16_epi8(__M, __A); +} + +__m256i test_mm512_cvtepi16_epi8(__m512i __A) { + // CHECK-LABEL: @test_mm512_cvtepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmov.wb.512 + return _mm512_cvtepi16_epi8(__A); +} + +__m256i test_mm512_mask_cvtepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) { + // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmov.wb.512 + return _mm512_mask_cvtepi16_epi8(__O, __M, __A); +} + +__m256i test_mm512_maskz_cvtepi16_epi8(__mmask32 __M, __m512i __A) { + // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi8 + // CHECK: @llvm.x86.avx512.mask.pmov.wb.512 + return _mm512_maskz_cvtepi16_epi8(__M, __A); +} + +__m512i test_mm512_unpackhi_epi8(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_unpackhi_epi8 + // CHECK: @llvm.x86.avx512.mask.punpckhb.w.512 + return _mm512_unpackhi_epi8(__A, __B); +} + +__m512i test_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_unpackhi_epi8 + // CHECK: @llvm.x86.avx512.mask.punpckhb.w.512 + return _mm512_mask_unpackhi_epi8(__W, __U, __A, __B); +} + +__m512i test_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi8 + // CHECK: @llvm.x86.avx512.mask.punpckhb.w.512 + return _mm512_maskz_unpackhi_epi8(__U, __A, __B); +} + +__m512i test_mm512_unpackhi_epi16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_unpackhi_epi16 + // CHECK: @llvm.x86.avx512.mask.punpckhw.d.512 + return _mm512_unpackhi_epi16(__A, __B); +} + +__m512i test_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_unpackhi_epi16 + // CHECK: @llvm.x86.avx512.mask.punpckhw.d.512 + return _mm512_mask_unpackhi_epi16(__W, __U, __A, __B); +} + +__m512i test_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi16 + // CHECK: @llvm.x86.avx512.mask.punpckhw.d.512 + return _mm512_maskz_unpackhi_epi16(__U, __A, __B); +} + +__m512i test_mm512_unpacklo_epi8(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_unpacklo_epi8 + // CHECK: @llvm.x86.avx512.mask.punpcklb.w.512 + return _mm512_unpacklo_epi8(__A, __B); +} + +__m512i test_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_unpacklo_epi8 + // CHECK: @llvm.x86.avx512.mask.punpcklb.w.512 + return _mm512_mask_unpacklo_epi8(__W, __U, __A, __B); +} + +__m512i test_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi8 + // CHECK: @llvm.x86.avx512.mask.punpcklb.w.512 + return _mm512_maskz_unpacklo_epi8(__U, __A, __B); +} + +__m512i test_mm512_unpacklo_epi16(__m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_unpacklo_epi16 + // CHECK: @llvm.x86.avx512.mask.punpcklw.d.512 + return _mm512_unpacklo_epi16(__A, __B); +} + +__m512i test_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_mask_unpacklo_epi16 + // CHECK: @llvm.x86.avx512.mask.punpcklw.d.512 + return _mm512_mask_unpacklo_epi16(__W, __U, __A, __B); +} + +__m512i test_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) { + // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi16 + // CHECK: @llvm.x86.avx512.mask.punpcklw.d.512 + return _mm512_maskz_unpacklo_epi16(__U, __A, __B); +} + |
