[TTI] getTypeBasedIntrinsicInstrCost - add basic handling for strided load/store...
[llvm-project.git] / llvm / test / CodeGen / LoongArch / preld.ll
blob18057ac871f753fc834d9361bd8f097fe051e747
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2 ; RUN: llc --mtriple=loongarch32 < %s | FileCheck %s --check-prefix=LA32
3 ; RUN: llc --mtriple=loongarch64 < %s | FileCheck %s --check-prefix=LA64
5 declare void @llvm.prefetch(ptr, i32, i32, i32)
7 define void @load_prefetch_no_offset(ptr %a) {
8 ; LA32-LABEL: load_prefetch_no_offset:
9 ; LA32:       # %bb.0: # %entry
10 ; LA32-NEXT:    preld 0, $a0, 0
11 ; LA32-NEXT:    ret
13 ; LA64-LABEL: load_prefetch_no_offset:
14 ; LA64:       # %bb.0: # %entry
15 ; LA64-NEXT:    preld 0, $a0, 0
16 ; LA64-NEXT:    ret
17 entry:
18   call void @llvm.prefetch(ptr %a, i32 0, i32 3, i32 1)
19   ret void
22 define void @store_prefetch_no_offset(ptr %a) {
23 ; LA32-LABEL: store_prefetch_no_offset:
24 ; LA32:       # %bb.0: # %entry
25 ; LA32-NEXT:    preld 8, $a0, 0
26 ; LA32-NEXT:    ret
28 ; LA64-LABEL: store_prefetch_no_offset:
29 ; LA64:       # %bb.0: # %entry
30 ; LA64-NEXT:    preld 8, $a0, 0
31 ; LA64-NEXT:    ret
32 entry:
33   call void @llvm.prefetch(ptr %a, i32 1, i32 3, i32 1)
34   ret void
37 define void @load_prefetch_with_offset(ptr %a) {
38 ; LA32-LABEL: load_prefetch_with_offset:
39 ; LA32:       # %bb.0: # %entry
40 ; LA32-NEXT:    preld 0, $a0, 200
41 ; LA32-NEXT:    ret
43 ; LA64-LABEL: load_prefetch_with_offset:
44 ; LA64:       # %bb.0: # %entry
45 ; LA64-NEXT:    preld 0, $a0, 200
46 ; LA64-NEXT:    ret
47 entry:
48   %addr = getelementptr i8, ptr %a, i64 200
49   call void @llvm.prefetch(ptr %addr, i32 0, i32 3, i32 1)
50   ret void
53 define void @store_prefetch_with_offset(ptr %a) {
54 ; LA32-LABEL: store_prefetch_with_offset:
55 ; LA32:       # %bb.0: # %entry
56 ; LA32-NEXT:    preld 8, $a0, 200
57 ; LA32-NEXT:    ret
59 ; LA64-LABEL: store_prefetch_with_offset:
60 ; LA64:       # %bb.0: # %entry
61 ; LA64-NEXT:    preld 8, $a0, 200
62 ; LA64-NEXT:    ret
63 entry:
64   %addr = getelementptr i8, ptr %a, i64 200
65   call void @llvm.prefetch(ptr %addr, i32 1, i32 3, i32 1)
66   ret void