# Generated with
#
# clang -g -O1 -S -emit-llvm test.c
# llc -stop-before=branch-folder test.ll
#
# typedef struct bar {
#   int data;
# } bar;
#
# int foo(int a)
# {
#   return a;
# }
#
# int baz(int *out)
# {
#   int ret;
#
#   if ((ret = foo(*out)) < 0)
#     return ret;
#   if (out)
#     *out = 1;
#
#   return 0;
# }
#
# int test(bar *s)
# {
#   int idx, ret;
#
# retry:
#   do {
#     ret = baz(&idx);
#     if (ret < 0)
#       return ret;
#   } while (idx < 0 || !s->data);
#
#   goto retry;
# }
#
# RUN: llc -o - %s -mtriple=x86_64-- -run-pass=branch-folder | FileCheck %s
--- |
  ; ModuleID = 'test.ll'
  source_filename = "test.ll"
  
  %struct.bar = type { i32 }
  
  define i32 @foo(i32 returned %a) local_unnamed_addr {
  entry:
    ret i32 %a
  }
  
  define i32 @baz(i32* %out) local_unnamed_addr !dbg !4 {
  entry:
    %0 = load i32, i32* %out, align 4
    %call = tail call i32 @foo(i32 %0), !dbg !9
    %cmp = icmp slt i32 %call, 0
    br i1 %cmp, label %cleanup, label %if.then1
  
  if.then1:                                         ; preds = %entry
    store i32 1, i32* %out, align 4
    br label %cleanup
  
  cleanup:                                          ; preds = %if.then1, %entry
    %retval.0 = phi i32 [ %call, %entry ], [ 0, %if.then1 ]
    ret i32 %retval.0
  }
  
  define i32 @test(%struct.bar* nocapture readonly %s) local_unnamed_addr !dbg !11 {
  entry:
    %idx = alloca i32, align 4
    call void @llvm.dbg.label(metadata !20), !dbg !21
    %call58 = call i32 @baz(i32* nonnull %idx), !dbg !22
    %cmp69 = icmp slt i32 %call58, 0
    br i1 %cmp69, label %if.then, label %do.cond.lr.ph.lr.ph
  
  do.cond.lr.ph.lr.ph:                              ; preds = %entry
    br label %do.cond
  
  retry.loopexit:                                   ; preds = %lor.rhs
    call void @llvm.dbg.label(metadata !20), !dbg !21
    %call5 = call i32 @baz(i32* nonnull %idx), !dbg !22
    %cmp6 = icmp slt i32 %call5, 0
    br i1 %cmp6, label %if.then, label %do.cond
  
  if.then:                                          ; preds = %do.body.backedge, %retry.loopexit, %entry
    %call.lcssa = phi i32 [ %call58, %entry ], [ %call, %do.body.backedge ], [ %call5, %retry.loopexit ]
    ret i32 %call.lcssa
  
  do.cond:                                          ; preds = %retry.loopexit, %do.body.backedge, %do.cond.lr.ph.lr.ph
    %0 = load i32, i32* %idx, align 4
    %cmp1 = icmp slt i32 %0, 0
    br i1 %cmp1, label %do.body.backedge, label %lor.rhs
  
  lor.rhs:                                          ; preds = %do.cond
    %1 = bitcast %struct.bar* %s to i32*
    %2 = load i32, i32* %1, align 4
    %tobool = icmp eq i32 %2, 0
    br i1 %tobool, label %do.body.backedge, label %retry.loopexit
  
  do.body.backedge:                                 ; preds = %lor.rhs, %do.cond
    %call = call i32 @baz(i32* nonnull %idx), !dbg !22
    %cmp = icmp slt i32 %call, 0
    br i1 %cmp, label %if.then, label %do.cond
  }
  
  ; Function Attrs: nounwind readnone speculatable
  declare void @llvm.dbg.label(metadata) #0
  
  ; Function Attrs: nounwind
  declare void @llvm.stackprotector(i8*, i8**) #1
  
  attributes #0 = { nounwind readnone speculatable }
  attributes #1 = { nounwind }
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: GNU)
  !1 = !DIFile(filename: "test.c", directory: "/home/users")
  !2 = !{}
  !3 = !{i32 2, !"Debug Info Version", i32 3}
  !4 = distinct !DISubprogram(name: "baz", scope: !1, file: !1, line: 10, type: !5, isLocal: false, isDefinition: true, scopeLine: 11, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !2)
  !5 = !DISubroutineType(types: !6)
  !6 = !{!7, !8}
  !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64)
  !9 = !DILocation(line: 14, column: 14, scope: !10)
  !10 = distinct !DILexicalBlock(scope: !4, file: !1, line: 14, column: 7)
  !11 = distinct !DISubprogram(name: "test", scope: !1, file: !1, line: 22, type: !12, isLocal: false, isDefinition: true, scopeLine: 23, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !19)
  !12 = !DISubroutineType(types: !13)
  !13 = !{!7, !14}
  !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64)
  !15 = !DIDerivedType(tag: DW_TAG_typedef, name: "bar", file: !1, line: 3, baseType: !16)
  !16 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "bar", file: !1, line: 1, size: 32, elements: !17)
  !17 = !{!18}
  !18 = !DIDerivedType(tag: DW_TAG_member, name: "data", scope: !16, file: !1, line: 2, baseType: !7, size: 32)
  !19 = !{!20}
  !20 = !DILabel(scope: !11, name: "retry", file: !1, line: 26)
  !21 = !DILocation(line: 26, column: 1, scope: !11)
  !22 = !DILocation(line: 28, column: 11, scope: !23)
  !23 = distinct !DILexicalBlock(scope: !11, file: !1, line: 27, column: 6)

...
---
name:            foo
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
hasWinCFI:       false
registers:       
liveins:         
  - { reg: '$edi', virtual-reg: '' }
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:      
stack:           
constants:       
body:             |
  bb.0.entry:
    liveins: $edi
  
    renamable $eax = COPY $edi
    RET 0, $eax

...
---
name:            baz
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
hasWinCFI:       false
registers:       
liveins:         
  - { reg: '$rdi', virtual-reg: '' }
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       8
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  ''
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 8
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:      
  - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default,
      callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', 
      debug-info-expression: '', debug-info-location: '' }
stack:           
constants:       
body:             |
  bb.0.entry:
    successors: %bb.1(0x30000000), %bb.2(0x50000000)
    liveins: $rdi, $rbx
  
    frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    CFI_INSTRUCTION offset $rbx, -16
    renamable $rbx = COPY $rdi
    renamable $edi = MOV32rm $rdi, 1, $noreg, 0, $noreg :: (load 4 from %ir.out)
    CALL64pcrel32 @foo, csr_64, implicit $rsp, implicit $ssp, implicit $edi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax, debug-location !9
    TEST32rr renamable $eax, renamable $eax, implicit-def $eflags
    JCC_1 %bb.2, 9, implicit killed $eflags
  ; CHECK: JCC_1 %bb.2, 8, implicit $eflags
  
  bb.1:
    successors: %bb.3(0x80000000)
    liveins: $eax
  
    JMP_1 %bb.3
  
  bb.2.if.then1:
    successors: %bb.3(0x80000000)
    liveins: $rbx
  
    MOV32mi killed renamable $rbx, 1, $noreg, 0, $noreg, 1 :: (store 4 into %ir.out)
    renamable $eax = MOV32r0 implicit-def dead $eflags
  
  bb.3.cleanup:
    liveins: $eax
  
    $rbx = frame-destroy POP64r implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 8
    RET 0, $eax

...
---
name:            test
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
hasWinCFI:       false
registers:       
liveins:         
  - { reg: '$rdi', virtual-reg: '' }
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       24
  offsetAdjustment: 0
  maxAlignment:    4
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  ''
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 16
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:      
  - { id: 0, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', 
      debug-info-expression: '', debug-info-location: '' }
  - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default,
      callee-saved-register: '$r14', callee-saved-restored: true, debug-info-variable: '', 
      debug-info-expression: '', debug-info-location: '' }
stack:           
  - { id: 0, name: idx, type: default, offset: -28, size: 4, alignment: 4, 
      stack-id: default, callee-saved-register: '', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
constants:       
body:             |
  bb.0.entry:
    successors: %bb.1(0x30000000), %bb.2(0x50000000)
    liveins: $rdi, $r14, $rbx
  
    frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 24
    frame-setup PUSH64r undef $rax, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 32
    CFI_INSTRUCTION offset $rbx, -24
    CFI_INSTRUCTION offset $r14, -16
    renamable $rbx = COPY $rdi
    DBG_LABEL !20, debug-location !21
    renamable $rdi = LEA64r $rsp, 1, $noreg, 4, $noreg
    CALL64pcrel32 @baz, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax, debug-location !22
    TEST32rr renamable $eax, renamable $eax, implicit-def $eflags
    JCC_1 %bb.2, 9, implicit killed $eflags
  ; CHECK: JCC_1 %bb.5, 8, implicit $eflags
  
  bb.1:
    successors: %bb.5(0x80000000)
    liveins: $eax
  
    JMP_1 %bb.5
  
  bb.2:
    successors: %bb.6(0x80000000)
    liveins: $rbx
  
    renamable $r14 = LEA64r $rsp, 1, $noreg, 4, $noreg
    JMP_1 %bb.6
  
  bb.3.retry.loopexit:
    successors: %bb.4(0x04000000), %bb.6(0x7c000000)
    liveins: $rbx, $r14
  
    DBG_LABEL !20, debug-location !21
    $rdi = COPY renamable $r14, debug-location !22
    CALL64pcrel32 @baz, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax, debug-location !22
    TEST32rr renamable $eax, renamable $eax, implicit-def $eflags
    JCC_1 %bb.6, 9, implicit killed $eflags
  
  bb.4:
    successors: %bb.5(0x80000000)
    liveins: $eax
  
  
  bb.5.if.then:
    liveins: $eax
  
    $rsp = frame-destroy ADD64ri8 $rsp, 8, implicit-def dead $eflags
    CFI_INSTRUCTION def_cfa_offset 24
    $rbx = frame-destroy POP64r implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    $r14 = frame-destroy POP64r implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 8
    RET 0, $eax
  
  bb.6.do.cond:
    successors: %bb.8(0x30000000), %bb.7(0x50000000)
    liveins: $rbx, $r14
  
    CMP32mi8 $rsp, 1, $noreg, 4, $noreg, 0, implicit-def $eflags :: (dereferenceable load 4 from %ir.idx)
    JCC_1 %bb.8, 8, implicit killed $eflags
    JMP_1 %bb.7
  
  bb.7.lor.rhs:
    successors: %bb.8(0x30000000), %bb.3(0x50000000)
    liveins: $rbx, $r14
  
    CMP32mi8 renamable $rbx, 1, $noreg, 0, $noreg, 0, implicit-def $eflags :: (load 4 from %ir.1)
    JCC_1 %bb.3, 5, implicit killed $eflags
    JMP_1 %bb.8
  
  bb.8.do.body.backedge:
    successors: %bb.9(0x04000000), %bb.6(0x7c000000)
    liveins: $rbx, $r14
  
    $rdi = COPY renamable $r14, debug-location !22
    CALL64pcrel32 @baz, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax, debug-location !22
    TEST32rr renamable $eax, renamable $eax, implicit-def $eflags
    JCC_1 %bb.6, 9, implicit killed $eflags
  
  bb.9:
    successors: %bb.5(0x80000000)
    liveins: $eax
  
    JMP_1 %bb.5

...
