brintos

brintos / llvm-project-archived public Read only

0
0
Text · 22.5 KiB · 025ab77 Raw
595 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__m128h test_mm_cvtx2ps_ph(__m128 __A, __m128 __B) {9  // CHECK-LABEL: @test_mm_cvtx2ps_ph(10  // CHECK: call <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.12811  return _mm_cvtx2ps_ph(__A, __B);12}13 14__m128h test_mm_mask_cvtx2ps_ph(__m128h __W, __mmask8 __U, __m128 __A, __m128 __B) {15  // CHECK-LABEL: @test_mm_mask_cvtx2ps_ph(16  // CHECK: call <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.12817  return _mm_mask_cvtx2ps_ph(__W, __U, __A, __B);18}19 20__m128h test_mm_maskz_cvtx2ps_ph(__mmask8 __U, __m128 __A, __m128 __B) {21  // CHECK-LABEL: @test_mm_maskz_cvtx2ps_ph(22  // CHECK: call <8 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.12823  return _mm_maskz_cvtx2ps_ph(__U, __A, __B);24}25 26__m256h test_mm256_cvtx2ps_ph(__m256 __A, __m256 __B) {27  // CHECK-LABEL: @test_mm256_cvtx2ps_ph(28  // CHECK: call <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.25629  return _mm256_cvtx2ps_ph(__A, __B);30}31 32__m256h test_mm256_mask_cvtx2ps_ph(__m256h __W, __mmask16 __U, __m256 __A, __m256 __B) {33  // CHECK-LABEL: @test_mm256_mask_cvtx2ps_ph(34  // CHECK: call <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.25635  return _mm256_mask_cvtx2ps_ph(__W, __U, __A, __B);36}37 38__m256h test_mm256_maskz_cvtx2ps_ph(__mmask16 __U, __m256 __A, __m256 __B) {39  // CHECK-LABEL: @test_mm256_maskz_cvtx2ps_ph(40  // CHECK: call <16 x half> @llvm.x86.avx10.mask.vcvt2ps2phx.25641  return _mm256_maskz_cvtx2ps_ph(__U, __A, __B);42}43 44__m128i test_mm_cvtbiasph_bf8(__m128i __A, __m128h __B) {45  // CHECK-LABEL: @test_mm_cvtbiasph_bf8(46  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(47  return _mm_cvtbiasph_bf8(__A, __B);48}49 50__m128i test_mm_mask_cvtbiasph_bf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {51  // CHECK-LABEL: @test_mm_mask_cvtbiasph_bf8(52  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(53  return _mm_mask_cvtbiasph_bf8(__W, __U, __A, __B);54}55 56__m128i test_mm_maskz_cvtbiasph_bf8(__mmask8 __U, __m128i __A, __m128h __B) {57  // CHECK-LABEL: @test_mm_maskz_cvtbiasph_bf8(58  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8128(59  return _mm_maskz_cvtbiasph_bf8(__U, __A, __B);60}61 62__m128i test_mm256_cvtbiasph_bf8(__m256i __A, __m256h __B) {63  // CHECK-LABEL: @test_mm256_cvtbiasph_bf8(64  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(65  return _mm256_cvtbiasph_bf8(__A, __B);66}67 68__m128i test_mm256_mask_cvtbiasph_bf8(__m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {69  // CHECK-LABEL: @test_mm256_mask_cvtbiasph_bf8(70  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(71  return _mm256_mask_cvtbiasph_bf8(__W, __U, __A, __B);72}73 74__m128i test_mm256_maskz_cvtbiasph_bf8(__mmask16 __U, __m256i __A, __m256h __B) {75  // CHECK-LABEL: @test_mm256_maskz_cvtbiasph_bf8(76  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8256(77  return _mm256_maskz_cvtbiasph_bf8(__U, __A, __B);78}79 80__m128i test_mm_cvts_biasph_bf8(__m128i __A, __m128h __B) {81  // CHECK-LABEL: @test_mm_cvts_biasph_bf8(82  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(83  return _mm_cvts_biasph_bf8(__A, __B);84}85 86__m128i test_mm_mask_cvts_biasph_bf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {87  // CHECK-LABEL: @test_mm_mask_cvts_biasph_bf8(88  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(89  return _mm_mask_cvts_biasph_bf8(__W, __U, __A, __B);90}91 92__m128i test_mm_maskz_cvts_biasph_bf8(__mmask8 __U, __m128i __A, __m128h __B) {93  // CHECK-LABEL: @test_mm_maskz_cvts_biasph_bf8(94  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s128(95  return _mm_maskz_cvts_biasph_bf8(__U, __A, __B);96}97 98__m128i test_mm256_cvts_biasph_bf8(__m256i __A, __m256h __B) {99  // CHECK-LABEL: @test_mm256_cvts_biasph_bf8(100  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(101  return _mm256_cvts_biasph_bf8(__A, __B);102}103 104__m128i test_mm256_mask_cvts_biasph_bf8(__m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {105  // CHECK-LABEL: @test_mm256_mask_cvts_biasph_bf8(106  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(107  return _mm256_mask_cvts_biasph_bf8(__W, __U, __A, __B);108}109 110__m128i test_mm256_maskz_cvts_biasph_bf8(__mmask16 __U, __m256i __A, __m256h __B) {111  // CHECK-LABEL: @test_mm256_maskz_cvts_biasph_bf8(112  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2bf8s256(113  return _mm256_maskz_cvts_biasph_bf8(__U, __A, __B);114}115 116__m128i test_mm_cvtbiasph_hf8(__m128i __A, __m128h __B) {117  // CHECK-LABEL: @test_mm_cvtbiasph_hf8(118  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(119  return _mm_cvtbiasph_hf8(__A, __B);120}121 122__m128i test_mm_mask_cvtbiasph_hf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {123  // CHECK-LABEL: @test_mm_mask_cvtbiasph_hf8(124  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(125  return _mm_mask_cvtbiasph_hf8(__W, __U, __A, __B);126}127 128__m128i test_mm_maskz_cvtbiasph_hf8(__mmask8 __U, __m128i __A, __m128h __B) {129  // CHECK-LABEL: @test_mm_maskz_cvtbiasph_hf8(130  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8128(131  return _mm_maskz_cvtbiasph_hf8(__U, __A, __B);132}133 134__m128i test_mm256_cvtbiasph_hf8(__m256i __A, __m256h __B) {135  // CHECK-LABEL: @test_mm256_cvtbiasph_hf8(136  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(137  return _mm256_cvtbiasph_hf8(__A, __B);138}139 140__m128i test_mm256_mask_cvtbiasph_hf8(__m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {141  // CHECK-LABEL: @test_mm256_mask_cvtbiasph_hf8(142  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(143  return _mm256_mask_cvtbiasph_hf8(__W, __U, __A, __B);144}145 146__m128i test_mm256_maskz_cvtbiasph_hf8(__mmask16 __U, __m256i __A, __m256h __B) {147  // CHECK-LABEL: @test_mm256_maskz_cvtbiasph_hf8(148  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8256(149  return _mm256_maskz_cvtbiasph_hf8(__U, __A, __B);150}151 152__m128i test_mm_cvts_biasph_hf8(__m128i __A, __m128h __B) {153  // CHECK-LABEL: @test_mm_cvts_biasph_hf8(154  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(155  return _mm_cvts_biasph_hf8(__A, __B);156}157 158__m128i test_mm_mask_cvts_biasph_hf8(__m128i __W, __mmask8 __U, __m128i __A, __m128h __B) {159  // CHECK-LABEL: @test_mm_mask_cvts_biasph_hf8(160  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(161  return _mm_mask_cvts_biasph_hf8(__W, __U, __A, __B);162}163 164__m128i test_mm_maskz_cvts_biasph_hf8(__mmask8 __U, __m128i __A, __m128h __B) {165  // CHECK-LABEL: @test_mm_maskz_cvts_biasph_hf8(166  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s128(167  return _mm_maskz_cvts_biasph_hf8(__U, __A, __B);168}169 170__m128i test_mm256_cvts_biasph_hf8(__m256i __A, __m256h __B) {171  // CHECK-LABEL: @test_mm256_cvts_biasph_hf8(172  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(173  return _mm256_cvts_biasph_hf8(__A, __B);174}175 176__m128i test_mm256_mask_cvts_biasph_hf8(__m128i __W, __mmask16 __U, __m256i __A, __m256h __B) {177  // CHECK-LABEL: @test_mm256_mask_cvts_biasph_hf8(178  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(179  return _mm256_mask_cvts_biasph_hf8(__W, __U, __A, __B);180}181 182__m128i test_mm256_maskz_cvts_biasph_hf8(__mmask16 __U, __m256i __A, __m256h __B) {183  // CHECK-LABEL: @test_mm256_maskz_cvts_biasph_hf8(184  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtbiasph2hf8s256(185  return _mm256_maskz_cvts_biasph_hf8(__U, __A, __B);186}187 188__m128i test_mm_cvt2ph_bf8(__m128h __A, __m128h __B) {189  // CHECK-LABEL: @test_mm_cvt2ph_bf8(190  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(191  return _mm_cvt2ph_bf8(__A, __B);192}193 194__m128i test_mm_mask_cvt2ph_bf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {195  // CHECK-LABEL: @test_mm_mask_cvt2ph_bf8(196  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(197  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}198  // CHECK: ret <2 x i64> %{{.*}}199  return _mm_mask_cvt2ph_bf8(__W, __U, __A, __B);200}201 202__m128i test_mm_maskz_cvt2ph_bf8(__mmask16 __U, __m128h __A, __m128h __B) {203  // CHECK-LABEL: @test_mm_maskz_cvt2ph_bf8(204  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8128(205  // CHECK: zeroinitializer206  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}207  return _mm_maskz_cvt2ph_bf8(__U, __A, __B);208}209 210__m256i test_mm256_cvt2ph_bf8(__m256h __A, __m256h __B) {211  // CHECK-LABEL: @test_mm256_cvt2ph_bf8(212  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(213  return _mm256_cvt2ph_bf8(__A, __B);214}215 216__m256i test_mm256_mask_cvt2ph_bf8(__m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {217  // CHECK-LABEL: @test_mm256_mask_cvt2ph_bf8(218  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(219  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}220  // CHECK: ret <4 x i64> %{{.*}}221  return _mm256_mask_cvt2ph_bf8(__W, __U, __A, __B);222}223 224__m256i test_mm256_maskz_cvt2ph_bf8(__mmask32 __U, __m256h __A, __m256h __B) {225  // CHECK-LABEL: @test_mm256_maskz_cvt2ph_bf8(226  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8256(227  // CHECK: zeroinitializer228  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}229  return _mm256_maskz_cvt2ph_bf8(__U, __A, __B);230}231 232__m128i test_mm_cvts_2ph_bf8(__m128h __A, __m128h __B) {233  // CHECK-LABEL: @test_mm_cvts_2ph_bf8(234  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(235  return _mm_cvts_2ph_bf8(__A, __B);236}237 238__m128i test_mm_mask_cvts_2ph_bf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {239  // CHECK-LABEL: @test_mm_mask_cvts_2ph_bf8(240  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(241  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}242  // CHECK: ret <2 x i64> %{{.*}}243  return _mm_mask_cvts_2ph_bf8(__W, __U, __A, __B);244}245 246__m128i test_mm_maskz_cvts_2ph_bf8(__mmask16 __U, __m128h __A, __m128h __B) {247  // CHECK-LABEL: @test_mm_maskz_cvts_2ph_bf8(248  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2bf8s128(249  // CHECK: zeroinitializer250  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}251  return _mm_maskz_cvts_2ph_bf8(__U, __A, __B);252}253 254__m256i test_mm256_cvts_2ph_bf8(__m256h __A, __m256h __B) {255  // CHECK-LABEL: @test_mm256_cvts_2ph_bf8(256  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(257  return _mm256_cvts_2ph_bf8(__A, __B);258}259 260__m256i test_mm256_mask_cvts_2ph_bf8(__m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {261  // CHECK-LABEL: @test_mm256_mask_cvts_2ph_bf8(262  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(263  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}264  // CHECK: ret <4 x i64> %{{.*}}265  return _mm256_mask_cvts_2ph_bf8(__W, __U, __A, __B);266}267 268__m256i test_mm256_maskz_cvts_2ph_bf8(__mmask32 __U, __m256h __A, __m256h __B) {269  // CHECK-LABEL: @test_mm256_maskz_cvts_2ph_bf8(270  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2bf8s256(271  // CHECK: zeroinitializer272  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}273  return _mm256_maskz_cvts_2ph_bf8(__U, __A, __B);274}275 276__m128i test_mm_cvt2ph_hf8(__m128h __A, __m128h __B) {277  // CHECK-LABEL: @test_mm_cvt2ph_hf8(278  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(279  return _mm_cvt2ph_hf8(__A, __B);280}281 282__m128i test_mm_mask_cvt2ph_hf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {283  // CHECK-LABEL: @test_mm_mask_cvt2ph_hf8(284  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(285  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}286  // CHECK: ret <2 x i64> %{{.*}}287  return _mm_mask_cvt2ph_hf8(__W, __U, __A, __B);288}289 290__m128i test_mm_maskz_cvt2ph_hf8(__mmask16 __U, __m128h __A, __m128h __B) {291  // CHECK-LABEL: @test_mm_maskz_cvt2ph_hf8(292  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8128(293  // CHECK: zeroinitializer294  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}295  return _mm_maskz_cvt2ph_hf8(__U, __A, __B);296}297 298__m256i test_mm256_cvt2ph_hf8(__m256h __A, __m256h __B) {299  // CHECK-LABEL: @test_mm256_cvt2ph_hf8(300  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(301  return _mm256_cvt2ph_hf8(__A, __B);302}303 304__m256i test_mm256_mask_cvt2ph_hf8(__m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {305  // CHECK-LABEL: @test_mm256_mask_cvt2ph_hf8(306  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(307  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}308  // CHECK: ret <4 x i64> %{{.*}}309  return _mm256_mask_cvt2ph_hf8(__W, __U, __A, __B);310}311 312__m256i test_mm256_maskz_cvt2ph_hf8(__mmask32 __U, __m256h __A, __m256h __B) {313  // CHECK-LABEL: @test_mm256_maskz_cvt2ph_hf8(314  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8256(315  // CHECK: zeroinitializer316  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}317  return _mm256_maskz_cvt2ph_hf8(__U, __A, __B);318}319 320__m128i test_mm_cvts_2ph_hf8(__m128h __A, __m128h __B) {321  // CHECK-LABEL: @test_mm_cvts_2ph_hf8(322  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(323  return _mm_cvts_2ph_hf8(__A, __B);324}325 326__m128i test_mm_mask_cvts_2ph_hf8(__m128i __W, __mmask16 __U, __m128h __A, __m128h __B) {327  // CHECK-LABEL: @test_mm_mask_cvts_2ph_hf8(328  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(329  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}330  // CHECK: ret <2 x i64> %{{.*}}331  return _mm_mask_cvts_2ph_hf8(__W, __U, __A, __B);332}333 334__m128i test_mm_maskz_cvts_2ph_hf8(__mmask16 __U, __m128h __A, __m128h __B) {335  // CHECK-LABEL: @test_mm_maskz_cvts_2ph_hf8(336  // CHECK: call <16 x i8> @llvm.x86.avx10.vcvt2ph2hf8s128(337  // CHECK: zeroinitializer338  // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}339  return _mm_maskz_cvts_2ph_hf8(__U, __A, __B);340}341 342__m256i test_mm256_cvts_2ph_hf8(__m256h __A, __m256h __B) {343  // CHECK-LABEL: @test_mm256_cvts_2ph_hf8(344  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(345  return _mm256_cvts_2ph_hf8(__A, __B);346}347 348__m256i test_mm256_mask_cvts_2ph_hf8(__m256i __W, __mmask32 __U, __m256h __A, __m256h __B) {349  // CHECK-LABEL: @test_mm256_mask_cvts_2ph_hf8(350  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(351  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}352  // CHECK: ret <4 x i64> %{{.*}}353  return _mm256_mask_cvts_2ph_hf8(__W, __U, __A, __B);354}355 356__m256i test_mm256_maskz_cvts_2ph_hf8(__mmask32 __U, __m256h __A, __m256h __B) {357  // CHECK-LABEL: @test_mm256_maskz_cvts_2ph_hf8(358  // CHECK: call <32 x i8> @llvm.x86.avx10.vcvt2ph2hf8s256(359  // CHECK: zeroinitializer360  // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}361  return _mm256_maskz_cvts_2ph_hf8(__U, __A, __B);362}363 364__m128h test_mm_cvthf8_ph(__m128i __A) {365  // CHECK-LABEL: @test_mm_cvthf8_ph(366  // CHECK: call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(367  return _mm_cvthf8_ph(__A);368}369 370__m128h test_mm_mask_cvthf8_ph(__m128h __A, __mmask8 __B, __m128i __C) {371  // CHECK-LABEL: @test_mm_mask_cvthf8_ph(372  // CHECK: call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(373  return _mm_mask_cvthf8_ph(__A, __B, __C);374}375 376__m128h test_mm_maskz_cvthf8_ph(__mmask8 __A, __m128i __B) {377  // CHECK-LABEL: @test_mm_maskz_cvthf8_ph(378  // CHECK: call <8 x half> @llvm.x86.avx10.mask.vcvthf82ph128(379  return _mm_maskz_cvthf8_ph(__A, __B);380}381 382__m256h test_mm256_cvthf8_ph(__m128i __A) {383  // CHECK-LABEL: @test_mm256_cvthf8_ph(384  // CHECK: call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(385  return _mm256_cvthf8_ph(__A);386}387 388__m256h test_mm256_mask_cvthf8_ph(__m256h __A, __mmask16 __B, __m128i __C) {389  // CHECK-LABEL: @test_mm256_mask_cvthf8_ph(390  // CHECK: call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(391  return _mm256_mask_cvthf8_ph(__A, __B, __C);392}393 394__m256h test_mm256_maskz_cvthf8_ph(__mmask16 __A, __m128i __B) {395  // CHECK-LABEL: @test_mm256_maskz_cvthf8_ph(396  // CHECK: call <16 x half> @llvm.x86.avx10.mask.vcvthf82ph256(397  return _mm256_maskz_cvthf8_ph(__A, __B);398}399 400__m128i test_mm_cvtph_bf8(__m128h __A) {401  // CHECK-LABEL: @test_mm_cvtph_bf8(402  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(403  return _mm_cvtph_bf8(__A);404}405 406__m128i test_mm_mask_cvtph_bf8(__m128i __A, __mmask8 __B, __m128h __C) {407  // CHECK-LABEL: @test_mm_mask_cvtph_bf8(408  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(409  return _mm_mask_cvtph_bf8(__A, __B, __C);410}411 412__m128i test_mm_maskz_cvtph_bf8(__mmask8 __A, __m128h __B) {413  // CHECK-LABEL: @test_mm_maskz_cvtph_bf8(414  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8128(415  return _mm_maskz_cvtph_bf8(__A, __B);416}417 418__m128i test_mm256_cvtph_bf8(__m256h __A) {419  // CHECK-LABEL: @test_mm256_cvtph_bf8(420  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(421  return _mm256_cvtph_bf8(__A);422}423 424__m128i test_mm256_mask_cvtph_bf8(__m128i __A, __mmask16 __B, __m256h __C) {425  // CHECK-LABEL: @test_mm256_mask_cvtph_bf8(426  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(427  return _mm256_mask_cvtph_bf8(__A, __B, __C);428}429 430__m128i test_mm256_maskz_cvtph_bf8(__mmask16 __A, __m256h __B) {431  // CHECK-LABEL: @test_mm256_maskz_cvtph_bf8(432  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8256(433  return _mm256_maskz_cvtph_bf8(__A, __B);434}435 436__m128i test_mm_cvts_ph_bf8(__m128h __A) {437  // CHECK-LABEL: @test_mm_cvts_ph_bf8(438  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(439  return _mm_cvts_ph_bf8(__A);440}441 442__m128i test_mm_mask_cvts_ph_bf8(__m128i __A, __mmask8 __B, __m128h __C) {443  // CHECK-LABEL: @test_mm_mask_cvts_ph_bf8(444  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(445  return _mm_mask_cvts_ph_bf8(__A, __B, __C);446}447 448__m128i test_mm_maskz_cvts_ph_bf8(__mmask8 __A, __m128h __B) {449  // CHECK-LABEL: @test_mm_maskz_cvts_ph_bf8(450  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s128(451  return _mm_maskz_cvts_ph_bf8(__A, __B);452}453 454__m128i test_mm256_cvts_ph_bf8(__m256h __A) {455  // CHECK-LABEL: @test_mm256_cvts_ph_bf8(456  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(457  return _mm256_cvts_ph_bf8(__A);458}459 460__m128i test_mm256_mask_cvts_ph_bf8(__m128i __A, __mmask16 __B, __m256h __C) {461  // CHECK-LABEL: @test_mm256_mask_cvts_ph_bf8(462  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(463  return _mm256_mask_cvts_ph_bf8(__A, __B, __C);464}465 466__m128i test_mm256_maskz_cvts_ph_bf8(__mmask16 __A, __m256h __B) {467  // CHECK-LABEL: @test_mm256_maskz_cvts_ph_bf8(468  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2bf8s256(469  return _mm256_maskz_cvts_ph_bf8(__A, __B);470}471 472__m128i test_mm_cvtph_hf8(__m128h __A) {473  // CHECK-LABEL: @test_mm_cvtph_hf8(474  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(475  return _mm_cvtph_hf8(__A);476}477 478__m128i test_mm_mask_cvtph_hf8(__m128i __A, __mmask8 __B, __m128h __C) {479  // CHECK-LABEL: @test_mm_mask_cvtph_hf8(480  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(481  return _mm_mask_cvtph_hf8(__A, __B, __C);482}483 484__m128i test_mm_maskz_cvtph_hf8(__mmask8 __A, __m128h __B) {485  // CHECK-LABEL: @test_mm_maskz_cvtph_hf8(486  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8128(487  return _mm_maskz_cvtph_hf8(__A, __B);488}489 490__m128i test_mm256_cvtph_hf8(__m256h __A) {491  // CHECK-LABEL: @test_mm256_cvtph_hf8(492  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(493  return _mm256_cvtph_hf8(__A);494}495 496__m128i test_mm256_mask_cvtph_hf8(__m128i __A, __mmask16 __B, __m256h __C) {497  // CHECK-LABEL: @test_mm256_mask_cvtph_hf8(498  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(499  return _mm256_mask_cvtph_hf8(__A, __B, __C);500}501 502__m128i test_mm256_maskz_cvtph_hf8(__mmask16 __A, __m256h __B) {503  // CHECK-LABEL: @test_mm256_maskz_cvtph_hf8(504  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8256(505  return _mm256_maskz_cvtph_hf8(__A, __B);506}507 508__m128i test_mm_cvts_ph_hf8(__m128h __A) {509  // CHECK-LABEL: @test_mm_cvts_ph_hf8(510  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(511  return _mm_cvts_ph_hf8(__A);512}513 514__m128i test_mm_mask_cvts_ph_hf8(__m128i __A, __mmask8 __B, __m128h __C) {515  // CHECK-LABEL: @test_mm_mask_cvts_ph_hf8(516  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(517  return _mm_mask_cvts_ph_hf8(__A, __B, __C);518}519 520__m128i test_mm_maskz_cvts_ph_hf8(__mmask8 __A, __m128h __B) {521  // CHECK-LABEL: @test_mm_maskz_cvts_ph_hf8(522  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s128(523  return _mm_maskz_cvts_ph_hf8(__A, __B);524}525 526__m128i test_mm256_cvts_ph_hf8(__m256h __A) {527  // CHECK-LABEL: @test_mm256_cvts_ph_hf8(528  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(529  return _mm256_cvts_ph_hf8(__A);530}531 532__m128i test_mm256_mask_cvts_ph_hf8(__m128i __A, __mmask16 __B, __m256h __C) {533  // CHECK-LABEL: @test_mm256_mask_cvts_ph_hf8(534  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(535  return _mm256_mask_cvts_ph_hf8(__A, __B, __C);536}537 538__m128i test_mm256_maskz_cvts_ph_hf8(__mmask16 __A, __m256h __B) {539  // CHECK-LABEL: @test_mm256_maskz_cvts_ph_hf8(540  // CHECK: call <16 x i8> @llvm.x86.avx10.mask.vcvtph2hf8s256(541  return _mm256_maskz_cvts_ph_hf8(__A, __B);542}543 544__m256h test_mm256_cvtbf8_ph(__m128i A) {545  // CHECK-LABEL: @test_mm256_cvtbf8_ph546  // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>547  // CHECK: @llvm.x86.avx2.pslli.w548  // CHECK: ret <16 x half> %{{.*}}549  return _mm256_cvtbf8_ph(A);550}551 552__m256h test_mm256_mask_cvtbf8_ph(__m256h S, __mmask16 M, __m128i A) {553  // CHECK-LABEL: @test_mm256_mask_cvtbf8_ph554  // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>555  // CHECK: @llvm.x86.avx2.pslli.w556  // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}557  // CHECK: ret <16 x half> %{{.*}}558  return _mm256_mask_cvtbf8_ph(S, M, A);559}560 561__m256h test_mm256_maskz_cvtbf8_ph(__mmask16 M, __m128i A) {562  // CHECK-LABEL: @test_mm256_maskz_cvtbf8_ph563  // CHECK: sext <16 x i8> %{{.*}} to <16 x i16>564  // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}565  // CHECK: @llvm.x86.avx2.pslli.w566  // CHECK: ret <16 x half> %{{.*}}567  return _mm256_maskz_cvtbf8_ph(M, A);568}569 570__m128h test_mm_cvtbf8_ph(__m128i A) {571  // CHECK-LABEL: @test_mm_cvtbf8_ph572  // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>573  // CHECK: @llvm.x86.sse2.pslli.w574  // CHECK: ret <8 x half> %{{.*}}575  return _mm_cvtbf8_ph(A);576}577 578__m128h test_mm_mask_cvtbf8_ph(__m128h S, __mmask8 M, __m128i A) {579  // CHECK-LABEL: @test_mm_mask_cvtbf8_ph580  // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>581  // CHECK: @llvm.x86.sse2.pslli.w582  // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}583  // CHECK: ret <8 x half> %{{.*}}584  return _mm_mask_cvtbf8_ph(S, M, A);585}586 587__m128h test_mm_maskz_cvtbf8_ph(__mmask8 M, __m128i A) {588  // CHECK-LABEL: @test_mm_maskz_cvtbf8_ph589  // CHECK: sext <8 x i8> %{{.*}} to <8 x i16>590  // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}591  // CHECK: @llvm.x86.sse2.pslli.w592  // CHECK: ret <8 x half> %{{.*}}593  return _mm_maskz_cvtbf8_ph(M, A);594}595