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