blob: 0ea773654c4de8af8dba8ecbaf5d636bbf0f325e [file] [log] [blame]
Dan Gohman2c74fe92017-11-08 21:59:51 +00001; RUN: opt -S < %s -gvn-sink | FileCheck %s
2
3declare void @llvm.sideeffect()
4
5; GVN sinking across a @llvm.sideeffect.
6
7; CHECK-LABEL: scalarsSinking
8; CHECK-NOT: fmul
9; CHECK: = phi
10; CHECK: = fmul
11define float @scalarsSinking(float %d, float %m, float %a, i1 %cmp) {
12entry:
13 br i1 %cmp, label %if.then, label %if.else
14
15if.then:
16 call void @llvm.sideeffect()
17 %sub = fsub float %m, %a
18 %mul0 = fmul float %sub, %d
19 br label %if.end
20
21if.else:
22 %add = fadd float %m, %a
23 %mul1 = fmul float %add, %d
24 br label %if.end
25
26if.end:
27 %phi = phi float [ %mul0, %if.then ], [ %mul1, %if.else ]
28 ret float %phi
29}
30