Clang Project

clang_source_code/test/CodeGen/avx512ifmavl-builtins.c
1// RUN: %clang_cc1 %s -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s
2
3#include <immintrin.h>
4
5__m128i test_mm_madd52hi_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
6  // CHECK-LABEL: @test_mm_madd52hi_epu64
7  // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128
8  return _mm_madd52hi_epu64(__X, __Y, __Z); 
9}
10
11__m128i test_mm_mask_madd52hi_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) {
12  // CHECK-LABEL: @test_mm_mask_madd52hi_epu64
13  // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128
14  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
15  return _mm_mask_madd52hi_epu64(__W, __M, __X, __Y); 
16}
17
18__m128i test_mm_maskz_madd52hi_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) {
19  // CHECK-LABEL: @test_mm_maskz_madd52hi_epu64
20  // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128
21  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
22  return _mm_maskz_madd52hi_epu64(__M, __X, __Y, __Z); 
23}
24
25__m256i test_mm256_madd52hi_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
26  // CHECK-LABEL: @test_mm256_madd52hi_epu64
27  // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256
28  return _mm256_madd52hi_epu64(__X, __Y, __Z); 
29}
30
31__m256i test_mm256_mask_madd52hi_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
32  // CHECK-LABEL: @test_mm256_mask_madd52hi_epu64
33  // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256
34  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
35  return _mm256_mask_madd52hi_epu64(__W, __M, __X, __Y); 
36}
37
38__m256i test_mm256_maskz_madd52hi_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) {
39  // CHECK-LABEL: @test_mm256_maskz_madd52hi_epu64
40  // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256
41  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
42  return _mm256_maskz_madd52hi_epu64(__M, __X, __Y, __Z); 
43}
44
45__m128i test_mm_madd52lo_epu64(__m128i __X, __m128i __Y, __m128i __Z) {
46  // CHECK-LABEL: @test_mm_madd52lo_epu64
47  // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128
48  return _mm_madd52lo_epu64(__X, __Y, __Z); 
49}
50
51__m128i test_mm_mask_madd52lo_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) {
52  // CHECK-LABEL: @test_mm_mask_madd52lo_epu64
53  // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128
54  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
55  return _mm_mask_madd52lo_epu64(__W, __M, __X, __Y); 
56}
57
58__m128i test_mm_maskz_madd52lo_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) {
59  // CHECK-LABEL: @test_mm_maskz_madd52lo_epu64
60  // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128
61  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
62  return _mm_maskz_madd52lo_epu64(__M, __X, __Y, __Z); 
63}
64
65__m256i test_mm256_madd52lo_epu64(__m256i __X, __m256i __Y, __m256i __Z) {
66  // CHECK-LABEL: @test_mm256_madd52lo_epu64
67  // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256
68  return _mm256_madd52lo_epu64(__X, __Y, __Z); 
69}
70
71__m256i test_mm256_mask_madd52lo_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) {
72  // CHECK-LABEL: @test_mm256_mask_madd52lo_epu64
73  // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256
74  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
75  return _mm256_mask_madd52lo_epu64(__W, __M, __X, __Y); 
76}
77
78__m256i test_mm256_maskz_madd52lo_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) {
79  // CHECK-LABEL: @test_mm256_maskz_madd52lo_epu64
80  // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256
81  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
82  return _mm256_maskz_madd52lo_epu64(__M, __X, __Y, __Z); 
83}
84