88 lines · c
1// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vnni -emit-llvm -o - -Wall -Werror | FileCheck %s2// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512vnni -emit-llvm -o - -Wall -Werror | FileCheck %s3// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vnni -emit-llvm -o - -Wall -Werror | FileCheck %s4// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512vnni -emit-llvm -o - -Wall -Werror | FileCheck %s5 6#include <immintrin.h>7 8__m512i test_mm512_mask_dpbusd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {9 // CHECK-LABEL: test_mm512_mask_dpbusd_epi3210 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpbusd.512(<16 x i32> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}})11 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}12 return _mm512_mask_dpbusd_epi32(__S, __U, __A, __B);13}14 15__m512i test_mm512_maskz_dpbusd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {16 // CHECK-LABEL: test_mm512_maskz_dpbusd_epi3217 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpbusd.512(<16 x i32> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}})18 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}19 return _mm512_maskz_dpbusd_epi32(__U, __S, __A, __B);20}21 22__m512i test_mm512_dpbusd_epi32(__m512i __S, __m512i __A, __m512i __B) {23 // CHECK-LABEL: test_mm512_dpbusd_epi3224 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpbusd.512(<16 x i32> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}})25 return _mm512_dpbusd_epi32(__S, __A, __B);26}27 28__m512i test_mm512_mask_dpbusds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {29 // CHECK-LABEL: test_mm512_mask_dpbusds_epi3230 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpbusds.512(<16 x i32> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}})31 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}32 return _mm512_mask_dpbusds_epi32(__S, __U, __A, __B);33}34 35__m512i test_mm512_maskz_dpbusds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {36 // CHECK-LABEL: test_mm512_maskz_dpbusds_epi3237 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpbusds.512(<16 x i32> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}})38 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}39 return _mm512_maskz_dpbusds_epi32(__U, __S, __A, __B);40}41 42__m512i test_mm512_dpbusds_epi32(__m512i __S, __m512i __A, __m512i __B) {43 // CHECK-LABEL: test_mm512_dpbusds_epi3244 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpbusds.512(<16 x i32> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}})45 return _mm512_dpbusds_epi32(__S, __A, __B);46}47 48__m512i test_mm512_mask_dpwssd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {49 // CHECK-LABEL: test_mm512_mask_dpwssd_epi3250 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpwssd.512(<16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}})51 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}52 return _mm512_mask_dpwssd_epi32(__S, __U, __A, __B);53}54 55__m512i test_mm512_maskz_dpwssd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {56 // CHECK-LABEL: test_mm512_maskz_dpwssd_epi3257 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpwssd.512(<16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}})58 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}59 return _mm512_maskz_dpwssd_epi32(__U, __S, __A, __B);60}61 62__m512i test_mm512_dpwssd_epi32(__m512i __S, __m512i __A, __m512i __B) {63 // CHECK-LABEL: test_mm512_dpwssd_epi3264 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpwssd.512(<16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}})65 return _mm512_dpwssd_epi32(__S, __A, __B);66}67 68__m512i test_mm512_mask_dpwssds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {69 // CHECK-LABEL: test_mm512_mask_dpwssds_epi3270 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpwssds.512(<16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}})71 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}72 return _mm512_mask_dpwssds_epi32(__S, __U, __A, __B);73}74 75__m512i test_mm512_maskz_dpwssds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {76 // CHECK-LABEL: test_mm512_maskz_dpwssds_epi3277 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpwssds.512(<16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}})78 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}79 return _mm512_maskz_dpwssds_epi32(__U, __S, __A, __B);80}81 82__m512i test_mm512_dpwssds_epi32(__m512i __S, __m512i __A, __m512i __B) {83 // CHECK-LABEL: test_mm512_dpwssds_epi3284 // CHECK: call <16 x i32> @llvm.x86.avx512.vpdpwssds.512(<16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}})85 return _mm512_dpwssds_epi32(__S, __A, __B);86}87 88