| ; RUN: llc -mtriple=arm64-apple-ios < %s | FileCheck %s | |
| ; RUN: llc -mtriple=arm64-linux-gnu < %s | FileCheck %s --check-prefix=CHECK-LINUX | |
| ; <rdar://11417675> | |
| define void @sum(i32 %a, i32* %to, i32 %c) { | |
| entry: | |
| switch i32 %a, label %exit [ | |
| i32 1, label %bb1 | |
| i32 2, label %exit.sink.split | |
| i32 3, label %bb3 | |
| i32 4, label %bb4 | |
| ] | |
| bb1: | |
| %b = add i32 %c, 1 | |
| br label %exit.sink.split | |
| bb3: | |
| br label %exit.sink.split | |
| bb4: | |
| br label %exit.sink.split | |
| exit.sink.split: | |
| %.sink = phi i32 [ 5, %bb4 ], [ %b, %bb1 ], [ 3, %bb3 ], [ %a, %entry ] | |
| store i32 %.sink, i32* %to | |
| br label %exit | |
| exit: | |
| ret void | |
| } | |
| ; CHECK-LABEL: sum: | |
| ; CHECK: adrp {{x[0-9]+}}, LJTI0_0@PAGE | |
| ; CHECK: add {{x[0-9]+}}, {{x[0-9]+}}, LJTI0_0@PAGEOFF | |
| ; CHECK-LINUX-LABEL: sum: | |
| ; CHECK-LINUX: adrp {{x[0-9]+}}, .LJTI0_0 | |
| ; CHECK-LINUX: add {{x[0-9]+}}, {{x[0-9]+}}, :lo12:.LJTI0_0 |