Currently, we hardcode hardware features in the code (see https://github.com/llvm/llvm-project/blob/15c49b9db3f60bdbd320271d5e97f118c00b95dd/mlir/lib/Dialect/AMDGPU/Transforms/EmulateAtomics.cpp#L173). We want to implement a better way of handling subtarget features. See this PR for discussion about possible implementations: https://github.com/llvm/llvm-project/pull/129029