[all-commits] [llvm/llvm-project] c9540f: [InstCombine] Fix multi-use handling in cttz trans...

Nikita Popov via All-commits all-commits at lists.llvm.org
Tue Feb 18 08:55:07 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c9540fe59bbf53223368c18e457f79d3e981a3a5
      https://github.com/llvm/llvm-project/commit/c9540fe59bbf53223368c18e457f79d3e981a3a5
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll

  Log Message:
  -----------
  [InstCombine] Fix multi-use handling in cttz transform

The select-of-cttz transform can currently duplicate cttz intrinsics
and zext/trunc ops. The cause is that it unnecessarily duplicates
the intrinsic and the zext/trunc when setting the "undef_on_zero"
flag to false. However, it's always legal to set the flag from true
to false, so we can make this replacement even if there are extra users.

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




More information about the All-commits mailing list