1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=riscv64 | FileCheck %s 3 4; Make sure we emit an lw for the stack reload in 'truebb'. 5define i1 @foo(i64 %x, i32 %y) nounwind { 6; CHECK-LABEL: foo: 7; CHECK: # %bb.0: 8; CHECK-NEXT: addi sp, sp, -144 9; CHECK-NEXT: sd ra, 136(sp) # 8-byte Folded Spill 10; CHECK-NEXT: sd gp, 128(sp) # 8-byte Folded Spill 11; CHECK-NEXT: sd tp, 120(sp) # 8-byte Folded Spill 12; CHECK-NEXT: sd s0, 112(sp) # 8-byte Folded Spill 13; CHECK-NEXT: sd s1, 104(sp) # 8-byte Folded Spill 14; CHECK-NEXT: sd s2, 96(sp) # 8-byte Folded Spill 15; CHECK-NEXT: sd s3, 88(sp) # 8-byte Folded Spill 16; CHECK-NEXT: sd s4, 80(sp) # 8-byte Folded Spill 17; CHECK-NEXT: sd s5, 72(sp) # 8-byte Folded Spill 18; CHECK-NEXT: sd s6, 64(sp) # 8-byte Folded Spill 19; CHECK-NEXT: sd s7, 56(sp) # 8-byte Folded Spill 20; CHECK-NEXT: sd s8, 48(sp) # 8-byte Folded Spill 21; CHECK-NEXT: sd s9, 40(sp) # 8-byte Folded Spill 22; CHECK-NEXT: sd s10, 32(sp) # 8-byte Folded Spill 23; CHECK-NEXT: sd s11, 24(sp) # 8-byte Folded Spill 24; CHECK-NEXT: sd a1, 8(sp) # 8-byte Folded Spill 25; CHECK-NEXT: sd a0, 16(sp) # 8-byte Folded Spill 26; CHECK-NEXT: #APP 27; CHECK-NEXT: #NO_APP 28; CHECK-NEXT: ld a0, 16(sp) # 8-byte Folded Reload 29; CHECK-NEXT: beqz a0, .LBB0_2 30; CHECK-NEXT: # %bb.1: # %falsebb 31; CHECK-NEXT: li a0, 0 32; CHECK-NEXT: j .LBB0_3 33; CHECK-NEXT: .LBB0_2: # %truebb 34; CHECK-NEXT: lw a0, 8(sp) # 8-byte Folded Reload 35; CHECK-NEXT: slti a0, a0, 0 36; CHECK-NEXT: .LBB0_3: # %falsebb 37; CHECK-NEXT: ld ra, 136(sp) # 8-byte Folded Reload 38; CHECK-NEXT: ld gp, 128(sp) # 8-byte Folded Reload 39; CHECK-NEXT: ld tp, 120(sp) # 8-byte Folded Reload 40; CHECK-NEXT: ld s0, 112(sp) # 8-byte Folded Reload 41; CHECK-NEXT: ld s1, 104(sp) # 8-byte Folded Reload 42; CHECK-NEXT: ld s2, 96(sp) # 8-byte Folded Reload 43; CHECK-NEXT: ld s3, 88(sp) # 8-byte Folded Reload 44; CHECK-NEXT: ld s4, 80(sp) # 8-byte Folded Reload 45; CHECK-NEXT: ld s5, 72(sp) # 8-byte Folded Reload 46; CHECK-NEXT: ld s6, 64(sp) # 8-byte Folded Reload 47; CHECK-NEXT: ld s7, 56(sp) # 8-byte Folded Reload 48; CHECK-NEXT: ld s8, 48(sp) # 8-byte Folded Reload 49; CHECK-NEXT: ld s9, 40(sp) # 8-byte Folded Reload 50; CHECK-NEXT: ld s10, 32(sp) # 8-byte Folded Reload 51; CHECK-NEXT: ld s11, 24(sp) # 8-byte Folded Reload 52; CHECK-NEXT: addi sp, sp, 144 53; CHECK-NEXT: ret 54 tail call void asm sideeffect "", "~{x1},~{x3},~{x4},~{x5},~{x6},~{x7},~{x8},~{x9},~{x10},~{x11},~{x12},~{x13},~{x14},~{x15},~{x16},~{x17},~{x18},~{x19},~{x20},~{x21},~{x22},~{x23},~{x24},~{x25},~{x26},~{x27},~{x28},~{x29},~{x30},~{x31}"() 55 %a = icmp eq i64 %x, 0 56 br i1 %a, label %truebb, label %falsebb 57truebb: 58 %b = icmp slt i32 %y, 0 59 ret i1 %b 60falsebb: 61 ret i1 0 62} 63