brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.8 KiB · 05524ab Raw
172 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__m128i test_mm_loadrs_epi8(const __m128i * __A) {6  // CHECK-LABEL: @test_mm_loadrs_epi8(7  // CHECK: call <16 x i8> @llvm.x86.avx10.vmovrsb128(8  return _mm_loadrs_epi8(__A);9}10 11__m128i test_mm_mask_loadrs_epi8(__m128i __A, __mmask16 __B, const __m128i * __C) {12  // CHECK-LABEL: @test_mm_mask_loadrs_epi8(13  // CHECK: call <16 x i8> @llvm.x86.avx10.vmovrsb128(14  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}15  return _mm_mask_loadrs_epi8(__A, __B, __C);16}17 18__m128i test_mm_maskz_loadrs_epi8(__mmask16 __A, const __m128i * __B) {19  // CHECK-LABEL: @test_mm_maskz_loadrs_epi8(20  // CHECK: call <16 x i8> @llvm.x86.avx10.vmovrsb128(21  // CHECK: store <2 x i64> zeroinitializer22  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}23  return _mm_maskz_loadrs_epi8(__A, __B);24}25 26__m256i test_mm256_loadrs_epi8(const __m256i * __A) {27  // CHECK-LABEL: @test_mm256_loadrs_epi8(28  // CHECK: call <32 x i8> @llvm.x86.avx10.vmovrsb256(29  return _mm256_loadrs_epi8(__A);30}31 32__m256i test_mm256_mask_loadrs_epi8(__m256i __A, __mmask32 __B, const __m256i * __C) {33  // CHECK-LABEL: @test_mm256_mask_loadrs_epi8(34  // CHECK: call <32 x i8> @llvm.x86.avx10.vmovrsb256(35  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}36  return _mm256_mask_loadrs_epi8(__A, __B, __C);37}38 39__m256i test_mm256_maskz_loadrs_epi8(__mmask32 __A, const __m256i * __B) {40  // CHECK-LABEL: @test_mm256_maskz_loadrs_epi8(41  // CHECK: call <32 x i8> @llvm.x86.avx10.vmovrsb256(42  // CHECK: store <4 x i64> zeroinitializer43  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}44  return _mm256_maskz_loadrs_epi8(__A, __B);45}46 47__m128i test_mm_loadrs_epi32(const __m128i * __A) {48  // CHECK-LABEL: @test_mm_loadrs_epi32(49  // CHECK: call <4 x i32> @llvm.x86.avx10.vmovrsd128(50  return _mm_loadrs_epi32(__A);51}52 53__m128i test_mm_mask_loadrs_epi32(__m128i __A, __mmask8 __B, const __m128i * __C) {54  // CHECK-LABEL: @test_mm_mask_loadrs_epi32(55  // CHECK: call <4 x i32> @llvm.x86.avx10.vmovrsd128(56  // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}57  return _mm_mask_loadrs_epi32(__A, __B, __C);58}59 60__m128i test_mm_maskz_loadrs_epi32(__mmask8 __A, const __m128i * __B) {61  // CHECK-LABEL: @test_mm_maskz_loadrs_epi32(62  // CHECK: call <4 x i32> @llvm.x86.avx10.vmovrsd128(63  // CHECK: store <2 x i64> zeroinitializer64  // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}65  return _mm_maskz_loadrs_epi32(__A, __B);66}67 68__m256i test_mm256_loadrs_epi32(const __m256i * __A) {69  // CHECK-LABEL: @test_mm256_loadrs_epi32(70  // CHECK: call <8 x i32> @llvm.x86.avx10.vmovrsd256(71  return _mm256_loadrs_epi32(__A);72}73 74__m256i test_mm256_mask_loadrs_epi32(__m256i __A, __mmask8 __B, const __m256i * __C) {75  // CHECK-LABEL: @test_mm256_mask_loadrs_epi32(76  // CHECK: call <8 x i32> @llvm.x86.avx10.vmovrsd256(77  // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}78  return _mm256_mask_loadrs_epi32(__A, __B, __C);79}80 81__m256i test_mm256_maskz_loadrs_epi32(__mmask8 __A, const __m256i * __B) {82  // CHECK-LABEL: @test_mm256_maskz_loadrs_epi32(83  // CHECK: call <8 x i32> @llvm.x86.avx10.vmovrsd256(84  // CHECK: store <4 x i64> zeroinitializer85  // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}86  return _mm256_maskz_loadrs_epi32(__A, __B);87}88 89__m128i test_mm_loadrs_epi64(const __m128i * __A) {90  // CHECK-LABEL: @test_mm_loadrs_epi64(91  // CHECK: call <2 x i64> @llvm.x86.avx10.vmovrsq128(92  return _mm_loadrs_epi64(__A);93}94 95__m128i test_mm_mask_loadrs_epi64(__m128i __A, __mmask8 __B, const __m128i * __C) {96  // CHECK-LABEL: @test_mm_mask_loadrs_epi64(97  // CHECK: call <2 x i64> @llvm.x86.avx10.vmovrsq128(98  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}99  return _mm_mask_loadrs_epi64(__A, __B, __C);100}101 102__m128i test_mm_maskz_loadrs_epi64(__mmask8 __A, const __m128i * __B) {103  // CHECK-LABEL: @test_mm_maskz_loadrs_epi64(104  // CHECK: call <2 x i64> @llvm.x86.avx10.vmovrsq128(105  // CHECK: store <2 x i64> zeroinitializer106  // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}107  return _mm_maskz_loadrs_epi64(__A, __B);108}109 110__m256i test_mm256_loadrs_epi64(const __m256i * __A) {111  // CHECK-LABEL: @test_mm256_loadrs_epi64(112  // CHECK: call <4 x i64> @llvm.x86.avx10.vmovrsq256(113  return _mm256_loadrs_epi64(__A);114}115 116__m256i test_mm256_mask_loadrs_epi64(__m256i __A, __mmask8 __B, const __m256i * __C) {117  // CHECK-LABEL: @test_mm256_mask_loadrs_epi64(118  // CHECK: call <4 x i64> @llvm.x86.avx10.vmovrsq256(119  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}120  return _mm256_mask_loadrs_epi64(__A, __B, __C);121}122 123__m256i test_mm256_maskz_loadrs_epi64(__mmask8 __A, const __m256i * __B) {124  // CHECK-LABEL: @test_mm256_maskz_loadrs_epi64(125  // CHECK: call <4 x i64> @llvm.x86.avx10.vmovrsq256(126  // CHECK: store <4 x i64> zeroinitializer127  // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}128  return _mm256_maskz_loadrs_epi64(__A, __B);129}130 131__m128i test_mm_loadrs_epi16(const __m128i * __A) {132  // CHECK-LABEL: @test_mm_loadrs_epi16(133  // CHECK: call <8 x i16> @llvm.x86.avx10.vmovrsw128(134  return _mm_loadrs_epi16(__A);135}136 137__m128i test_mm_mask_loadrs_epi16(__m128i __A, __mmask8 __B, const __m128i * __C) {138  // CHECK-LABEL: @test_mm_mask_loadrs_epi16(139  // CHECK: call <8 x i16> @llvm.x86.avx10.vmovrsw128(140  // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}141  return _mm_mask_loadrs_epi16(__A, __B, __C);142}143 144__m128i test_mm_maskz_loadrs_epi16(__mmask8 __A, const __m128i * __B) {145  // CHECK-LABEL: @test_mm_maskz_loadrs_epi16(146  // CHECK: call <8 x i16> @llvm.x86.avx10.vmovrsw128(147  // CHECK: store <2 x i64> zeroinitializer148  // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}149  return _mm_maskz_loadrs_epi16(__A, __B);150}151 152__m256i test_mm256_loadrs_epi16(const __m256i * __A) {153  // CHECK-LABEL: @test_mm256_loadrs_epi16(154  // CHECK: call <16 x i16> @llvm.x86.avx10.vmovrsw256(155  return _mm256_loadrs_epi16(__A);156}157 158__m256i test_mm256_mask_loadrs_epi16(__m256i __A, __mmask16 __B, const __m256i * __C) {159  // CHECK-LABEL: @test_mm256_mask_loadrs_epi16(160  // CHECK: call <16 x i16> @llvm.x86.avx10.vmovrsw256(161  // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}162  return _mm256_mask_loadrs_epi16(__A, __B, __C);163}164 165__m256i test_mm256_maskz_loadrs_epi16(__mmask16 __A, const __m256i * __B) {166  // CHECK-LABEL: @test_mm256_maskz_loadrs_epi16(167  // CHECK: call <16 x i16> @llvm.x86.avx10.vmovrsw256(168  // CHECK: store <4 x i64> zeroinitializer169  // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}170  return _mm256_maskz_loadrs_epi16(__A, __B);171}172