Benjamin Kramer
|
a4b5717ea7
|
InstCombine: Fix a crasher when encountering a function pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162180 91177308-0d34-0410-b5e6-96231b3b80d8
|
2012-08-18 22:04:34 +00:00 |
|
Benjamin Kramer
|
00abcd3da0
|
InstCombine: Add a couple of fabs identities for comparing with 0.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162174 91177308-0d34-0410-b5e6-96231b3b80d8
|
2012-08-18 20:06:47 +00:00 |
|
Jim Grosbach
|
cbf676b3ba
|
float comparison to double 'zero' constant can just be a float 'zero.'
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140869 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 18:45:50 +00:00 |
|
Benjamin Kramer
|
7ebdc37d2b
|
InstCombine: APFloat can't perform arithmetic on PPC double doubles, don't even try.
Thanks Eli!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128676 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 21:35:49 +00:00 |
|
Benjamin Kramer
|
00e00d693c
|
InstCombine: Fix transform to use the swapped predicate.
Thanks Frits!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128628 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 10:46:03 +00:00 |
|
Benjamin Kramer
|
68b4bd0a63
|
InstCombine: fold fcmp (fneg x), (fneg y) -> fcmp x, y
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128627 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 10:12:22 +00:00 |
|
Benjamin Kramer
|
0db50189dc
|
InstCombine: fold fcmp pred (fneg x), C -> fcmp swap(pred) x, -C
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128626 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 10:12:15 +00:00 |
|
Benjamin Kramer
|
b194bdc03b
|
InstCombine: Shrink "fcmp (fpext x), C" to "fcmp x, C" if C can be losslessly converted to the type of x.
Fixes PR9592.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128625 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 10:12:07 +00:00 |
|
Benjamin Kramer
|
cd0274ca18
|
InstCombine: fold fcmp (fpext x), (fpext y) -> fcmp x, y.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128624 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-03-31 10:11:58 +00:00 |
|