49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=+d --verify-machineinstrs < %s | FileCheck %s --check-prefix=LA323; RUN: llc --mtriple=loongarch64 -mattr=+d --verify-machineinstrs < %s | FileCheck %s --check-prefix=LA644 5define void @cast0(ptr addrspace(1) %ptr) {6; LA32-LABEL: cast0:7; LA32: # %bb.0:8; LA32-NEXT: st.w $zero, $a0, 09; LA32-NEXT: ret10;11; LA64-LABEL: cast0:12; LA64: # %bb.0:13; LA64-NEXT: st.w $zero, $a0, 014; LA64-NEXT: ret15 %ptr0 = addrspacecast ptr addrspace(1) %ptr to ptr addrspace(0)16 store i32 0, ptr %ptr017 ret void18}19 20define void @cast1(ptr %ptr) {21; LA32-LABEL: cast1:22; LA32: # %bb.0:23; LA32-NEXT: addi.w $sp, $sp, -1624; LA32-NEXT: .cfi_def_cfa_offset 1625; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill26; LA32-NEXT: .cfi_offset 1, -427; LA32-NEXT: bl foo28; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload29; LA32-NEXT: addi.w $sp, $sp, 1630; LA32-NEXT: ret31;32; LA64-LABEL: cast1:33; LA64: # %bb.0:34; LA64-NEXT: addi.d $sp, $sp, -1635; LA64-NEXT: .cfi_def_cfa_offset 1636; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill37; LA64-NEXT: .cfi_offset 1, -838; LA64-NEXT: pcaddu18i $ra, %call36(foo)39; LA64-NEXT: jirl $ra, $ra, 040; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload41; LA64-NEXT: addi.d $sp, $sp, 1642; LA64-NEXT: ret43 %castptr = addrspacecast ptr %ptr to ptr addrspace(10)44 call void @foo(ptr addrspace(10) %castptr)45 ret void46}47 48declare void @foo(ptr addrspace(10))49