| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer shift/and/or
Summary:
kunpck intrinsics were removed in favor of native IR a few months ago. The implementation lowers them as by operation on the integer types passed to the intrinsic and then just shifting, masking, and oring them together. A special X86 DAG combine was added to recognize this patter and turn it into a concat_vector operation.
I think it makes more sense to keep the IR implementation closer to vector operations on vXi1. Given that we expect these builtins to be used around other builtins that operate on k-registers which we try to represent in IR with vXi1. InstCombine should be able to get rid of the bitcasts between integers and vXi1 leaving only the vector operations.
Reviewers: RKSimon, spatel, zvi, jina.nahias
Reviewed By: RKSimon
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D42016
llvm-svn: 322461
|
| |
|
|
|
|
| |
zeroinitializer.
llvm-svn: 322038
|
| |
|
|
|
|
|
|
|
| |
This patch, together with a matching llvm patch (https://reviews.llvm.org/D39720), implements the lowering of X86 kunpack intrinsics to IR.
Differential Revision: https://reviews.llvm.org/D39719
Change-Id: Id5d3cb394ad33b98be79a6783d1d15569e2b798d
llvm-svn: 319777
|
| |
|
|
|
|
|
|
|
| |
Change Header files of the intrinsics for lowering test and testn intrinsics to IR code.
Removed test and testn builtins from clang
Differential Revision: https://reviews.llvm.org/D38737
llvm-svn: 318035
|
| |
|
|
|
|
|
|
| |
This patch, together with a matching llvm patch (https://reviews.llvm.org/D37669), implements the lowering of X86 mask set1 intrinsics to IR.
Differential Revision: https://reviews.llvm.org/D37668
llvm-svn: 313624
|
| |
|
|
|
|
|
|
| |
This patch, together with a matching llvm patch (https://reviews.llvm.org/D37693), implements the lowering of X86 ABS intrinsics to IR.
Differential Revision: https://reviews.llvm.org/D37694
llvm-svn: 313133
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D37562
llvm-svn: 313011
|
| |
|
|
| |
llvm-svn: 299442
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
typecasts instead of the intrinsic header.
llvm-svn: 298041
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
unmasked builtins.
These new unmasked builtins will enable us to easily support optimizing these builtins in InstCombine in the backend.
llvm-svn: 295291
|
| |
|
|
|
|
|
|
| |
version without masking so wrap it with select.
This will allow the backend to constant fold these to generic shuffle vectors like 128-bit and 256-bit without having to working about handling masking.
llvm-svn: 289345
|
| |
|
|
|
|
| |
unmasked versions and selects.
llvm-svn: 287313
|
| |
|
|
|
|
|
|
| |
element builtins over to the newly added unmasked builtins and a select.
This should also fix PR30691 since the new builtins are handled like the legacy builtins in the backend.
llvm-svn: 286714
|
| |
|
|
|
|
| |
native IR like we do for 128/256-bit, but with the addition of masking.
llvm-svn: 284956
|
| |
|
|
| |
llvm-svn: 284936
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 280597
|
| |
|
|
| |
llvm-svn: 280596
|
| |
|
|
|
|
| |
possible problems in headers.
llvm-svn: 277696
|
| |
|
|
| |
llvm-svn: 274544
|
| |
|
|
|
|
|
|
| |
_mm{|256|512}_mask_cvt{s|us|}epi16_storeu_epi8 intrinsics
Differential Revision: http://reviews.llvm.org/D21729
llvm-svn: 274532
|
| |
|
|
|
|
| |
The mangling of their names was changed in order to support arbitrary addrspace pointers as arguments in rL274043.
llvm-svn: 274044
|
| |
|
|
| |
llvm-svn: 273533
|
| |
|
|
| |
llvm-svn: 273378
|
| |
|
|
| |
llvm-svn: 272787
|
| |
|
|
|
|
| |
directly with __builtin_shufflevector and __builtin_ia32_select. Also improve the formatting of the AVX2 version.
llvm-svn: 272452
|
| |
|
|
| |
llvm-svn: 272451
|
| |
|
|
|
|
|
|
| |
This will allow us to remove the x86 instrinics from the backend.
Differential Revision: http://reviews.llvm.org/D21060
llvm-svn: 272141
|
| |
|
|
|
|
| |
the other palignr builtins, but with a select to handle masking.
llvm-svn: 271873
|
| |
|
|
|
|
|
|
| |
instead of the x86 specific ones.
This will allow the x86 intrinsics to be removed from the backend.
llvm-svn: 271253
|
| |
|
|
|
|
|
|
| |
intrinsics.
This will allow us to remove the x86 instrinics from the backend.
llvm-svn: 271246
|
| |
|
|
|
|
|
|
| |
instruction set
Differential Revision: http://reviews.llvm.org/D19766
llvm-svn: 268385
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D19591
llvm-svn: 267942
|
| |
|
|
|
|
|
|
| |
instruction set
Differential Revision: http://reviews.llvm.org/D19588
llvm-svn: 267876
|
| |
|
|
|
|
|
|
| |
instruction set
Differential Revision: http://reviews.llvm.org/D19195
llvm-svn: 267380
|
| |
|
|
|
|
|
|
|
| |
VPBROADCASTB/W/D/Q instruction set
Differential Revision: http://reviews.llvm.org/D19012
llvm-svn: 266195
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
builtin to clang
Differential Revision: http://reviews.llvm.org/D18924
llvm-svn: 265928
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18925
llvm-svn: 265895
|
| |
|
|
|
|
|
|
|
| |
getexp{sd|ss} getmant{sd|ss} kunpck{di|si} loada{pd|ps} loaddqu{di|hi|qi|si} max{sd|ss} min{sd|ss} kmov16 builtins to clang
Differential Revision: http://reviews.llvm.org/D18215
llvm-svn: 264574
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17914
llvm-svn: 262817
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17814
llvm-svn: 262609
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17754
llvm-svn: 262593
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17706
llvm-svn: 262481
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17699
llvm-svn: 262471
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17718
llvm-svn: 262326
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17685
llvm-svn: 262177
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17539
llvm-svn: 261755
|