Tanya Lattner | 9bc243b | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | llvm-dis > %t1.ll |
Tanya Lattner | 3f7706b | 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 | 9bc243b | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 5 | %int = type i32 |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 6 | |
Tanya Lattner | 9bc243b | 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 | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 13 | |
Tanya Lattner | 9bc243b | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 14 | Default: ; preds = %0 |
| 15 | ret i32 -1 |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 16 | |
Tanya Lattner | 9bc243b | 2008-03-01 07:38:40 +0000 | [diff] [blame] | 17 | Case1: ; preds = %0 |
| 18 | ret i32 1 |
Chris Lattner | 0095054 | 2001-06-06 20:29:01 +0000 | [diff] [blame] | 19 | |
Tanya Lattner | 9bc243b | 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 | f9be95f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 27 | |
Chris Lattner | 50b136d | 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 | f9be95f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 31 | |
| 32 | define i32 @indbrtest(i8* %P, i32* %Q) { |
Chris Lattner | ab21db7 | 2009-10-28 00:19:10 +0000 | [diff] [blame] | 33 | indirectbr i8* %P, [label %BB1, label %BB2, label %BB3] |
Chris Lattner | f9be95f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 34 | BB1: |
Chris Lattner | ab21db7 | 2009-10-28 00:19:10 +0000 | [diff] [blame] | 35 | indirectbr i32* %Q, [] |
Chris Lattner | f9be95f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 36 | BB2: |
Chris Lattner | 50b136d | 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 | f9be95f | 2009-10-27 19:13:16 +0000 | [diff] [blame] | 39 | BB3: |
| 40 | ret i32 2 |
| 41 | } |
Chris Lattner | 50b136d | 2009-10-28 05:53:48 +0000 | [diff] [blame^] | 42 | |
| 43 | |