[all-commits] [llvm/llvm-project] 50a110: [CodeGenPrepare] splitMergedValStore: don't split ...

Justin Lebar via All-commits all-commits at lists.llvm.org
Mon May 25 20:56:33 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 50a110ace7559f0655cf74cf2080b108c5bc2cda
      https://github.com/llvm/llvm-project/commit/50a110ace7559f0655cf74cf2080b108c5bc2cda
  Author: Justin Lebar <justin.lebar at gmail.com>
  Date:   2026-05-25 (Mon, 25 May 2026)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/test/Transforms/CodeGenPrepare/X86/split-store-alignment.ll

  Log Message:
  -----------
  [CodeGenPrepare] splitMergedValStore: don't split atomic stores. (#199592)

splitMergedValStore notices when you do e.g.

    z = x | (y << 32)
    store z

and may split this up into 32-bit two stores, of x and y, depending
e.g. on the type of x and y.

It skips this optimization for volatile stores, but currently does NOT
skip it for atomics (!!).  So an atomic store can be split up into two
(non-atomic!) stores.

This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply at anthropic.com>



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