[all-commits] [llvm/llvm-project] 2875cc: [X86] Improve for v2i32->v2f64 uint_to_fp
topperc via All-commits
all-commits at lists.llvm.org
Fri Jan 3 11:39:24 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 2875cc6b290cef6ec355a896f1d03ddfaa05e1f4
https://github.com/llvm/llvm-project/commit/2875cc6b290cef6ec355a896f1d03ddfaa05e1f4
Author: Craig Topper <craig.topper at intel.com>
Date: 2020-01-03 (Fri, 03 Jan 2020)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vec-strict-inttofp-128.ll
M llvm/test/CodeGen/X86/vec_int_to_fp.ll
M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
Log Message:
-----------
[X86] Improve for v2i32->v2f64 uint_to_fp
This uses an alternative implementation of this conversion derived
from our v2i32->v2f32 handling. We can zero extend the v2i32 to
v2i64, or it with the bit representation of 2.0^52 which will give
us 2.0^52 plus the 32-bit integer since double's mantissa is 52 bits.
Then we just need to subtract 2.0^52 as a double and let the floating
point unit normalize the remaining bits into a valid double.
This is less instructions then our previous code, but does require
a port 5 shuffle for the zero extend or unpack.
Differential Revision: https://reviews.llvm.org/D71945
More information about the All-commits
mailing list