185 lines · c
1// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-unknown-unknown -target-feature +avx10.2 -emit-llvm -o - | FileCheck %s2 3#include <immintrin.h>4#include <stddef.h>5 6long long test_mm_cvtts_sd_si64(__m128d __A) {7 // CHECK-LABEL: @test_mm_cvtts_sd_si64(8 // CHECK: @llvm.x86.avx10.vcvttsd2sis64(<2 x double>9 return _mm_cvtts_roundsd_si64(__A, _MM_FROUND_NO_EXC);10}11 12long long test_mm_cvtts_sd_i64(__m128d __A) {13 // CHECK-LABEL: @test_mm_cvtts_sd_i64(14 // CHECK: @llvm.x86.avx10.vcvttsd2sis64(<2 x double>15 return _mm_cvtts_roundsd_i64(__A, _MM_FROUND_NO_EXC);16}17 18unsigned long long test_mm_cvtts_sd_u64(__m128d __A) {19 // CHECK-LABEL: @test_mm_cvtts_sd_u64(20 // CHECK: @llvm.x86.avx10.vcvttsd2usis64(<2 x double>21 return _mm_cvtts_roundsd_u64(__A, _MM_FROUND_NO_EXC);22}23 24float test_mm_cvtts_ss_i64(__m128 __A) {25 // CHECK-LABEL: @test_mm_cvtts_ss_i64(26 // CHECK: @llvm.x86.avx10.vcvttss2sis64(<4 x float>27 return _mm_cvtts_roundss_i64(__A, _MM_FROUND_NO_EXC);28}29 30long long test_mm_cvtts_ss_si64(__m128 __A) {31 // CHECK-LABEL: @test_mm_cvtts_ss_si64(32 // CHECK: @llvm.x86.avx10.vcvttss2sis64(<4 x float>33 return _mm_cvtts_roundss_si64(__A, _MM_FROUND_NO_EXC);34}35 36unsigned long long test_mm_cvtts_ss_u64(__m128 __A) {37 // CHECK-LABEL: @test_mm_cvtts_ss_u64(38 // CHECK: @llvm.x86.avx10.vcvttss2usis64(<4 x float>39 return _mm_cvtts_roundss_u64(__A, _MM_FROUND_NO_EXC);40}41 42__m512i test_mm512_cvtts_pd_epi64(__m512d A) {43 // CHECK-LABEL: test_mm512_cvtts_pd_epi6444 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>45 return _mm512_cvtts_pd_epi64(A);46}47 48__m512i test_mm512_mask_cvtts_pd_epi64(__m512i W, __mmask8 U, __m512d A) {49 // CHECK-LABEL: test_mm512_mask_cvtts_pd_epi6450 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>51 return _mm512_mask_cvtts_pd_epi64(W, U, A);52}53 54__m512i test_mm512_maskz_cvtts_pd_epi64(__mmask8 U, __m512d A) {55 // CHECK-LABEL: test_mm512_maskz_cvtts_pd_epi6456 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>57 return _mm512_maskz_cvtts_pd_epi64(U, A);58}59 60__m512i test_mm512_cvtts_roundpd_epi64(__m512d A) {61 // CHECK-LABEL: test_mm512_cvtts_roundpd_epi6462 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>63 return _mm512_cvtts_roundpd_epi64(A, _MM_FROUND_NO_EXC);64}65 66__m512i test_mm512_mask_cvtts_roundpd_epi64(__m512i W, __mmask8 U, __m512d A) {67 // CHECK-LABEL: test_mm512_mask_cvtts_roundpd_epi6468 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>69 return _mm512_mask_cvtts_roundpd_epi64(W, U, A, _MM_FROUND_NO_EXC);70}71 72__m512i test_mm512_maskz_cvtts_roundpd_epi64(__mmask8 U, __m512d A) {73 // CHECK-LABEL: test_mm512_maskz_cvtts_roundpd_epi6474 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>75 return _mm512_maskz_cvtts_roundpd_epi64(U, A, _MM_FROUND_NO_EXC);76}77 78__m512i test_mm512_cvtts_pd_epu64(__m512d A) {79 // CHECK-LABEL: test_mm512_cvtts_pd_epu6480 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>81 return _mm512_cvtts_pd_epu64(A);82}83 84__m512i test_mm512_mask_cvtts_pd_epu64(__m512i W, __mmask8 U, __m512d A) {85 // CHECK-LABEL: test_mm512_mask_cvtts_pd_epu6486 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>87 return _mm512_mask_cvtts_pd_epu64(W, U, A);88}89 90__m512i test_mm512_maskz_cvtts_pd_epu64(__mmask8 U, __m512d A) {91 // CHECK-LABEL: test_mm512_maskz_cvtts_pd_epu6492 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>93 return _mm512_maskz_cvtts_pd_epu64(U, A);94}95 96__m512i test_mm512_cvtts_roundpd_epu64(__m512d A) {97 // CHECK-LABEL: test_mm512_cvtts_roundpd_epu6498 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>99 return _mm512_cvtts_roundpd_epu64(A, _MM_FROUND_NO_EXC);100}101 102__m512i test_mm512_mask_cvtts_roundpd_epu64(__m512i W, __mmask8 U, __m512d A) {103 // CHECK-LABEL: test_mm512_mask_cvtts_roundpd_epu64104 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>105 return _mm512_mask_cvtts_roundpd_epu64(W, U, A, _MM_FROUND_NO_EXC);106}107 108__m512i test_mm512_maskz_cvtts_roundpd_epu64(__mmask8 U, __m512d A) {109 // CHECK-LABEL: test_mm512_maskz_cvtts_roundpd_epu64110 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>111 return _mm512_maskz_cvtts_roundpd_epu64(U, A, _MM_FROUND_NO_EXC);112}113 114__m512i test_mm512_cvtts_ps_epi64(__m256 A) {115 // CHECK-LABEL: test_mm512_cvtts_ps_epi64116 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>117 return _mm512_cvtts_ps_epi64(A);118}119 120__m512i test_mm512_mask_cvtts_ps_epi64(__m512i W, __mmask8 U, __m256 A) {121 // CHECK-LABEL: test_mm512_mask_cvtts_ps_epi64122 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>123 return _mm512_mask_cvtts_ps_epi64(W, U, A);124}125 126__m512i test_mm512_maskz_cvtts_ps_epi64(__mmask8 U, __m256 A) {127 // CHECK-LABEL: test_mm512_maskz_cvtts_ps_epi64128 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>129 return _mm512_maskz_cvtts_ps_epi64(U, A);130}131 132__m512i test_mm512_cvtts_roundps_epi64(__m256 A) {133 // CHECK-LABEL: test_mm512_cvtts_roundps_epi64134 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>135 return _mm512_cvtts_roundps_epi64(A, _MM_FROUND_NO_EXC);136}137 138__m512i test_mm512_mask_cvtts_roundps_epi64(__m512i W, __mmask8 U, __m256 A) {139 // CHECK-LABEL: test_mm512_mask_cvtts_roundps_epi64140 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>141 return _mm512_mask_cvtts_roundps_epi64(W, U, A, _MM_FROUND_NO_EXC);142}143 144__m512i test_mm512_maskz_cvtts_roundps_epi64(__mmask8 U, __m256 A) {145 // CHECK-LABEL: test_mm512_maskz_cvtts_roundps_epi64146 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>147 return _mm512_maskz_cvtts_roundps_epi64(U, A, _MM_FROUND_NO_EXC);148}149 150__m512i test_mm512_cvtts_ps_epu64(__m256 A) {151 // CHECK-LABEL: test_mm512_cvtts_ps_epu64152 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>153 return _mm512_cvtts_ps_epu64(A);154}155 156__m512i test_mm512_mask_cvtts_ps_epu64(__m512i W, __mmask8 U, __m256 A) {157 // CHECK-LABEL: test_mm512_mask_cvtts_ps_epu64158 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>159 return _mm512_mask_cvtts_ps_epu64(W, U, A);160}161 162__m512i test_mm512_maskz_cvtts_ps_epu64(__mmask8 U, __m256 A) {163 // CHECK-LABEL: test_mm512_maskz_cvtts_ps_epu64164 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>165 return _mm512_maskz_cvtts_ps_epu64(U, A);166}167 168__m512i test_mm512_cvtts_roundps_epu64(__m256 A) {169 // CHECK-LABEL: test_mm512_cvtts_roundps_epu64170 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>171 return _mm512_cvtts_roundps_epu64(A, _MM_FROUND_NO_EXC);172}173 174__m512i test_mm512_mask_cvtts_roundps_epu64(__m512i W, __mmask8 U, __m256 A) {175 // CHECK-LABEL: test_mm512_mask_cvtts_roundps_epu64176 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>177 return _mm512_mask_cvtts_roundps_epu64(W, U, A, _MM_FROUND_NO_EXC);178}179 180__m512i test_mm512_maskz_cvtts_roundps_epu64(__mmask8 U, __m256 A) {181 // CHECK-LABEL: test_mm512_maskz_cvtts_roundps_epu64182 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>183 return _mm512_maskz_cvtts_roundps_epu64(U, A, _MM_FROUND_NO_EXC);184}185