[all-commits] [llvm/llvm-project] bc2025: [X86] Add test cases for v2i32->v2f32 strict_sint_...

topperc via All-commits all-commits at lists.llvm.org
Thu Dec 26 19:21:49 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: bc202547d522407a55f7a0bb246c9cd46d793faf
      https://github.com/llvm/llvm-project/commit/bc202547d522407a55f7a0bb246c9cd46d793faf
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2019-12-26 (Thu, 26 Dec 2019)

  Changed paths:
    M llvm/test/CodeGen/X86/vec-strict-inttofp-128.ll

  Log Message:
  -----------
  [X86] Add test cases for v2i32->v2f32 strict_sint_to_fp/strict_uint_to_fp. NFC


  Commit: a5d266b9cfc6b5cda1925636a14de13cf46a4743
      https://github.com/llvm/llvm-project/commit/a5d266b9cfc6b5cda1925636a14de13cf46a4743
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2019-12-26 (Thu, 26 Dec 2019)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vec-strict-inttofp-128.ll
    M llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll

  Log Message:
  -----------
  [X86] Add custom legalization for strict_uint_to_fp v2i32->v2f32.

I believe the algorithm we use for non-strict is exception safe
for strict. The fsub won't generate any exceptions. After it we
will have an exact version of the i32 integer in a double. Then
we just round it to f32. That rounding will generate a precision
exception if it can't be represented exactly.


Compare: https://github.com/llvm/llvm-project/compare/371038e3ff72...a5d266b9cfc6


More information about the All-commits mailing list