- Aug 20, 2013
-
-
Andrew Kaylor authored
llvm-svn: 188736
-
Andrew Kaylor authored
llvm-svn: 188735
-
Andrew Kaylor authored
llvm-svn: 188734
-
Andrew Kaylor authored
llvm-svn: 188730
-
Hal Finkel authored
This adds a llvm.copysign intrinsic; We already have Libfunc recognition for copysign (which is turned into the FCOPYSIGN SDAG node). In order to autovectorize calls to copysign in the loop vectorizer, we need a corresponding intrinsic as well. In addition to the expected changes to the language reference, the loop vectorizer, BasicTTI, and the SDAG builder (the intrinsic is transformed into an FCOPYSIGN node, just like the function call), this also adds FCOPYSIGN to a few lists in LegalizeVector{Ops,Types} so that vector copysigns can be expanded. In TargetLoweringBase::initActions, I've made the default action for FCOPYSIGN be Expand for vector types. This seems correct for all in-tree targets, and I think is the right thing to do because, previously, there was no way to generate vector-values FCOPYSIGN nodes (and most targets don't specify an action for vector-typed FCOPYSIGN). llvm-svn: 188728
-
Hal Finkel authored
copysign/copysignf never become function calls (because the SDAG expansion code does not lower to the corresponding function call, but rather directly implements the associated logic), but copysignl almost always is lowered into a call to the requested libm functon (and, thus, might clobber CTR). llvm-svn: 188727
-
Andrew Kaylor authored
llvm-svn: 188726
-
Peter Collingbourne authored
llvm-svn: 188725
-
Jakub Staszak authored
llvm-svn: 188723
-
Matt Arsenault authored
llvm-svn: 188721
-
Matt Arsenault authored
llvm-svn: 188720
-
Matt Arsenault authored
llvm-svn: 188719
-
Jakub Staszak authored
llvm-svn: 188717
-
Andrew Kaylor authored
llvm-svn: 188715
-
- Aug 19, 2013
-
-
Matt Arsenault authored
Also fix it calculating the wrong value. The struct index is not a ConstantInt, so it was being interpreted as an array index. llvm-svn: 188713
-
Eric Christopher authored
llvm-svn: 188711
-
Matt Arsenault authored
Re-add the inboundsless tests I didn't add originally llvm-svn: 188710
-
Andrew Kaylor authored
llvm-svn: 188709
-
Eric Christopher authored
Until gdb supports the new accelerator tables we should add the pubnames section so that gdb_index can be generated from gold at link time. On darwin we already emit the accelerator tables and so don't need to worry about pubnames. llvm-svn: 188708
-
Reid Kleckner authored
Warning was: Argument not separated from preceding token by whitespace. llvm-svn: 188701
-
Paul Redmond authored
- split WidenVecRes_Binary into WidenVecRes_Binary and WidenVecRes_BinaryCanTrap - WidenVecRes_BinaryCanTrap preserves the original behaviour for operations that can trap - WidenVecRes_Binary simply widens the operation and improves codegen for 3-element vectors by allowing widening and promotion on x86 (matches the behaviour of unary and ternary operation widening) - use WidenVecRes_Binary for operations on integers. Reviewed by: nrotem llvm-svn: 188699
-
Andrew Kaylor authored
llvm-svn: 188697
-
Akira Hatanaka authored
llvm-svn: 188690
-
Jakub Staszak authored
futher commits. llvm-svn: 188689
-
Peter Collingbourne authored
Differential Revision: http://llvm-reviews.chandlerc.com/D1437 llvm-svn: 188688
-
Mihai Popa authored
The Thumb2 add immediate is in fact defined for SP. The manual is misleading as it points to a different section for add immediate with SP, however the encoding is the same as for add immediate with register only with the SP operand hard coded. As such add immediate with SP and add immediate with register can safely be treated as the same instruction. All the patch does is adjust a register constraint on an instruction alias. llvm-svn: 188676
-
Elena Demikhovsky authored
ADD, SUB, MUL integer and FP types. OR, AND, XOR. Added embeded broadcast form for these instructions. llvm-svn: 188673
-
Richard Sandiford authored
For now this matches the equivalent of (neg (abs ...)), which did hit a few times in projects/test-suite. We should probably also match cases where absolute-like selects are used with reversed arguments. llvm-svn: 188671
-
Richard Sandiford authored
llvm-svn: 188670
-
Richard Sandiford authored
This first cut is pretty conservative. The final argument register (R6) is call-saved, so we would need to make sure that the R6 argument to a sibling call is the same as the R6 argument to the calling function, which seems worth keeping as a separate patch. Saying that integer truncations are free means that we no longer use the extending instructions LGF and LLGF for spills in int-conv-09.ll and int-conv-10.ll. Instead we treat the registers as 64 bits wide and truncate them to 32-bits where necessary. I think it's unlikely we'd use LGF and LLGF for spills in other situations for the same reason, so I'm removing the tests rather than replacing them. The associated code is generic and applies to many more instructions than just LGF and LLGF, so there is no corresponding code removal. llvm-svn: 188669
-
Michael Kuperstein authored
* pow(x, 0.5) -> fabs(sqrt(x)) * pow(2.0, x) -> exp2(x) llvm-svn: 188656
-
Hal Finkel authored
We had previously been asserting when faced with a FCOPYSIGN f64, ppcf128 node because there was no way to expand the FCOPYSIGN node. Because ppcf128 is the sum of two doubles, and the first double must have the larger magnitude, we can take the sign from the first double. As a result, in addition to fixing the crash, this is also an optimization. llvm-svn: 188655
-
Elena Demikhovsky authored
llvm-svn: 188654
-
Hal Finkel authored
Modern PPC cores support a floating-point copysign instruction, and we can use this to lower the FCOPYSIGN node (which is created from calls to the libm copysign function). A couple of extra patterns are necessary because the operand types of FCOPYSIGN need not agree. llvm-svn: 188653
-
David Blaikie authored
This reduces the noise in diffs making it more likely that, at least for LLVM revision-over-revision, diffs will actually yield usable results. This is consistent with objdump's DWARF dumping behavior. llvm-svn: 188650
-
David Blaikie authored
We check this in many/all other cases, just missed this one it seems. Perhaps it'd be worth unifying this so we never emit zero-length DW_AT_names. llvm-svn: 188649
-
Peter Collingbourne authored
It turned out that I didn't need this for DFSan. llvm-svn: 188646
-
- Aug 18, 2013
-
-
Tim Northover authored
When patching inlineasm nodes to use GPRPair for 64-bit values, we were dropping the information that two operands were tied, which effectively broke the live-interval of vregs affected. llvm-svn: 188643
-
Elena Demikhovsky authored
llvm-svn: 188637
-
Craig Topper authored
llvm-svn: 188629
-