- Jan 16, 2012
-
-
Eli Friedman authored
llvm-svn: 148239
-
Craig Topper authored
llvm-svn: 148233
-
David Blaikie authored
llvm-svn: 148230
-
- Jan 15, 2012
-
-
Nadav Rotem authored
We know that the blend instructions only use the MSB, so if the mask is sign-extended then we can convert it into a SHL instruction. This is a common pattern because the type-legalizer sign-extends the i1 type which is used by the LLVM-IR for the condition. Added a new optimization in SimplifyDemandedBits for SIGN_EXTEND_INREG -> SHL. llvm-svn: 148225
-
Benjamin Kramer authored
llvm-svn: 148218
-
- Jan 14, 2012
-
-
Craig Topper authored
llvm-svn: 148196
-
Craig Topper authored
Add a bunch of AVX instructions to the folding tables. Also fixed the alignment on 256-bit AVX2 instructions. llvm-svn: 148194
-
Evan Cheng authored
live across BBs before register allocation. This miscompiled 197.parser when a cmp + b are optimized to a cbnz instruction even though the CPSR def is live-in a successor. cbnz r6, LBB89_12 ... LBB89_12: ble LBB89_1 The fix consists of two parts. 1) Teach LiveVariables that some unallocatable registers might be liveouts so don't mark their last use as kill if they are. 2) ARM constantpool island pass shouldn't form cbz / cbnz if the conditional branch does not kill CPSR. rdar://10676853 llvm-svn: 148168
-
Chad Rosier authored
llvm-svn: 148167
-
- Jan 13, 2012
-
-
Jakob Stoklund Olesen authored
The QQ and QQQQ registers are not 'real', they are pseudo-registers used to model some vld and vst instructions. This makes the call clobber lists longer, but I intend to get rid of those soon. llvm-svn: 148151
-
Devang Patel authored
Revert r148131, it was committed before it was ready. llvm-svn: 148134
-
Devang Patel authored
llvm-svn: 148131
-
Craig Topper authored
Convert SHUFPD with the same register for both sources to PSHUFD if it would prevent a register copy. Similar to SHUFPS, but requires the mask to be converted. llvm-svn: 148112
-
Craig Topper authored
llvm-svn: 148109
-
Craig Topper authored
Make X86 instruction selection use 256-bit VPXOR for build_vector of all ones if AVX2 is enabled. This gives the ExeDepsFix pass a chance to choose FP vs int as appropriate. Also use v8i32 as the type for getZeroVector if AVX2 is enabled. This is consistent with SSE2 using prefering v4i32. llvm-svn: 148108
-
Craig Topper authored
llvm-svn: 148106
-
Andrew Trick authored
llvm-svn: 148105
-
Craig Topper authored
llvm-svn: 148101
-
Craig Topper authored
Fix typo in PerformAddCombine that caused any vector type to be checked for horizontal add/sub if AVX2 is enabled. This caused an assert to fail for non 128/256-bit vectors when done before type legalizing. Fixes PR11749. llvm-svn: 148096
-
Bill Wendling authored
llvm-svn: 148077
-
Bill Wendling authored
The registers are placed into the saved registers list in the reverse order, which is why the original loop was written to loop backwards. llvm-svn: 148064
-
- Jan 12, 2012
-
-
Elena Demikhovsky authored
lc: X86ISelLowering.cpp:6480: llvm::SDValue llvm::X86TargetLowering::LowerVECTOR_SHUFFLE(llvm::SDValue, llvm::SelectionDAG&) const: Assertion `V1.getOpcode() != ISD::UNDEF&& "Op 1 of shuffle should not be undef"' failed. Added a test. llvm-svn: 148044
-
Rafael Espindola authored
This patch uses tcb_spare field in the tcb structure to store info. Patch by Jyun-Yan You. llvm-svn: 148041
-
Rafael Espindola authored
Uses the pvArbitrary slot of the TIB, which is reserved for applications. We only support frames with a static size. llvm-svn: 148040
-
Devang Patel authored
We are using one parser to parse att as well as intel style syntax. llvm-svn: 148032
-
Benjamin Kramer authored
Restore the (obviously wrong) behavior from before r147938 without relying on undefined behavior. Add a fat FIXME note. This should fix nightly tester failures. llvm-svn: 148030
-
Nadav Rotem authored
Fix a bug in the AVX 256-bit shuffle code in cases where the splat element is on the boundary of two 128-bit vectors. The attached testcase was stuck in an endless loop. llvm-svn: 148027
-
Benjamin Kramer authored
X86: Generalize the x << (y & const) optimization to also catch masks with more set bits set than 31 or 63. llvm-svn: 148024
-
Devang Patel authored
In att style asm syntax memory operand size is derived from suffix attached with mnemonic. In intel style asm syntax it is part of memory operand hence predicate method check is required to select appropriate instruction. llvm-svn: 148006
-
Devang Patel authored
This is a work in progress. llvm-svn: 148002
-
Chandler Carruth authored
same pattern. We already had this pattern is a few places, but others tried to make a rough approximation of an actual DAG structure. As not everywhere went to this trouble, nothing could rely on this being done. In fact, I've checked all references to these node Ids, and the ones that are using the topo-sort properties are actually satisfied with a strict-weak-ordering. The requirement appears to be that Use >= Def. I've added a big blurb of comments to this bit of the transform to clarify why the order is so important for the next reader of the code. I'm starting with this change as it is very small, and trivially reverted if something breaks or the >= above really does need to be >. If that proves the case, we can hide the problem by reverting this patch, but the problem exists elsewhere as well, and so a more comprehensive solution will be needed. llvm-svn: 148001
-
- Jan 11, 2012
-
-
Eric Christopher authored
llvm-svn: 147966
-
Rafael Espindola authored
This uses TLS slot 90, which actually belongs to JavaScriptCore. We only support frames with static size Patch by Brian Anderson. llvm-svn: 147960
-
Rafael Espindola authored
Patch by Brian Anderson. llvm-svn: 147958
-
Chandler Carruth authored
hoped this would revive one of the llvm-gcc selfhost build bots, but it didn't so it doesn't appear that my transform is the culprit. If anyone else is seeing failures, please let me know! llvm-svn: 147957
-
Rafael Espindola authored
This is a comparison of two addresses, and GCC does the comparison unsigned. Patch by Brian Anderson. llvm-svn: 147954
-
Rafael Espindola authored
Patch by Brian Anderson. llvm-svn: 147952
-
Jan Sjödin authored
llvm-svn: 147949
-
Nadav Rotem authored
Fix a bug in the lowering of BUILD_VECTOR for AVX. SCALAR_TO_VECTOR does not zero untouched elements. Use INSERT_VECTOR_ELT instead. llvm-svn: 147948
-
Chandler Carruth authored
strange build bot failures that look like a miscompile into an infloop. I'll investigate this tomorrow, but I'd both like to know whether my patch is the culprit, and get the bots back to green. llvm-svn: 147945
-