# RUN: llc -run-pass=tailduplication -tail-dup-size=4 %s -o - | FileCheck %s

# JumpTableDest32 uses an `adr` to a temporary label (itself). If duplicated we
# cannot guarantee reachability for any uses after the first.

# CHECK: JumpTableDest32
# CHECK-NOT: JumpTableDest32


--- |
  ; ModuleID = 'jump-table.ll'
  source_filename = "jump-table.ll"
  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
  target triple = "arm64-apple-ios"
  
  define i32 @test_jumptable32(i32 %in, i1 %tst) {
    br i1 %tst, label %true, label %false
  
  true:                                             ; preds = %0
    call void @foo()
    br label %switch
  
  false:                                            ; preds = %0
    call void @bar()
    br label %switch
  
  lbl1:                                             ; preds = %lbl4, %lbl3, %def, %switch
    %merge = phi i32 [ 1, %switch ], [ 0, %def ], [ 4, %lbl3 ], [ 8, %lbl4 ]
    ret i32 %merge
  
  switch:                                           ; preds = %false, %true
    switch i32 %in, label %def [
      i32 0, label %lbl1
      i32 1, label %lbl2
      i32 2, label %lbl3
      i32 4, label %lbl4
    ]
  
  def:                                              ; preds = %switch
    br label %lbl1
  
  lbl2:                                             ; preds = %switch
    %1 = call i64 @llvm.aarch64.space(i32 262144, i64 undef)
    ret i32 2
  
  lbl3:                                             ; preds = %switch
    br label %lbl1
  
  lbl4:                                             ; preds = %switch
    br label %lbl1
  }
  
  declare void @foo()
  
  declare void @bar()
  
  ; Function Attrs: nounwind
  declare i64 @llvm.aarch64.space(i32, i64) #0
  
  attributes #0 = { nounwind }

...
---
name:            test_jumptable32
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
hasWinCFI:       false
registers:       []
liveins:
  - { reg: '$w0', virtual-reg: '' }
  - { reg: '$w1', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       32
  offsetAdjustment: 0
  maxAlignment:    8
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  ''
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:      []
stack:
  - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, 
      stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true, 
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
  - { id: 1, name: '', type: spill-slot, offset: -16, size: 8, alignment: 8, 
      stack-id: default, callee-saved-register: '$fp', callee-saved-restored: true, 
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
  - { id: 2, name: '', type: spill-slot, offset: -24, size: 8, alignment: 8, 
      stack-id: default, callee-saved-register: '$x19', callee-saved-restored: true, 
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
  - { id: 3, name: '', type: spill-slot, offset: -32, size: 8, alignment: 8, 
      stack-id: default, callee-saved-register: '$x20', callee-saved-restored: true, 
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
callSites:       []
constants:       []
machineFunctionInfo:
  hasRedZone:      false
jumpTable:
  kind:            label-difference32
  entries:
    - id:              0
      blocks:          [ '%bb.9', '%bb.6', '%bb.7', '%bb.5', '%bb.8' ]
body:             |
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $w0, $w1, $x19, $x20, $lr
  
    early-clobber $sp = frame-setup STPXpre killed $x20, killed $x19, $sp, -4 :: (store 8 into %stack.3), (store 8 into %stack.2)
    frame-setup STPXi killed $fp, killed $lr, $sp, 2 :: (store 8 into %stack.1), (store 8 into %stack.0)
    frame-setup CFI_INSTRUCTION def_cfa_offset 32
    frame-setup CFI_INSTRUCTION offset $w30, -8
    frame-setup CFI_INSTRUCTION offset $w29, -16
    frame-setup CFI_INSTRUCTION offset $w19, -24
    frame-setup CFI_INSTRUCTION offset $w20, -32
    renamable $w19 = COPY $w0
    TBZW killed renamable $w1, 0, %bb.2
  
  bb.1.true:
    successors: %bb.3(0x80000000)
    liveins: $w19
  
    BL @foo, csr_darwin_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp
    B %bb.3
  
  bb.2.false:
    successors: %bb.3(0x80000000)
    liveins: $w19
  
    BL @bar, csr_darwin_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp
    B %bb.3
  
  bb.3.switch:
    successors: %bb.9(0x1c71c71c), %bb.6(0x1c71c71c), %bb.7(0x1c71c71c), %bb.5(0x0e38e38e), %bb.8(0x1c71c71c)
    liveins: $w19
  
    renamable $w8 = ORRWrs $wzr, killed renamable $w19, 0, implicit-def $x8
    renamable $x9 = MOVaddrJT target-flags(aarch64-page) %jump-table.0, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0
    early-clobber renamable $x10, dead early-clobber renamable $x11 = JumpTableDest32 killed renamable $x9, killed renamable $x8, %jump-table.0
    BR killed renamable $x10
  
  bb.5.def:
    successors: %bb.9(0x80000000)
  
    renamable $w0 = COPY $wzr
    B %bb.9
  
  bb.6.lbl2:
    successors: %bb.9(0x80000000)
  
    dead $xzr = SPACE 262144, undef renamable $x8
    $w0 = MOVi32imm 2
    B %bb.9
  
  bb.7.lbl3:
    successors: %bb.9(0x80000000)
  
    renamable $w0 = MOVi32imm 4
    B %bb.9
  
  bb.8.lbl4:
    successors: %bb.9(0x80000000)
  
    renamable $w0 = MOVi32imm 8
  
  bb.9.lbl1:
    liveins: $w0
  
    $fp, $lr = frame-destroy LDPXi $sp, 2 :: (load 8 from %stack.1), (load 8 from %stack.0)
    early-clobber $sp, $x20, $x19 = frame-destroy LDPXpost $sp, 4 :: (load 8 from %stack.3), (load 8 from %stack.2)
    RET_ReallyLR implicit $w0

...
