- Apr 02, 2012
-
-
Benjamin Kramer authored
All implementations used the same code. llvm-svn: 153866
-
Craig Topper authored
Remove getInstructionName from MCInstPrinter implementations in favor of using the instruction name table from MCInstrInfo. Reduces static data in the InstPrinter implementations. llvm-svn: 153863
-
Craig Topper authored
Make MCInstrInfo available to the MCInstPrinter. This will be used to remove getInstructionName and the static data it contains since the same tables are already in MCInstrInfo. llvm-svn: 153860
-
- Apr 01, 2012
-
-
Nadav Rotem authored
1. Simplify xor/and/or (bitcast(A), bitcast(B)) -> bitcast(op (A,B)) (and also scalar_to_vector). 2. Xor/and/or are indifferent to the swizzle operation (shuffle of one src). Simplify xor/and/or (shuff(A), shuff(B)) -> shuff(op (A, B)) 3. Optimize swizzles of shuffles: shuff(shuff(x, y), undef) -> shuff(x, y). 4. Fix an X86ISelLowering optimization which was very bitcast-sensitive. Code which was previously compiled to this: movd (%rsi), %xmm0 movdqa .LCPI0_0(%rip), %xmm2 pshufb %xmm2, %xmm0 movd (%rdi), %xmm1 pshufb %xmm2, %xmm1 pxor %xmm0, %xmm1 pshufb .LCPI0_1(%rip), %xmm1 movd %xmm1, (%rdi) ret Now compiles to this: movl (%rsi), %eax xorl %eax, (%rdi) ret llvm-svn: 153848
-
- Mar 31, 2012
-
-
Benjamin Kramer authored
It's slow, bloated and completely redundant with MCRegisterClass::contains. llvm-svn: 153782
-
- Mar 30, 2012
-
-
Benjamin Kramer authored
llvm-svn: 153741
-
- Mar 29, 2012
-
-
Lang Hames authored
llvm-svn: 153680
-
Benjamin Kramer authored
Replace assert(0) with llvm_unreachable to avoid warnings about dropping off the end of a non-void function in Release builds. llvm-svn: 153643
-
Craig Topper authored
Only allow symbolic names for (v)cmpss/sd/ps/pd encodings 8-31 to be used with 'v' version of instructions. llvm-svn: 153636
-
Joel Jones authored
This is a code change to add support for changing instruction sequences of the form: load inc/dec of 8/16/32/64 bits store into the appropriate X86 inc/dec through memory instruction: inc[qlwb] / dec[qlwb] The checks that were in X86DAGToDAGISel::Select(SDNode *Node)>>ISD::STORE have been extracted to isLoadIncOrDecStore and reworked to use the better named wrappers for getOperand(unsigned) (e.g. getOffset()) and replaced Chain.getNode() with LoadNode. The comments have also been expanded. llvm-svn: 153635
-
Joel Jones authored
llvm-svn: 153623
-
Joel Jones authored
This is a code change to add support for changing instruction sequences of the form: load inc/dec of 8/16/32/64 bits store into the appropriate X86 inc/dec through memory instruction: inc[qlwb] / dec[qlwb] The checks that were in X86DAGToDAGISel::Select(SDNode *Node)>>ISD::STORE have been extracted to isLoadIncOrDecStore and reworked to use the better named wrappers for getOperand(unsigned) (e.g. getOffset()) and replaced Chain.getNode() with LoadNode. The comments have also been expanded. llvm-svn: 153617
-
- Mar 27, 2012
-
-
Craig Topper authored
llvm-svn: 153502
-
Craig Topper authored
llvm-svn: 153500
-
- Mar 21, 2012
-
-
Joerg Sonnenberger authored
llvm-svn: 153185
-
Benjamin Kramer authored
llvm-svn: 153184
-
Joerg Sonnenberger authored
the invalid cases. At least 16bit operand in 64bit mode is currently not rejected in the parser. llvm-svn: 153166
-
Craig Topper authored
Spacing fixes and using 'unsigned' instead of 'int' to index to select shuffle elements for consistency with other shuffle code in X86 backend. llvm-svn: 153154
-
- Mar 20, 2012
-
-
Chad Rosier authored
vextractf128 with 128-bit mem dest. Combines vextractf128 $0, %ymm0, %xmm0 vmovaps %xmm0, (%rdi) to vextractf128 $0, %ymm0, (%rdi) rdar://11082570 llvm-svn: 153139
-
Chad Rosier authored
precedence over the VINSERTF128 avx1 patterns. llvm-svn: 153114
-
Chad Rosier authored
llvm-svn: 153105
-
Chad Rosier authored
whitespace from test case. No functional change intended. llvm-svn: 153103
-
Chad Rosier authored
This results in things such as vmovups 16(%rdi), %xmm0 vinsertf128 $1, %xmm0, %ymm0, %ymm0 to be combined to vinsertf128 $1, 16(%rdi), %ymm0, %ymm0 rdar://11076953 llvm-svn: 153092
-
Craig Topper authored
Remove code that prevented lowering shuffles if they are used by load and themselves used by a extract_vector_elt. This was done to allow the DAG combiner to collapse to a single element load. Unfortunately, sometimes the extract_vector_elt would disappear before DAG combine could do the transformation leaving a vector_shuffle that isel couldn't handle. New code lets the shuffle be converted to a target specific node, but then adds a combine routine that can convert target specific nodes back to vector_shuffles if the folding criteria are met. llvm-svn: 153080
-
Craig Topper authored
Factor out target shuffle mask decoding from getShuffleScalarElt and use a SmallVector of int instead of unsigned for shuffle mask in decode functions. Preparation for another change. llvm-svn: 153079
-
- Mar 19, 2012
-
-
Preston Gurd authored
X86InstrCompiler.td. It also adds –mcpu-generic to the legalize-shift-64.ll test so the test will pass if run on an Intel Atom CPU, which would otherwise produce an instruction schedule which differs from that which the test expects. llvm-svn: 153033
-
Benjamin Kramer authored
llvm-svn: 153031
-
- Mar 18, 2012
-
-
Craig Topper authored
llvm-svn: 153027
-
- Mar 17, 2012
-
-
Craig Topper authored
Reorder includes in Target backends to following coding standards. Remove some superfluous forward declarations. llvm-svn: 152997
-
- Mar 15, 2012
-
-
Chad Rosier authored
This results in things such as vmovaps -96(%rbx), %xmm1 vinsertf128 $1, %xmm1, %ymm0, %ymm0 to be combined to vinsertf128 $1, -96(%rbx), %ymm0, %ymm0 rdar://10643481 llvm-svn: 152762
-
- Mar 13, 2012
-
-
Kevin Enderby authored
instruction's destination operand like it does for the source operand. Also fix a typo in the comment for X86AsmParser::isSrcOp(). llvm-svn: 152654
-
- Mar 12, 2012
-
-
Kevin Enderby authored
registers not both being 64-bit or both being 32-bit registers. llvm-svn: 152580
-
- Mar 11, 2012
-
-
Craig Topper authored
llvm-svn: 152538
-
- Mar 10, 2012
-
-
Kay Tiong Khoo authored
llvm-svn: 152507
-
Benjamin Kramer authored
llvm-svn: 152495
-
Bill Wendling authored
Patch by Kay Tiong Khoo! llvm-svn: 152487
-
- Mar 09, 2012
-
-
Kevin Enderby authored
llvm-svn: 152443
-
Kevin Enderby authored
prefix. Added a FIXME to remind us this still does not work when it is not the first prefix. llvm-svn: 152414
-
Craig Topper authored
llvm-svn: 152391
-
Chad Rosier authored
Original commit message from r147481: DAGCombine for transforming 128->256 casts into a vmovaps, rather then a vxorps + vinsertf128 pair if the original vector came from a load. Fix: Unaligned loads need to generate a vmovups. rdar://10974078 llvm-svn: 152366
-