[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGen / X86 / movrs-avx10.2-512-builtins.c
blob997d6dbc53a8b035f5279c3f00da4e820487656f
1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-- -target-feature +movrs -target-feature +avx10.2-512 -emit-llvm -o - -Wall -Werror | FileCheck %s
3 #include <immintrin.h>
5 __m512i test_mm512_loadrs_epi8(const __m512i * __A) {
6 // CHECK-LABEL: @test_mm512_loadrs_epi8(
7 // CHECK: call <64 x i8> @llvm.x86.avx10.vmovrsb512(
8 return _mm512_loadrs_epi8(__A);
11 __m512i test_mm512_mask_loadrs_epi8(__m512i __A, __mmask64 __B, const __m512i * __C) {
12 // CHECK-LABEL: @test_mm512_mask_loadrs_epi8(
13 // CHECK: call <64 x i8> @llvm.x86.avx10.vmovrsb512(
14 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
15 return _mm512_mask_loadrs_epi8(__A, __B, __C);
18 __m512i test_mm512_maskz_loadrs_epi8(__mmask64 __A, const __m512i * __B) {
19 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi8(
20 // CHECK: call <64 x i8> @llvm.x86.avx10.vmovrsb512(
21 // CHECK: store <8 x i64> zeroinitializer
22 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
23 return _mm512_maskz_loadrs_epi8(__A, __B);
26 __m512i test_mm512_loadrs_epi32(const __m512i * __A) {
27 // CHECK-LABEL: @test_mm512_loadrs_epi32(
28 // CHECK: call <16 x i32> @llvm.x86.avx10.vmovrsd512(
29 return _mm512_loadrs_epi32(__A);
32 __m512i test_mm512_mask_loadrs_epi32(__m512i __A, __mmask16 __B, const __m512i * __C) {
33 // CHECK-LABEL: @test_mm512_mask_loadrs_epi32(
34 // CHECK: call <16 x i32> @llvm.x86.avx10.vmovrsd512(
35 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
36 return _mm512_mask_loadrs_epi32(__A, __B, __C);
39 __m512i test_mm512_maskz_loadrs_epi32(__mmask16 __A, const __m512i * __B) {
40 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi32(
41 // CHECK: call <16 x i32> @llvm.x86.avx10.vmovrsd512(
42 // CHECK: store <8 x i64> zeroinitializer
43 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
44 return _mm512_maskz_loadrs_epi32(__A, __B);
47 __m512i test_mm512_loadrs_epi64(const __m512i * __A) {
48 // CHECK-LABEL: @test_mm512_loadrs_epi64(
49 // CHECK: call <8 x i64> @llvm.x86.avx10.vmovrsq512(
50 return _mm512_loadrs_epi64(__A);
53 __m512i test_mm512_mask_loadrs_epi64(__m512i __A, __mmask8 __B, const __m512i * __C) {
54 // CHECK-LABEL: @test_mm512_mask_loadrs_epi64(
55 // CHECK: call <8 x i64> @llvm.x86.avx10.vmovrsq512(
56 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
57 return _mm512_mask_loadrs_epi64(__A, __B, __C);
60 __m512i test_mm512_maskz_loadrs_epi64(__mmask8 __A, const __m512i * __B) {
61 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi64(
62 // CHECK: call <8 x i64> @llvm.x86.avx10.vmovrsq512(
63 // CHECK: store <8 x i64> zeroinitializer
64 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
65 return _mm512_maskz_loadrs_epi64(__A, __B);
68 __m512i test_mm512_loadrs_epi16(const __m512i * __A) {
69 // CHECK-LABEL: @test_mm512_loadrs_epi16(
70 // CHECK: call <32 x i16> @llvm.x86.avx10.vmovrsw512(
71 return _mm512_loadrs_epi16(__A);
74 __m512i test_mm512_mask_loadrs_epi16(__m512i __A, __mmask32 __B, const __m512i * __C) {
75 // CHECK-LABEL: @test_mm512_mask_loadrs_epi16(
76 // CHECK: call <32 x i16> @llvm.x86.avx10.vmovrsw512(
77 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
78 return _mm512_mask_loadrs_epi16(__A, __B, __C);
81 __m512i test_mm512_maskz_loadrs_epi16(__mmask32 __A, const __m512i * __B) {
82 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi16(
83 // CHECK: call <32 x i16> @llvm.x86.avx10.vmovrsw512(
84 // CHECK: store <8 x i64> zeroinitializer
85 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
86 return _mm512_maskz_loadrs_epi16(__A, __B);