; RUN: opt -gvn-hoist -S < %s | FileCheck %s | |
; CHECK: store | |
; CHECK-NOT: store | |
; Check that an instruction can be hoisted to a basic block | |
; with more than two successors. | |
@G = external global i32, align 4 | |
define void @foo(i32 %c1) { | |
entry: | |
switch i32 %c1, label %exit1 [ | |
i32 0, label %sw0 | |
i32 1, label %sw1 | |
] | |
sw0: | |
store i32 1, i32* @G | |
br label %exit | |
sw1: | |
store i32 1, i32* @G | |
br label %exit | |
exit1: | |
store i32 1, i32* @G | |
ret void | |
exit: | |
ret void | |
} |