summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorVolkan Keles <vkeles@apple.com>2018-03-05 22:31:55 +0000
committerVolkan Keles <vkeles@apple.com>2018-03-05 22:31:55 +0000
commit2bc42e90ed147c45a1f0c74b61bb9f6176dbb9ef (patch)
tree11cda8054bf6a22e9ef55ff4aa0f428aa1cc2b5d /llvm/test
parent82daad31fea78a9c75fcbbe79ce7070e642640d0 (diff)
downloadbcm5719-llvm-2bc42e90ed147c45a1f0c74b61bb9f6176dbb9ef.tar.gz
bcm5719-llvm-2bc42e90ed147c45a1f0c74b61bb9f6176dbb9ef.zip
GlobalISel: IRTranslate llvm.fabs.* intrinsic
Summary: Fabs is a common floating-point operation, especially for some expansions. This patch adds a new generic opcode for llvm.fabs.* intrinsic in order to avoid building/matching this intrinsic. Reviewers: qcolombet, aditya_nandakumar, dsanders, rovka Reviewed By: aditya_nandakumar Subscribers: kristof.beyls, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D43864 llvm-svn: 326749
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
index 40679fa162d..077be5e1059 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
@@ -1318,6 +1318,17 @@ define float @test_log2_intrin(float %a) {
%res = call float @llvm.log2.f32(float %a)
ret float %res
}
+
+declare float @llvm.fabs.f32(float)
+define float @test_fabs_intrin(float %a) {
+; CHECK-LABEL: name: test_fabs_intrin
+; CHECK: [[A:%[0-9]+]]:_(s32) = COPY $s0
+; CHECK: [[RES:%[0-9]+]]:_(s32) = G_FABS [[A]]
+; CHECK: $s0 = COPY [[RES]]
+ %res = call float @llvm.fabs.f32(float %a)
+ ret float %res
+}
+
declare void @llvm.lifetime.start.p0i8(i64, i8*)
declare void @llvm.lifetime.end.p0i8(i64, i8*)
define void @test_lifetime_intrin() {
OpenPOWER on IntegriCloud