2007-04-15 09:21:47 +00:00
|
|
|
; RUN: llvm-upgrade < %s | llvm-as | opt -simplifycfg | llvm-dis | \
|
|
|
|
; RUN: not grep {icmp eq}
|
2005-01-01 16:00:56 +00:00
|
|
|
|
|
|
|
; Check that simplifycfg deletes a dead 'seteq' instruction when it
|
|
|
|
; folds a conditional branch into a switch instruction.
|
|
|
|
|
|
|
|
declare void %foo()
|
|
|
|
declare void %bar()
|
|
|
|
|
|
|
|
void %testcfg(uint %V) {
|
|
|
|
%C = seteq uint %V, 18
|
|
|
|
%D = seteq uint %V, 180
|
|
|
|
%E = or bool %C, %D
|
|
|
|
br bool %E, label %L1, label %Sw
|
|
|
|
Sw:
|
|
|
|
switch uint %V, label %L1 [
|
|
|
|
uint 15, label %L2
|
|
|
|
uint 16, label %L2
|
|
|
|
]
|
|
|
|
L1:
|
|
|
|
call void %foo()
|
|
|
|
ret void
|
|
|
|
L2:
|
|
|
|
call void %bar()
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|