| ; RUN: llc < %s -mtriple=thumbv7-linux-gnueabihf -O1 %s -o - | FileCheck %s |
| |
| ; CHECK-LABEL: test_jump_table: |
| ; CHECK: b{{.*}} .LBB |
| ; CHECK-NOT: tbh |
| |
| define i32 @test_jump_table(i32 %x, float %in) { |
| |
| h1: |
| |
| %b0 = fadd float %in, 1234.5 |
| %b1 = fptoui float %b0 to i32 |
| |
| switch i32 %x, label %h2 [ |
| i32 0, label %h3 |
| i32 2, label %h4 |
| i32 4, label %h5 |
| i32 6, label %h6 |
| ] |
| |
| h2: |
| %a0 = add i32 %x, 5 |
| br label %h3 |
| |
| h3: |
| %d2 = phi i32 [%b1, %h1], [%a0, %h2] |
| %d3 = add i32 %d2, 3 |
| br label %h4 |
| |
| h4: |
| %c2 = phi i32 [%b1, %h1], [%d3, %h3] |
| %c3 = add i32 %c2, 5 |
| br label %h5 |
| |
| h5: |
| %a2 = phi i32 [%b1, %h1], [%c3, %h4] |
| %a3 = add i32 %a2, 6 |
| br label %h6 |
| |
| h6: |
| %y = phi i32 [0, %h1], [%a3, %h5] |
| call i32 @llvm.arm.space(i32 2000, i32 undef) |
| ret i32 %y |
| |
| } |
| |
| declare i32 @llvm.arm.space(i32, i32) |