summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/avx512vlbw-builtins.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/avx512vlbw-builtins.c')
-rw-r--r--test/CodeGen/avx512vlbw-builtins.c330
1 files changed, 329 insertions, 1 deletions
diff --git a/test/CodeGen/avx512vlbw-builtins.c b/test/CodeGen/avx512vlbw-builtins.c
index 7aa8b87..11155f6 100644
--- a/test/CodeGen/avx512vlbw-builtins.c
+++ b/test/CodeGen/avx512vlbw-builtins.c
@@ -1,4 +1,8 @@
-// RUN: %clang_cc1 %s -O0 -triple=x86_64-apple-darwin -ffreestanding -target-feature +avx512bw -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s
+// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s
+// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -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>
@@ -1377,3 +1381,327 @@ __m256i test_mm256_maskz_permutex2var_epi16(__mmask16 __U, __m256i __A,
// CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.256
return _mm256_maskz_permutex2var_epi16(__U,__A,__I,__B);
}
+__m128i test_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
+ // CHECK-LABEL: @test_mm_mask_maddubs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.128
+ return _mm_mask_maddubs_epi16(__W, __U, __X, __Y);
+}
+
+__m128i test_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
+ // CHECK-LABEL: @test_mm_maskz_maddubs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.128
+ return _mm_maskz_maddubs_epi16(__U, __X, __Y);
+}
+
+__m256i test_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
+ // CHECK-LABEL: @test_mm256_mask_maddubs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.256
+ return _mm256_mask_maddubs_epi16(__W, __U, __X, __Y);
+}
+
+__m256i test_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
+ // CHECK-LABEL: @test_mm256_maskz_maddubs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.256
+ return _mm256_maskz_maddubs_epi16(__U, __X, __Y);
+}
+
+__m128i test_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_madd_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddw.d.128
+ return _mm_mask_madd_epi16(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_madd_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddw.d.128
+ return _mm_maskz_madd_epi16(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_madd_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddw.d.256
+ return _mm256_mask_madd_epi16(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_madd_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmaddw.d.256
+ return _mm256_maskz_madd_epi16(__U, __A, __B);
+}
+
+__m128i test_mm_cvtsepi16_epi8(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtsepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
+ return _mm_cvtsepi16_epi8(__A);
+}
+
+__m128i test_mm_mask_cvtsepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtsepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
+ return _mm_mask_cvtsepi16_epi8(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtsepi16_epi8(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtsepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128
+ return _mm_maskz_cvtsepi16_epi8(__M, __A);
+}
+
+__m128i test_mm256_cvtsepi16_epi8(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtsepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
+ return _mm256_cvtsepi16_epi8(__A);
+}
+
+__m128i test_mm256_mask_cvtsepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtsepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
+ return _mm256_mask_cvtsepi16_epi8(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtsepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256
+ return _mm256_maskz_cvtsepi16_epi8(__M, __A);
+}
+
+__m128i test_mm_cvtusepi16_epi8(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtusepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
+ return _mm_cvtusepi16_epi8(__A);
+}
+
+__m128i test_mm_mask_cvtusepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtusepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
+ return _mm_mask_cvtusepi16_epi8(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtusepi16_epi8(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtusepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128
+ return _mm_maskz_cvtusepi16_epi8(__M, __A);
+}
+
+__m128i test_mm256_cvtusepi16_epi8(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtusepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
+ return _mm256_cvtusepi16_epi8(__A);
+}
+
+__m128i test_mm256_mask_cvtusepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtusepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
+ return _mm256_mask_cvtusepi16_epi8(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtusepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256
+ return _mm256_maskz_cvtusepi16_epi8(__M, __A);
+}
+
+__m128i test_mm_cvtepi16_epi8(__m128i __A) {
+ // CHECK-LABEL: @test_mm_cvtepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
+ return _mm_cvtepi16_epi8(__A);
+}
+
+__m128i test_mm_mask_cvtepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_mask_cvtepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
+ return _mm_mask_cvtepi16_epi8(__O, __M, __A);
+}
+
+__m128i test_mm_maskz_cvtepi16_epi8(__mmask8 __M, __m128i __A) {
+ // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmov.wb.128
+ return _mm_maskz_cvtepi16_epi8(__M, __A);
+}
+
+__m128i test_mm256_cvtepi16_epi8(__m256i __A) {
+ // CHECK-LABEL: @test_mm256_cvtepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmov.wb.256
+ return _mm256_cvtepi16_epi8(__A);
+}
+
+__m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmov.wb.256
+ return _mm256_mask_cvtepi16_epi8(__O, __M, __A);
+}
+
+__m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) {
+ // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi8
+ // CHECK: @llvm.x86.avx512.mask.pmov.wb.256
+ return _mm256_maskz_cvtepi16_epi8(__M, __A);
+}
+
+__m128i test_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) {
+ // CHECK-LABEL: @test_mm_mask_mulhrs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.128
+ return _mm_mask_mulhrs_epi16(__W, __U, __X, __Y);
+}
+
+__m128i test_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) {
+ // CHECK-LABEL: @test_mm_maskz_mulhrs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.128
+ return _mm_maskz_mulhrs_epi16(__U, __X, __Y);
+}
+
+__m256i test_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) {
+ // CHECK-LABEL: @test_mm256_mask_mulhrs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.256
+ return _mm256_mask_mulhrs_epi16(__W, __U, __X, __Y);
+}
+
+__m256i test_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) {
+ // CHECK-LABEL: @test_mm256_maskz_mulhrs_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.256
+ return _mm256_maskz_mulhrs_epi16(__U, __X, __Y);
+}
+
+__m128i test_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_mulhi_epu16
+ // CHECK: @llvm.x86.avx512.mask.pmulhu.w.128
+ return _mm_mask_mulhi_epu16(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_mulhi_epu16
+ // CHECK: @llvm.x86.avx512.mask.pmulhu.w.128
+ return _mm_maskz_mulhi_epu16(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_mulhi_epu16
+ // CHECK: @llvm.x86.avx512.mask.pmulhu.w.256
+ return _mm256_mask_mulhi_epu16(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_mulhi_epu16
+ // CHECK: @llvm.x86.avx512.mask.pmulhu.w.256
+ return _mm256_maskz_mulhi_epu16(__U, __A, __B);
+}
+
+__m128i test_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_mulhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmulh.w.128
+ return _mm_mask_mulhi_epi16(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_mulhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmulh.w.128
+ return _mm_maskz_mulhi_epi16(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_mulhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmulh.w.256
+ return _mm256_mask_mulhi_epi16(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_mulhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.pmulh.w.256
+ return _mm256_maskz_mulhi_epi16(__U, __A, __B);
+}
+
+__m128i test_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_unpackhi_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpckhb.w.128
+ return _mm_mask_unpackhi_epi8(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_unpackhi_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpckhb.w.128
+ return _mm_maskz_unpackhi_epi8(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_unpackhi_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpckhb.w.256
+ return _mm256_mask_unpackhi_epi8(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpckhb.w.256
+ return _mm256_maskz_unpackhi_epi8(__U, __A, __B);
+}
+
+__m128i test_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_unpackhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpckhw.d.128
+ return _mm_mask_unpackhi_epi16(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_unpackhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpckhw.d.128
+ return _mm_maskz_unpackhi_epi16(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_unpackhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpckhw.d.256
+ return _mm256_mask_unpackhi_epi16(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpckhw.d.256
+ return _mm256_maskz_unpackhi_epi16(__U, __A, __B);
+}
+
+__m128i test_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_unpacklo_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpcklb.w.128
+ return _mm_mask_unpacklo_epi8(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_unpacklo_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpcklb.w.128
+ return _mm_maskz_unpacklo_epi8(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_unpacklo_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpcklb.w.256
+ return _mm256_mask_unpacklo_epi8(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi8
+ // CHECK: @llvm.x86.avx512.mask.punpcklb.w.256
+ return _mm256_maskz_unpacklo_epi8(__U, __A, __B);
+}
+
+__m128i test_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_mask_unpacklo_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpcklw.d.128
+ return _mm_mask_unpacklo_epi16(__W, __U, __A, __B);
+}
+
+__m128i test_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) {
+ // CHECK-LABEL: @test_mm_maskz_unpacklo_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpcklw.d.128
+ return _mm_maskz_unpacklo_epi16(__U, __A, __B);
+}
+
+__m256i test_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_mask_unpacklo_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpcklw.d.256
+ return _mm256_mask_unpacklo_epi16(__W, __U, __A, __B);
+}
+
+__m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) {
+ // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi16
+ // CHECK: @llvm.x86.avx512.mask.punpcklw.d.256
+ return _mm256_maskz_unpacklo_epi16(__U, __A, __B);
+}
+
OpenPOWER on IntegriCloud