[GVNSink] Add unary FNeg support to GVNSink pass

Differential Revision: https://reviews.llvm.org/D63900

llvm-svn: 364678
diff --git a/llvm/lib/Transforms/Scalar/GVNSink.cpp b/llvm/lib/Transforms/Scalar/GVNSink.cpp
index 735f683..0540257 100644
--- a/llvm/lib/Transforms/Scalar/GVNSink.cpp
+++ b/llvm/lib/Transforms/Scalar/GVNSink.cpp
@@ -441,6 +441,7 @@
       break;
     case Instruction::Call:
     case Instruction::Invoke:
+    case Instruction::FNeg:
     case Instruction::Add:
     case Instruction::FAdd:
     case Instruction::Sub:
diff --git a/llvm/test/Transforms/GVNSink/fpmath.ll b/llvm/test/Transforms/GVNSink/fpmath.ll
index 15d8684..69e3a24 100644
--- a/llvm/test/Transforms/GVNSink/fpmath.ll
+++ b/llvm/test/Transforms/GVNSink/fpmath.ll
@@ -1,8 +1,9 @@
 ; RUN: opt -S < %s -gvn-sink | FileCheck %s
 
 ; CHECK-LABEL: sink
-; CHECK: fneg
+; CHECK-NOT: fneg
 ; CHECK: = phi
+; CHECK: fneg
 define float @sink(float %a, float %b, i1 %cmp) {
 entry:
   br i1 %cmp, label %if.then, label %if.else