[PATCH] D68411: Add support for intrinsics llvm.ppc.dcbfl and llvm.ppc.dcbflp
Stefan Pintilie via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 12 07:27:33 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGb413e5c3097c: [PowerPC] Add support for intrinsics llvm.ppc.dcbfl and llvm.ppc.dcbflp (authored by anil9, committed by stefanp).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68411/new/
https://reviews.llvm.org/D68411
Files:
llvm/include/llvm/IR/IntrinsicsPowerPC.td
llvm/lib/Target/PowerPC/PPCInstrInfo.td
llvm/test/CodeGen/PowerPC/dcbf.ll
Index: llvm/test/CodeGen/PowerPC/dcbf.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/dcbf.ll
+++ llvm/test/CodeGen/PowerPC/dcbf.ll
@@ -13,3 +13,29 @@
}
declare void @llvm.ppc.dcbf(i8*)
+
+; Function Attrs: nounwind
+define void @dcbfl_test(i8* %a) {
+entry:
+ tail call void @llvm.ppc.dcbfl(i8* %a)
+; CHECK-LABEL: @dcbfl_test
+; CHECK: dcbfl 0, r3
+; CHECK-NEXT: blr
+ret void
+}
+
+declare void @llvm.ppc.dcbfl(i8*)
+
+; Function Attrs: nounwind
+define void @dcbflp_test(i8* %a) {
+entry:
+ %add.a = getelementptr inbounds i8, i8* %a, i64 3
+ tail call void @llvm.ppc.dcbflp(i8* %add.a)
+; CHECK-LABEL: @dcbflp_test
+; CHECK: addi r3, r3, 3
+; CHECK-NEXT: dcbflp 0, r3
+; CHECK-NEXT: blr
+ret void
+}
+
+declare void @llvm.ppc.dcbflp(i8*)
Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td
===================================================================
--- llvm/lib/Target/PowerPC/PPCInstrInfo.td
+++ llvm/lib/Target/PowerPC/PPCInstrInfo.td
@@ -4469,6 +4469,11 @@
def DCBFL : PPCAsmPseudo<"dcbfl $dst", (ins memrr:$dst)>;
def DCBFLP : PPCAsmPseudo<"dcbflp $dst", (ins memrr:$dst)>;
+def : Pat<(int_ppc_dcbfl xoaddr:$dst),
+ (DCBFL xoaddr:$dst)>;
+def : Pat<(int_ppc_dcbflp xoaddr:$dst),
+ (DCBFLP xoaddr:$dst)>;
+
def : InstAlias<"crset $bx", (CREQV crbitrc:$bx, crbitrc:$bx, crbitrc:$bx)>;
def : InstAlias<"crclr $bx", (CRXOR crbitrc:$bx, crbitrc:$bx, crbitrc:$bx)>;
def : InstAlias<"crmove $bx, $by", (CROR crbitrc:$bx, crbitrc:$by, crbitrc:$by)>;
Index: llvm/include/llvm/IR/IntrinsicsPowerPC.td
===================================================================
--- llvm/include/llvm/IR/IntrinsicsPowerPC.td
+++ llvm/include/llvm/IR/IntrinsicsPowerPC.td
@@ -20,6 +20,8 @@
def int_ppc_dcba : Intrinsic<[], [llvm_ptr_ty], []>;
def int_ppc_dcbf : GCCBuiltin<"__builtin_dcbf">,
Intrinsic<[], [llvm_ptr_ty], []>;
+ def int_ppc_dcbfl : Intrinsic<[], [llvm_ptr_ty], []>;
+ def int_ppc_dcbflp: Intrinsic<[], [llvm_ptr_ty], []>;
def int_ppc_dcbi : Intrinsic<[], [llvm_ptr_ty], []>;
def int_ppc_dcbst : Intrinsic<[], [llvm_ptr_ty], []>;
def int_ppc_dcbt : Intrinsic<[], [llvm_ptr_ty],
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68411.244174.patch
Type: text/x-patch
Size: 2215 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200212/88c9bac8/attachment.bin>
More information about the llvm-commits
mailing list