103 lines · c
1// RUN: %clang_cc1 -x c -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxvnni -emit-llvm -o - -Wall -Werror | FileCheck %s2// RUN: %clang_cc1 -x c -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxvnni -emit-llvm -o - -Wall -Werror | FileCheck %s3// RUN: %clang_cc1 -x c++ -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avxvnni -emit-llvm -o - -Wall -Werror | FileCheck %s4// RUN: %clang_cc1 -x c++ -ffreestanding %s -triple=i386-apple-darwin -target-feature +avxvnni -emit-llvm -o - -Wall -Werror | FileCheck %s5 6#include <immintrin.h>7 8__m256i test_mm256_dpbusd_epi32(__m256i __S, __m256i __A, __m256i __B) {9 // CHECK-LABEL: test_mm256_dpbusd_epi3210 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpbusd.256(<8 x i32> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}})11 return _mm256_dpbusd_epi32(__S, __A, __B);12}13 14__m256i test_mm256_dpbusds_epi32(__m256i __S, __m256i __A, __m256i __B) {15 // CHECK-LABEL: test_mm256_dpbusds_epi3216 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpbusds.256(<8 x i32> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}})17 return _mm256_dpbusds_epi32(__S, __A, __B);18}19 20__m256i test_mm256_dpwssd_epi32(__m256i __S, __m256i __A, __m256i __B) {21 // CHECK-LABEL: test_mm256_dpwssd_epi3222 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpwssd.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})23 return _mm256_dpwssd_epi32(__S, __A, __B);24}25 26__m256i test_mm256_dpwssds_epi32(__m256i __S, __m256i __A, __m256i __B) {27 // CHECK-LABEL: test_mm256_dpwssds_epi3228 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpwssds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})29 return _mm256_dpwssds_epi32(__S, __A, __B);30}31 32__m128i test_mm_dpbusd_epi32(__m128i __S, __m128i __A, __m128i __B) {33 // CHECK-LABEL: test_mm_dpbusd_epi3234 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpbusd.128(<4 x i32> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}})35 return _mm_dpbusd_epi32(__S, __A, __B);36}37 38__m128i test_mm_dpbusds_epi32(__m128i __S, __m128i __A, __m128i __B) {39 // CHECK-LABEL: test_mm_dpbusds_epi3240 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpbusds.128(<4 x i32> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}})41 return _mm_dpbusds_epi32(__S, __A, __B);42}43 44__m128i test_mm_dpwssd_epi32(__m128i __S, __m128i __A, __m128i __B) {45 // CHECK-LABEL: test_mm_dpwssd_epi3246 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpwssd.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})47 return _mm_dpwssd_epi32(__S, __A, __B);48}49 50__m128i test_mm_dpwssds_epi32(__m128i __S, __m128i __A, __m128i __B) {51 // CHECK-LABEL: test_mm_dpwssds_epi3252 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpwssds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})53 return _mm_dpwssds_epi32(__S, __A, __B);54}55 56__m256i test_mm256_dpbusd_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {57 // CHECK-LABEL: test_mm256_dpbusd_avx_epi3258 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpbusd.256(<8 x i32> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}})59 return _mm256_dpbusd_avx_epi32(__S, __A, __B);60}61 62__m256i test_mm256_dpbusds_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {63 // CHECK-LABEL: test_mm256_dpbusds_avx_epi3264 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpbusds.256(<8 x i32> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}})65 return _mm256_dpbusds_avx_epi32(__S, __A, __B);66}67 68__m256i test_mm256_dpwssd_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {69 // CHECK-LABEL: test_mm256_dpwssd_avx_epi3270 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpwssd.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})71 return _mm256_dpwssd_avx_epi32(__S, __A, __B);72}73 74__m256i test_mm256_dpwssds_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {75 // CHECK-LABEL: test_mm256_dpwssds_avx_epi3276 // CHECK: call <8 x i32> @llvm.x86.avx512.vpdpwssds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})77 return _mm256_dpwssds_avx_epi32(__S, __A, __B);78}79 80__m128i test_mm_dpbusd_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {81 // CHECK-LABEL: test_mm_dpbusd_avx_epi3282 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpbusd.128(<4 x i32> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}})83 return _mm_dpbusd_avx_epi32(__S, __A, __B);84}85 86__m128i test_mm_dpbusds_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {87 // CHECK-LABEL: test_mm_dpbusds_avx_epi3288 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpbusds.128(<4 x i32> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}})89 return _mm_dpbusds_avx_epi32(__S, __A, __B);90}91 92__m128i test_mm_dpwssd_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {93 // CHECK-LABEL: test_mm_dpwssd_avx_epi3294 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpwssd.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})95 return _mm_dpwssd_avx_epi32(__S, __A, __B);96}97 98__m128i test_mm_dpwssds_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {99 // CHECK-LABEL: test_mm_dpwssds_avx_epi32100 // CHECK: call <4 x i32> @llvm.x86.avx512.vpdpwssds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})101 return _mm_dpwssds_avx_epi32(__S, __A, __B);102}103