105 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=loongarch32-linux-gnu < %s | FileCheck -check-prefix=LINUX32 %s3; RUN: llc -mtriple=loongarch64-linux-gnu < %s | FileCheck -check-prefix=LINUX64 %s4; RUN: llc -mtriple=loongarch32-unknown-openbsd < %s | FileCheck -check-prefix=OPENBSD32 %s5; RUN: llc -mtriple=loongarch64-unknown-openbsd < %s | FileCheck -check-prefix=OPENBSD64 %s6 7define void @func() sspreq nounwind {8; LINUX32-LABEL: func:9; LINUX32: # %bb.0:10; LINUX32-NEXT: addi.w $sp, $sp, -1611; LINUX32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill12; LINUX32-NEXT: st.w $fp, $sp, 8 # 4-byte Folded Spill13; LINUX32-NEXT: pcalau12i $fp, %pc_hi20(__stack_chk_guard)14; LINUX32-NEXT: ld.w $a0, $fp, %pc_lo12(__stack_chk_guard)15; LINUX32-NEXT: st.w $a0, $sp, 416; LINUX32-NEXT: addi.w $a0, $sp, 017; LINUX32-NEXT: bl capture18; LINUX32-NEXT: ld.w $a0, $fp, %pc_lo12(__stack_chk_guard)19; LINUX32-NEXT: ld.w $a1, $sp, 420; LINUX32-NEXT: bne $a0, $a1, .LBB0_221; LINUX32-NEXT: # %bb.1:22; LINUX32-NEXT: ld.w $fp, $sp, 8 # 4-byte Folded Reload23; LINUX32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload24; LINUX32-NEXT: addi.w $sp, $sp, 1625; LINUX32-NEXT: ret26; LINUX32-NEXT: .LBB0_2:27; LINUX32-NEXT: bl __stack_chk_fail28;29; LINUX64-LABEL: func:30; LINUX64: # %bb.0:31; LINUX64-NEXT: addi.d $sp, $sp, -3232; LINUX64-NEXT: st.d $ra, $sp, 24 # 8-byte Folded Spill33; LINUX64-NEXT: st.d $fp, $sp, 16 # 8-byte Folded Spill34; LINUX64-NEXT: pcalau12i $fp, %pc_hi20(__stack_chk_guard)35; LINUX64-NEXT: ld.d $a0, $fp, %pc_lo12(__stack_chk_guard)36; LINUX64-NEXT: st.d $a0, $sp, 837; LINUX64-NEXT: addi.d $a0, $sp, 438; LINUX64-NEXT: pcaddu18i $ra, %call36(capture)39; LINUX64-NEXT: jirl $ra, $ra, 040; LINUX64-NEXT: ld.d $a0, $fp, %pc_lo12(__stack_chk_guard)41; LINUX64-NEXT: ld.d $a1, $sp, 842; LINUX64-NEXT: bne $a0, $a1, .LBB0_243; LINUX64-NEXT: # %bb.1:44; LINUX64-NEXT: ld.d $fp, $sp, 16 # 8-byte Folded Reload45; LINUX64-NEXT: ld.d $ra, $sp, 24 # 8-byte Folded Reload46; LINUX64-NEXT: addi.d $sp, $sp, 3247; LINUX64-NEXT: ret48; LINUX64-NEXT: .LBB0_2:49; LINUX64-NEXT: pcaddu18i $ra, %call36(__stack_chk_fail)50; LINUX64-NEXT: jirl $ra, $ra, 051;52; OPENBSD32-LABEL: func:53; OPENBSD32: # %bb.0:54; OPENBSD32-NEXT: addi.w $sp, $sp, -1655; OPENBSD32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill56; OPENBSD32-NEXT: st.w $fp, $sp, 8 # 4-byte Folded Spill57; OPENBSD32-NEXT: pcalau12i $fp, %pc_hi20(__guard_local)58; OPENBSD32-NEXT: ld.w $a0, $fp, %pc_lo12(__guard_local)59; OPENBSD32-NEXT: st.w $a0, $sp, 460; OPENBSD32-NEXT: addi.w $a0, $sp, 061; OPENBSD32-NEXT: bl capture62; OPENBSD32-NEXT: ld.w $a0, $fp, %pc_lo12(__guard_local)63; OPENBSD32-NEXT: ld.w $a1, $sp, 464; OPENBSD32-NEXT: bne $a0, $a1, .LBB0_265; OPENBSD32-NEXT: # %bb.1: # %SP_return66; OPENBSD32-NEXT: ld.w $fp, $sp, 8 # 4-byte Folded Reload67; OPENBSD32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload68; OPENBSD32-NEXT: addi.w $sp, $sp, 1669; OPENBSD32-NEXT: ret70; OPENBSD32-NEXT: .LBB0_2: # %CallStackCheckFailBlk71; OPENBSD32-NEXT: pcalau12i $a0, %pc_hi20(.LSSH)72; OPENBSD32-NEXT: addi.w $a0, $a0, %pc_lo12(.LSSH)73; OPENBSD32-NEXT: bl __stack_smash_handler74;75; OPENBSD64-LABEL: func:76; OPENBSD64: # %bb.0:77; OPENBSD64-NEXT: addi.d $sp, $sp, -3278; OPENBSD64-NEXT: st.d $ra, $sp, 24 # 8-byte Folded Spill79; OPENBSD64-NEXT: st.d $fp, $sp, 16 # 8-byte Folded Spill80; OPENBSD64-NEXT: pcalau12i $fp, %pc_hi20(__guard_local)81; OPENBSD64-NEXT: ld.d $a0, $fp, %pc_lo12(__guard_local)82; OPENBSD64-NEXT: st.d $a0, $sp, 883; OPENBSD64-NEXT: addi.d $a0, $sp, 484; OPENBSD64-NEXT: pcaddu18i $ra, %call36(capture)85; OPENBSD64-NEXT: jirl $ra, $ra, 086; OPENBSD64-NEXT: ld.d $a0, $fp, %pc_lo12(__guard_local)87; OPENBSD64-NEXT: ld.d $a1, $sp, 888; OPENBSD64-NEXT: bne $a0, $a1, .LBB0_289; OPENBSD64-NEXT: # %bb.1: # %SP_return90; OPENBSD64-NEXT: ld.d $fp, $sp, 16 # 8-byte Folded Reload91; OPENBSD64-NEXT: ld.d $ra, $sp, 24 # 8-byte Folded Reload92; OPENBSD64-NEXT: addi.d $sp, $sp, 3293; OPENBSD64-NEXT: ret94; OPENBSD64-NEXT: .LBB0_2: # %CallStackCheckFailBlk95; OPENBSD64-NEXT: pcalau12i $a0, %pc_hi20(.LSSH)96; OPENBSD64-NEXT: addi.d $a0, $a0, %pc_lo12(.LSSH)97; OPENBSD64-NEXT: pcaddu18i $ra, %call36(__stack_smash_handler)98; OPENBSD64-NEXT: jirl $ra, $ra, 099 %alloca = alloca i32, align 4100 call void @capture(ptr %alloca)101 ret void102}103 104declare void @capture(ptr)105