summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/avx512vldq-builtins.c
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Remove the cvtuqq2ps256/cvtqq2ps256 mask builtins. Replace with ↵Craig Topper2019-01-201-6/+10
| | | | | | | | | | | | | | uitofp/sitofp and select. Reviewers: RKSimon, spatel Reviewed By: RKSimon Subscribers: kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D56965 llvm-svn: 351694
* [X86] Rename llvm.x86.avx512.mask.fpclass.p* to exclude 'mask.' from the ↵Craig Topper2018-06-271-8/+8
| | | | | | name to match llvm. llvm-svn: 335745
* [X86] Add subvector insert and extract builtins to enable target feature ↵Craig Topper2018-06-081-6/+6
| | | | | | | | checking and immediate range checking. Test changes are due to differences in how we generate undef elements now. We also changed the types used for extractf128_si256/insertf128_si256 to match the signature of the builtin that previously existed which this patch resurrects. This also matches gcc. llvm-svn: 334261
* [X86] Avoid passing _mm_undefined* to builtin_shufflevector if we are able ↵Craig Topper2018-06-041-9/+9
| | | | | | | | to pass the first input a second time. This is more consistent with other usages of builtin_shufflevector. Later optimization passes or codegen will detect the duplicate vector and replace it with undef. Using _mm_undefined just puts a zeroinitializer that still needs to be optimized out later. llvm-svn: 333944
* [X86] Use __builtin_convertvector to implement some of the packed integer to ↵Craig Topper2018-05-211-12/+20
| | | | | | | | | | | | packed float conversion intrinsics. I believe this is safe assuming default default FP environment. The conversion might be inexact, but it can never overflow the FP type so this shouldn't be undefined behavior for the uitofp/sitofp instructions. We already do something similar for scalar conversions. Differential Revision: https://reviews.llvm.org/D46863 llvm-svn: 332882
* [X86] Replace cvt*2mask intrinsics with native IR using 'icmp slt X, ↵Craig Topper2018-01-081-4/+11
| | | | | | zeroinitializer. llvm-svn: 322038
* [X86] Implement broadcastf32x2 and broadcasti32x2 intrinsics using ↵Craig Topper2017-08-301-9/+15
| | | | | | | | | | __builtin_shufflevector instead builtins This patch implements the broadcastf32x2/broadcasti32x2 intrinsics using __builtin_shufflevector. Differential Revision: https://reviews.llvm.org/D37287 llvm-svn: 312135
* Fix problem with test. Michael Zuckerman2017-04-041-8/+8
| | | | llvm-svn: 299442
* [X86][Clang] Converting __mm{|256|512}_movm_epi{8|16|32|64} LLVMIR call into ↵Michael Zuckerman2017-04-041-4/+11
| | | | | | | | | | | | generic intrinsics. This patch is a part two of two reviews, one for the clang and the other for LLVM. In this patch, I covered the clang side, by introducing the intrinsic to the front end. This is done by creating a generic replacement. Differential Revision: https://reviews.llvm.org/D31394a llvm-svn: 299431
* [x86] these aren't the undefs you're looking for (PR32176)Sanjay Patel2017-03-121-6/+6
| | | | | | | | | | | | | x86 has undef SSE/AVX intrinsics that should represent a bogus register operand. This is not the same as LLVM's undef value which can take on multiple bit patterns. There are better solutions / follow-ups to this discussed here: https://bugs.llvm.org/show_bug.cgi?id=32176 ...but this should prevent miscompiles with a one-line code change. Differential Revision: https://reviews.llvm.org/D30834 llvm-svn: 297588
* [AVX-512] Replace subvector broadcast builtins with shufflevectors and selects.Craig Topper2017-01-181-18/+22
| | | | | | Verified that the backend codegens this equally well. llvm-svn: 292329
* [AVX-512] Remove masked vector insert builtins and replace with native ↵Craig Topper2016-11-011-6/+10
| | | | | | | | shufflevectors and selects. Unfortunately, the backend currently doesn't fold masks into the instructions correctly when they come from these shufflevectors. I'll work on that in a future commit. llvm-svn: 285667
* [AVX-512] Remove masked vector extract builtins and replace with native ↵Craig Topper2016-10-311-6/+10
| | | | | | | | shufflevectors and selects. Unfortunately, the backend currently doesn't fold masks into the instructions correctly when they come from these shufflevectors. I'll work on that in a future commit. llvm-svn: 285540
* [X86] Remove the mm_malloc.h include guard hack from the X86 builtins testsElad Cohen2016-09-281-3/+1
| | | | | | | | | | | | The X86 clang/test/CodeGen/*builtins.c tests define the mm_malloc.h include guard as a hack for avoiding its inclusion (mm_malloc.h requires a hosted environment since it expects stdlib.h to be available - which is not the case in these internal clang codegen tests). This patch removes this hack and instead passes -ffreestanding to clang cc1. Differential Revision: https://reviews.llvm.org/D24825 llvm-svn: 282581
* [AVX-512] Remove masked integer mullo builtins and replace with native IR.Craig Topper2016-09-031-4/+8
| | | | llvm-svn: 280597
* [AVX-512] Implement masked floating point logical operations with native IR ↵Craig Topper2016-08-311-33/+73
| | | | | | and remove the builtins. llvm-svn: 280197
* After PR28761 use -Wall with -Werror in builtins tests to identifyEric Christopher2016-08-041-1/+1
| | | | | | possible problems in headers. llvm-svn: 277696
* [Clang][Builtin][AVX512]Adding intrinsics for vfpclass{sd|ss} ↵Michael Zuckerman2016-04-251-0/+48
| | | | | | | | vfpclass{pd|ps} instruction set Differential Revision: http://reviews.llvm.org/D19476 llvm-svn: 267414
* [Clang][AVX512][BUILTIN] Adding intrinsics support to VEXTRACT{I|F} and ↵Michael Zuckerman2016-04-191-0/+72
| | | | | | | | VINSERT{I|F} instruction set Differential Revision: http://reviews.llvm.org/D19097 llvm-svn: 266745
* [Clang][AVX512][Builtin] Adding support for VBROADCAST and ↵Michael Zuckerman2016-04-131-0/+90
| | | | | | | | | VPBROADCASTB/W/D/Q instruction set Differential Revision: http://reviews.llvm.org/D19012 llvm-svn: 266195
* [Clang][AVX512][Builtin] Adding supporting to intrinsics of ↵Michael Zuckerman2016-04-131-0/+49
| | | | | | | | cvt{b|d|q}2mask{128|256|512} and cvtmask2{b|d|q}{128|256|512} instruction set. Differential Revision: http://reviews.llvm.org/D19009 llvm-svn: 266188
* Canonicalize some of the x86 builtin tests and either remove or commentEric Christopher2015-10-141-2/+5
| | | | | | about optimization options. llvm-svn: 250271
* [X86][AVX512VLDQ] add reduce/range/cvt intrinsics Asaf Badouh2015-08-021-0/+576
| | | | | | | | add 128 & 256 width intrinsic versions of reduce/range and cvt i64 to FP and vice versa Differential Revision: http://reviews.llvm.org/D11598 llvm-svn: 243848
* AVX-512: Added AVX-512 intrinsics and testsElena Demikhovsky2015-04-301-0/+231
by Asaf Badouh (asaf.badouh@intel.com) llvm-svn: 236218
OpenPOWER on IntegriCloud