| ; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br |
| |
| declare void %foo1() |
| declare void %foo2() |
| |
| void %test1(uint %V) { |
| %C1 = seteq uint %V, 4 |
| %C2 = seteq uint %V, 17 |
| %CN = or bool %C1, %C2 |
| br bool %CN, label %T, label %F |
| T: |
| call void %foo1() |
| ret void |
| F: |
| call void %foo2() |
| ret void |
| } |
| |
| |
| void %test2(int %V) { |
| %C1 = setne int %V, 4 |
| %C2 = setne int %V, 17 |
| %CN = and bool %C1, %C2 |
| br bool %CN, label %T, label %F |
| T: |
| call void %foo1() |
| ret void |
| F: |
| call void %foo2() |
| ret void |
| } |
| |
| |
| void %test3(int %V) { |
| %C1 = seteq int %V, 4 |
| br bool %C1, label %T, label %N |
| N: |
| %C2 = seteq int %V, 17 |
| br bool %C2, label %T, label %F |
| T: |
| call void %foo1() |
| ret void |
| F: |
| call void %foo2() |
| ret void |
| } |
| |
| |