llvm-mirror/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll
Stepan Dyatkovskiy fa0cf8dc2e Recommited r156374 with critical fixes in BitcodeReader/Writer:
Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of ConstantInt, externally cases wrapped within the ConstantRangesSet object.
Old methods of SwitchInst are also works well, but marked as deprecated. So on this stage we have no side effects except that I added support for case ranges in BitcodeReader/Writer, of course test for Bitcode is also added. Old "switch" format is also supported.

llvm-svn: 156704
2012-05-12 10:48:17 +00:00

34 lines
702 B
LLVM

; RUN: rm -f %t.bc
; RUN: rm -f %t.ll
; RUN: rm -f %t2.bc
; RUN: rm -f %t2.ll
; RUN: llvm-as %s -o %t.bc
; RUN: llvm-dis %t.bc -o - | tail -n +2 > %t.ll
; RUN: llvm-as %t.ll -o %t2.bc
; RUN: llvm-dis %t2.bc -o - | tail -n +2 > %t2.ll
; RUN: diff %t.ll %t2.ll | not grep .*
define void @test() {
%mem = alloca i32
store i32 2, i32* %mem
%c = load i32* %mem
switch i32 %c, label %exit [
i32 1, label %exit
i32 2, label %exit
]
exit:
ret void
}
define void @test_wide() {
%mem = alloca i256
store i256 2, i256* %mem
%c = load i256* %mem
switch i256 %c, label %exit [
i256 123456789012345678901234567890, label %exit
i256 2, label %exit
]
exit:
ret void
}