; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -O1 -mtriple=riscv32 -verify-machineinstrs < %s \
; RUN:   | FileCheck %s -check-prefix=RV32I

@a = common global i32 0, align 4
@l = common global i32 0, align 4
@b = common global i32 0, align 4
@c = common global i32 0, align 4
@d = common global i32 0, align 4
@e = common global i32 0, align 4
@k = common global i32 0, align 4
@f = common global i32 0, align 4
@j = common global i32 0, align 4
@g = common global i32 0, align 4
@i = common global i32 0, align 4
@h = common global i32 0, align 4

; This test case benefits from codegen recognising that some values are
; trivially rematerialisable, meaning they are recreated rather than saved to
; the stack and restored. It creates high register pressure to force this
; situation.

define i32 @test() nounwind {
; RV32I-LABEL: test:
; RV32I:       # %bb.0: # %entry
; RV32I-NEXT:    addi sp, sp, -64
; RV32I-NEXT:    sw ra, 60(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s0, 56(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s1, 52(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s2, 48(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s3, 44(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s4, 40(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s5, 36(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s6, 32(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s7, 28(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s8, 24(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s9, 20(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s10, 16(sp) # 4-byte Folded Spill
; RV32I-NEXT:    sw s11, 12(sp) # 4-byte Folded Spill
; RV32I-NEXT:    lui s6, %hi(a)
; RV32I-NEXT:    lw a0, %lo(a)(s6)
; RV32I-NEXT:    beqz a0, .LBB0_11
; RV32I-NEXT:  # %bb.1: # %for.body.preheader
; RV32I-NEXT:    lui s2, %hi(l)
; RV32I-NEXT:    lui s3, %hi(k)
; RV32I-NEXT:    lui s4, %hi(j)
; RV32I-NEXT:    lui s5, %hi(i)
; RV32I-NEXT:    lui s1, %hi(d)
; RV32I-NEXT:    lui s0, %hi(e)
; RV32I-NEXT:    lui s7, %hi(f)
; RV32I-NEXT:    lui s8, %hi(g)
; RV32I-NEXT:    lui s9, %hi(h)
; RV32I-NEXT:    lui s10, %hi(c)
; RV32I-NEXT:    lui s11, %hi(b)
; RV32I-NEXT:    j .LBB0_3
; RV32I-NEXT:  .LBB0_2: # %for.inc
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(a)(s6)
; RV32I-NEXT:    addi a0, a0, -1
; RV32I-NEXT:    sw a0, %lo(a)(s6)
; RV32I-NEXT:    beqz a0, .LBB0_11
; RV32I-NEXT:  .LBB0_3: # %for.body
; RV32I-NEXT:    # =>This Inner Loop Header: Depth=1
; RV32I-NEXT:    lw a1, %lo(l)(s2)
; RV32I-NEXT:    beqz a1, .LBB0_5
; RV32I-NEXT:  # %bb.4: # %if.then
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a1, %lo(b)(s11)
; RV32I-NEXT:    lw a2, %lo(c)(s10)
; RV32I-NEXT:    lw a3, %lo(d)(s1)
; RV32I-NEXT:    lw a4, %lo(e)(s0)
; RV32I-NEXT:    li a5, 32
; RV32I-NEXT:    call foo@plt
; RV32I-NEXT:  .LBB0_5: # %if.end
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(k)(s3)
; RV32I-NEXT:    beqz a0, .LBB0_7
; RV32I-NEXT:  # %bb.6: # %if.then3
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(b)(s11)
; RV32I-NEXT:    lw a1, %lo(c)(s10)
; RV32I-NEXT:    lw a2, %lo(d)(s1)
; RV32I-NEXT:    lw a3, %lo(e)(s0)
; RV32I-NEXT:    lw a4, %lo(f)(s7)
; RV32I-NEXT:    li a5, 64
; RV32I-NEXT:    call foo@plt
; RV32I-NEXT:  .LBB0_7: # %if.end5
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(j)(s4)
; RV32I-NEXT:    beqz a0, .LBB0_9
; RV32I-NEXT:  # %bb.8: # %if.then7
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(c)(s10)
; RV32I-NEXT:    lw a1, %lo(d)(s1)
; RV32I-NEXT:    lw a2, %lo(e)(s0)
; RV32I-NEXT:    lw a3, %lo(f)(s7)
; RV32I-NEXT:    lw a4, %lo(g)(s8)
; RV32I-NEXT:    li a5, 32
; RV32I-NEXT:    call foo@plt
; RV32I-NEXT:  .LBB0_9: # %if.end9
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(i)(s5)
; RV32I-NEXT:    beqz a0, .LBB0_2
; RV32I-NEXT:  # %bb.10: # %if.then11
; RV32I-NEXT:    # in Loop: Header=BB0_3 Depth=1
; RV32I-NEXT:    lw a0, %lo(d)(s1)
; RV32I-NEXT:    lw a1, %lo(e)(s0)
; RV32I-NEXT:    lw a2, %lo(f)(s7)
; RV32I-NEXT:    lw a3, %lo(g)(s8)
; RV32I-NEXT:    lw a4, %lo(h)(s9)
; RV32I-NEXT:    li a5, 32
; RV32I-NEXT:    call foo@plt
; RV32I-NEXT:    j .LBB0_2
; RV32I-NEXT:  .LBB0_11: # %for.end
; RV32I-NEXT:    li a0, 1
; RV32I-NEXT:    lw ra, 60(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s0, 56(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s2, 48(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s3, 44(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s4, 40(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s5, 36(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s6, 32(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s7, 28(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s8, 24(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s9, 20(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s10, 16(sp) # 4-byte Folded Reload
; RV32I-NEXT:    lw s11, 12(sp) # 4-byte Folded Reload
; RV32I-NEXT:    addi sp, sp, 64
; RV32I-NEXT:    ret
entry:
  %.pr = load i32, i32* @a, align 4
  %tobool14 = icmp eq i32 %.pr, 0
  br i1 %tobool14, label %for.end, label %for.body

for.body:                                         ; preds = %entry, %for.inc
  %0 = phi i32 [ %dec, %for.inc ], [ %.pr, %entry ]
  %1 = load i32, i32* @l, align 4
  %tobool1 = icmp eq i32 %1, 0
  br i1 %tobool1, label %if.end, label %if.then

if.then:                                          ; preds = %for.body
  %2 = load i32, i32* @b, align 4
  %3 = load i32, i32* @c, align 4
  %4 = load i32, i32* @d, align 4
  %5 = load i32, i32* @e, align 4
  %call = tail call i32 @foo(i32 %0, i32 %2, i32 %3, i32 %4, i32 %5, i32 32)
  br label %if.end

if.end:                                           ; preds = %for.body, %if.then
  %6 = load i32, i32* @k, align 4
  %tobool2 = icmp eq i32 %6, 0
  br i1 %tobool2, label %if.end5, label %if.then3

if.then3:                                         ; preds = %if.end
  %7 = load i32, i32* @b, align 4
  %8 = load i32, i32* @c, align 4
  %9 = load i32, i32* @d, align 4
  %10 = load i32, i32* @e, align 4
  %11 = load i32, i32* @f, align 4
  %call4 = tail call i32 @foo(i32 %7, i32 %8, i32 %9, i32 %10, i32 %11, i32 64)
  br label %if.end5

if.end5:                                          ; preds = %if.end, %if.then3
  %12 = load i32, i32* @j, align 4
  %tobool6 = icmp eq i32 %12, 0
  br i1 %tobool6, label %if.end9, label %if.then7

if.then7:                                         ; preds = %if.end5
  %13 = load i32, i32* @c, align 4
  %14 = load i32, i32* @d, align 4
  %15 = load i32, i32* @e, align 4
  %16 = load i32, i32* @f, align 4
  %17 = load i32, i32* @g, align 4
  %call8 = tail call i32 @foo(i32 %13, i32 %14, i32 %15, i32 %16, i32 %17, i32 32)
  br label %if.end9

if.end9:                                          ; preds = %if.end5, %if.then7
  %18 = load i32, i32* @i, align 4
  %tobool10 = icmp eq i32 %18, 0
  br i1 %tobool10, label %for.inc, label %if.then11

if.then11:                                        ; preds = %if.end9
  %19 = load i32, i32* @d, align 4
  %20 = load i32, i32* @e, align 4
  %21 = load i32, i32* @f, align 4
  %22 = load i32, i32* @g, align 4
  %23 = load i32, i32* @h, align 4
  %call12 = tail call i32 @foo(i32 %19, i32 %20, i32 %21, i32 %22, i32 %23, i32 32)
  br label %for.inc

for.inc:                                          ; preds = %if.end9, %if.then11
  %24 = load i32, i32* @a, align 4
  %dec = add nsw i32 %24, -1
  store i32 %dec, i32* @a, align 4
  %tobool = icmp eq i32 %dec, 0
  br i1 %tobool, label %for.end, label %for.body

for.end:                                          ; preds = %for.inc, %entry
  ret i32 1
}

declare i32 @foo(i32, i32, i32, i32, i32, i32)
