; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
; RUN: llc -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s
; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-isel < %s | FileCheck --check-prefix=CHECK-NO-ISEL %s
target datalayout = "E-m:e-i64:64-n32:64"
target triple = "powerpc64-unknown-linux-gnu"

; Function Attrs: nounwind
define void @jbd2_journal_commit_transaction(ptr %journal, i64 %inp1, i32 %inp2,
; CHECK-LABEL: jbd2_journal_commit_transaction:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    mfcr 12
; CHECK-NEXT:    mflr 0
; CHECK-NEXT:    stw 12, 8(1)
; CHECK-NEXT:    stdu 1, -176(1)
; CHECK-NEXT:    lbz 6, 295(1)
; CHECK-NEXT:    std 0, 192(1)
; CHECK-NEXT:    andi. 6, 6, 1
; CHECK-NEXT:    std 25, 120(1) # 8-byte Folded Spill
; CHECK-NEXT:    std 26, 128(1) # 8-byte Folded Spill
; CHECK-NEXT:    std 27, 136(1) # 8-byte Folded Spill
; CHECK-NEXT:    std 28, 144(1) # 8-byte Folded Spill
; CHECK-NEXT:    std 29, 152(1) # 8-byte Folded Spill
; CHECK-NEXT:    std 30, 160(1) # 8-byte Folded Spill
; CHECK-NEXT:    crmove 9, 1
; CHECK-NEXT:    andi. 6, 10, 1
; CHECK-NEXT:    crmove 8, 1
; CHECK-NEXT:    andi. 6, 9, 1
; CHECK-NEXT:    bc 4, 20, .LBB0_24
; CHECK-NEXT:  # %bb.1: # %do.body
; CHECK-NEXT:    bc 4, 20, .LBB0_25
; CHECK-NEXT:  # %bb.2: # %trace_jbd2_start_commit.exit
; CHECK-NEXT:    mr 30, 8
; CHECK-NEXT:    mr 29, 7
; CHECK-NEXT:    bc 12, 20, .LBB0_4
; CHECK-NEXT:  # %bb.3: # %do.body.i1116
; CHECK-NEXT:    bc 4, 20, .LBB0_26
; CHECK-NEXT:  .LBB0_4: # %trace_jbd2_commit_locking.exit
; CHECK-NEXT:    bc 4, 20, .LBB0_27
; CHECK-NEXT:  # %bb.5: # %spin_unlock.exit1146
; CHECK-NEXT:    bc 4, 20, .LBB0_28
; CHECK-NEXT:  # %bb.6: # %trace_jbd2_commit_flushing.exit
; CHECK-NEXT:    bc 4, 20, .LBB0_29
; CHECK-NEXT:  # %bb.7: # %for.end.i
; CHECK-NEXT:    bc 4, 20, .LBB0_31
; CHECK-NEXT:  # %bb.8: # %journal_submit_data_buffers.exit
; CHECK-NEXT:    bc 4, 20, .LBB0_32
; CHECK-NEXT:  # %bb.9: # %if.end103
; CHECK-NEXT:    bc 4, 20, .LBB0_33
; CHECK-NEXT:  # %bb.10: # %trace_jbd2_commit_logging.exit
; CHECK-NEXT:    bc 4, 20, .LBB0_34
; CHECK-NEXT:  # %bb.11: # %for.end.i1287
; CHECK-NEXT:    bc 4, 20, .LBB0_35
; CHECK-NEXT:  # %bb.12: # %journal_finish_inode_data_buffers.exit
; CHECK-NEXT:    bc 4, 20, .LBB0_36
; CHECK-NEXT:  # %bb.13: # %if.end256
; CHECK-NEXT:    cmpdi 1, 4, 0
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  .LBB0_14: # %while.body318
; CHECK-NEXT:    #
; CHECK-NEXT:    bc 4, 6, .LBB0_19
; CHECK-NEXT:  # %bb.15: # %wait_on_buffer.exit
; CHECK-NEXT:    #
; CHECK-NEXT:    bc 4, 1, .LBB0_14
; CHECK-NEXT:  # %bb.16: # %do.body378
; CHECK-NEXT:    bc 4, 8, .LBB0_20
; CHECK-NEXT:  # %bb.17: # %while.end418
; CHECK-NEXT:    bc 4, 8, .LBB0_23
; CHECK-NEXT:  .LBB0_18: # %if.end421
; CHECK-NEXT:  .LBB0_19: # %if.then.i1296
; CHECK-NEXT:  .LBB0_20: # %while.body392.lr.ph
; CHECK-NEXT:    lis 26, 4
; CHECK-NEXT:    mr 27, 5
; CHECK-NEXT:    mr 28, 3
; CHECK-NEXT:    .p2align 4
; CHECK-NEXT:  .LBB0_21: # %while.body392
; CHECK-NEXT:    #
; CHECK-NEXT:    ld 3, 0(3)
; CHECK-NEXT:    ldu 25, -72(3)
; CHECK-NEXT:    #APP
; CHECK-NEXT:  .Ltmp0:
; CHECK-NEXT:    .long 2088769704
; CHECK-NEXT:    andc 4, 4, 26
; CHECK-NEXT:    stdcx. 4, 0, 3
; CHECK-NEXT:    bne- 0, .Ltmp0
; CHECK-EMPTY:
; CHECK-NEXT:    #NO_APP
; CHECK-NEXT:    ld 3, 0(29)
; CHECK-NEXT:    std 3, 0(30)
; CHECK-NEXT:    bl __brelse
; CHECK-NEXT:    nop
; CHECK-NEXT:    bc 4, 9, .LBB0_21
; CHECK-NEXT:  # %bb.22: # %while.end418.loopexit
; CHECK-NEXT:    andi. 3, 25, 1
; CHECK-NEXT:    li 3, -5
; CHECK-NEXT:    mr 5, 27
; CHECK-NEXT:    iselgt 5, 5, 3
; CHECK-NEXT:    mr 3, 28
; CHECK-NEXT:    bc 12, 8, .LBB0_18
; CHECK-NEXT:  .LBB0_23: # %if.then420
; CHECK-NEXT:    extsw 4, 5
; CHECK-NEXT:    bl jbd2_journal_abort
; CHECK-NEXT:    nop
; CHECK-NEXT:  .LBB0_24: # %if.then5
; CHECK-NEXT:  .LBB0_25: # %do.body.i
; CHECK-NEXT:  .LBB0_26: # %do.body5.i1122
; CHECK-NEXT:  .LBB0_27: # %if.then.i.i.i.i1144
; CHECK-NEXT:  .LBB0_28: # %do.body.i1159
; CHECK-NEXT:  .LBB0_29: # %for.body.lr.ph.i
; CHECK-NEXT:    bc 4, 20, .LBB0_37
; CHECK-NEXT:  # %bb.30: # %spin_unlock.exit.i
; CHECK-NEXT:  .LBB0_31: # %if.then.i.i.i.i31.i
; CHECK-NEXT:  .LBB0_32: # %if.then102
; CHECK-NEXT:  .LBB0_33: # %do.body.i1182
; CHECK-NEXT:  .LBB0_34: # %for.body.i1277
; CHECK-NEXT:  .LBB0_35: # %if.then.i.i.i.i84.i
; CHECK-NEXT:  .LBB0_36: # %if.then249
; CHECK-NEXT:  .LBB0_37: # %if.then.i.i.i.i.i
;
; CHECK-NO-ISEL-LABEL: jbd2_journal_commit_transaction:
; CHECK-NO-ISEL:       # %bb.0: # %entry
; CHECK-NO-ISEL-NEXT:    mfcr 12
; CHECK-NO-ISEL-NEXT:    mflr 0
; CHECK-NO-ISEL-NEXT:    stw 12, 8(1)
; CHECK-NO-ISEL-NEXT:    stdu 1, -176(1)
; CHECK-NO-ISEL-NEXT:    lbz 6, 295(1)
; CHECK-NO-ISEL-NEXT:    std 0, 192(1)
; CHECK-NO-ISEL-NEXT:    andi. 6, 6, 1
; CHECK-NO-ISEL-NEXT:    std 25, 120(1) # 8-byte Folded Spill
; CHECK-NO-ISEL-NEXT:    std 26, 128(1) # 8-byte Folded Spill
; CHECK-NO-ISEL-NEXT:    std 27, 136(1) # 8-byte Folded Spill
; CHECK-NO-ISEL-NEXT:    std 28, 144(1) # 8-byte Folded Spill
; CHECK-NO-ISEL-NEXT:    std 29, 152(1) # 8-byte Folded Spill
; CHECK-NO-ISEL-NEXT:    std 30, 160(1) # 8-byte Folded Spill
; CHECK-NO-ISEL-NEXT:    crmove 9, 1
; CHECK-NO-ISEL-NEXT:    andi. 6, 10, 1
; CHECK-NO-ISEL-NEXT:    crmove 8, 1
; CHECK-NO-ISEL-NEXT:    andi. 6, 9, 1
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_26
; CHECK-NO-ISEL-NEXT:  # %bb.1: # %do.body
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_27
; CHECK-NO-ISEL-NEXT:  # %bb.2: # %trace_jbd2_start_commit.exit
; CHECK-NO-ISEL-NEXT:    mr 30, 8
; CHECK-NO-ISEL-NEXT:    mr 29, 7
; CHECK-NO-ISEL-NEXT:    bc 12, 20, .LBB0_4
; CHECK-NO-ISEL-NEXT:  # %bb.3: # %do.body.i1116
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_28
; CHECK-NO-ISEL-NEXT:  .LBB0_4: # %trace_jbd2_commit_locking.exit
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_29
; CHECK-NO-ISEL-NEXT:  # %bb.5: # %spin_unlock.exit1146
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_30
; CHECK-NO-ISEL-NEXT:  # %bb.6: # %trace_jbd2_commit_flushing.exit
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_31
; CHECK-NO-ISEL-NEXT:  # %bb.7: # %for.end.i
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_33
; CHECK-NO-ISEL-NEXT:  # %bb.8: # %journal_submit_data_buffers.exit
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_34
; CHECK-NO-ISEL-NEXT:  # %bb.9: # %if.end103
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_35
; CHECK-NO-ISEL-NEXT:  # %bb.10: # %trace_jbd2_commit_logging.exit
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_36
; CHECK-NO-ISEL-NEXT:  # %bb.11: # %for.end.i1287
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_37
; CHECK-NO-ISEL-NEXT:  # %bb.12: # %journal_finish_inode_data_buffers.exit
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_38
; CHECK-NO-ISEL-NEXT:  # %bb.13: # %if.end256
; CHECK-NO-ISEL-NEXT:    cmpdi 1, 4, 0
; CHECK-NO-ISEL-NEXT:    .p2align 4
; CHECK-NO-ISEL-NEXT:  .LBB0_14: # %while.body318
; CHECK-NO-ISEL-NEXT:    #
; CHECK-NO-ISEL-NEXT:    bc 4, 6, .LBB0_19
; CHECK-NO-ISEL-NEXT:  # %bb.15: # %wait_on_buffer.exit
; CHECK-NO-ISEL-NEXT:    #
; CHECK-NO-ISEL-NEXT:    bc 4, 1, .LBB0_14
; CHECK-NO-ISEL-NEXT:  # %bb.16: # %do.body378
; CHECK-NO-ISEL-NEXT:    bc 4, 8, .LBB0_20
; CHECK-NO-ISEL-NEXT:  # %bb.17: # %while.end418
; CHECK-NO-ISEL-NEXT:    bc 4, 8, .LBB0_25
; CHECK-NO-ISEL-NEXT:  .LBB0_18: # %if.end421
; CHECK-NO-ISEL-NEXT:  .LBB0_19: # %if.then.i1296
; CHECK-NO-ISEL-NEXT:  .LBB0_20: # %while.body392.lr.ph
; CHECK-NO-ISEL-NEXT:    lis 26, 4
; CHECK-NO-ISEL-NEXT:    mr 27, 5
; CHECK-NO-ISEL-NEXT:    mr 28, 3
; CHECK-NO-ISEL-NEXT:    .p2align 4
; CHECK-NO-ISEL-NEXT:  .LBB0_21: # %while.body392
; CHECK-NO-ISEL-NEXT:    #
; CHECK-NO-ISEL-NEXT:    ld 3, 0(3)
; CHECK-NO-ISEL-NEXT:    ldu 25, -72(3)
; CHECK-NO-ISEL-NEXT:    #APP
; CHECK-NO-ISEL-NEXT:  .Ltmp0:
; CHECK-NO-ISEL-NEXT:    .long 2088769704
; CHECK-NO-ISEL-NEXT:    andc 4, 4, 26
; CHECK-NO-ISEL-NEXT:    stdcx. 4, 0, 3
; CHECK-NO-ISEL-NEXT:    bne- 0, .Ltmp0
; CHECK-NO-ISEL-EMPTY:
; CHECK-NO-ISEL-NEXT:    #NO_APP
; CHECK-NO-ISEL-NEXT:    ld 3, 0(29)
; CHECK-NO-ISEL-NEXT:    std 3, 0(30)
; CHECK-NO-ISEL-NEXT:    bl __brelse
; CHECK-NO-ISEL-NEXT:    nop
; CHECK-NO-ISEL-NEXT:    bc 4, 9, .LBB0_21
; CHECK-NO-ISEL-NEXT:  # %bb.22: # %while.end418.loopexit
; CHECK-NO-ISEL-NEXT:    andi. 3, 25, 1
; CHECK-NO-ISEL-NEXT:    mr 5, 27
; CHECK-NO-ISEL-NEXT:    bc 12, 1, .LBB0_24
; CHECK-NO-ISEL-NEXT:  # %bb.23: # %while.end418.loopexit
; CHECK-NO-ISEL-NEXT:    li 5, -5
; CHECK-NO-ISEL-NEXT:  .LBB0_24: # %while.end418.loopexit
; CHECK-NO-ISEL-NEXT:    mr 3, 28
; CHECK-NO-ISEL-NEXT:    bc 12, 8, .LBB0_18
; CHECK-NO-ISEL-NEXT:  .LBB0_25: # %if.then420
; CHECK-NO-ISEL-NEXT:    extsw 4, 5
; CHECK-NO-ISEL-NEXT:    bl jbd2_journal_abort
; CHECK-NO-ISEL-NEXT:    nop
; CHECK-NO-ISEL-NEXT:  .LBB0_26: # %if.then5
; CHECK-NO-ISEL-NEXT:  .LBB0_27: # %do.body.i
; CHECK-NO-ISEL-NEXT:  .LBB0_28: # %do.body5.i1122
; CHECK-NO-ISEL-NEXT:  .LBB0_29: # %if.then.i.i.i.i1144
; CHECK-NO-ISEL-NEXT:  .LBB0_30: # %do.body.i1159
; CHECK-NO-ISEL-NEXT:  .LBB0_31: # %for.body.lr.ph.i
; CHECK-NO-ISEL-NEXT:    bc 4, 20, .LBB0_39
; CHECK-NO-ISEL-NEXT:  # %bb.32: # %spin_unlock.exit.i
; CHECK-NO-ISEL-NEXT:  .LBB0_33: # %if.then.i.i.i.i31.i
; CHECK-NO-ISEL-NEXT:  .LBB0_34: # %if.then102
; CHECK-NO-ISEL-NEXT:  .LBB0_35: # %do.body.i1182
; CHECK-NO-ISEL-NEXT:  .LBB0_36: # %for.body.i1277
; CHECK-NO-ISEL-NEXT:  .LBB0_37: # %if.then.i.i.i.i84.i
; CHECK-NO-ISEL-NEXT:  .LBB0_38: # %if.then249
; CHECK-NO-ISEL-NEXT:  .LBB0_39: # %if.then.i.i.i.i.i
                                             ptr %inp3, ptr %inp4,
                                             ptr %inp5, i1 %inp6,
                                             i1 %inp7, i1 %inp8) #0 {
entry:
  br i1 undef, label %do.body, label %if.then5

if.then5:                                         ; preds = %entry
  unreachable

do.body:                                          ; preds = %entry
  br i1 undef, label %do.body.i, label %trace_jbd2_start_commit.exit

do.body.i:                                        ; preds = %do.body
  unreachable

trace_jbd2_start_commit.exit:                     ; preds = %do.body
  br i1 undef, label %do.body.i1116, label %trace_jbd2_commit_locking.exit

do.body.i1116:                                    ; preds = %trace_jbd2_start_commit.exit
  br i1 undef, label %if.end.i1123, label %do.body5.i1122

do.body5.i1122:                                   ; preds = %do.body.i1116
  unreachable

if.end.i1123:                                     ; preds = %do.body.i1116
  br label %trace_jbd2_commit_locking.exit

trace_jbd2_commit_locking.exit:                   ; preds = %if.end.i1123, %trace_jbd2_start_commit.exit
  br i1 undef, label %spin_unlock.exit1146, label %if.then.i.i.i.i1144

if.then.i.i.i.i1144:                              ; preds = %trace_jbd2_commit_locking.exit
  unreachable

spin_unlock.exit1146:                             ; preds = %trace_jbd2_commit_locking.exit
  br i1 undef, label %spin_unlock.exit1154, label %if.then.i.i.i.i1152

if.then.i.i.i.i1152:                              ; preds = %spin_unlock.exit1146
  br label %spin_unlock.exit1154

spin_unlock.exit1154:                             ; preds = %if.then.i.i.i.i1152, %spin_unlock.exit1146
  br i1 undef, label %do.body.i1159, label %trace_jbd2_commit_flushing.exit

do.body.i1159:                                    ; preds = %spin_unlock.exit1154
  unreachable

trace_jbd2_commit_flushing.exit:                  ; preds = %spin_unlock.exit1154
  br i1 undef, label %for.end.i, label %for.body.lr.ph.i

for.body.lr.ph.i:                                 ; preds = %trace_jbd2_commit_flushing.exit
  br i1 undef, label %spin_unlock.exit.i, label %if.then.i.i.i.i.i

if.then.i.i.i.i.i:                                ; preds = %for.body.lr.ph.i
  unreachable

spin_unlock.exit.i:                               ; preds = %for.body.lr.ph.i
  unreachable

for.end.i:                                        ; preds = %trace_jbd2_commit_flushing.exit
  br i1 undef, label %journal_submit_data_buffers.exit, label %if.then.i.i.i.i31.i

if.then.i.i.i.i31.i:                              ; preds = %for.end.i
  unreachable

journal_submit_data_buffers.exit:                 ; preds = %for.end.i
  br i1 undef, label %if.end103, label %if.then102

if.then102:                                       ; preds = %journal_submit_data_buffers.exit
  unreachable

if.end103:                                        ; preds = %journal_submit_data_buffers.exit
  br i1 undef, label %do.body.i1182, label %trace_jbd2_commit_logging.exit

do.body.i1182:                                    ; preds = %if.end103
  unreachable

trace_jbd2_commit_logging.exit:                   ; preds = %if.end103
  br i1 undef, label %for.end.i1287, label %for.body.i1277

for.body.i1277:                                   ; preds = %trace_jbd2_commit_logging.exit
  unreachable

for.end.i1287:                                    ; preds = %trace_jbd2_commit_logging.exit
  br i1 undef, label %journal_finish_inode_data_buffers.exit, label %if.then.i.i.i.i84.i

if.then.i.i.i.i84.i:                              ; preds = %for.end.i1287
  unreachable

journal_finish_inode_data_buffers.exit:           ; preds = %for.end.i1287
  br i1 undef, label %if.end256, label %if.then249

if.then249:                                       ; preds = %journal_finish_inode_data_buffers.exit
  unreachable

if.end256:                                        ; preds = %journal_finish_inode_data_buffers.exit
  br i1 undef, label %do.body277, label %if.then260

if.then260:                                       ; preds = %if.end256
  br label %do.body277

do.body277:                                       ; preds = %if.then260, %if.end256
  br label %while.body318

while.body318:                                    ; preds = %wait_on_buffer.exit, %do.body277
  %tobool.i1295 = icmp eq i64 %inp1, 0
  br i1 %tobool.i1295, label %wait_on_buffer.exit, label %if.then.i1296

if.then.i1296:                                    ; preds = %while.body318
  unreachable

wait_on_buffer.exit:                              ; preds = %while.body318
  br i1 %inp6, label %do.body378, label %while.body318

do.body378:                                       ; preds = %wait_on_buffer.exit
  br i1 %inp7, label %while.end418, label %while.body392.lr.ph

while.body392.lr.ph:                              ; preds = %do.body378
  br label %while.body392

while.body392:                                    ; preds = %wait_on_buffer.exit1319, %while.body392.lr.ph
  %0 = load ptr, ptr undef, align 8
  %add.ptr399 = getelementptr inbounds i8, ptr %0, i64 -72
  %tobool.i1316 = icmp eq i64 %inp1, 0
  br i1 %tobool.i1316, label %wait_on_buffer.exit1319, label %if.then.i1317

if.then.i1317:                                    ; preds = %while.body392
  unreachable

wait_on_buffer.exit1319:                          ; preds = %while.body392
  %1 = load volatile i64, ptr %add.ptr399, align 8
  %conv.i.i1322 = and i64 %1, 1
  %lnot404 = icmp eq i64 %conv.i.i1322, 0
  %.err.4 = select i1 %lnot404, i32 -5, i32 %inp2
  %2 = call i64 asm sideeffect "1:.long 0x7c0000a8 $| ((($0) & 0x1f) << 21) $| (((0) & 0x1f) << 16) $| ((($3) & 0x1f) << 11) $| (((0) & 0x1) << 0) \0Aandc $0,$0,$2\0Astdcx. $0,0,$3\0Abne- 1b\0A", "=&r,=*m,r,r,*m,~{cc},~{memory}"(ptr elementtype(i64) %add.ptr399, i64 262144, ptr %add.ptr399, ptr elementtype(i64) %add.ptr399) #1
  %prev.i.i.i1325 = getelementptr inbounds i8, ptr %0, i64 8
  %3 = load ptr, ptr %inp4, align 8
  store ptr %3, ptr %inp5, align 8
  call void @__brelse(ptr %3) #1
  br i1 %inp8, label %while.end418, label %while.body392



while.end418:                                     ; preds = %wait_on_buffer.exit1319, %do.body378
  %err.4.lcssa = phi i32 [ %inp2, %do.body378 ], [ %.err.4, %wait_on_buffer.exit1319 ]
  br i1 %inp7, label %if.end421, label %if.then420

if.then420:                                       ; preds = %while.end418
  call void @jbd2_journal_abort(ptr %journal, i32 signext %err.4.lcssa) #1
  br label %if.end421

if.end421:                                        ; preds = %if.then420, %while.end418
  unreachable
}

declare void @jbd2_journal_abort(ptr, i32 signext)

declare void @__brelse(ptr)

attributes #0 = { nounwind }
attributes #1 = { nounwind }

