brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.7 KiB · ac1b8cd Raw
380 lines · c
1// RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=x86_64 -target-feature +avx10.2 \2// RUN: -emit-llvm -o - -Wall -Werror | FileCheck %s3// RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=i386 -target-feature +avx10.2 \4// RUN: -emit-llvm -o - -Wall -Werror | FileCheck %s5 6#include <immintrin.h>7 8__m512i test_mm512_ipcvts_bf16_epi8(__m512bh __A) {9  // CHECK-LABEL: @test_mm512_ipcvts_bf16_epi8(10  // CHECK: @llvm.x86.avx10.vcvtbf162ibs51211  return _mm512_ipcvts_bf16_epi8(__A);12}13 14__m512i test_mm512_mask_ipcvts_bf16_epi8(__m512i __S, __mmask32 __A, __m512bh __B) {15  // CHECK-LABEL: @test_mm512_mask_ipcvts_bf16_epi8(16  // CHECK: @llvm.x86.avx10.vcvtbf162ibs51217  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}18  return _mm512_mask_ipcvts_bf16_epi8(__S, __A, __B);19}20 21__m512i test_mm512_maskz_ipcvts_bf16_epi8(__mmask32 __A, __m512bh __B) {22  // CHECK-LABEL: @test_mm512_maskz_ipcvts_bf16_epi823  // CHECK: @llvm.x86.avx10.vcvtbf162ibs51224  // CHECK: zeroinitializer25  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}26  return _mm512_maskz_ipcvts_bf16_epi8(__A, __B);27}28 29__m512i test_mm512_ipcvts_bf16_epu8(__m512bh __A) {30  // CHECK-LABEL: @test_mm512_ipcvts_bf16_epu8(31  // CHECK: @llvm.x86.avx10.vcvtbf162iubs51232  return _mm512_ipcvts_bf16_epu8(__A);33}34 35__m512i test_mm512_mask_ipcvts_bf16_epu8(__m512i __S, __mmask32 __A, __m512bh __B) {36  // CHECK-LABEL: @test_mm512_mask_ipcvts_bf16_epu8(37  // CHECK: @llvm.x86.avx10.vcvtbf162iubs51238  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}39  return _mm512_mask_ipcvts_bf16_epu8(__S, __A, __B);40}41 42__m512i test_mm512_maskz_ipcvts_bf16_epu8(__mmask32 __A, __m512bh __B) {43  // CHECK-LABEL: @test_mm512_maskz_ipcvts_bf16_epu844  // CHECK: @llvm.x86.avx10.vcvtbf162iubs51245  // CHECK: zeroinitializer46  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}47  return _mm512_maskz_ipcvts_bf16_epu8(__A, __B);48}49 50__m512i test_mm512_ipcvts_ph_epi8(__m512h __A) {51  // CHECK-LABEL: @test_mm512_ipcvts_ph_epi8(52  // CHECK: @llvm.x86.avx10.mask.vcvtph2ibs51253  return _mm512_ipcvts_ph_epi8(__A);54}55 56__m512i test_mm512_mask_ipcvts_ph_epi8(__m512i __S, __mmask32 __A, __m512h __B) {57  // CHECK-LABEL: @test_mm512_mask_ipcvts_ph_epi8(58  // CHECK: @llvm.x86.avx10.mask.vcvtph2ibs51259  return _mm512_mask_ipcvts_ph_epi8(__S, __A, __B);60}61 62__m512i test_mm512_maskz_ipcvts_ph_epi8(__mmask32 __A, __m512h __B) {63  // CHECK-LABEL: @test_mm512_maskz_ipcvts_ph_epi8(64  // CHECK: @llvm.x86.avx10.mask.vcvtph2ibs51265  return _mm512_maskz_ipcvts_ph_epi8(__A, __B);66}67 68__m512i test_mm512_ipcvts_roundph_epi8(__m512h __A) {69  // CHECK-LABEL: @test_mm512_ipcvts_roundph_epi8(70  // CHECK: @llvm.x86.avx10.mask.vcvtph2ibs51271  return _mm512_ipcvts_roundph_epi8(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);72}73 74__m512i test_mm512_mask_ipcvts_roundph_epi8(__m512i __S, __mmask32 __A, __m512h __B) {75  // CHECK-LABEL: @test_mm512_mask_ipcvts_roundph_epi876  // CHECK: @llvm.x86.avx10.mask.vcvtph2ibs51277  return _mm512_mask_ipcvts_roundph_epi8(__S, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);78}79 80__m512i test_mm512_maskz_ipcvts_roundph_epi8(__mmask32 __A, __m512h __B) {81  // CHECK-LABEL: @test_mm512_maskz_ipcvts_roundph_epi882  // CHECK: @llvm.x86.avx10.mask.vcvtph2ibs51283  return _mm512_maskz_ipcvts_roundph_epi8(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);84}85 86__m512i test_mm512_ipcvts_ph_epu8(__m512h __A) {87  // CHECK-LABEL: @test_mm512_ipcvts_ph_epu8(88  // CHECK: @llvm.x86.avx10.mask.vcvtph2iubs51289  return _mm512_ipcvts_ph_epu8(__A);90}91 92__m512i test_mm512_mask_ipcvts_ph_epu8(__m512i __S, __mmask32 __A, __m512h __B) {93  // CHECK-LABEL: @test_mm512_mask_ipcvts_ph_epu8(94  // CHECK: @llvm.x86.avx10.mask.vcvtph2iubs51295  return _mm512_mask_ipcvts_ph_epu8(__S, __A, __B);96}97 98__m512i test_mm512_maskz_ipcvts_ph_epu8(__mmask32 __A, __m512h __B) {99  // CHECK-LABEL: @test_mm512_maskz_ipcvts_ph_epu8(100  // CHECK: @llvm.x86.avx10.mask.vcvtph2iubs512101  return _mm512_maskz_ipcvts_ph_epu8(__A, __B);102}103 104__m512i test_mm512_ipcvts_roundph_epu8(__m512h __A) {105  // CHECK-LABEL: @test_mm512_ipcvts_roundph_epu8(106  // CHECK: @llvm.x86.avx10.mask.vcvtph2iubs512107  return _mm512_ipcvts_roundph_epu8(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);108}109 110__m512i test_mm512_mask_ipcvts_roundph_epu8(__m512i __S, __mmask32 __A, __m512h __B) {111  // CHECK-LABEL: @test_mm512_mask_ipcvts_roundph_epu8112  // CHECK: @llvm.x86.avx10.mask.vcvtph2iubs512113  return _mm512_mask_ipcvts_roundph_epu8(__S, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);114}115 116__m512i test_mm512_maskz_ipcvts_roundph_epu8(__mmask32 __A, __m512h __B) {117  // CHECK-LABEL: @test_mm512_maskz_ipcvts_roundph_epu8118  // CHECK: @llvm.x86.avx10.mask.vcvtph2iubs512119  return _mm512_maskz_ipcvts_roundph_epu8(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);120}121 122__m512i test_mm512_ipcvts_ps_epi8(__m512 __A) {123  // CHECK-LABEL: @test_mm512_ipcvts_ps_epi8(124  // CHECK: @llvm.x86.avx10.mask.vcvtps2ibs512125  return _mm512_ipcvts_ps_epi8(__A);126}127 128__m512i test_mm512_mask_ipcvts_ps_epi8(__m512i __S, __mmask16 __A, __m512 __B) {129  // CHECK-LABEL: @test_mm512_mask_ipcvts_ps_epi8(130  // CHECK: @llvm.x86.avx10.mask.vcvtps2ibs512131  return _mm512_mask_ipcvts_ps_epi8(__S, __A, __B);132}133 134__m512i test_mm512_maskz_ipcvts_ps_epi8(__mmask16 __A, __m512 __B) {135  // CHECK-LABEL: @test_mm512_maskz_ipcvts_ps_epi8(136  // CHECK: @llvm.x86.avx10.mask.vcvtps2ibs512137  return _mm512_maskz_ipcvts_ps_epi8(__A, __B);138}139 140__m512i test_mm512_ipcvts_roundps_epi8(__m512 __A) {141  // CHECK-LABEL: @test_mm512_ipcvts_roundps_epi8(142  // CHECK: @llvm.x86.avx10.mask.vcvtps2ibs512143  return _mm512_ipcvts_roundps_epi8(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);144}145 146__m512i test_mm512_mask_ipcvts_roundps_epi8(__m512i __S, __mmask16 __A, __m512 __B) {147  // CHECK-LABEL: @test_mm512_mask_ipcvts_roundps_epi8148  // CHECK: @llvm.x86.avx10.mask.vcvtps2ibs512149  return _mm512_mask_ipcvts_roundps_epi8(__S, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);150}151 152__m512i test_mm512_maskz_ipcvts_roundps_epi8(__mmask16 __A, __m512 __B) {153  // CHECK-LABEL: @test_mm512_maskz_ipcvts_roundps_epi8154  // CHECK: @llvm.x86.avx10.mask.vcvtps2ibs512155  return _mm512_maskz_ipcvts_roundps_epi8(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);156}157 158__m512i test_mm512_ipcvts_ps_epu8(__m512 __A) {159  // CHECK-LABEL: @test_mm512_ipcvts_ps_epu8(160  // CHECK: @llvm.x86.avx10.mask.vcvtps2iubs512161  return _mm512_ipcvts_ps_epu8(__A);162}163 164__m512i test_mm512_mask_ipcvts_ps_epu8(__m512i __S, __mmask16 __A, __m512 __B) {165  // CHECK-LABEL: @test_mm512_mask_ipcvts_ps_epu8(166  // CHECK: @llvm.x86.avx10.mask.vcvtps2iubs512167  return _mm512_mask_ipcvts_ps_epu8(__S, __A, __B);168}169 170__m512i test_mm512_maskz_ipcvts_ps_epu8(__mmask16 __A, __m512 __B) {171  // CHECK-LABEL: @test_mm512_maskz_ipcvts_ps_epu8(172  // CHECK: @llvm.x86.avx10.mask.vcvtps2iubs512173  return _mm512_maskz_ipcvts_ps_epu8(__A, __B);174}175 176__m512i test_mm512_ipcvts_roundps_epu8(__m512 __A) {177  // CHECK-LABEL: @test_mm512_ipcvts_roundps_epu8(178  // CHECK: @llvm.x86.avx10.mask.vcvtps2iubs512179  return _mm512_ipcvts_roundps_epu8(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);180}181 182__m512i test_mm512_mask_ipcvts_roundps_epu8(__m512i __S, __mmask16 __A, __m512 __B) {183  // CHECK-LABEL: @test_mm512_mask_ipcvts_roundps_epu8184  // CHECK: @llvm.x86.avx10.mask.vcvtps2iubs512185  return _mm512_mask_ipcvts_roundps_epu8(__S, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);186}187 188__m512i test_mm512_maskz_ipcvts_roundps_epu8(__mmask16 __A, __m512 __B) {189  // CHECK-LABEL: @test_mm512_maskz_ipcvts_roundps_epu8190  // CHECK: @llvm.x86.avx10.mask.vcvtps2iubs512191  return _mm512_maskz_ipcvts_roundps_epu8(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);192}193 194__m512i test_mm512_ipcvtts_bf16_epi8(__m512bh __A) {195  // CHECK-LABEL: @test_mm512_ipcvtts_bf16_epi8(196  // CHECK: @llvm.x86.avx10.vcvttbf162ibs512(197  return _mm512_ipcvtts_bf16_epi8(__A);198}199 200__m512i test_mm512_mask_ipcvtts_bf16_epi8(__m512i __S, __mmask32 __A, __m512bh __B) {201  // CHECK-LABEL: @test_mm512_mask_ipcvtts_bf16_epi8(202  // CHECK: @llvm.x86.avx10.vcvttbf162ibs512(203  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}204  return _mm512_mask_ipcvtts_bf16_epi8(__S, __A, __B);205}206 207__m512i test_mm512_maskz_ipcvtts_bf16_epi8(__mmask32 __A, __m512bh __B) {208  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_bf16_epi8209  // CHECK: @llvm.x86.avx10.vcvttbf162ibs512(210  // CHECK: zeroinitializer211  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}212  return _mm512_maskz_ipcvtts_bf16_epi8(__A, __B);213}214 215__m512i test_mm512_ipcvtts_bf16_epu8(__m512bh __A) {216  // CHECK-LABEL: @test_mm512_ipcvtts_bf16_epu8(217  // CHECK: @llvm.x86.avx10.vcvttbf162iubs512(218  return _mm512_ipcvtts_bf16_epu8(__A);219}220 221__m512i test_mm512_mask_ipcvtts_bf16_epu8(__m512i __S, __mmask32 __A, __m512bh __B) {222  // CHECK-LABEL: @test_mm512_mask_ipcvtts_bf16_epu8(223  // CHECK: @llvm.x86.avx10.vcvttbf162iubs512(224  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}225  return _mm512_mask_ipcvtts_bf16_epu8(__S, __A, __B);226}227 228__m512i test_mm512_maskz_ipcvtts_bf16_epu8(__mmask32 __A, __m512bh __B) {229  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_bf16_epu8230  // CHECK: @llvm.x86.avx10.vcvttbf162iubs512(231  // CHECK: zeroinitializer232  // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}233  return _mm512_maskz_ipcvtts_bf16_epu8(__A, __B);234}235 236__m512i test_mm512_ipcvtts_ph_epi8(__m512h __A) {237  // CHECK-LABEL: @test_mm512_ipcvtts_ph_epi8(238  // CHECK: @llvm.x86.avx10.mask.vcvttph2ibs512239  return _mm512_ipcvtts_ph_epi8(__A);240}241 242__m512i test_mm512_mask_ipcvtts_ph_epi8(__m512i __S, __mmask32 __A, __m512h __B) {243  // CHECK-LABEL: @test_mm512_mask_ipcvtts_ph_epi8(244  // CHECK: @llvm.x86.avx10.mask.vcvttph2ibs512245  return _mm512_mask_ipcvtts_ph_epi8(__S, __A, __B);246}247 248__m512i test_mm512_maskz_ipcvtts_ph_epi8(__mmask32 __A, __m512h __B) {249  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_ph_epi8250  // CHECK: @llvm.x86.avx10.mask.vcvttph2ibs512251  return _mm512_maskz_ipcvtts_ph_epi8(__A, __B);252}253 254__m512i test_mm512_ipcvtts_roundph_epi8(__m512h __A) {255  // CHECK-LABEL: @test_mm512_ipcvtts_roundph_epi8256  // CHECK: @llvm.x86.avx10.mask.vcvttph2ibs512257  return _mm512_ipcvtts_roundph_epi8(__A, _MM_FROUND_NO_EXC);258}259 260__m512i test_mm512_mask_ipcvtts_roundph_epi8(__m512i __S, __mmask32 __A, __m512h __B) {261  // CHECK-LABEL: @test_mm512_mask_ipcvtts_roundph_epi8262  // CHECK: @llvm.x86.avx10.mask.vcvttph2ibs512263  return _mm512_mask_ipcvtts_roundph_epi8(__S, __A, __B, _MM_FROUND_NO_EXC);264}265 266__m512i test_mm512_maskz_ipcvtts_roundph_epi8(__mmask32 __A, __m512h __B) {267  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_roundph_epi8268  // CHECK: @llvm.x86.avx10.mask.vcvttph2ibs512269  return _mm512_maskz_ipcvtts_roundph_epi8(__A, __B, _MM_FROUND_NO_EXC);270}271 272__m512i test_mm512_ipcvtts_ph_epu8(__m512h __A) {273  // CHECK-LABEL: @test_mm512_ipcvtts_ph_epu8(274  // CHECK: @llvm.x86.avx10.mask.vcvttph2iubs512275  return _mm512_ipcvtts_ph_epu8(__A);276}277 278__m512i test_mm512_mask_ipcvtts_ph_epu8(__m512i __S, __mmask32 __A, __m512h __B) {279  // CHECK-LABEL: @test_mm512_mask_ipcvtts_ph_epu8(280  // CHECK: @llvm.x86.avx10.mask.vcvttph2iubs512281  return _mm512_mask_ipcvtts_ph_epu8(__S, __A, __B);282}283 284__m512i test_mm512_maskz_ipcvtts_ph_epu8(__mmask32 __A, __m512h __B) {285  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_ph_epu8286  // CHECK: @llvm.x86.avx10.mask.vcvttph2iubs512287  return _mm512_maskz_ipcvtts_ph_epu8(__A, __B);288}289 290__m512i test_mm512_ipcvtts_roundph_epu8(__m512h __A) {291  // CHECK-LABEL: @test_mm512_ipcvtts_roundph_epu8292  // CHECK: @llvm.x86.avx10.mask.vcvttph2iubs512293  return _mm512_ipcvtts_roundph_epu8(__A, _MM_FROUND_NO_EXC);294}295 296__m512i test_mm512_mask_ipcvtts_roundph_epu8(__m512i __S, __mmask32 __A, __m512h __B) {297  // CHECK-LABEL: @test_mm512_mask_ipcvtts_roundph_epu8298  // CHECK: @llvm.x86.avx10.mask.vcvttph2iubs512299  return _mm512_mask_ipcvtts_roundph_epu8(__S, __A, __B, _MM_FROUND_NO_EXC);300}301 302__m512i test_mm512_maskz_ipcvtts_roundph_epu8(__mmask32 __A, __m512h __B) {303  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_roundph_epu8304  // CHECK: @llvm.x86.avx10.mask.vcvttph2iubs512305  return _mm512_maskz_ipcvtts_roundph_epu8(__A, __B, _MM_FROUND_NO_EXC);306}307 308__m512i test_mm512_ipcvtts_ps_epi8(__m512 __A) {309  // CHECK-LABEL: @test_mm512_ipcvtts_ps_epi8(310  // CHECK: @llvm.x86.avx10.mask.vcvttps2ibs512311  return _mm512_ipcvtts_ps_epi8(__A);312}313 314__m512i test_mm512_mask_ipcvtts_ps_epi8(__m512i __S, __mmask16 __A, __m512 __B) {315  // CHECK-LABEL: @test_mm512_mask_ipcvtts_ps_epi8(316  // CHECK: @llvm.x86.avx10.mask.vcvttps2ibs512317  return _mm512_mask_ipcvtts_ps_epi8(__S, __A, __B);318}319 320__m512i test_mm512_maskz_ipcvtts_ps_epi8(__mmask16 __A, __m512 __B) {321  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_ps_epi8322  // CHECK: @llvm.x86.avx10.mask.vcvttps2ibs512323  return _mm512_maskz_ipcvtts_ps_epi8(__A, __B);324}325 326__m512i test_mm512_ipcvtts_roundps_epi8(__m512 __A) {327  // CHECK-LABEL: @test_mm512_ipcvtts_roundps_epi8328  // CHECK: @llvm.x86.avx10.mask.vcvttps2ibs512329  return _mm512_ipcvtts_roundps_epi8(__A, _MM_FROUND_NO_EXC);330}331 332__m512i test_mm512_mask_ipcvtts_roundps_epi8(__m512i __S, __mmask16 __A, __m512 __B) {333  // CHECK-LABEL: @test_mm512_mask_ipcvtts_roundps_epi8334  // CHECK: @llvm.x86.avx10.mask.vcvttps2ibs512335  return _mm512_mask_ipcvtts_roundps_epi8(__S, __A, __B, _MM_FROUND_NO_EXC);336}337 338 339__m512i test_mm512_maskz_ipcvtts_roundps_epi8(__mmask16 __A, __m512 __B) {340  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_roundps_epi8341  // CHECK: @llvm.x86.avx10.mask.vcvttps2ibs512342  return _mm512_maskz_ipcvtts_roundps_epi8(__A, __B, _MM_FROUND_NO_EXC);343}344 345__m512i test_mm512_ipcvtts_ps_epu8(__m512 __A) {346  // CHECK-LABEL: @test_mm512_ipcvtts_ps_epu8(347  // CHECK: @llvm.x86.avx10.mask.vcvttps2iubs512348  return _mm512_ipcvtts_ps_epu8(__A);349}350 351__m512i test_mm512_mask_ipcvtts_ps_epu8(__m512i __S, __mmask16 __A, __m512 __B) {352  // CHECK-LABEL: @test_mm512_mask_ipcvtts_ps_epu8(353  // CHECK: @llvm.x86.avx10.mask.vcvttps2iubs512354  return _mm512_mask_ipcvtts_ps_epu8(__S, __A, __B);355}356 357__m512i test_mm512_maskz_ipcvtts_ps_epu8(__mmask16 __A, __m512 __B) {358  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_ps_epu8359  // CHECK: @llvm.x86.avx10.mask.vcvttps2iubs512360  return _mm512_maskz_ipcvtts_ps_epu8(__A, __B);361}362 363__m512i test_mm512_ipcvtts_roundps_epu8(__m512 __A) {364  // CHECK-LABEL: @test_mm512_ipcvtts_roundps_epu8365  // CHECK: @llvm.x86.avx10.mask.vcvttps2iubs512366  return _mm512_ipcvtts_roundps_epu8(__A, _MM_FROUND_NO_EXC);367}368 369__m512i test_mm512_mask_ipcvtts_roundps_epu8(__m512i __S, __mmask16 __A, __m512 __B) {370  // CHECK-LABEL: @test_mm512_mask_ipcvtts_roundps_epu8371  // CHECK: @llvm.x86.avx10.mask.vcvttps2iubs512372  return _mm512_mask_ipcvtts_roundps_epu8(__S, __A, __B, _MM_FROUND_NO_EXC);373}374 375__m512i test_mm512_maskz_ipcvtts_roundps_epu8(__mmask16 __A, __m512 __B) {376  // CHECK-LABEL: @test_mm512_maskz_ipcvtts_roundps_epu8377  // CHECK: @llvm.x86.avx10.mask.vcvttps2iubs512378  return _mm512_maskz_ipcvtts_roundps_epu8(__A, __B, _MM_FROUND_NO_EXC);379}380