[PATCH] D43014: [X86][SSE] Enable SMIN/SMAX/UMIN/UMAX custom lowering for all legal types

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 7 04:30:55 PST 2018


RKSimon created this revision.
RKSimon added reviewers: craig.topper, efriedma, spatel, andreadb.

This allows us to recognise more saturation patterns and also simplify some MINMAX codegen that was failing to simplify CMPGE comparisons to a legal CMPGT.

An alternative would be to allow SelectionDAGBuilder to always create MINMAX ops and improve the legalizers vector support - is an all-target solution something we'd want?


Repository:
  rL LLVM

https://reviews.llvm.org/D43014

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/horizontal-reduce-smax.ll
  test/CodeGen/X86/horizontal-reduce-smin.ll
  test/CodeGen/X86/horizontal-reduce-umax.ll
  test/CodeGen/X86/horizontal-reduce-umin.ll
  test/CodeGen/X86/i64-to-float.ll
  test/CodeGen/X86/psubus.ll
  test/CodeGen/X86/vec_minmax_sint.ll
  test/CodeGen/X86/vec_minmax_uint.ll
  test/CodeGen/X86/vector-trunc-packus.ll
  test/CodeGen/X86/vector-trunc-ssat.ll
  test/CodeGen/X86/vector-trunc-usat.ll
  test/CodeGen/X86/vselect-minmax.ll





More information about the llvm-commits mailing list