; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64 -o - | FileCheck %s define void @foo(i32 %i) uwtable { ; CHECK-LABEL: foo: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 16 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: .cfi_remember_state ; CHECK-NEXT: cmp w0, #7 ; CHECK-NEXT: b.eq .LBB0_3 ; CHECK-NEXT: // %bb.1: // %entry ; CHECK-NEXT: cmp w0, #5 ; CHECK-NEXT: b.ne .LBB0_4 ; CHECK-NEXT: // %bb.2: // %if.then ; CHECK-NEXT: bl bar ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w30 ; CHECK-NEXT: b bar ; CHECK-NEXT: .LBB0_3: // %if.then2 ; CHECK-NEXT: .cfi_restore_state ; CHECK-NEXT: bl bar ; CHECK-NEXT: .LBB0_4: // %if.end3 ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w30 ; CHECK-NEXT: b bar entry: switch i32 %i, label %if.end3 [ i32 5, label %if.then i32 7, label %if.then2 ] if.then: tail call void @bar() #0 br label %if.end3 if.then2: tail call void @bar() #0 br label %if.end3 if.end3: tail call void @bar() #0 ret void } declare void @bar() attributes #0 = { nomerge }