[all-commits] [llvm/llvm-project] edce93: [X86] Lower abdu(lhs, rhs) -> or(usubsat(lhs, rhs), ...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue May 2 11:54:36 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: edce93c9d8ddcd65740d22851db9209ff5ec066e
      https://github.com/llvm/llvm-project/commit/edce93c9d8ddcd65740d22851db9209ff5ec066e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-05-02 (Tue, 02 May 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/abdu-vector-128.ll
    M llvm/test/CodeGen/X86/midpoint-int-vec-128.ll

  Log Message:
  -----------
  [X86] Lower abdu(lhs, rhs) -> or(usubsat(lhs,rhs), usubsat(rhs,lhs))

Adds pre-SSE4 v8i16 abdu handling - we already have something similar for umax(x,y) -> add(x,usubsat(y,x)) / umin(x,y) -> sub(x,usubsat(x,y))

(I'm starting to look at adding generic TargetLowering expandABD() handling and came across this missed opportunity).

Inspiration: http://0x80.pl/notesen/2018-03-11-sse-abs-unsigned.html

Alive2: https://alive2.llvm.org/ce/z/gMhaTa




More information about the All-commits mailing list