[llvm] [AArch64] Fix vectorToScalarBitmask BE (#156312) (PR #156314)

David Green via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 4 06:17:02 PDT 2025


davemgreen wrote:

> Applying volatile to the vector load and store seems to force the compiler to emit the extraction mask, even at higher levels of optimization. Now, the test doesn't depend on -O0 anymore.
> 
> Unfortunately, it doesn't seem to be a test that specifically wants to generate this mask, so a completely new one is needed.
> 
> If other changes are necessary, please let me know.

Thank that looks a little better, I still worry about the whole global access + compare getting opimized away, and the test just becoming a (volatile) store of a pre-calculated value.  I did manage to convince myself that this seems correct for BE.
Can we add a test that looks like one of the llvm/test/CodeGen/AArch64/vec-combine-compare-to-bitmask.ll (maybe convert_to_bitmask16 and convert_to_bitmask8) to the new test file, and then run update_test_checks but also add check lines for the constants produced.  The tests in vec-combine-compare-to-bitmask.ll originally included check lines for the constant, but they were lost along the way.

https://github.com/llvm/llvm-project/pull/156314


More information about the llvm-commits mailing list