[all-commits] [llvm/llvm-project] a54187: [llvm][CodeGen] respect booleanVectorContents whil...

Yingchi Long via All-commits all-commits at lists.llvm.org
Wed Jul 3 08:04:41 PDT 2024


  Branch: refs/heads/users/inclyc/legalize-op-correctness
  Home:   https://github.com/llvm/llvm-project
  Commit: a54187d1f2e50af4926b892a8dc8c0422b181acb
      https://github.com/llvm/llvm-project/commit/a54187d1f2e50af4926b892a8dc8c0422b181acb
  Author: Yingchi Long <i at lyc.dev>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp

  Log Message:
  -----------
  [llvm][CodeGen] respect booleanVectorContents while UnrollVSETCC (NFC)

This is an NFC change that focus fixing correctness of UnrollVSETCC.
For historical reason this function assumes all targets setBooleanVectorContents to "ZeroOrNegativeOneBooleanContent".
i.e. vector boolean values are "-1".

However this is not true for some targets, e.g. RISC-V, Sparc, VE, XCore, ARC...

Actually all these targets support native vector comparison.
Thus it is no need to invoke this function and it is not coveraged by any test cases.

I'm not sure whether or not it is OK to submit such patch,
but this does indeed fix potential miscompilation for furthur targets.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list