| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 135558
|
| |
|
|
| |
llvm-svn: 135537
|
| |
|
|
| |
llvm-svn: 135535
|
| |
|
|
| |
llvm-svn: 135534
|
| |
|
|
|
|
|
|
| |
The system register spec should be case insensitive. The preferred form for
output with mask values of 4, 8, and 12 references APSR rather than CPSR.
Update and tidy up tests accordingly.
llvm-svn: 135532
|
| |
|
|
|
|
|
| |
Teach the parser to recognize the APSR and SPSR system register names. Add
and update tests accordingly.
llvm-svn: 135527
|
| |
|
|
|
|
| |
Add range checking to the immediate operands. Update tests accordingly.
llvm-svn: 135521
|
| |
|
|
|
|
| |
ANDi, when the instruction does not have any immediate operands.
llvm-svn: 135520
|