| ; RUN: llc < %s -relocation-model=pic | FileCheck %s |
| |
| ; CHECK: calll L0$pb |
| ; CHECK-NEXT: .cfi_adjust_cfa_offset 4 |
| ; CHECK-NEXT: L0$pb: |
| ; CHECK-NEXT: popl %eax |
| ; CHECK-NEXT: .cfi_adjust_cfa_offset -4 |
| ; CHECK-NEXT: addl LJTI0_0(,%ecx,4), %eax |
| ; CHECK-NEXT: jmpl *%eax |
| |
| ; CHECK: LJTI0_0: |
| ; CHECK-NEXT: .long LBB0_2-L0$pb |
| ; CHECK-NEXT: .long LBB0_3-L0$pb |
| ; CHECK-NEXT: .long LBB0_4-L0$pb |
| ; CHECK-NEXT: .long LBB0_5-L0$pb |
| |
| |
| target triple = "i686--windows-itanium" |
| define i32 @f(i64 %x) { |
| bb0: |
| switch i64 %x, label %bb5 [ |
| i64 1, label %bb1 |
| i64 2, label %bb2 |
| i64 3, label %bb3 |
| i64 4, label %bb4 |
| ] |
| bb1: |
| br label %bb5 |
| bb2: |
| br label %bb5 |
| bb3: |
| br label %bb5 |
| bb4: |
| br label %bb5 |
| bb5: |
| %y = phi i32 [ 0, %bb0 ], [ 1, %bb1 ], [ 2, %bb2 ], [ 3, %bb3 ], [ 4, %bb4 ] |
| ret i32 %y |
| } |