[llvm] [SystemZ] Don't lower float/double ATOMIC_[LOAD|STORE] to [LOAD|STORE] (PR #75879)

Jonas Paulsson via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 9 03:02:21 PST 2024


JonPsson1 wrote:

Patch updated to remove the ugly hack for morphing atomic_load:s to regular loads, by using PatFrags instead.

Since SystemZ has atomic FP loads, this required one more common code change of removing the requirement in SDTAtomicLoad that the result must be integer. This in turn confused TableGen in the PowerPC and VE backends which
I have kind of fixed by inserting an explicit 'iAny' as needed. It would probably be better to be specific and use e.g. 'i32' instead, but as I don't know much about those targets, I think I might as well ask for some help here instead of guessing.
(@arsenm @MaskRay @kaz7 @jam7 @stefanp-ibm @amy-kwan )

@uweigand: Tests passing and spec build is NFC.
We could do something similar with the atomic_store:s, like z_store, but it seems the handling of stores is quite alright like this, or?


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


More information about the llvm-commits mailing list