OSDN Git Service

[InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil
authorMikhail Dvoretckii <mikhail.dvoretckii@intel.com>
Tue, 19 Jun 2018 10:49:12 +0000 (10:49 +0000)
committerMikhail Dvoretckii <mikhail.dvoretckii@intel.com>
Tue, 19 Jun 2018 10:49:12 +0000 (10:49 +0000)
commit53ba989b547040507e1a1e237083ddaeec2aa343
treedbc2a1e8a0d04d32da0d2e76cb6a643a1e5295df
parentfdc767cc014d70c25bdd23f23ab89583966269bd
[InstCombine] Replacing X86-specific rounding intrinsics with generic floor-ceil

This patch replaces calls to X86-specific intrinsics with floor-ceil semantics
with calls to target-independent @llvm.floor.* and @llvm.ceil.* intrinsics. This
doesn't affect the resulting machine code, as those intrinsics are lowered to
the same instructions, but exposes these specific rounding cases to generic
optimizations.

Differential Revision: https://reviews.llvm.org/D48067

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335039 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineCalls.cpp
test/Transforms/InstCombine/X86/x86-avx.ll [new file with mode: 0644]
test/Transforms/InstCombine/X86/x86-avx512.ll
test/Transforms/InstCombine/X86/x86-sse41.ll