xref: /llvm-project/llvm/test/CodeGen/PowerPC/dcbf.ll (revision 427fb35192f1f7bb694a5910b05abc5925a798b2)
1; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s \
2; RUN:     -verify-machineinstrs -ppc-asm-full-reg-names \
3; RUN:     -ppc-vsr-nums-as-vr | FileCheck %s --check-prefix=CHECK-S
4; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu < %s \
5; RUN:     -verify-machineinstrs -ppc-asm-full-reg-names \
6; RUN:     -ppc-vsr-nums-as-vr --filetype=obj | \
7; RUN:     llvm-objdump --mcpu=future -dr - | FileCheck %s --check-prefix=CHECK-O
8
9; Function Attrs: nounwind
10define void @dcbf_test(ptr %a) {
11entry:
12  tail call void @llvm.ppc.dcbf(ptr %a)
13; CHECK-S-LABEL: @dcbf_test
14; CHECK-S: dcbf 0, r3
15; CHECK-S-NEXT: blr
16; CHECK-O-LABEL: <dcbf_test>:
17; CHECK-O:        0: ac 18 00 7c        dcbf 0, 3
18; CHECK-O-NEXT:   4: 20 00 80 4e        blr
19ret void
20}
21
22declare void @llvm.ppc.dcbf(ptr)
23
24; Function Attrs: nounwind
25define void @dcbfl_test(ptr %a) {
26entry:
27  tail call void @llvm.ppc.dcbfl(ptr %a)
28; CHECK-S-LABEL: @dcbfl_test
29; CHECK-S: dcbfl 0, r3
30; CHECK-S-NEXT: blr
31; CHECK-O-LABEL: <dcbfl_test>:
32; CHECK-O:        20: ac 18 20 7c       dcbfl 0, 3
33; CHECK-O-NEXT:   24: 20 00 80 4e       blr
34ret void
35}
36
37declare void @llvm.ppc.dcbfl(ptr)
38
39; Function Attrs: nounwind
40define void @dcbflp_test(ptr %a) {
41entry:
42  %add.a = getelementptr inbounds i8, ptr %a, i64 3
43  tail call void @llvm.ppc.dcbflp(ptr %add.a)
44; CHECK-S-LABEL: @dcbflp_test
45; CHECK-S: addi r3, r3, 3
46; CHECK-S-NEXT: dcbflp 0, r3
47; CHECK-S-NEXT: blr
48; CHECK-O-LABEL: <dcbflp_test>:
49; CHECK-O:        40: 03 00 63 38       addi 3, 3, 3
50; CHECK-O-NEXT:   44: ac 18 60 7c       dcbflp 0, 3
51; CHECK-O-NEXT:   48: 20 00 80 4e       blr
52ret void
53}
54
55declare void @llvm.ppc.dcbflp(ptr)
56