From f344f53426c39bf0e8d0784c541824140b38570f Mon Sep 17 00:00:00 2001 From: Jessica Paquette Date: Mon, 11 Feb 2019 17:16:32 +0000 Subject: [PATCH] Recommit "[GlobalISel] Add IRTranslator support for G_FFLOOR" After the changes introduced in r353586, this instruction doesn't cause any issues for any backend. Original review: https://reviews.llvm.org/D57485 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353720 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/GlobalISel/IRTranslator.cpp | 2 ++ test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/lib/CodeGen/GlobalISel/IRTranslator.cpp b/lib/CodeGen/GlobalISel/IRTranslator.cpp index 19bff7fc56f..9b94a9923f0 100644 --- a/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -808,6 +808,8 @@ IRTranslator::getSimpleUnaryIntrinsicOpcode(Intrinsic::ID ID) { return TargetOpcode::G_FABS; case Intrinsic::canonicalize: return TargetOpcode::G_FCANONICALIZE; + case Intrinsic::floor: + return TargetOpcode::G_FFLOOR; case Intrinsic::log: return TargetOpcode::G_FLOG; case Intrinsic::log2: diff --git a/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll index f61602b59bb..81505b88390 100644 --- a/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll +++ b/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll @@ -2334,6 +2334,14 @@ define float @test_sqrt_f32(float %x) { ret float %y } +declare float @llvm.floor.f32(float) +define float @test_floor_f32(float %x) { + ; CHECK-LABEL: name: test_floor_f32 + ; CHECK: %{{[0-9]+}}:_(s32) = G_FFLOOR %{{[0-9]+}} + %y = call float @llvm.floor.f32(float %x) + ret float %y +} + ; CHECK-LABEL: name: test_llvm.aarch64.neon.ld3.v4i32.p0i32 ; CHECK: %1:_(s384) = G_INTRINSIC_W_SIDE_EFFECTS intrinsic(@llvm.aarch64.neon.ld3), %0(p0) :: (load 48 from %ir.ptr, align 64) define void @test_llvm.aarch64.neon.ld3.v4i32.p0i32(i32* %ptr) { -- 2.50.1