| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 362234
|
|
|
|
|
|
|
|
| |
The reversion apparently deleted the test/Transforms directory.
Will be re-reverting again.
llvm-svn: 358552
|
|
|
|
|
|
|
|
| |
As it's causing some bot failures (and per request from kbarton).
This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.
llvm-svn: 358546
|
|
|
|
|
|
|
| |
By morphing the instruction rather than deleting and creating a new one,
we retain fast-math-flags and potentially other metadata (profile info?).
llvm-svn: 346331
|
|
|
|
|
|
|
|
|
| |
That should be the end of the missing cases for this fold.
See earlier patches in this series:
rL346321
rL346324
llvm-svn: 346327
|
|
|
|
| |
llvm-svn: 346325
|
|
|
|
|
|
|
|
| |
Similar to rL346321, we had folds for the ordered
versions of these compares already, so add the
unordered siblings for completeness.
llvm-svn: 346324
|
|
|
|
| |
llvm-svn: 346323
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The sibling fold for 'oge' --> 'ord' was already here,
but this half was missing.
The result of fabs() must be positive or nan, so asking
if the result is negative or nan is the same as asking
if the result is nan.
This is another step towards fixing:
https://bugs.llvm.org/show_bug.cgi?id=39475
llvm-svn: 346321
|
|
|
|
| |
llvm-svn: 346320
|
|
|
|
| |
llvm-svn: 346317
|
|
|
|
| |
llvm-svn: 346245
|
|
|
|
| |
llvm-svn: 346243
|
|
|
|
| |
llvm-svn: 346242
|
|
|
|
| |
llvm-svn: 346240
|
|
|
|
| |
llvm-svn: 346239
|
|
|
|
| |
llvm-svn: 346238
|
|
|
|
|
|
| |
Also, remove some stale FIXME comments ( rL346234 ).
llvm-svn: 346236
|
|
|
|
|
|
|
|
|
|
| |
This is another part of solving PR39475:
https://bugs.llvm.org/show_bug.cgi?id=39475
This might be enough to fix that particular issue, but as noted
with the FIXME, we're still dropping FMF on other folds around here.
llvm-svn: 346234
|
|
|
|
| |
llvm-svn: 346232
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As stated in IEEE-754 and discussed in:
https://bugs.llvm.org/show_bug.cgi?id=38086
...the sign of zero does not affect any FP compare predicate.
Known regressions were fixed with:
rL346097 (D54001)
rL346143
The transform will help reduce pattern-matching complexity to solve:
https://bugs.llvm.org/show_bug.cgi?id=39475
...as well as improve CSE and codegen (a zero constant is almost always
easier to produce than 0x80..00).
llvm-svn: 346147
|
|
|
|
|
|
|
| |
Also, remove/replace/minimize/enhance the tests for this fold.
The code drops FMF, so it needs more tests and at least 1 fix.
llvm-svn: 345734
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When C is not zero and infinites are not allowed (C / X) > 0 is a sign
test. Depending on the sign of C, the predicate must be swapped.
E.g.:
foo(double X) {
if ((-2.0 / X) <= 0) ...
}
=>
foo(double X) {
if (X >= 0) ...
}
Patch by: @marels (Martin Elshuber)
Differential Revision: https://reviews.llvm.org/D51942
llvm-svn: 343228
|
|
|
|
|
|
|
| |
These are baseline tests for D51942.
Patch by: @marels (Martin Elshuber)
llvm-svn: 343222
|
|
|
|
|
|
|
|
|
| |
Using cstfp_pred_ty in the definition allows us to match vectors with undef elements.
This replicates the change for m_Not from D44076 / rL326823 and continues
towards making all pattern matchers allow undef elements in vectors.
llvm-svn: 329303
|
|
|
|
| |
llvm-svn: 329294
|
|
|
|
|
|
| |
I moved this test to 'not.ll' in r299824 but accidentally added a copy here.
llvm-svn: 299828
|
|
|
|
|
|
| |
Also, move a test next to its sibling to eliminate a file with just one test.
llvm-svn: 299824
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
See the two test cases.
; Can fold fcmp with undef on one side by choosing NaN for the undef
; Can fold fcmp with undef on both side
; fcmp u_pred undef, undef -> true
; fcmp o_pred undef, undef -> false
; because whatever you choose for the first undef
; you can choose NaN for the other undef
Reviewers: hfinkel, chandlerc, majnemer
Reviewed By: majnemer
Subscribers: majnemer, llvm-commits
Differential Revision: http://reviews.llvm.org/D7617
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 231626
|
|
|
|
|
|
|
| |
This was only handling the libcall. This is another example
of why only the intrinsic should ever be used when it exists.
llvm-svn: 225465
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
functionality change.
This update was done with the following bash script:
find test/Transforms -name "*.ll" | \
while read NAME; do
echo "$NAME"
if ! grep -q "^; *RUN: *llc" $NAME; then
TEMP=`mktemp -t temp`
cp $NAME $TEMP
sed -n "s/^define [^@]*@\([A-Za-z0-9_]*\)(.*$/\1/p" < $NAME | \
while read FUNC; do
sed -i '' "s/;\(.*\)\([A-Za-z0-9_]*\):\( *\)@$FUNC\([( ]*\)\$/;\1\2-LABEL:\3@$FUNC(/g" $TEMP
done
mv $TEMP $NAME
fi
done
llvm-svn: 186268
|
|
|
|
|
|
| |
This fixes Clang :: CodeGen/complex-builtints.c on PowerPC.
llvm-svn: 167013
|
|
|
|
| |
llvm-svn: 162180
|
|
|
|
| |
llvm-svn: 162174
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
InstCombine was incorrectly considering the conversion of the constant
zero to be unsafe.
We want to transform:
define float @bar(float %x) nounwind readnone optsize ssp {
%conv = fpext float %x to double
%cmp = fcmp olt double %conv, 0.000000e+00
%conv1 = zext i1 %cmp to i32
%conv2 = sitofp i32 %conv1 to float
ret float %conv2
}
Into:
define float @bar(float %x) nounwind readnone optsize ssp {
%cmp = fcmp olt float %x, 0.000000e+00 ; <---- This
%conv1 = zext i1 %cmp to i32
%conv2 = sitofp i32 %conv1 to float
ret float %conv2
}
rdar://10215914
llvm-svn: 140869
|
|
|
|
|
|
|
|
| |
even try.
Thanks Eli!
llvm-svn: 128676
|
|
|
|
|
|
| |
Thanks Frits!
llvm-svn: 128628
|
|
|
|
| |
llvm-svn: 128627
|
|
|
|
| |
llvm-svn: 128626
|
|
|
|
|
|
|
|
| |
losslessly converted to the type of x.
Fixes PR9592.
llvm-svn: 128625
|
|
llvm-svn: 128624
|