[X86] Add new variadic avx512 compress/expand intrinsics that use vXi1 types for the mask argument.
Custom lower the builtins to these intrinsics. This enables the middle end to optimize out bitcasts for the masks. llvm-svn: 352344
This commit is contained in:
parent
453150bc18
commit
07b6d3de1b
@ -9149,6 +9149,20 @@ static Value *EmitX86ExpandLoad(CodeGenFunction &CGF,
|
||||
return CGF.Builder.CreateCall(F, { Ptr, MaskVec, Ops[1] });
|
||||
}
|
||||
|
||||
static Value *EmitX86CompressExpand(CodeGenFunction &CGF,
|
||||
ArrayRef<Value *> Ops,
|
||||
bool IsCompress) {
|
||||
llvm::Type *ResultTy = Ops[1]->getType();
|
||||
|
||||
Value *MaskVec = getMaskVecValue(CGF, Ops[2],
|
||||
ResultTy->getVectorNumElements());
|
||||
|
||||
Intrinsic::ID IID = IsCompress ? Intrinsic::x86_avx512_mask_compress
|
||||
: Intrinsic::x86_avx512_mask_expand;
|
||||
llvm::Function *F = CGF.CGM.getIntrinsic(IID, ResultTy);
|
||||
return CGF.Builder.CreateCall(F, { Ops[0], Ops[1], MaskVec });
|
||||
}
|
||||
|
||||
static Value *EmitX86CompressStore(CodeGenFunction &CGF,
|
||||
ArrayRef<Value *> Ops) {
|
||||
llvm::Type *ResultTy = Ops[1]->getType();
|
||||
@ -10160,6 +10174,46 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
|
||||
case X86::BI__builtin_ia32_compressstoreqi512_mask:
|
||||
return EmitX86CompressStore(*this, Ops);
|
||||
|
||||
case X86::BI__builtin_ia32_expanddf128_mask:
|
||||
case X86::BI__builtin_ia32_expanddf256_mask:
|
||||
case X86::BI__builtin_ia32_expanddf512_mask:
|
||||
case X86::BI__builtin_ia32_expandsf128_mask:
|
||||
case X86::BI__builtin_ia32_expandsf256_mask:
|
||||
case X86::BI__builtin_ia32_expandsf512_mask:
|
||||
case X86::BI__builtin_ia32_expanddi128_mask:
|
||||
case X86::BI__builtin_ia32_expanddi256_mask:
|
||||
case X86::BI__builtin_ia32_expanddi512_mask:
|
||||
case X86::BI__builtin_ia32_expandsi128_mask:
|
||||
case X86::BI__builtin_ia32_expandsi256_mask:
|
||||
case X86::BI__builtin_ia32_expandsi512_mask:
|
||||
case X86::BI__builtin_ia32_expandhi128_mask:
|
||||
case X86::BI__builtin_ia32_expandhi256_mask:
|
||||
case X86::BI__builtin_ia32_expandhi512_mask:
|
||||
case X86::BI__builtin_ia32_expandqi128_mask:
|
||||
case X86::BI__builtin_ia32_expandqi256_mask:
|
||||
case X86::BI__builtin_ia32_expandqi512_mask:
|
||||
return EmitX86CompressExpand(*this, Ops, /*IsCompress*/false);
|
||||
|
||||
case X86::BI__builtin_ia32_compressdf128_mask:
|
||||
case X86::BI__builtin_ia32_compressdf256_mask:
|
||||
case X86::BI__builtin_ia32_compressdf512_mask:
|
||||
case X86::BI__builtin_ia32_compresssf128_mask:
|
||||
case X86::BI__builtin_ia32_compresssf256_mask:
|
||||
case X86::BI__builtin_ia32_compresssf512_mask:
|
||||
case X86::BI__builtin_ia32_compressdi128_mask:
|
||||
case X86::BI__builtin_ia32_compressdi256_mask:
|
||||
case X86::BI__builtin_ia32_compressdi512_mask:
|
||||
case X86::BI__builtin_ia32_compresssi128_mask:
|
||||
case X86::BI__builtin_ia32_compresssi256_mask:
|
||||
case X86::BI__builtin_ia32_compresssi512_mask:
|
||||
case X86::BI__builtin_ia32_compresshi128_mask:
|
||||
case X86::BI__builtin_ia32_compresshi256_mask:
|
||||
case X86::BI__builtin_ia32_compresshi512_mask:
|
||||
case X86::BI__builtin_ia32_compressqi128_mask:
|
||||
case X86::BI__builtin_ia32_compressqi256_mask:
|
||||
case X86::BI__builtin_ia32_compressqi512_mask:
|
||||
return EmitX86CompressExpand(*this, Ops, /*IsCompress*/true);
|
||||
|
||||
case X86::BI__builtin_ia32_gather3div2df:
|
||||
case X86::BI__builtin_ia32_gather3div2di:
|
||||
case X86::BI__builtin_ia32_gather3div4df:
|
||||
|
||||
@ -8594,49 +8594,49 @@ void test_mm512_stream_ps(float *__P, __m512 __A) {
|
||||
|
||||
__m512d test_mm512_mask_compress_pd(__m512d __W, __mmask8 __U, __m512d __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_compress_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.pd.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_mask_compress_pd(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512d test_mm512_maskz_compress_pd(__mmask8 __U, __m512d __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_compress_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.pd.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_maskz_compress_pd(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_compress_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_compress_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.q.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_mask_compress_epi64(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_compress_epi64(__mmask8 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_compress_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.q.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_maskz_compress_epi64(__U, __A);
|
||||
}
|
||||
|
||||
__m512 test_mm512_mask_compress_ps(__m512 __W, __mmask16 __U, __m512 __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_compress_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.ps.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_mask_compress_ps(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512 test_mm512_maskz_compress_ps(__mmask16 __U, __m512 __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_compress_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.ps.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_maskz_compress_ps(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_compress_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_compress_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.d.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_mask_compress_epi32(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_compress_epi32(__mmask16 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_compress_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.d.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_maskz_compress_epi32(__U, __A);
|
||||
}
|
||||
|
||||
@ -8750,25 +8750,25 @@ __m512i test_mm512_maskz_shuffle_epi32(__mmask16 __U, __m512i __A) {
|
||||
|
||||
__m512d test_mm512_mask_expand_pd(__m512d __W, __mmask8 __U, __m512d __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_expand_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.pd.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_mask_expand_pd(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512d test_mm512_maskz_expand_pd(__mmask8 __U, __m512d __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_expand_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.pd.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_maskz_expand_pd(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_expand_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_expand_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.q.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_mask_expand_epi64(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_expand_epi64(__mmask8 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_expand_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.q.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_maskz_expand_epi64(__U, __A);
|
||||
}
|
||||
__m512i test_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) {
|
||||
@ -8821,25 +8821,25 @@ __m512 test_mm512_maskz_expandloadu_ps(__mmask16 __U, void const *__P) {
|
||||
|
||||
__m512 test_mm512_mask_expand_ps(__m512 __W, __mmask16 __U, __m512 __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_expand_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.ps.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_mask_expand_ps(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512 test_mm512_maskz_expand_ps(__mmask16 __U, __m512 __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_expand_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.ps.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_maskz_expand_ps(__U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_expand_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_mask_expand_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.d.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_mask_expand_epi32(__W, __U, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_expand_epi32(__mmask16 __U, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_expand_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.d.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_maskz_expand_epi32(__U, __A);
|
||||
}
|
||||
__m512d test_mm512_cvt_roundps_pd(__m256 __A) {
|
||||
|
||||
@ -4,25 +4,25 @@
|
||||
|
||||
__m512i test_mm512_mask_compress_epi16(__m512i __S, __mmask32 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_mask_compress_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.w.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_mask_compress_epi16(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_compress_epi16(__mmask32 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_compress_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.w.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_maskz_compress_epi16(__U, __D);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_compress_epi8(__m512i __S, __mmask64 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_mask_compress_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.b.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_mask_compress_epi8(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_compress_epi8(__mmask64 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_compress_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.b.512
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm512_maskz_compress_epi8(__U, __D);
|
||||
}
|
||||
|
||||
@ -40,25 +40,25 @@ void test_mm512_mask_compressstoreu_epi8(void *__P, __mmask64 __U, __m512i __D)
|
||||
|
||||
__m512i test_mm512_mask_expand_epi16(__m512i __S, __mmask32 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_mask_expand_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.w.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_mask_expand_epi16(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_expand_epi16(__mmask32 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_expand_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.w.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_maskz_expand_epi16(__U, __D);
|
||||
}
|
||||
|
||||
__m512i test_mm512_mask_expand_epi8(__m512i __S, __mmask64 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_mask_expand_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.b.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_mask_expand_epi8(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m512i test_mm512_maskz_expand_epi8(__mmask64 __U, __m512i __D) {
|
||||
// CHECK-LABEL: @test_mm512_maskz_expand_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.b.512
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm512_maskz_expand_epi8(__U, __D);
|
||||
}
|
||||
|
||||
|
||||
@ -3675,82 +3675,82 @@ __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) {
|
||||
}
|
||||
__m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_compress_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.pd.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_mask_compress_pd(__W,__U,__A);
|
||||
}
|
||||
__m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_compress_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.pd.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_maskz_compress_pd(__U,__A);
|
||||
}
|
||||
__m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_compress_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.pd.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_mask_compress_pd(__W,__U,__A);
|
||||
}
|
||||
__m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_compress_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.pd.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_maskz_compress_pd(__U,__A);
|
||||
}
|
||||
__m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_compress_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.q.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_mask_compress_epi64(__W,__U,__A);
|
||||
}
|
||||
__m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_compress_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.q.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_maskz_compress_epi64(__U,__A);
|
||||
}
|
||||
__m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_compress_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.q.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_mask_compress_epi64(__W,__U,__A);
|
||||
}
|
||||
__m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_compress_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.q.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_maskz_compress_epi64(__U,__A);
|
||||
}
|
||||
__m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_compress_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.ps.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_mask_compress_ps(__W,__U,__A);
|
||||
}
|
||||
__m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_compress_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.ps.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_maskz_compress_ps(__U,__A);
|
||||
}
|
||||
__m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_compress_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.ps.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_mask_compress_ps(__W,__U,__A);
|
||||
}
|
||||
__m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_compress_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.ps.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_maskz_compress_ps(__U,__A);
|
||||
}
|
||||
__m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_compress_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.d.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_mask_compress_epi32(__W,__U,__A);
|
||||
}
|
||||
__m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_compress_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.d.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_maskz_compress_epi32(__U,__A);
|
||||
}
|
||||
__m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_compress_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.d.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_mask_compress_epi32(__W,__U,__A);
|
||||
}
|
||||
__m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_compress_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.d.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_maskz_compress_epi32(__U,__A);
|
||||
}
|
||||
void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) {
|
||||
@ -4222,42 +4222,42 @@ __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) {
|
||||
}
|
||||
__m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_expand_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.pd.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_mask_expand_pd(__W,__U,__A);
|
||||
}
|
||||
__m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_expand_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.pd.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_maskz_expand_pd(__U,__A);
|
||||
}
|
||||
__m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_expand_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.pd.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_mask_expand_pd(__W,__U,__A);
|
||||
}
|
||||
__m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_expand_pd
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.pd.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_maskz_expand_pd(__U,__A);
|
||||
}
|
||||
__m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_expand_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.q.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_mask_expand_epi64(__W,__U,__A);
|
||||
}
|
||||
__m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_expand_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.q.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_maskz_expand_epi64(__U,__A);
|
||||
}
|
||||
__m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_expand_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.q.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_mask_expand_epi64(__W,__U,__A);
|
||||
}
|
||||
__m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_expand_epi64
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.q.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_maskz_expand_epi64(__U,__A);
|
||||
}
|
||||
__m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) {
|
||||
@ -4342,42 +4342,42 @@ __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) {
|
||||
}
|
||||
__m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_expand_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.ps.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_mask_expand_ps(__W,__U,__A);
|
||||
}
|
||||
__m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_expand_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.ps.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_maskz_expand_ps(__U,__A);
|
||||
}
|
||||
__m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_expand_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.ps.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_mask_expand_ps(__W,__U,__A);
|
||||
}
|
||||
__m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_expand_ps
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.ps.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_maskz_expand_ps(__U,__A);
|
||||
}
|
||||
__m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_mask_expand_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.d.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_mask_expand_epi32(__W,__U,__A);
|
||||
}
|
||||
__m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) {
|
||||
// CHECK-LABEL: @test_mm_maskz_expand_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.d.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_maskz_expand_epi32(__U,__A);
|
||||
}
|
||||
__m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_mask_expand_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.d.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_mask_expand_epi32(__W,__U,__A);
|
||||
}
|
||||
__m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_expand_epi32
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.d.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_maskz_expand_epi32(__U,__A);
|
||||
}
|
||||
__m128d test_mm_getexp_pd(__m128d __A) {
|
||||
|
||||
@ -4,25 +4,25 @@
|
||||
|
||||
__m128i test_mm_mask_compress_epi16(__m128i __S, __mmask8 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_mask_compress_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.w.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_mask_compress_epi16(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m128i test_mm_maskz_compress_epi16(__mmask8 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_maskz_compress_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.w.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_maskz_compress_epi16(__U, __D);
|
||||
}
|
||||
|
||||
__m128i test_mm_mask_compress_epi8(__m128i __S, __mmask16 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_mask_compress_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.b.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_mask_compress_epi8(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m128i test_mm_maskz_compress_epi8(__mmask16 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_maskz_compress_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.b.128
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm_maskz_compress_epi8(__U, __D);
|
||||
}
|
||||
|
||||
@ -40,25 +40,25 @@ void test_mm_mask_compressstoreu_epi8(void *__P, __mmask16 __U, __m128i __D) {
|
||||
|
||||
__m128i test_mm_mask_expand_epi16(__m128i __S, __mmask8 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_mask_expand_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.w.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_mask_expand_epi16(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m128i test_mm_maskz_expand_epi16(__mmask8 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_maskz_expand_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.w.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_maskz_expand_epi16(__U, __D);
|
||||
}
|
||||
|
||||
__m128i test_mm_mask_expand_epi8(__m128i __S, __mmask16 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_mask_expand_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.b.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_mask_expand_epi8(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m128i test_mm_maskz_expand_epi8(__mmask16 __U, __m128i __D) {
|
||||
// CHECK-LABEL: @test_mm_maskz_expand_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.b.128
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm_maskz_expand_epi8(__U, __D);
|
||||
}
|
||||
|
||||
@ -88,25 +88,25 @@ __m128i test_mm_maskz_expandloadu_epi8(__mmask16 __U, void const* __P) {
|
||||
|
||||
__m256i test_mm256_mask_compress_epi16(__m256i __S, __mmask16 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_mask_compress_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.w.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_mask_compress_epi16(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m256i test_mm256_maskz_compress_epi16(__mmask16 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_compress_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.w.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_maskz_compress_epi16(__U, __D);
|
||||
}
|
||||
|
||||
__m256i test_mm256_mask_compress_epi8(__m256i __S, __mmask32 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_mask_compress_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.b.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_mask_compress_epi8(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m256i test_mm256_maskz_compress_epi8(__mmask32 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_compress_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.compress.b.256
|
||||
// CHECK: @llvm.x86.avx512.mask.compress
|
||||
return _mm256_maskz_compress_epi8(__U, __D);
|
||||
}
|
||||
|
||||
@ -124,25 +124,25 @@ void test_mm256_mask_compressstoreu_epi8(void *__P, __mmask32 __U, __m256i __D)
|
||||
|
||||
__m256i test_mm256_mask_expand_epi16(__m256i __S, __mmask16 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_mask_expand_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.w.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_mask_expand_epi16(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m256i test_mm256_maskz_expand_epi16(__mmask16 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_expand_epi16
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.w.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_maskz_expand_epi16(__U, __D);
|
||||
}
|
||||
|
||||
__m256i test_mm256_mask_expand_epi8(__m256i __S, __mmask32 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_mask_expand_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.b.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_mask_expand_epi8(__S, __U, __D);
|
||||
}
|
||||
|
||||
__m256i test_mm256_maskz_expand_epi8(__mmask32 __U, __m256i __D) {
|
||||
// CHECK-LABEL: @test_mm256_maskz_expand_epi8
|
||||
// CHECK: @llvm.x86.avx512.mask.expand.b.256
|
||||
// CHECK: @llvm.x86.avx512.mask.expand
|
||||
return _mm256_maskz_expand_epi8(__U, __D);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user