[all-commits] [llvm/llvm-project] 3fc15b: [HashRecognize] Make `LHSAux` null if it is dead (...

Sean Clarke via All-commits all-commits at lists.llvm.org
Wed Jul 8 02:35:54 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3fc15b50c6e5b79332023fe7ccacb35b2ed5614e
      https://github.com/llvm/llvm-project/commit/3fc15b50c6e5b79332023fe7ccacb35b2ed5614e
  Author: Sean Clarke <sclarke at tenstorrent.com>
  Date:   2026-07-08 (Wed, 08 Jul 2026)

  Changed paths:
    M llvm/lib/Analysis/HashRecognize.cpp
    M llvm/test/Analysis/HashRecognize/cyclic-redundancy-check.ll
    M llvm/test/Transforms/LoopIdiom/cyclic-redundancy-check.ll

  Log Message:
  -----------
  [HashRecognize] Make `LHSAux` null if it is dead (#207231)

HashRecognize detects big-endian CRC loops with auxiliary data where the
bitwidth of `LHS` exceeds that of `LHSAux`. However, in this case,
`LHSAux` is zero-extended for the most significant bit check in each
iteration, and as such is effectively dead. Later optimization may even
miscompile in this case: for example, in the included
`crc16.be.tc8.zext.data` and `crc16.be.tc8.misalign` test cases,
`optimizeCRCLoop` emits `lshr i8 %crc.data.indexer, 8`, thereby creating
poison.

Since `LHSAux` is dead in this case, the user should receive a null
`LHSAux` instead.



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