- Oct 09, 2013
-
-
Andrew Trick authored
This was only working because AVX had cheaper rules in all cases. I'm sure there are other places in this file where predicates are missing. llvm-svn: 192276
-
Craig Topper authored
Replace a couple instructions with patterns referring to other instructions with same encoding and operands. Mark a couple other instructions as CodeGenOnly since we have FR and VR instructions and only one of them is needed by the assembler/disassembler. llvm-svn: 192274
-
Craig Topper authored
Use AVX512PIi8 for the alt forms of vcmp instructions. This adds the TB prefix and keeps the mnemonic from starting with an extra 'v' llvm-svn: 192272
-
Craig Topper authored
Mark some instructions as CodeGenOnly since they aren't needed by the assembler or disassembler. Disassembler already filtered them, but asm parser still had them in its tables. llvm-svn: 192271
-
Craig Topper authored
Add in64BitMode/in32BitMode to the MMX/SSE2/AVX maskmovq/dq instructions. This way the asm parser will pick the right one based on the mode. Instruction selection already did the right thing based on the pointer size. llvm-svn: 192266
-
- Oct 08, 2013
-
-
Rafael Espindola authored
This patch fixes an old FIXME by creating a MCTargetStreamer interface and moving the target specific functions for ARM, Mips and PPC to it. The ARM streamer is still declared in a common place because it is used from lib/CodeGen/ARMException.cpp, but the Mips and PPC are completely hidden in the corresponding Target directories. I will send an email to llvmdev with instructions on how to use this. llvm-svn: 192181
-
Craig Topper authored
Remove unneeded MMX instruction definition by moving pattern to an equivalent instruction definition and removing the filtering from the disassembler table building. llvm-svn: 192175
-
Craig Topper authored
Remove some instructions that existed to provide aliases to the assembler. Can be done with InstAlias instead. Unfortunately, this was causing printer to use 'vmovq' or 'vmovd' based on what was parsed. To cleanup the inconsistencies convert all 'vmovd' with 64-bit registers to 'vmovq', but provide an alias so that 'vmovd' will still parse. llvm-svn: 192171
-
- Oct 07, 2013
-
-
Benjamin Kramer authored
Fixes PR17495, where an i24 triggered this code. It's intended to optimize i64 loads on 32 bit x86. llvm-svn: 192123
-
Rafael Espindola authored
They haven't been used for a long time. Patch by MathOnNapkins. llvm-svn: 192099
-
Craig Topper authored
Remove some instructions that seem to only exist to trick the filtering checks in the disassembler table creation. Just fix up the filter to let the real instruction through instead. llvm-svn: 192090
-
Craig Topper authored
llvm-svn: 192089
-
Craig Topper authored
Teach X86 asm parser that VMOVAPSrr and other VEX-encoded register to register moves should be switched from using the MRMSrcReg form to the MRMDestReg form if the source register is a 64-bit extended register and the destination register is not. This allows the instruction to be encoded using the 2-byte VEX form instead of the 3-byte VEX form. The GNU assembler has similar behavior and instruction selection already does this. llvm-svn: 192088
-
Craig Topper authored
llvm-svn: 192086
-
- Oct 06, 2013
-
-
Benjamin Kramer authored
Regalloc can emit unaligned spills nowadays, but we can't fold the spills into SSE ops if we can't guarantee alignment. PR12250. llvm-svn: 192064
-
Elena Demikhovsky authored
Fixed load folding in VPERM2I instruction. llvm-svn: 192063
-
Elena Demikhovsky authored
in case of BLEND and added VSHUFPS patterns. llvm-svn: 192055
-
- Oct 05, 2013
-
-
Craig Topper authored
llvm-svn: 192046
-
Nick Lewycky authored
are directly tied to the flag names in clang with no remapping in between? llvm-svn: 192044
-
Craig Topper authored
llvm-svn: 192040
-
Craig Topper authored
llvm-svn: 192039
-
Craig Topper authored
llvm-svn: 192037
-
- Oct 03, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 191889
-
Craig Topper authored
llvm-svn: 191880
-
Craig Topper authored
llvm-svn: 191877
-
Craig Topper authored
llvm-svn: 191874
-
Craig Topper authored
llvm-svn: 191871
-
- Oct 02, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 191818
-
Elena Demikhovsky authored
otherwise encoding fails after the last change in X86MCCodeEmitter.cpp. llvm-svn: 191812
-
- Oct 01, 2013
-
-
Rafael Espindola authored
Patch by Alp Toker. llvm-svn: 191757
-
Elena Demikhovsky authored
llvm-svn: 191733
-
Craig Topper authored
llvm-svn: 191732
-
Craig Topper authored
llvm-svn: 191731
-
Craig Topper authored
llvm-svn: 191728
-
Preston Gurd authored
llvm-svn: 191715
-
Preston Gurd authored
on ADD16rr opcodes, if src1 != src, since that would cause convertToThreeAddress to try to create a virtual register. This is not permitted after register allocation, which is when the X86FixupLEAs pass runs. This patch fixes PR16785. llvm-svn: 191711
-
- Sep 30, 2013
-
-
Craig Topper authored
Add VEX_LIG to scalar FMA4 instructions. Use VEX_LIG in some of the inheriting checks in disassembler table generator. Make use of VEX_L_W, VEX_L_W_XS, VEX_L_W_XD contexts. Don't let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from their non-L forms unless VEX_LIG is set. Let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from all of their non-L or non-W cases. Increase ranking on VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE so they get chosen over non-L/non-W forms. llvm-svn: 191649
-
- Sep 29, 2013
-
-
Craig Topper authored
llvm-svn: 191632
-
Craig Topper authored
llvm-svn: 191630
-
- Sep 28, 2013
-
-
Robert Wilhelm authored
llvm-svn: 191610
-