[PATCH] D142288: [X86] Add basic vector handling for ISD::ABDS/ABDU (absolute difference) nodes

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 23 02:12:45 PST 2023


RKSimon added inline comments.


================
Comment at: llvm/test/CodeGen/X86/abds-vector-128.ll:159
   %sub = sub <16 x i64> %aext, %bext
   %abs = call <16 x i64> @llvm.abs.v16i64(<16 x i64> %sub, i1 false)
   %trunc = trunc <16 x i64> %abs to <16 x i8>
----------------
pengfei wrote:
> This seems not correct.
> The SDM says `When an individual result is too large or too small to be represented in a byte, the result is wrapped around and the low 8 bits are written to the destination element`
> While LangRef says `If the argument is INT_MIN, then the result is also INT_MIN if is_int_min_poison == 0 and poison otherwise.`
Aren't we making use of the sext to guarantee that the sub result is in bounds: https://alive2.llvm.org/ce/z/5UECxJ


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142288/new/

https://reviews.llvm.org/D142288



More information about the llvm-commits mailing list