summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorStepan Dyatkovskiy <stpworld@narod.ru>2012-05-08 06:36:08 +0000
committerStepan Dyatkovskiy <stpworld@narod.ru>2012-05-08 06:36:08 +0000
commitb6a4640163855cc44a5af5f8a62face3a4cead3c (patch)
treed4be92b9f67024cc579aebdf2af0644fc27cc13c /llvm/test
parent23cfc9f760389dc614c568488e1088596f2028ef (diff)
downloadbcm5719-llvm-b6a4640163855cc44a5af5f8a62face3a4cead3c.tar.gz
bcm5719-llvm-b6a4640163855cc44a5af5f8a62face3a4cead3c.zip
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: 156374
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll b/llvm/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll
new file mode 100644
index 00000000000..4f51ba83b9d
--- /dev/null
+++ b/llvm/test/Bitcode/2012-05-07-SwitchInstRangesSupport.ll
@@ -0,0 +1,33 @@
+; 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
+}
+
OpenPOWER on IntegriCloud