88 lines · c
1// RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-- -target-feature +movrs -target-feature +avx10.2 -emit-llvm -o - -Wall -Werror | FileCheck %s2 3#include <immintrin.h>4 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);9}10 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);16}17 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> zeroinitializer22 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}23 return _mm512_maskz_loadrs_epi8(__A, __B);24}25 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);30}31 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);37}38 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> zeroinitializer43 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}44 return _mm512_maskz_loadrs_epi32(__A, __B);45}46 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);51}52 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);58}59 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> zeroinitializer64 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}65 return _mm512_maskz_loadrs_epi64(__A, __B);66}67 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);72}73 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);79}80 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> zeroinitializer85 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}86 return _mm512_maskz_loadrs_epi16(__A, __B);87}88