[all-commits] [llvm/llvm-project] 85589f: [X86] Add custom type legalization and lowering fo...

topperc via All-commits all-commits at lists.llvm.org
Tue Nov 19 16:05:58 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 85589f8077a229a6fbc7c245ae28bec06b88c5fb
      https://github.com/llvm/llvm-project/commit/85589f8077a229a6fbc7c245ae28bec06b88c5fb
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

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

  Log Message:
  -----------
  [X86] Add custom type legalization and lowering for scalar STRICT_FP_TO_SINT/UINT

This is a first pass at Custom lowering for these operations. I also updated some of the vector code where it was obviously easy and straightforward. More work needed in follow up.

This enables these operations to be handled with X87 where special rounding control adjustments are needed to perform a truncate.

Still need to fix Promotion in the target independent code in LegalizeDAG.
llrint/llround split into separate test file because we can't make a strict libcall properly yet either and we need to do that when i64 isn't a legal type.

This does not include any isel support. So we still rely on the mutation in SelectionDAGIsel to remove the strict from this stuff later. Except for the X87 stuff which goes through custom nodes that already had chains.

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




More information about the All-commits mailing list