xref: /llvm-project/llvm/test/Transforms/GVNSink/fpmath.ll (revision 0676acb6fd8d5e22fde16e6ec977ceac08427ab0)
1*0676acb6SBjorn Pettersson; RUN: opt -S < %s -passes=gvn-sink | FileCheck %s
230cab5d6SCameron McInally
330cab5d6SCameron McInally; CHECK-LABEL: sink
4ab4b2364SCameron McInally; CHECK-NOT: fneg
530cab5d6SCameron McInally; CHECK: = phi
6ab4b2364SCameron McInally; CHECK: fneg
730cab5d6SCameron McInallydefine float @sink(float %a, float %b, i1 %cmp) {
830cab5d6SCameron McInallyentry:
930cab5d6SCameron McInally  br i1 %cmp, label %if.then, label %if.else
1030cab5d6SCameron McInally
1130cab5d6SCameron McInallyif.then:
1230cab5d6SCameron McInally  %sub = fsub float %a, %b
1330cab5d6SCameron McInally  %neg0 = fneg float %sub
1430cab5d6SCameron McInally  br label %if.end
1530cab5d6SCameron McInally
1630cab5d6SCameron McInallyif.else:
1730cab5d6SCameron McInally  %add = fadd float %a, %b
1830cab5d6SCameron McInally  %neg1 = fneg float %add
1930cab5d6SCameron McInally  br label %if.end
2030cab5d6SCameron McInally
2130cab5d6SCameron McInallyif.end:
2230cab5d6SCameron McInally  %phi = phi float [ %neg0, %if.then ], [ %neg1, %if.else ]
2330cab5d6SCameron McInally  ret float %phi
2430cab5d6SCameron McInally}
25