[all-commits] [llvm/llvm-project] 517158: [InstCombine] Add undef/non-splat tests for add/su...

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed Jan 29 12:00:00 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5171587a5f50aecb43e6241c3dbc36f2cf615749
      https://github.com/llvm/llvm-project/commit/5171587a5f50aecb43e6241c3dbc36f2cf615749
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:
    M llvm/test/Transforms/InstCombine/icmp-add.ll
    M llvm/test/Transforms/InstCombine/icmp-sub.ll

  Log Message:
  -----------
  [InstCombine] Add undef/non-splat tests for add/sub + icmp eq; NFC


  Commit: e086e23024e4fb202628e988f691c158eebf095c
      https://github.com/llvm/llvm-project/commit/e086e23024e4fb202628e988f691c158eebf095c
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/icmp-add.ll
    M llvm/test/Transforms/InstCombine/icmp-sub.ll

  Log Message:
  -----------
  [InstCombine] Support non-splat vectors in icmp eq + add/sub fold

For the

    icmp eq (add X, C1), C2 => icmp eq X, C2-C1
    icmp eq (sub C1, X), C2 => icmp eq X, C1-C2

folds, this allows C1 to be non-splat and contain undefs.
C2 is still splat, due to the structure of the code.

This is to address the remaining part of the regression in D73411,
where demanded element analysis replaces some elements with undef.

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


Compare: https://github.com/llvm/llvm-project/compare/0da937bb5c2b...e086e23024e4


More information about the All-commits mailing list