]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/avx512vlvnni-builtins.c
Vendor import of clang trunk r321530:
[FreeBSD/FreeBSD.git] / test / CodeGen / avx512vlvnni-builtins.c
1 //  RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vnni -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
2
3 #include <immintrin.h>
4
5 __m256i test_mm256_mask_dpbusd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
6   // CHECK-LABEL: @test_mm256_mask_dpbusd_epi32
7   // CHECK: @llvm.x86.avx512.mask.vpdpbusd.256
8   return _mm256_mask_dpbusd_epi32(__S, __U, __A, __B);
9 }
10
11 __m256i test_mm256_maskz_dpbusd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
12   // CHECK-LABEL: @test_mm256_maskz_dpbusd_epi32
13   // CHECK: @llvm.x86.avx512.maskz.vpdpbusd.256
14   return _mm256_maskz_dpbusd_epi32(__U, __S, __A, __B);
15 }
16
17 __m256i test_mm256_dpbusd_epi32(__m256i __S, __m256i __A, __m256i __B) {
18   // CHECK-LABEL: @test_mm256_dpbusd_epi32
19   // CHECK: @llvm.x86.avx512.mask.vpdpbusd.256
20   return _mm256_dpbusd_epi32(__S, __A, __B);
21 }
22
23 __m256i test_mm256_mask_dpbusds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
24   // CHECK-LABEL: @test_mm256_mask_dpbusds_epi32
25   // CHECK: @llvm.x86.avx512.mask.vpdpbusds.256
26   return _mm256_mask_dpbusds_epi32(__S, __U, __A, __B);
27 }
28
29 __m256i test_mm256_maskz_dpbusds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
30   // CHECK-LABEL: @test_mm256_maskz_dpbusds_epi32
31   // CHECK: @llvm.x86.avx512.maskz.vpdpbusds.256
32   return _mm256_maskz_dpbusds_epi32(__U, __S, __A, __B);
33 }
34
35 __m256i test_mm256_dpbusds_epi32(__m256i __S, __m256i __A, __m256i __B) {
36   // CHECK-LABEL: @test_mm256_dpbusds_epi32
37   // CHECK: @llvm.x86.avx512.mask.vpdpbusds.256
38   return _mm256_dpbusds_epi32(__S, __A, __B);
39 }
40
41 __m256i test_mm256_mask_dpwssd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
42   // CHECK-LABEL: @test_mm256_mask_dpwssd_epi32
43   // CHECK: @llvm.x86.avx512.mask.vpdpwssd.256
44   return _mm256_mask_dpwssd_epi32(__S, __U, __A, __B);
45 }
46
47 __m256i test_mm256_maskz_dpwssd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
48   // CHECK-LABEL: @test_mm256_maskz_dpwssd_epi32
49   // CHECK: @llvm.x86.avx512.maskz.vpdpwssd.256
50   return _mm256_maskz_dpwssd_epi32(__U, __S, __A, __B);
51 }
52
53 __m256i test_mm256_dpwssd_epi32(__m256i __S, __m256i __A, __m256i __B) {
54   // CHECK-LABEL: @test_mm256_dpwssd_epi32
55   // CHECK: @llvm.x86.avx512.mask.vpdpwssd.256
56   return _mm256_dpwssd_epi32(__S, __A, __B);
57 }
58
59 __m256i test_mm256_mask_dpwssds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
60   // CHECK-LABEL: @test_mm256_mask_dpwssds_epi32
61   // CHECK: @llvm.x86.avx512.mask.vpdpwssds.256
62   return _mm256_mask_dpwssds_epi32(__S, __U, __A, __B);
63 }
64
65 __m256i test_mm256_maskz_dpwssds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
66   // CHECK-LABEL: @test_mm256_maskz_dpwssds_epi32
67   // CHECK: @llvm.x86.avx512.maskz.vpdpwssds.256
68   return _mm256_maskz_dpwssds_epi32(__U, __S, __A, __B);
69 }
70
71 __m256i test_mm256_dpwssds_epi32(__m256i __S, __m256i __A, __m256i __B) {
72   // CHECK-LABEL: @test_mm256_dpwssds_epi32
73   // CHECK: @llvm.x86.avx512.mask.vpdpwssds.256
74   return _mm256_dpwssds_epi32(__S, __A, __B);
75 }
76
77 __m128i test_mm128_mask_dpbusd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
78   // CHECK-LABEL: @test_mm128_mask_dpbusd_epi32
79   // CHECK: @llvm.x86.avx512.mask.vpdpbusd.128
80   return _mm128_mask_dpbusd_epi32(__S, __U, __A, __B);
81 }
82
83 __m128i test_mm128_maskz_dpbusd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
84   // CHECK-LABEL: @test_mm128_maskz_dpbusd_epi32
85   // CHECK: @llvm.x86.avx512.maskz.vpdpbusd.128
86   return _mm128_maskz_dpbusd_epi32(__U, __S, __A, __B);
87 }
88
89 __m128i test_mm128_dpbusd_epi32(__m128i __S, __m128i __A, __m128i __B) {
90   // CHECK-LABEL: @test_mm128_dpbusd_epi32
91   // CHECK: @llvm.x86.avx512.mask.vpdpbusd.128
92   return _mm128_dpbusd_epi32(__S, __A, __B);
93 }
94
95 __m128i test_mm128_mask_dpbusds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
96   // CHECK-LABEL: @test_mm128_mask_dpbusds_epi32
97   // CHECK: @llvm.x86.avx512.mask.vpdpbusds.128
98   return _mm128_mask_dpbusds_epi32(__S, __U, __A, __B);
99 }
100
101 __m128i test_mm128_maskz_dpbusds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
102   // CHECK-LABEL: @test_mm128_maskz_dpbusds_epi32
103   // CHECK: @llvm.x86.avx512.maskz.vpdpbusds.128
104   return _mm128_maskz_dpbusds_epi32(__U, __S, __A, __B);
105 }
106
107 __m128i test_mm128_dpbusds_epi32(__m128i __S, __m128i __A, __m128i __B) {
108   // CHECK-LABEL: @test_mm128_dpbusds_epi32
109   // CHECK: @llvm.x86.avx512.mask.vpdpbusds.128
110   return _mm128_dpbusds_epi32(__S, __A, __B);
111 }
112
113 __m128i test_mm128_mask_dpwssd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
114   // CHECK-LABEL: @test_mm128_mask_dpwssd_epi32
115   // CHECK: @llvm.x86.avx512.mask.vpdpwssd.128
116   return _mm128_mask_dpwssd_epi32(__S, __U, __A, __B);
117 }
118
119 __m128i test_mm128_maskz_dpwssd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
120   // CHECK-LABEL: @test_mm128_maskz_dpwssd_epi32
121   // CHECK: @llvm.x86.avx512.maskz.vpdpwssd.128
122   return _mm128_maskz_dpwssd_epi32(__U, __S, __A, __B);
123 }
124
125 __m128i test_mm128_dpwssd_epi32(__m128i __S, __m128i __A, __m128i __B) {
126   // CHECK-LABEL: @test_mm128_dpwssd_epi32
127   // CHECK: @llvm.x86.avx512.mask.vpdpwssd.128
128   return _mm128_dpwssd_epi32(__S, __A, __B);
129 }
130
131 __m128i test_mm128_mask_dpwssds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
132   // CHECK-LABEL: @test_mm128_mask_dpwssds_epi32
133   // CHECK: @llvm.x86.avx512.mask.vpdpwssds.128
134   return _mm128_mask_dpwssds_epi32(__S, __U, __A, __B);
135 }
136
137 __m128i test_mm128_maskz_dpwssds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
138   // CHECK-LABEL: @test_mm128_maskz_dpwssds_epi32
139   // CHECK: @llvm.x86.avx512.maskz.vpdpwssds.128
140   return _mm128_maskz_dpwssds_epi32(__U, __S, __A, __B);
141 }
142
143 __m128i test_mm128_dpwssds_epi32(__m128i __S, __m128i __A, __m128i __B) {
144   // CHECK-LABEL: @test_mm128_dpwssds_epi32
145   // CHECK: @llvm.x86.avx512.mask.vpdpwssds.128
146   return _mm128_dpwssds_epi32(__S, __A, __B);
147 }
148