Ulrich Weigand
|
6a9bb51a8d
|
Enable some additional constant folding for PPCDoubleDouble.
This fixes Clang :: CodeGen/complex-builtints.c on PowerPC.
llvm-svn: 167013
|
2012-10-30 12:33:18 +00:00 |
Benjamin Kramer
|
9d03242fcf
|
InstCombine: Fix a crasher when encountering a function pointer.
llvm-svn: 162180
|
2012-08-18 22:04:34 +00:00 |
Benjamin Kramer
|
8c2a733c55
|
InstCombine: Add a couple of fabs identities for comparing with 0.0.
llvm-svn: 162174
|
2012-08-18 20:06:47 +00:00 |
Jim Grosbach
|
24ff834671
|
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
llvm-svn: 140869
|
2011-09-30 18:45:50 +00:00 |
Benjamin Kramer
|
5291054ef1
|
InstCombine: APFloat can't perform arithmetic on PPC double doubles, don't even try.
Thanks Eli!
llvm-svn: 128676
|
2011-03-31 21:35:49 +00:00 |
Benjamin Kramer
|
be209ab8a2
|
InstCombine: Fix transform to use the swapped predicate.
Thanks Frits!
llvm-svn: 128628
|
2011-03-31 10:46:03 +00:00 |
Benjamin Kramer
|
d159d94644
|
InstCombine: fold fcmp (fneg x), (fneg y) -> fcmp x, y
llvm-svn: 128627
|
2011-03-31 10:12:22 +00:00 |
Benjamin Kramer
|
a8c5d0872d
|
InstCombine: fold fcmp pred (fneg x), C -> fcmp swap(pred) x, -C
llvm-svn: 128626
|
2011-03-31 10:12:15 +00:00 |
Benjamin Kramer
|
cbb18e91a8
|
InstCombine: Shrink "fcmp (fpext x), C" to "fcmp x, C" if C can be losslessly converted to the type of x.
Fixes PR9592.
llvm-svn: 128625
|
2011-03-31 10:12:07 +00:00 |
Benjamin Kramer
|
2ccfbc8b71
|
InstCombine: fold fcmp (fpext x), (fpext y) -> fcmp x, y.
llvm-svn: 128624
|
2011-03-31 10:11:58 +00:00 |