| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
Fix the Rn register encoding for both SSAT and USAT. Update the parsing of the
shift operand to correctly handle the allowed shift types and immediate ranges
and issue meaningful diagnostics when an illegal value or shift type is
specified. Add aliases to parse an ommitted shift operand (default value of
'lsl #0').
Add tests for diagnostics and proper encoding.
llvm-svn: 135990
|
| |
|
|
|
|
|
|
| |
isPALIGNRMask.
Addresses PR10466, although the crash from that PR only triggers in cases where DAGCombine misses optimizing a shuffle.
llvm-svn: 135980
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The .local, .hidden, .internal, and .protected are not legal for all supported
file formats (in particular, they're invalid for MachO). Move the parsing for
them into the ELF assembly parser since that's the format they're for.
Similarly, .weak is used by COFF and ELF, but not MachO, so move the parsing
to the COFF and ELF asm parsers. Previously, using any of these directives
on Darwin would result in an assertion failure in the parser; now we get
a diagnostic as we should.
rdar://9827089
llvm-svn: 135921
|
| |
|
|
|
|
|
|
|
|
|
| |
This fixes PR10463. A two-address instruction with an <undef> use
operand was incorrectly rewritten so the def and use no longer used the
same register, violating the tie constraint.
Fix this by always rewriting <undef> operands with the register a def
operand would use.
llvm-svn: 135885
|
| |
|
|
|
|
|
| |
so that a declaration for objc_retain is created when needed if it doesn't
already exist. rdar://9825114.
llvm-svn: 135821
|
| |
|
|
| |
llvm-svn: 135819
|
| |
|
|
| |
llvm-svn: 135818
|
| |
|
|
|
|
| |
Tests for SMULBB, SMLALBT, SMLALTB, SMLALTT, and SMULL. Fix parsing of SMULLS.
llvm-svn: 135817
|
| |
|
|
|
|
|
| |
Add tests for SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR,
SMMUL, SMMULR, SMUAD and SMUADX.
llvm-svn: 135810
|
| |
|
|
| |
llvm-svn: 135802
|
| |
|
|
|
|
| |
load folding logic
llvm-svn: 135801
|
| |
|
|
| |
llvm-svn: 135800
|
| |
|
|
|
|
|
| |
Tests for SMLAL, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, and SMLALDX
instructions.
llvm-svn: 135798
|
| |
|
|
|
|
| |
Fix parsing of carry-setting variant SMLALS and add tests.
llvm-svn: 135797
|
| |
|
|
|
|
| |
Fix encoding of destination register. Add tests.
llvm-svn: 135796
|
| |
|
|
| |
llvm-svn: 135795
|
| |
|
|
|
|
| |
too. Patch by Jeff Muizelaar.
llvm-svn: 135789
|
| |
|
|
| |
llvm-svn: 135782
|
| |
|
|
|
|
| |
Add tests for SHADD8, SHADD16, SHASX, SHSUB8, and SHSUB16.
llvm-svn: 135780
|
| |
|
|
|
|
|
| |
Add parsing and diagnostics for malformed inputs. Tests for diagnostics and
for correct encodings.
llvm-svn: 135776
|
| |
|
|
| |
llvm-svn: 135772
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and was actually very wrong, fix it and make it simpler. Also remove the
ConcatVectors function, which is unused now.
- Fix a introduction of useless nodes in r126664 and r126264. The
VUNPCKL* should never be introduced cause we don't want duplicate
nodes for 128 AVX and non-AVX modes, the actual instruction
difference only exists during isel, but not for target specific DAG
nodes. We only introduce V* target nodes when there is no 128-bit
version already there.
- Fix a fragile test and make it more useful.
llvm-svn: 135729
|
| |
|
|
| |
llvm-svn: 135728
|
| |
|
|
|
|
| |
vxorps + vinsertf128 pair of instructions
llvm-svn: 135727
|
| |
|
|
|
|
|
| |
size but different element types, so that it filters out the cases
that CreateShuffleVectorCast doesn't handle. This fixes rdar://9786827.
llvm-svn: 135721
|
| |
|
|
| |
llvm-svn: 135718
|
| |
|
|
| |
llvm-svn: 135715
|
| |
|
|
|
|
|
| |
Add two-operand instruction aliases. Add parsing and encoding tests for
variants of the instruction.
llvm-svn: 135713
|
| |
|
|
|
|
|
| |
Add two-operand instruction aliases. Add parsing and encoding tests for
variants of the instruction.
llvm-svn: 135712
|
| |
|
|
| |
llvm-svn: 135710
|
| |
|
|
| |
llvm-svn: 135709
|
| |
|
|
|
|
|
|
| |
Aliases for LDM/STM. The single-register versions should encode to LDR/STR
with writeback, but we don't (yet) get that correct. Neither does Darwin's
system assembler, though, so that's not a deal-breaker of a limitation.
llvm-svn: 135702
|
| |
|
|
| |
llvm-svn: 135696
|
| |
|
|
|
|
|
|
| |
- Add more bitcasts for v16i16
- Since 135661 and 135662 already added the splat logic,
just add one more splat test for v16i16
llvm-svn: 135663
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instruction introduced in AVX, which can operate on 128 and 256-bit vectors.
It considers a 256-bit vector as two independent 128-bit lanes. It can permute
any 32 or 64 elements inside a lane, and restricts the second lane to
have the same permutation of the first one. With the improved splat support
introduced early today, adding codegen for this instruction enable more
efficient 256-bit code:
Instead of:
vextractf128 $0, %ymm0, %xmm0
punpcklbw %xmm0, %xmm0
punpckhbw %xmm0, %xmm0
vinsertf128 $0, %xmm0, %ymm0, %ymm1
vinsertf128 $1, %xmm0, %ymm1, %ymm0
vextractf128 $1, %ymm0, %xmm1
shufps $1, %xmm1, %xmm1
movss %xmm1, 28(%rsp)
movss %xmm1, 24(%rsp)
movss %xmm1, 20(%rsp)
movss %xmm1, 16(%rsp)
vextractf128 $0, %ymm0, %xmm0
shufps $1, %xmm0, %xmm0
movss %xmm0, 12(%rsp)
movss %xmm0, 8(%rsp)
movss %xmm0, 4(%rsp)
movss %xmm0, (%rsp)
vmovaps (%rsp), %ymm0
We get:
vextractf128 $0, %ymm0, %xmm0
punpcklbw %xmm0, %xmm0
punpckhbw %xmm0, %xmm0
vinsertf128 $0, %xmm0, %ymm0, %ymm1
vinsertf128 $1, %xmm0, %ymm1, %ymm0
vpermilps $85, %ymm0, %ymm0
llvm-svn: 135662
|
| |
|
|
| |
llvm-svn: 135654
|
| |
|
|
|
|
| |
rdar://9786536
llvm-svn: 135650
|
| |
|
|
|
|
| |
rdar://9786536
llvm-svn: 135644
|
| |
|
|
|
|
| |
basic type to determine size and signness of the constant value.
llvm-svn: 135627
|
| |
|
|
|
|
| |
Operations" in LangRef.
llvm-svn: 135625
|
| |
|
|
| |
llvm-svn: 135607
|
| |
|
|
| |
llvm-svn: 135602
|
| |
|
|
| |
llvm-svn: 135600
|
| |
|
|
| |
llvm-svn: 135599
|
| |
|
|
|
|
|
| |
Correctly handle 's' bit and predication suffices. Add parsing and encoding
tests.
llvm-svn: 135596
|
| |
|
|
| |
llvm-svn: 135595
|
| |
|
|
|
|
|
|
| |
TargetLoweringObjectFileImpl down to MCObjectFileInfo.
TargetAsmInfo is done to one last method. It's *almost* gone!
llvm-svn: 135569
|
| |
|
|
| |
llvm-svn: 135568
|
| |
|
|
| |
llvm-svn: 135562
|
| |
|
|
| |
llvm-svn: 135559
|