| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
E.g. the immediate value of vshrns_n_s16 is [1,16], which should be [1,8].
llvm-svn: 195942
|
| |
|
|
| |
llvm-svn: 195940
|
| |
|
|
| |
llvm-svn: 195937
|
| |
|
|
|
|
| |
of ACLE intrinsics.
llvm-svn: 195844
|
| |
|
|
| |
llvm-svn: 195804
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 195789
|
| |
|
|
|
|
|
|
| |
info version number.
Will error out when modules have different version numbers.
llvm-svn: 195495
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Not long ago I made the CodeGen of for loops simplify the condition at
-O0 in the same way we do for if and conditionals. Unfortunately this
ties how loops and simple conditions work together too tightly, which
makes features such as instrumentation based PGO awkward.
Ultimately, we should find a more general way to simplify the logic in
a given condition, but for now we'll just avoid using EmitBranchOnBool
for loops, like we already do for while and do loops.
llvm-svn: 195438
|
| |
|
|
|
|
| |
test/Preprocessor/arm-target-features.c and test/Driver/arm-cortex-cpus.c
llvm-svn: 195430
|
| |
|
|
| |
llvm-svn: 195409
|
| |
|
|
|
|
| |
Fixed scalar dup alias and added test case.
llvm-svn: 195329
|
| |
|
|
|
|
|
| |
Intrinsics implemented: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane,
vqdmlal_lane, vqdmlsl_lane scalar Neon intrinsics.
llvm-svn: 195326
|
| |
|
|
|
|
| |
For PTX, we want the target to handle struct returns directly.
llvm-svn: 195268
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
RTTI is not yet implemented for the Microsoft C++ ABI and isn't expected
soon. We could easily add the mangling, but the error is what prevents
us from silently miscompiling code that expects RTTI.
Instead, add a new mangleTypeName entry point that simply forwards to
mangleName or mangleType to produce a string that isn't part of the ABI.
Itanium can continue to use RTTI names to avoid unecessary test
breakage.
This also seems like the right design. The fact that TBAA names happen
to be RTTI names is now an implementation detail of the mangler, rather
than part of TBAA.
Differential Revision: http://llvm-reviews.chandlerc.com/D2153
llvm-svn: 195168
|
| |
|
|
| |
llvm-svn: 195079
|
| |
|
|
| |
llvm-svn: 195073
|
| |
|
|
| |
llvm-svn: 195069
|
| |
|
|
|
|
| |
The functions are like: vst1_s8_x2 ...
llvm-svn: 194991
|
| |
|
|
| |
llvm-svn: 194954
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implemented aarch64 Neon scalar vfma_lane intrinsics
Implemented aarch64 Neon scalar vfms_lane intrinsics
Implemented legacy vmul_n_f64, vmul_lane_f64, vmul_laneq_f64
intrinsics (v1f64 parameter type) using Neon scalar instructions.
Implemented legacy vfma_lane_f64, vfms_lane_f64,
vfma_laneq_f64, vfms_laneq_f64 intrinsics (v1f64 parameter type)
using Neon scalar instructions.
llvm-svn: 194889
|
| |
|
|
| |
llvm-svn: 194854
|
| |
|
|
|
|
| |
and accumulate instructions.
llvm-svn: 194732
|
| |
|
|
| |
llvm-svn: 194678
|
| |
|
|
| |
llvm-svn: 194674
|
| |
|
|
| |
llvm-svn: 194672
|
| |
|
|
| |
llvm-svn: 194649
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1989
llvm-svn: 194617
|
| |
|
|
|
|
|
|
|
|
|
| |
We already have builtins that are only available in GNU mode, so this
mirrors that.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D2128
llvm-svn: 194615
|
| |
|
|
|
|
|
| |
A number of non-overloaded intrinsics have been replaced by thier overloaded
counterparts.
llvm-svn: 194599
|
| |
|
|
| |
llvm-svn: 194513
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Like GCC, this re-uses the 'f' constraint and a new 'w' print-modifier:
asm ("ldi.w %w0, 1", "=f"(result));
Unlike GCC, the 'w' print-modifer is not _required_ to produce the intended
output. This is a consequence of differences in the internal handling of
the registers in each compiler. To be source-compatible between the
compilers, users must use the 'w' print-modifier.
MSA registers (including control registers) are supported in clobber lists.
llvm-svn: 194476
|
| |
|
|
| |
llvm-svn: 194474
|
| |
|
|
|
|
|
|
| |
Fixed the following:
- Whitespace at end of most lines
- $11 test actually testing $10
llvm-svn: 194473
|
| |
|
|
|
|
|
|
| |
The xcore llvm backend does not handle 8 byte alignment viz:
"%BadAlignment = alloca i64, align 8"
So getPreferredTypeAlign() must never overalign.
llvm-svn: 194462
|
| |
|
|
|
|
| |
the floating point register mode.
llvm-svn: 194426
|
| |
|
|
|
|
| |
source operands, a vector, an element to insert, and a shift amount.
llvm-svn: 194407
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 194395
|
| |
|
|
|
|
|
|
| |
Produces neater IR in significantly less time.
(~18% faster -O0 compile time for sqlite3 with -fsanitize=undefined)
llvm-svn: 194231
|
| |
|
|
| |
llvm-svn: 194124
|
| |
|
|
| |
llvm-svn: 194119
|
| |
|
|
| |
llvm-svn: 194086
|
| |
|
|
| |
llvm-svn: 194042
|
| |
|
|
| |
llvm-svn: 193995
|
| |
|
|
|
|
|
|
| |
rdar://13973577
Patch by Fariborz Jahanian.
llvm-svn: 193935
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 193817
|
| |
|
|
| |
llvm-svn: 193791
|
| |
|
|
| |
llvm-svn: 193695
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
normal IR (i.e. not intrinsics)
Also corrected the definition of the intrinsics for these instructions (the
result register is also the first operand), and added intrinsics for bsel and
bseli to clang (they already existed in the backend).
These four operations are mostly equivalent to bsel, and bseli (the difference
is which operand is tied to the result). As a result some of the tests changed
as described below.
bitwise.ll:
- bsel.v test adapted so that the mask is unknown at compile-time. This stops
it emitting bmnzi.b instead of the intended bsel.v.
- The bseli.b test now tests the right thing. Namely the case when one of the
values is an uimm8, rather than when the condition is a uimm8 (which is
covered by bmnzi.b)
compare.ll:
- bsel.v tests now (correctly) emits bmnz.v instead of bsel.v because this
is the same operation (see MSA.txt).
i8.ll
- CHECK-DAG-ized test.
- bmzi.b test now (correctly) emits equivalent bmnzi.b with swapped operands
because this is the same operation (see MSA.txt).
- bseli.b still emits bseli.b though because the immediate makes it
distinguishable from bmnzi.b.
vec.ll:
- CHECK-DAG-ized test.
- bmz.v tests now (correctly) emits bmnz.v with swapped operands (see
MSA.txt).
- bsel.v tests now (correctly) emits bmnz.v with swapped operands (see
MSA.txt).
llvm-svn: 193693
|
| |
|
|
| |
llvm-svn: 193692
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not intrinsics)
This required correcting the definition of the bins[lr]i intrinsics because
the result is also the first operand.
It also required removing the (arbitrary) check for 32-bit immediates in
MipsSEDAGToDAGISel::selectVSplat().
Currently using binsli.d with 2 bits set in the mask doesn't select binsli.d
because the constant is legalized into a ConstantPool. Similar things can
happen with binsri.d with more than 10 bits set in the mask. The resulting
code when this happens is correct but not optimal.
llvm-svn: 193687
|