[all-commits] [llvm/llvm-project] 956545: [InstCombine] add tests for icmp with 'or' ops; NFC

RotateRight via All-commits all-commits at lists.llvm.org
Tue Sep 7 13:39:55 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9565457aad3459339c9dbd5064a8a2708fc032a9
      https://github.com/llvm/llvm-project/commit/9565457aad3459339c9dbd5064a8a2708fc032a9
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-09-07 (Tue, 07 Sep 2021)

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

  Log Message:
  -----------
  [InstCombine] add tests for icmp with 'or' ops; NFC


  Commit: a3c1669b1717545e16e33c0d7c147355f4912faa
      https://github.com/llvm/llvm-project/commit/a3c1669b1717545e16e33c0d7c147355f4912faa
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-09-07 (Tue, 07 Sep 2021)

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

  Log Message:
  -----------
  [InstCombine] fold icmp equality with 'or' mask ops

This could go either direction since the instruction
count is the same either way, but there are a few
reasons to prefer this:
1. We already do the related transform with 'and'
   (see just above the new code).
2. We try (too hard) to compensate for not having this
   and possibly other folds in transformZExtICmp(),
   and that leads to bugs like https://llvm.org/PR51762 .
3. Codegen looks better across a variety of targets.

https://alive2.llvm.org/ce/z/uEgn4P


Compare: https://github.com/llvm/llvm-project/compare/af9f32132865...a3c1669b1717


More information about the All-commits mailing list