xref: /llvm-project/clang/test/CodeGen/X86/avxvnni-builtins.c (revision 0140a672a62b9a01742d0c449adc3a710e446ad7)
1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxvnni -emit-llvm -o - -Wall -Werror | FileCheck %s
2 // RUN: %clang_cc1 -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxvnni -emit-llvm -o - -Wall -Werror | FileCheck %s
3 
4 #include <immintrin.h>
5 
test_mm256_dpbusd_epi32(__m256i __S,__m256i __A,__m256i __B)6 __m256i test_mm256_dpbusd_epi32(__m256i __S, __m256i __A, __m256i __B) {
7   // CHECK-LABEL: @test_mm256_dpbusd_epi32
8   // CHECK: @llvm.x86.avx512.vpdpbusd.256
9   return _mm256_dpbusd_epi32(__S, __A, __B);
10 }
11 
test_mm256_dpbusds_epi32(__m256i __S,__m256i __A,__m256i __B)12 __m256i test_mm256_dpbusds_epi32(__m256i __S, __m256i __A, __m256i __B) {
13   // CHECK-LABEL: @test_mm256_dpbusds_epi32
14   // CHECK: @llvm.x86.avx512.vpdpbusds.256
15   return _mm256_dpbusds_epi32(__S, __A, __B);
16 }
17 
test_mm256_dpwssd_epi32(__m256i __S,__m256i __A,__m256i __B)18 __m256i test_mm256_dpwssd_epi32(__m256i __S, __m256i __A, __m256i __B) {
19   // CHECK-LABEL: @test_mm256_dpwssd_epi32
20   // CHECK: @llvm.x86.avx512.vpdpwssd.256
21   return _mm256_dpwssd_epi32(__S, __A, __B);
22 }
23 
test_mm256_dpwssds_epi32(__m256i __S,__m256i __A,__m256i __B)24 __m256i test_mm256_dpwssds_epi32(__m256i __S, __m256i __A, __m256i __B) {
25   // CHECK-LABEL: @test_mm256_dpwssds_epi32
26   // CHECK: @llvm.x86.avx512.vpdpwssds.256
27   return _mm256_dpwssds_epi32(__S, __A, __B);
28 }
29 
test_mm_dpbusd_epi32(__m128i __S,__m128i __A,__m128i __B)30 __m128i test_mm_dpbusd_epi32(__m128i __S, __m128i __A, __m128i __B) {
31   // CHECK-LABEL: @test_mm_dpbusd_epi32
32   // CHECK: @llvm.x86.avx512.vpdpbusd.128
33   return _mm_dpbusd_epi32(__S, __A, __B);
34 }
35 
test_mm_dpbusds_epi32(__m128i __S,__m128i __A,__m128i __B)36 __m128i test_mm_dpbusds_epi32(__m128i __S, __m128i __A, __m128i __B) {
37   // CHECK-LABEL: @test_mm_dpbusds_epi32
38   // CHECK: @llvm.x86.avx512.vpdpbusds.128
39   return _mm_dpbusds_epi32(__S, __A, __B);
40 }
41 
test_mm_dpwssd_epi32(__m128i __S,__m128i __A,__m128i __B)42 __m128i test_mm_dpwssd_epi32(__m128i __S, __m128i __A, __m128i __B) {
43   // CHECK-LABEL: @test_mm_dpwssd_epi32
44   // CHECK: @llvm.x86.avx512.vpdpwssd.128
45   return _mm_dpwssd_epi32(__S, __A, __B);
46 }
47 
test_mm_dpwssds_epi32(__m128i __S,__m128i __A,__m128i __B)48 __m128i test_mm_dpwssds_epi32(__m128i __S, __m128i __A, __m128i __B) {
49   // CHECK-LABEL: @test_mm_dpwssds_epi32
50   // CHECK: @llvm.x86.avx512.vpdpwssds.128
51   return _mm_dpwssds_epi32(__S, __A, __B);
52 }
53 
test_mm256_dpbusd_avx_epi32(__m256i __S,__m256i __A,__m256i __B)54 __m256i test_mm256_dpbusd_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
55   // CHECK-LABEL: @test_mm256_dpbusd_avx_epi32
56   // CHECK: @llvm.x86.avx512.vpdpbusd.256
57   return _mm256_dpbusd_avx_epi32(__S, __A, __B);
58 }
59 
test_mm256_dpbusds_avx_epi32(__m256i __S,__m256i __A,__m256i __B)60 __m256i test_mm256_dpbusds_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
61   // CHECK-LABEL: @test_mm256_dpbusds_avx_epi32
62   // CHECK: @llvm.x86.avx512.vpdpbusds.256
63   return _mm256_dpbusds_avx_epi32(__S, __A, __B);
64 }
65 
test_mm256_dpwssd_avx_epi32(__m256i __S,__m256i __A,__m256i __B)66 __m256i test_mm256_dpwssd_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
67   // CHECK-LABEL: @test_mm256_dpwssd_avx_epi32
68   // CHECK: @llvm.x86.avx512.vpdpwssd.256
69   return _mm256_dpwssd_avx_epi32(__S, __A, __B);
70 }
71 
test_mm256_dpwssds_avx_epi32(__m256i __S,__m256i __A,__m256i __B)72 __m256i test_mm256_dpwssds_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
73   // CHECK-LABEL: @test_mm256_dpwssds_avx_epi32
74   // CHECK: @llvm.x86.avx512.vpdpwssds.256
75   return _mm256_dpwssds_avx_epi32(__S, __A, __B);
76 }
77 
test_mm_dpbusd_avx_epi32(__m128i __S,__m128i __A,__m128i __B)78 __m128i test_mm_dpbusd_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
79   // CHECK-LABEL: @test_mm_dpbusd_avx_epi32
80   // CHECK: @llvm.x86.avx512.vpdpbusd.128
81   return _mm_dpbusd_avx_epi32(__S, __A, __B);
82 }
83 
test_mm_dpbusds_avx_epi32(__m128i __S,__m128i __A,__m128i __B)84 __m128i test_mm_dpbusds_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
85   // CHECK-LABEL: @test_mm_dpbusds_avx_epi32
86   // CHECK: @llvm.x86.avx512.vpdpbusds.128
87   return _mm_dpbusds_avx_epi32(__S, __A, __B);
88 }
89 
test_mm_dpwssd_avx_epi32(__m128i __S,__m128i __A,__m128i __B)90 __m128i test_mm_dpwssd_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
91   // CHECK-LABEL: @test_mm_dpwssd_avx_epi32
92   // CHECK: @llvm.x86.avx512.vpdpwssd.128
93   return _mm_dpwssd_avx_epi32(__S, __A, __B);
94 }
95 
test_mm_dpwssds_avx_epi32(__m128i __S,__m128i __A,__m128i __B)96 __m128i test_mm_dpwssds_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
97   // CHECK-LABEL: @test_mm_dpwssds_avx_epi32
98   // CHECK: @llvm.x86.avx512.vpdpwssds.128
99   return _mm_dpwssds_avx_epi32(__S, __A, __B);
100 }
101