| Tanya Lattner | b7e02fc | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | llvm-dis > %t1.ll | 
| Tanya Lattner | 84f7fda | 2004-11-07 06:08:43 +0000 | [diff] [blame] | 2 | ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll | 
|  | 3 | ; RUN: diff %t1.ll %t2.ll | 
|  | 4 |  | 
| Tanya Lattner | b7e02fc | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 5 | %int = type i32 | 
| Chris Lattner | 2f7c963 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 6 |  | 
| Tanya Lattner | b7e02fc | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 7 | define i32 @squared(i32 %i0) { | 
|  | 8 | switch i32 %i0, label %Default [ | 
|  | 9 | i32 1, label %Case1 | 
|  | 10 | i32 2, label %Case2 | 
|  | 11 | i32 4, label %Case4 | 
|  | 12 | ] | 
| Chris Lattner | 2f7c963 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 13 |  | 
| Tanya Lattner | b7e02fc | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 14 | Default:                ; preds = %0 | 
|  | 15 | ret i32 -1 | 
| Chris Lattner | 2f7c963 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 16 |  | 
| Tanya Lattner | b7e02fc | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 17 | Case1:          ; preds = %0 | 
|  | 18 | ret i32 1 | 
| Chris Lattner | 2f7c963 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 19 |  | 
| Tanya Lattner | b7e02fc | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 20 | Case2:          ; preds = %0 | 
|  | 21 | ret i32 4 | 
|  | 22 |  | 
|  | 23 | Case4:          ; preds = %0 | 
|  | 24 | ret i32 16 | 
|  | 25 | } | 
|  | 26 |  | 
| Chris Lattner | 3ed871f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 27 |  | 
| Chris Lattner | 5956dc8 | 2009-10-28 05:53:48 +0000 | [diff] [blame] | 28 | @Addr = global i8* blockaddress(@indbrtest, %BB1) | 
|  | 29 | @Addr3 = global i8* blockaddress(@squared, %Case1) | 
|  | 30 |  | 
| Chris Lattner | 3ed871f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 31 |  | 
|  | 32 | define i32 @indbrtest(i8* %P, i32* %Q) { | 
| Chris Lattner | d04cb6d | 2009-10-28 00:19:10 +0000 | [diff] [blame] | 33 | indirectbr i8* %P, [label %BB1, label %BB2, label %BB3] | 
| Chris Lattner | 3ed871f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 34 | BB1: | 
| Chris Lattner | d04cb6d | 2009-10-28 00:19:10 +0000 | [diff] [blame] | 35 | indirectbr i32* %Q, [] | 
| Chris Lattner | 3ed871f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 36 | BB2: | 
| Chris Lattner | 5956dc8 | 2009-10-28 05:53:48 +0000 | [diff] [blame] | 37 | %R = bitcast i8* blockaddress(@indbrtest, %BB3) to i8* | 
|  | 38 | indirectbr i8* %R, [label %BB1, label %BB2, label %BB3] | 
| Chris Lattner | 3ed871f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 39 | BB3: | 
|  | 40 | ret i32 2 | 
|  | 41 | } | 
| Chris Lattner | 5956dc8 | 2009-10-28 05:53:48 +0000 | [diff] [blame] | 42 |  | 
|  | 43 |  |