1*5ef02d99SRoger Ferrer Ibáñez; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2*5ef02d99SRoger Ferrer Ibáñez; RUN: llc -mtriple=riscv32 < %s | FileCheck --check-prefix=RV32 %s 3*5ef02d99SRoger Ferrer Ibáñez; RUN: llc -mtriple=riscv64 < %s | FileCheck --check-prefix=RV64 %s 4*5ef02d99SRoger Ferrer Ibáñez; RUN: llc -mtriple=riscv32-unknown-linux-gnu < %s | FileCheck --check-prefix=RV32-LINUX %s 5*5ef02d99SRoger Ferrer Ibáñez; RUN: llc -mtriple=riscv64-unknown-linux-gnu < %s | FileCheck --check-prefix=RV64-LINUX %s 6*5ef02d99SRoger Ferrer Ibáñez; RUN: llc -mtriple=riscv32-unknown-linux-musl < %s | FileCheck --check-prefix=RV32-LINUX %s 7*5ef02d99SRoger Ferrer Ibáñez; RUN: llc -mtriple=riscv64-unknown-linux-musl < %s | FileCheck --check-prefix=RV64-LINUX %s 8*5ef02d99SRoger Ferrer Ibáñez 9*5ef02d99SRoger Ferrer Ibáñezdeclare void @llvm.clear_cache(ptr, ptr) 10*5ef02d99SRoger Ferrer Ibáñez 11*5ef02d99SRoger Ferrer Ibáñezdefine void @foo(ptr %a, ptr %b) nounwind { 12*5ef02d99SRoger Ferrer Ibáñez; RV32-LABEL: foo: 13*5ef02d99SRoger Ferrer Ibáñez; RV32: # %bb.0: 14*5ef02d99SRoger Ferrer Ibáñez; RV32-NEXT: addi sp, sp, -16 15*5ef02d99SRoger Ferrer Ibáñez; RV32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 16*5ef02d99SRoger Ferrer Ibáñez; RV32-NEXT: call __clear_cache 17*5ef02d99SRoger Ferrer Ibáñez; RV32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 18*5ef02d99SRoger Ferrer Ibáñez; RV32-NEXT: addi sp, sp, 16 19*5ef02d99SRoger Ferrer Ibáñez; RV32-NEXT: ret 20*5ef02d99SRoger Ferrer Ibáñez; 21*5ef02d99SRoger Ferrer Ibáñez; RV64-LABEL: foo: 22*5ef02d99SRoger Ferrer Ibáñez; RV64: # %bb.0: 23*5ef02d99SRoger Ferrer Ibáñez; RV64-NEXT: addi sp, sp, -16 24*5ef02d99SRoger Ferrer Ibáñez; RV64-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 25*5ef02d99SRoger Ferrer Ibáñez; RV64-NEXT: call __clear_cache 26*5ef02d99SRoger Ferrer Ibáñez; RV64-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 27*5ef02d99SRoger Ferrer Ibáñez; RV64-NEXT: addi sp, sp, 16 28*5ef02d99SRoger Ferrer Ibáñez; RV64-NEXT: ret 29*5ef02d99SRoger Ferrer Ibáñez; 30*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-LABEL: foo: 31*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX: # %bb.0: 32*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: addi sp, sp, -16 33*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 34*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: li a2, 0 35*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: call __riscv_flush_icache 36*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 37*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: addi sp, sp, 16 38*5ef02d99SRoger Ferrer Ibáñez; RV32-LINUX-NEXT: ret 39*5ef02d99SRoger Ferrer Ibáñez; 40*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-LABEL: foo: 41*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX: # %bb.0: 42*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: addi sp, sp, -16 43*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill 44*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: li a2, 0 45*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: call __riscv_flush_icache 46*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload 47*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: addi sp, sp, 16 48*5ef02d99SRoger Ferrer Ibáñez; RV64-LINUX-NEXT: ret 49*5ef02d99SRoger Ferrer Ibáñez call void @llvm.clear_cache(ptr %a, ptr %b) 50*5ef02d99SRoger Ferrer Ibáñez ret void 51*5ef02d99SRoger Ferrer Ibáñez} 52