- Aug 18, 2011
-
-
Akira Hatanaka authored
llvm-svn: 137892
-
Jim Grosbach authored
llvm-svn: 137891
-
Jim Grosbach authored
llvm-svn: 137889
-
Bruno Cardoso Lopes authored
shift amount is variable llvm-svn: 137885
-
- Aug 17, 2011
-
-
Jim Grosbach authored
llvm-svn: 137881
-
Jim Grosbach authored
Represent the operand value as it will be encoded in the instruction. This allows removing the specialized encoder and decoder methods entirely. Add an assembler match class while we're at it to lay groundwork for parsing the thumb shift instructions. llvm-svn: 137879
-
Jim Grosbach authored
llvm-svn: 137865
-
Jim Grosbach authored
llvm-svn: 137864
-
Jim Grosbach authored
llvm-svn: 137857
-
Jim Grosbach authored
llvm-svn: 137856
-
Akira Hatanaka authored
llvm-svn: 137848
-
Owen Anderson authored
llvm-svn: 137838
-
Akira Hatanaka authored
llvm-svn: 137831
-
Owen Anderson authored
Allow the MCDisassembler to return a "soft fail" status code, indicating an instruction that is disassemblable, but invalid. Only used for ARM UNPREDICTABLE instructions at the moment. Patch by James Molloy. llvm-svn: 137830
-
Bruno Cardoso Lopes authored
match splats in the form (splat (scalar_to_vector (load ...))) whenever the load can be folded. All the logic and instruction emission is working but because of PR8156, there are no ways to match loads, cause they can never be folded for splats. Thus, the tests are XFAILed, but I've tested and exercised all the logic using a relaxed version for checking the foldable loads, as if the bug was already fixed. This should work out of the box once PR8156 gets fixed since MayFoldLoad will work as expected. llvm-svn: 137810
-
Bruno Cardoso Lopes authored
llvm-svn: 137808
-
Bruno Cardoso Lopes authored
vinsertf128 $1 + vpermilps $0, remove the old code that used to first do the splat in a 128-bit vector and then insert it into a larger one. This is better because the handling code gets simpler and also makes a better room for the upcoming vbroadcast! llvm-svn: 137807
-
Akira Hatanaka authored
llvm-svn: 137804
-
Jim Grosbach authored
llvm-svn: 137788
-
Owen Anderson authored
Separate out Thumb1 instructions that need an S bit operand from those that do not, for the purposes of decoding them. llvm-svn: 137787
-
Jim Grosbach authored
llvm-svn: 137779
-
- Aug 16, 2011
-
-
Jim Grosbach authored
llvm-svn: 137774
-
Jim Grosbach authored
llvm-svn: 137759
-
Jim Grosbach authored
llvm-svn: 137756
-
Jim Grosbach authored
Thumb one requires that many arithmetic instruction forms have an 'S' suffix. For Thumb2, the whether the suffix is required or precluded depends on whether the instruction is in an IT block. Use target parser predicates to check for these sorts of context-sensitive constraints. llvm-svn: 137746
-
Bruno Cardoso Lopes authored
there is no support for native 256-bit shuffles, be more smart in some cases, for example, when you can extract specific 128-bit parts and use regular 128-bit shuffles for them. Example: For this shuffle: shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 1, i32 0, i32 7, i32 6> This was expanded to: vextractf128 $1, %ymm1, %xmm2 vpextrq $0, %xmm2, %rax vmovd %rax, %xmm1 vpextrq $1, %xmm2, %rax vmovd %rax, %xmm2 vpunpcklqdq %xmm1, %xmm2, %xmm1 vpextrq $0, %xmm0, %rax vmovd %rax, %xmm2 vpextrq $1, %xmm0, %rax vmovd %rax, %xmm0 vpunpcklqdq %xmm2, %xmm0, %xmm0 vinsertf128 $1, %xmm1, %ymm0, %ymm0 ret Now we get: vshufpd $1, %xmm0, %xmm0, %xmm0 vextractf128 $1, %ymm1, %xmm1 vshufpd $1, %xmm1, %xmm1, %xmm1 vinsertf128 $1, %xmm1, %ymm0, %ymm0 llvm-svn: 137733
-
Jim Grosbach authored
Patch by Kristof Beyls and James Malloy. llvm-svn: 137723
-
Akira Hatanaka authored
Mips1 does not support double precision loads or stores, therefore two single precision loads or stores must be used in place of these instructions. This patch treats double precision loads and stores as if they are legal instructions until MCInstLowering, instead of generating the single precision instructions during instruction selection or Prolog/Epilog code insertion. Without the changes made in this patch, llc produces code that has the same problem described in r137484 or bails out when MipsInstrInfo::storeRegToStackSlot or loadRegFromStackSlot is called before register allocation. llvm-svn: 137711
-
Akira Hatanaka authored
llvm-svn: 137707
-
Akira Hatanaka authored
llvm-svn: 137706
-
Owen Anderson authored
Specify a necessary fixed bit for VLD3DUP, and otherwise rearrange the Thumb2 NEON decoding hooks to bring us closer to correctness. llvm-svn: 137686
-
Bruno Cardoso Lopes authored
also add the AVX versions of the 128-bit patterns llvm-svn: 137685
-
Bruno Cardoso Lopes authored
predicate and TB encoding fields. This fix the encoding for the attached testcase. This fixes PR10625. llvm-svn: 137684
-
Jim Grosbach authored
Allow a target assembly parser to do context sensitive constraint checking on a potential instruction match. This will be used, for example, to handle Thumb2 IT block parsing. llvm-svn: 137675
-
- Aug 15, 2011
-
-
Bruno Cardoso Lopes authored
when AVX mode is one. Otherwise is just more work for the type legalizer. llvm-svn: 137661
-
Owen Anderson authored
Enforce the constraint that Rt must be even on LDRD/STRD instructions in ARM mode. Update tests to reflect this fact. Patch by James Molloy. llvm-svn: 137647
-
Owen Anderson authored
llvm-svn: 137643
-
Owen Anderson authored
llvm-svn: 137641
-
Owen Anderson authored
llvm-svn: 137636
-
Owen Anderson authored
Fix problems decoding the to/from-lane NEON memory instructions, and add a comprehensive NEON decoding testcase. llvm-svn: 137635
-