54 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \3; RUN: | FileCheck %s --check-prefix=RV32I4; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \5; RUN: | FileCheck %s --check-prefix=RV64I6 7define void @cast0(ptr addrspace(1) %ptr) {8; RV32I-LABEL: cast0:9; RV32I: # %bb.0:10; RV32I-NEXT: sw zero, 0(a0)11; RV32I-NEXT: ret12;13; RV64I-LABEL: cast0:14; RV64I: # %bb.0:15; RV64I-NEXT: sw zero, 0(a0)16; RV64I-NEXT: ret17 %ptr0 = addrspacecast ptr addrspace(1) %ptr to ptr addrspace(0)18 store i32 0, ptr %ptr019 ret void20}21 22define void @cast1(ptr %ptr) {23; RV32I-LABEL: cast1:24; RV32I: # %bb.0:25; RV32I-NEXT: addi sp, sp, -1626; RV32I-NEXT: .cfi_def_cfa_offset 1627; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill28; RV32I-NEXT: .cfi_offset ra, -429; RV32I-NEXT: call foo30; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload31; RV32I-NEXT: .cfi_restore ra32; RV32I-NEXT: addi sp, sp, 1633; RV32I-NEXT: .cfi_def_cfa_offset 034; RV32I-NEXT: ret35;36; RV64I-LABEL: cast1:37; RV64I: # %bb.0:38; RV64I-NEXT: addi sp, sp, -1639; RV64I-NEXT: .cfi_def_cfa_offset 1640; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill41; RV64I-NEXT: .cfi_offset ra, -842; RV64I-NEXT: call foo43; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload44; RV64I-NEXT: .cfi_restore ra45; RV64I-NEXT: addi sp, sp, 1646; RV64I-NEXT: .cfi_def_cfa_offset 047; RV64I-NEXT: ret48 %castptr = addrspacecast ptr %ptr to ptr addrspace(10)49 call void @foo(ptr addrspace(10) %castptr)50 ret void51}52 53declare void @foo(ptr addrspace(10))54