| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
basic block.
llvm-svn: 272456
|
| |
|
|
|
|
| |
directly with __builtin_shufflevector and __builtin_ia32_select. Also improve the formatting of the AVX2 version.
llvm-svn: 272452
|
| |
|
|
| |
llvm-svn: 272451
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Create a new Frontend LangOpt to specify the renderscript language. It
is enabled by the "-x renderscript" option from the driver.
Add a "kernel" function attribute only for RenderScript (an "ignored
attribute" warning is generated otherwise).
Make the NativeHalfType and NativeHalfArgsAndReturns LangOpts be implied
by the RenderScript LangOpt.
Reviewers: rsmith
Subscribers: cfe-commits, srhines
Differential Revision: http://reviews.llvm.org/D21198
llvm-svn: 272342
|
| |
|
|
|
|
| |
directly in the header file instead of in CGBuiltin.cpp. Simplify the sse2 equivalents as well.
llvm-svn: 272246
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Some target platforms -fsanitize=address.
Reviewers: pcc, eugenis
Subscribers: cfe-commits, christof, chapuni, kubabrecka
Differential Revision: http://reviews.llvm.org/D21117
llvm-svn: 272185
|
| |
|
|
|
|
|
|
|
|
|
|
| |
According to the Sparc V8 ABI, complex numbers should be passed and returned as pairs of registers:
https://docs.oracle.com/cd/E26502_01/html/E28387/gentextid-2734.html
This fix ensures this is the case. Without this, complex numbers are returned as a struct of two floats, which breaks the ABI rules.
Differential Review: http://reviews.llvm.org/D20955
llvm-svn: 272148
|
| |
|
|
|
|
|
|
| |
This will allow us to remove the x86 instrinics from the backend.
Differential Revision: http://reviews.llvm.org/D21060
llvm-svn: 272141
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21002
llvm-svn: 272123
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21014
llvm-svn: 272012
|
| |
|
|
|
|
| |
the other palignr builtins, but with a select to handle masking.
llvm-svn: 271873
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20866
llvm-svn: 271835
|
| |
|
|
|
|
|
|
| |
_mm512_setzero_epi32
Differential Revision: http://reviews.llvm.org/D20871
llvm-svn: 271832
|
| |
|
|
| |
llvm-svn: 271795
|
| |
|
|
|
|
| |
clang.EXE: error: unsupported option '-fsanitize=address' for target 'x86_64-w64-windows-gnu'
llvm-svn: 271509
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20864
llvm-svn: 271507
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20861
llvm-svn: 271499
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20870
llvm-svn: 271498
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Also emit lifetime markers for -fsanitize-address-use-after-scope.
Asan uses life-time markers for use-after-scope check.
PR27453
Reviewers: kcc, eugenis, aizatsky
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20759
llvm-svn: 271451
|
| |
|
|
|
|
|
|
|
|
|
|
| |
f32/f64 to i32 with generic IR (clang)
The 'cvtt' truncation (round to zero) conversions can be safely represented as generic __builtin_convertvector (fptosi) calls instead of x86 intrinsics. We already do this (implicitly) for the scalar equivalents.
Note: I looked at updating _mm_cvttpd_epi32 as well but this still requires a lot more backend work to correctly lower (both for debug and optimized builds).
Differential Revision: http://reviews.llvm.org/D20859
llvm-svn: 271436
|
| |
|
|
|
|
|
| |
And remove trailing spaces in intrinsic f test
Differential Revision: http://reviews.llvm.org/D20810
llvm-svn: 271398
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
state reading intrinsics)
Adding LLVM front-end support to two intrinsics dealing with bit scan: _bit_scan_forward and _bit_scan_reverse.
Their functionality is as described in Intel intrinsics guide:
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_bit_scan_forward&expand=371,370
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_bit_scan_reverse&expand=371,370
Furthermore, adding clang front-end support to these conversion intrinsics: _mm256_cvtsd_f64, _mm256_cvtsi256_si32 and _mm256_cvtss_f32.
Finally, adding tests to all of the above, as well as to the state reading intrinsics _rdpmc and _rdtsc.
Their functionality is also specified in the Intel intrinsics guide.
Commit on behalf of Omer Paparo Bivas
llvm-svn: 271387
|
| |
|
|
|
|
|
|
| |
instruction set to clang
Differential Revision: http://reviews.llvm.org/D20812
llvm-svn: 271373
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20815
llvm-svn: 271368
|
| |
|
|
|
|
|
|
|
| |
The `isa' member was previously not given the correct DLL Storage. Ensure that
we give the `isa' constant `__CFConstantStringClassReference' the correct DLL
storage. Default to dllimport unless an explicit specification gives it a
dllexport storage.
llvm-svn: 271361
|
| |
|
|
| |
llvm-svn: 271297
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20563
llvm-svn: 271275
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20790
llvm-svn: 271265
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 271227
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20617
llvm-svn: 271219
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to the gcc headers, intel intrinsics docs and msdn codegen the _mm_store1_pd (and its _mm_store_pd1 equivalent) should use an aligned pointer - the clang headers are the only implementation I can find that assume non-aligned stores (by storing with _mm_storeu_pd).
Additionally, according to the intel intrinsics docs and msdn codegen the _mm_store1_ps (_mm_store_ps1) requires a similarly aligned pointer.
This patch raises the alignment requirements to match the other implementations by calling _mm_store_ps/_mm_store_pd instead.
I've also added the missing _mm_store_pd1 intrinsic (which maps to _mm_store1_pd like _mm_store_ps1 does to _mm_store1_ps).
As a followup I'll update the llvm fast-isel tests to match this codegen.
Differential Revision: http://reviews.llvm.org/D20617
llvm-svn: 271218
|
| |
|
|
|
|
|
|
| |
that will compile to a native unaligned store. Remove the builtins since they are no longer used.
Intrinsics will be removed from llvm in a future commit.
llvm-svn: 271214
|
| |
|
|
|
|
|
| |
These tests currently expect MachO section names and do not provide a target.
Explicitly provide one.
llvm-svn: 271212
|
| |
|
|
|
|
|
|
| |
Adjust the constant CFString emission to emit into more appropriate sections on
ELF and COFF targets. It would previously try to use MachO section names
irrespective of the file format.
llvm-svn: 271211
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20618
llvm-svn: 271205
|
| |
|
|
| |
llvm-svn: 271163
|
| |
|
|
| |
llvm-svn: 271162
|
| |
|
|
|
|
|
|
|
|
|
| |
This extends the blocks support to support blocks with a dynamically linked
blocks runtime. The previous code generation would work only for static builds
of the blocks runtime. Mark the block "isa" pointers and functions as dllimport
if no explicit declaration marked with __declspec(dllexport) is found. This
additional check allows for the use of the functionality in the runtime library
if desired.
llvm-svn: 271138
|
| |
|
|
| |
llvm-svn: 271134
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
generic IR (clang)
The VPMOVSX and (V)PMOVZX sign/zero extension intrinsics can be safely represented as generic __builtin_convertvector calls instead of x86 intrinsics.
This patch removes the clang builtins and their use in the sse2/avx headers - a companion patch will remove/auto-upgrade the llvm intrinsics.
Note: We already did this for SSE41 PMOVSX sometime ago.
Differential Revision: http://reviews.llvm.org/D20684
llvm-svn: 271106
|
| |
|
|
|
|
|
|
|
|
| |
_InterlockedIncrement and _InterlockedDecrement have 'long' in their
prototypes. We assumed 'long' was the same size as an i32 which is
incorrect for other targets.
This fixes PR27892.
llvm-svn: 270953
|
| |
|
|
| |
llvm-svn: 270851
|
| |
|
|
|
|
| |
Added checks for upper elements being zero'd in scalar conversions
llvm-svn: 270836
|
| |
|
|
|
|
| |
gathers
llvm-svn: 270833
|
| |
|
|
|
|
|
|
|
| |
_mm128_cmp_ps_mask-->_mm_cmp_ps_mask
_mm128_mask_cmp_ps_mask-->_mm_mask_cmp_ps_mask
_mm128_cmp_pd_mask-->_mm_cmp_pd_mask
_mm128_mask_cmp_pd_mask-->_mm_mask_cmp_pd_mask
llvm-svn: 270830
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20562
llvm-svn: 270825
|
| |
|
|
|
|
| |
llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll will be synced to this
llvm-svn: 270708
|
| |
|
|
| |
llvm-svn: 270704
|