191 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 6// scalar7 8int test_mm_cvtts_sd_i32(__m128d __A) {9 // CHECK-LABEL: @test_mm_cvtts_sd_i3210 // CHECK: @llvm.x86.avx10.vcvttsd2sis11 return _mm_cvtts_roundsd_i32(__A, _MM_FROUND_NO_EXC);12}13 14int test_mm_cvtts_sd_si32(__m128d __A) {15 // CHECK-LABEL: @test_mm_cvtts_sd_si32(16 // CHECK: @llvm.x86.avx10.vcvttsd2sis(<2 x double>17 return _mm_cvtts_roundsd_si32(__A, _MM_FROUND_NO_EXC);18}19 20unsigned test_mm_cvtts_sd_u32(__m128d __A) {21 // CHECK-LABEL: @test_mm_cvtts_sd_u32(22 // CHECK: @llvm.x86.avx10.vcvttsd2usis(<2 x double>23 return _mm_cvtts_roundsd_u32(__A, _MM_FROUND_NO_EXC);24}25 26int test_mm_cvtts_ss_i32(__m128 __A) {27 // CHECK-LABEL: @test_mm_cvtts_ss_i32(28 // CHECK: @llvm.x86.avx10.vcvttss2sis(<4 x float>29 return _mm_cvtts_roundss_i32(__A, _MM_FROUND_NO_EXC);30}31 32int test_mm_cvtts_ss_si32(__m128 __A) {33 // CHECK-LABEL: @test_mm_cvtts_ss_si32(34 // CHECK: @llvm.x86.avx10.vcvttss2sis(<4 x float>35 return _mm_cvtts_roundss_si32(__A, _MM_FROUND_NO_EXC);36}37 38unsigned test_mm_cvtts_ss_u32(__m128 __A) {39 // CHECK-LABEL: @test_mm_cvtts_ss_u32(40 // CHECK: @llvm.x86.avx10.vcvttss2usis(<4 x float>41 return _mm_cvtts_roundss_u32(__A, _MM_FROUND_NO_EXC);42}43 44// vector45// 128 bit46__m128i test_mm_cvtts_pd_epi64(__m128d A){47 // CHECK-LABEL: @test_mm_cvtts_pd_epi6448 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.128(<2 x double>49 return _mm_cvtts_pd_epi64(A);50}51 52__m128i test_mm_mask_cvtts_pd_epi64(__m128i W, __mmask8 U, __m128d A){53 // CHECK-LABEL: @test_mm_mask_cvtts_pd_epi6454 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.128(<2 x double>55 return _mm_mask_cvtts_pd_epi64(W, U, A);56}57 58__m128i test_mm_maskz_cvtts_pd_epi64(__mmask8 U,__m128d A){59 // CHECK-LABEL: @test_mm_maskz_cvtts_pd_epi6460 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.128(<2 x double>61 return _mm_maskz_cvtts_pd_epi64(U, A);62}63 64__m128i test_mm_cvtts_pd_epu64(__m128d A){65 // CHECK-LABEL: @test_mm_cvtts_pd_epu6466 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.128(<2 x double>67 return _mm_cvtts_pd_epu64(A);68}69 70__m128i test_mm_mask_cvtts_pd_epu64(__m128i W, __mmask8 U, __m128d A){71 // CHECK-LABEL: @test_mm_mask_cvtts_pd_epu6472 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.128(<2 x double>73 return _mm_mask_cvtts_pd_epu64(W, U, A);74}75 76__m128i test_mm_maskz_cvtts_pd_epu64(__mmask8 U,__m128d A){77 // CHECK-LABEL: @test_mm_maskz_cvtts_pd_epu6478 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.128(<2 x double>79 return _mm_maskz_cvtts_pd_epu64(U, A);80}81 82// 256 bit83__m256i test_mm256_cvtts_pd_epi64(__m256d A){84// CHECK-LABEL: @test_mm256_cvtts_pd_epi6485// CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.256(<4 x double>86 return _mm256_cvtts_pd_epi64(A);87}88 89__m256i test_mm256_mask_cvtts_pd_epi64(__m256i W,__mmask8 U, __m256d A){90// CHECK-LABEL: @test_mm256_mask_cvtts_pd_epi6491// CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.256(<4 x double>92 return _mm256_mask_cvtts_pd_epi64(W,U, A);93}94 95__m256i test_mm256_maskz_cvtts_pd_epi64(__mmask8 U, __m256d A){96// CHECK-LABEL: @test_mm256_maskz_cvtts_pd_epi6497// CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.256(<4 x double>98 return _mm256_maskz_cvtts_pd_epi64(U, A);99}100 101__m256i test_mm256_cvtts_pd_epu64(__m256d A){102// CHECK-LABEL: @test_mm256_cvtts_pd_epu64103// CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.256(<4 x double>104 return _mm256_cvtts_pd_epu64(A);105}106 107__m256i test_mm256_mask_cvtts_pd_epu64(__m256i W,__mmask8 U, __m256d A){108// CHECK-LABEL: @test_mm256_mask_cvtts_pd_epu64109// CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.256(<4 x double>110 return _mm256_mask_cvtts_pd_epu64(W,U, A);111}112 113__m256i test_mm256_maskz_cvtts_pd_epu64(__mmask8 U, __m256d A){114// CHECK-LABEL: @test_mm256_maskz_cvtts_pd_epu64115// CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.256(<4 x double>116 return _mm256_maskz_cvtts_pd_epu64(U, A);117}118 119// 128 bit120__m128i test_mm_cvtts_ps_epi64(__m128 A){121 // CHECK-LABEL: @test_mm_cvtts_ps_epi64122 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.128(<4 x float>123 return _mm_cvtts_ps_epi64(A);124}125 126__m128i test_mm_mask_cvtts_ps_epi64(__m128i W, __mmask8 U, __m128 A){127 // CHECK-LABEL: @test_mm_mask_cvtts_ps_epi64128 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.128(<4 x float>129 return _mm_mask_cvtts_ps_epi64(W, U, A);130}131 132__m128i test_mm_maskz_cvtts_ps_epi64(__mmask8 U,__m128 A){133 // CHECK-LABEL: @test_mm_maskz_cvtts_ps_epi64134 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.128(<4 x float>135 return _mm_maskz_cvtts_ps_epi64(U, A);136}137 138__m128i test_mm_cvtts_ps_epu64(__m128 A){139 // CHECK-LABEL: @test_mm_cvtts_ps_epu64140 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.128(<4 x float>141 return _mm_cvtts_ps_epu64(A);142}143 144__m128i test_mm_mask_cvtts_ps_epu64(__m128i W, __mmask8 U, __m128 A){145 // CHECK-LABEL: @test_mm_mask_cvtts_ps_epu64146 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.128(<4 x float>147 return _mm_mask_cvtts_ps_epu64(W, U, A);148}149 150__m128i test_mm_maskz_cvtts_ps_epu64(__mmask8 U,__m128 A){151 // CHECK-LABEL: @test_mm_maskz_cvtts_ps_epu64152 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.128(<4 x float>153 return _mm_maskz_cvtts_ps_epu64(U, A);154}155 156__m256i test_mm256_cvtts_ps_epi64(__m128 A){157// CHECK-LABEL: @test_mm256_cvtts_ps_epi64158// CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.256(<4 x float>159 return _mm256_cvtts_ps_epi64(A);160}161 162__m256i test_mm256_mask_cvtts_ps_epi64(__m256i W,__mmask8 U, __m128 A){163// CHECK-LABEL: @test_mm256_mask_cvtts_ps_epi64164// CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.256(<4 x float>165 return _mm256_mask_cvtts_ps_epi64(W,U, A);166}167 168__m256i test_mm256_maskz_cvtts_ps_epi64(__mmask8 U, __m128 A){169// CHECK-LABEL: @test_mm256_maskz_cvtts_ps_epi64170// CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.256(<4 x float>171 return _mm256_maskz_cvtts_ps_epi64(U, A);172}173 174__m256i test_mm256_cvtts_ps_epu64(__m128 A){175// CHECK-LABEL: @test_mm256_cvtts_ps_epu64176// CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.256(<4 x float>177 return _mm256_cvtts_ps_epu64(A);178}179 180__m256i test_mm256_mask_cvtts_ps_epu64(__m256i W,__mmask8 U, __m128 A){181// CHECK-LABEL: @test_mm256_mask_cvtts_ps_epu64182// CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.256(<4 x float>183 return _mm256_mask_cvtts_ps_epu64(W,U, A);184}185 186__m256i test_mm256_maskz_cvtts_ps_epu64(__mmask8 U, __m128 A){187// CHECK-LABEL: @test_mm256_maskz_cvtts_ps_epu64188// CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.256(<4 x float>189 return _mm256_maskz_cvtts_ps_epu64(U, A);190}191