Fix isNegatibleForFree to not return true for ConstantFP nodes

after legalize.  Just because a constant is legal (e.g. 0.0 in SSE) 
doesn't mean that its negated value is legal (-0.0).  We could make
this stronger by checking to see if the negated constant is actually
legal post negation, but it doesn't seem like a big deal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47591 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2008-02-26 07:04:54 +00:00
parent 9bf12b5583
commit 0254e7033a
2 changed files with 61 additions and 33 deletions

View File

@@ -0,0 +1,14 @@
; RUN: llvm-as < %s | llc
; rdar://5763967
define void @test() {
entry:
%tmp98 = load float* null, align 4 ; <float> [#uses=1]
%tmp106 = load float* null, align 4 ; <float> [#uses=1]
%tmp113 = add float %tmp98, %tmp106 ; <float> [#uses=1]
%tmp119 = sub float %tmp113, 0.000000e+00 ; <float> [#uses=1]
call void (i32, ...)* @foo( i32 0, float 0.000000e+00, float %tmp119 ) nounwind
ret void
}
declare void @foo(i32, ...)