brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · fa33825 Raw
136 lines · c
1// RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=x86_64 -target-feature +avx10.2 \2// RUN: -emit-llvm -o - -Wno-invalid-feature-combination -Wall -Werror | FileCheck %s3// RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=i386 -target-feature +avx10.2 \4// RUN: -emit-llvm -o - -Wno-invalid-feature-combination -Wall -Werror | FileCheck %s5 6#include <immintrin.h>7 8__m512bh test_mm512_minmax_pbh(__m512bh __A, __m512bh __B) {9  // CHECK-LABEL: @test_mm512_minmax_pbh(10  // CHECK: call <32 x bfloat> @llvm.x86.avx10.vminmaxbf16512(11  return _mm512_minmax_pbh(__A, __B, 127);12}13 14__m512bh test_mm512_mask_minmax_pbh(__m512bh __A, __mmask32 __B, __m512bh __C, __m512bh __D) {15  // CHECK-LABEL: @test_mm512_mask_minmax_pbh(16  // CHECK: call <32 x bfloat> @llvm.x86.avx10.vminmaxbf16512(17  // CHECK: select <32 x i1> %{{.*}}, <32 x bfloat> %{{.*}}, <32 x bfloat> %{{.*}}18  return _mm512_mask_minmax_pbh(__A, __B, __C, __D, 127);19}20 21__m512bh test_mm512_maskz_minmax_pbh(__mmask32 __A, __m512bh __B, __m512bh __C) {22  // CHECK-LABEL: @test_mm512_maskz_minmax_pbh(23  // CHECK: call <32 x bfloat> @llvm.x86.avx10.vminmaxbf16512(24  // CHECK: zeroinitializer25  // CHECK: select <32 x i1> %{{.*}}, <32 x bfloat> %{{.*}}, <32 x bfloat> %{{.*}}26  return _mm512_maskz_minmax_pbh(__A, __B, __C, 127);27}28 29__m512d test_mm512_minmax_pd(__m512d __A, __m512d __B) {30  // CHECK-LABEL: @test_mm512_minmax_pd(31  // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(32  return _mm512_minmax_pd(__A, __B, 127);33}34 35__m512d test_mm512_mask_minmax_pd(__m512d __A, __mmask8 __B, __m512d __C, __m512d __D) {36  // CHECK-LABEL: @test_mm512_mask_minmax_pd(37  // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(38  return _mm512_mask_minmax_pd(__A, __B, __C, __D, 127);39}40 41__m512d test_mm512_maskz_minmax_pd(__mmask8 __A, __m512d __B, __m512d __C) {42  // CHECK-LABEL: @test_mm512_maskz_minmax_pd(43  // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(44  return _mm512_maskz_minmax_pd(__A, __B, __C, 127);45}46 47__m512d test_mm512_minmax_round_pd(__m512d __A, __m512d __B) {48  // CHECK-LABEL: @test_mm512_minmax_round_pd(49  // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(50  return _mm512_minmax_round_pd(__A, __B, 127, _MM_FROUND_NO_EXC);51}52 53__m512d test_mm512_mask_minmax_round_pd(__m512d __A, __mmask8 __B, __m512d __C, __m512d __D) {54  // CHECK-LABEL: @test_mm512_mask_minmax_round_pd(55  // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(56  return _mm512_mask_minmax_round_pd(__A, __B, __C, __D, 127, _MM_FROUND_NO_EXC);57}58 59__m512d test_mm512_maskz_minmax_round_pd(__mmask8 __A, __m512d __B, __m512d __C) {60  // CHECK-LABEL: @test_mm512_maskz_minmax_round_pd(61  // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(62  return _mm512_maskz_minmax_round_pd(__A, __B, __C, 127, _MM_FROUND_NO_EXC);63}64 65__m512h test_mm512_minmax_ph(__m512h __A, __m512h __B) {66  // CHECK-LABEL: @test_mm512_minmax_ph(67  // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(68  return _mm512_minmax_ph(__A, __B, 127);69}70 71__m512h test_mm512_mask_minmax_ph(__m512h __A, __mmask32 __B, __m512h __C, __m512h __D) {72  // CHECK-LABEL: @test_mm512_mask_minmax_ph(73  // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(74  return _mm512_mask_minmax_ph(__A, __B, __C, __D, 127);75}76 77__m512h test_mm512_maskz_minmax_ph(__mmask32 __A, __m512h __B, __m512h __C) {78  // CHECK-LABEL: @test_mm512_maskz_minmax_ph(79  // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(80  return _mm512_maskz_minmax_ph(__A, __B, __C, 127);81}82 83__m512h test_mm512_minmax_round_ph(__m512h __A, __m512h __B) {84  // CHECK-LABEL: @test_mm512_minmax_round_ph(85  // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(86  return _mm512_minmax_round_ph(__A, __B, 127, _MM_FROUND_NO_EXC);87}88 89__m512h test_mm512_mask_minmax_round_ph(__m512h __A, __mmask32 __B, __m512h __C, __m512h __D) {90  // CHECK-LABEL: @test_mm512_mask_minmax_round_ph(91  // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(92  return _mm512_mask_minmax_round_ph(__A, __B, __C, __D, 127, _MM_FROUND_NO_EXC);93}94 95__m512h test_mm512_maskz_minmax_round_ph(__mmask32 __A, __m512h __B, __m512h __C) {96  // CHECK-LABEL: @test_mm512_maskz_minmax_round_ph(97  // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(98  return _mm512_maskz_minmax_round_ph(__A, __B, __C, 127, _MM_FROUND_NO_EXC);99}100 101__m512 test_mm512_minmax_ps(__m512 __A, __m512 __B) {102  // CHECK-LABEL: @test_mm512_minmax_ps(103  // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(104  return _mm512_minmax_ps(__A, __B, 127);105}106 107__m512 test_mm512_mask_minmax_ps(__m512 __A, __mmask16 __B, __m512 __C, __m512 __D) {108  // CHECK-LABEL: @test_mm512_mask_minmax_ps(109  // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(110  return _mm512_mask_minmax_ps(__A, __B, __C, __D, 127);111}112 113__m512 test_mm512_maskz_minmax_ps(__mmask16 __A, __m512 __B, __m512 __C) {114  // CHECK-LABEL: @test_mm512_maskz_minmax_ps(115  // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(116  return _mm512_maskz_minmax_ps(__A, __B, __C, 127);117}118 119__m512 test_mm512_minmax_round_ps(__m512 __A, __m512 __B) {120  // CHECK-LABEL: @test_mm512_minmax_round_ps(121  // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(122  return _mm512_minmax_round_ps(__A, __B, 127, _MM_FROUND_NO_EXC);123}124 125__m512 test_mm512_mask_minmax_round_ps(__m512 __A, __mmask16 __B, __m512 __C, __m512 __D) {126  // CHECK-LABEL: @test_mm512_mask_minmax_round_ps(127  // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(128  return _mm512_mask_minmax_round_ps(__A, __B, __C, __D, 127, _MM_FROUND_NO_EXC);129}130 131__m512 test_mm512_maskz_minmax_round_ps(__mmask16 __A, __m512 __B, __m512 __C) {132  // CHECK-LABEL: @test_mm512_maskz_minmax_round_ps(133  // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(134  return _mm512_maskz_minmax_round_ps(__A, __B, __C, 127, _MM_FROUND_NO_EXC);135}136