128 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=riscv64 -verify-machineinstrs -enable-ipra < %s | FileCheck %s -check-prefix=RV643; RUN: llc -mtriple=riscv32 -verify-machineinstrs -enable-ipra < %s | FileCheck %s -check-prefix=RV324; RUN: llc -mtriple=riscv64 -verify-machineinstrs -frame-pointer=all -enable-ipra < %s \5; RUN: | FileCheck %s -check-prefix=RV64-WITHFP6; RUN: llc -mtriple=riscv32 -verify-machineinstrs -frame-pointer=all -enable-ipra < %s \7; RUN: | FileCheck %s -check-prefix=RV32-WITHFP8 9%struct.bitmap_iterator = type { ptr, ptr, i32, i64 }10 11define i32 @main() nounwind {12; RV64-LABEL: main:13; RV64: # %bb.0: # %entry14; RV64-NEXT: addi sp, sp, -1615; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill16; RV64-NEXT: li a0, 017; RV64-NEXT: call foobar18; RV64-NEXT: li a0, 019; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload20; RV64-NEXT: addi sp, sp, 1621; RV64-NEXT: ret22;23; RV32-LABEL: main:24; RV32: # %bb.0: # %entry25; RV32-NEXT: addi sp, sp, -1626; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill27; RV32-NEXT: li a0, 028; RV32-NEXT: call foobar29; RV32-NEXT: li a0, 030; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload31; RV32-NEXT: addi sp, sp, 1632; RV32-NEXT: ret33;34; RV64-WITHFP-LABEL: main:35; RV64-WITHFP: # %bb.0: # %entry36; RV64-WITHFP-NEXT: addi sp, sp, -1637; RV64-WITHFP-NEXT: sd ra, 8(sp) # 8-byte Folded Spill38; RV64-WITHFP-NEXT: sd s0, 0(sp) # 8-byte Folded Spill39; RV64-WITHFP-NEXT: addi s0, sp, 1640; RV64-WITHFP-NEXT: li a0, 041; RV64-WITHFP-NEXT: call foobar42; RV64-WITHFP-NEXT: li a0, 043; RV64-WITHFP-NEXT: ld ra, 8(sp) # 8-byte Folded Reload44; RV64-WITHFP-NEXT: ld s0, 0(sp) # 8-byte Folded Reload45; RV64-WITHFP-NEXT: addi sp, sp, 1646; RV64-WITHFP-NEXT: ret47;48; RV32-WITHFP-LABEL: main:49; RV32-WITHFP: # %bb.0: # %entry50; RV32-WITHFP-NEXT: addi sp, sp, -1651; RV32-WITHFP-NEXT: sw ra, 12(sp) # 4-byte Folded Spill52; RV32-WITHFP-NEXT: sw s0, 8(sp) # 4-byte Folded Spill53; RV32-WITHFP-NEXT: addi s0, sp, 1654; RV32-WITHFP-NEXT: li a0, 055; RV32-WITHFP-NEXT: call foobar56; RV32-WITHFP-NEXT: li a0, 057; RV32-WITHFP-NEXT: lw ra, 12(sp) # 4-byte Folded Reload58; RV32-WITHFP-NEXT: lw s0, 8(sp) # 4-byte Folded Reload59; RV32-WITHFP-NEXT: addi sp, sp, 1660; RV32-WITHFP-NEXT: ret61entry:62 call void @foobar(ptr null)63 ret i32 064}65 66define internal void @foobar(ptr %live_throughout.0.val) norecurse nounwind {67; RV64-LABEL: foobar:68; RV64: # %bb.0: # %entry69; RV64-NEXT: addi sp, sp, -4870; RV64-NEXT: sd ra, 40(sp) # 8-byte Folded Spill71; RV64-NEXT: mv a1, a072; RV64-NEXT: addi a0, sp, 873; RV64-NEXT: addi a2, sp, 474; RV64-NEXT: call bmp_iter_set_init75; RV64-NEXT: ld ra, 40(sp) # 8-byte Folded Reload76; RV64-NEXT: addi sp, sp, 4877; RV64-NEXT: ret78;79; RV32-LABEL: foobar:80; RV32: # %bb.0: # %entry81; RV32-NEXT: addi sp, sp, -4882; RV32-NEXT: sw ra, 44(sp) # 4-byte Folded Spill83; RV32-NEXT: mv a1, a084; RV32-NEXT: addi a0, sp, 1685; RV32-NEXT: addi a2, sp, 1286; RV32-NEXT: call bmp_iter_set_init87; RV32-NEXT: lw ra, 44(sp) # 4-byte Folded Reload88; RV32-NEXT: addi sp, sp, 4889; RV32-NEXT: ret90;91; RV64-WITHFP-LABEL: foobar:92; RV64-WITHFP: # %bb.0: # %entry93; RV64-WITHFP-NEXT: addi sp, sp, -6494; RV64-WITHFP-NEXT: sd ra, 56(sp) # 8-byte Folded Spill95; RV64-WITHFP-NEXT: sd s0, 48(sp) # 8-byte Folded Spill96; RV64-WITHFP-NEXT: addi s0, sp, 6497; RV64-WITHFP-NEXT: mv a1, a098; RV64-WITHFP-NEXT: addi a0, s0, -4899; RV64-WITHFP-NEXT: addi a2, s0, -52100; RV64-WITHFP-NEXT: call bmp_iter_set_init101; RV64-WITHFP-NEXT: ld ra, 56(sp) # 8-byte Folded Reload102; RV64-WITHFP-NEXT: ld s0, 48(sp) # 8-byte Folded Reload103; RV64-WITHFP-NEXT: addi sp, sp, 64104; RV64-WITHFP-NEXT: ret105;106; RV32-WITHFP-LABEL: foobar:107; RV32-WITHFP: # %bb.0: # %entry108; RV32-WITHFP-NEXT: addi sp, sp, -48109; RV32-WITHFP-NEXT: sw ra, 44(sp) # 4-byte Folded Spill110; RV32-WITHFP-NEXT: sw s0, 40(sp) # 4-byte Folded Spill111; RV32-WITHFP-NEXT: addi s0, sp, 48112; RV32-WITHFP-NEXT: mv a1, a0113; RV32-WITHFP-NEXT: addi a0, s0, -32114; RV32-WITHFP-NEXT: addi a2, s0, -36115; RV32-WITHFP-NEXT: call bmp_iter_set_init116; RV32-WITHFP-NEXT: lw ra, 44(sp) # 4-byte Folded Reload117; RV32-WITHFP-NEXT: lw s0, 40(sp) # 4-byte Folded Reload118; RV32-WITHFP-NEXT: addi sp, sp, 48119; RV32-WITHFP-NEXT: ret120entry:121 %rsi = alloca %struct.bitmap_iterator, align 8122 %regno = alloca i32, i32 0, align 4123 call void @bmp_iter_set_init(ptr %rsi, ptr %live_throughout.0.val, ptr %regno)124 ret void125}126 127declare void @bmp_iter_set_init(ptr, ptr, ptr)128