nir: Handle volatile semantics for loading HelperInvocation builtin
SPV_EXT_demote_to_helper_invocation added OpDemoteToHelperInvocation operation to turn an invocation into a helper invocation, but the value of HelperInvocation (a builtin from Input storage class) couldn't be modified dynamically without breaking compatibility. For the extension the operation OpIsHelperInvocation was added to get the dynamic value. For SPIR-V 1.6, the demote operation was promoted, but now to get the dynamic value the shader must issue a load to HelperInvocation with Volatile memory access semantics. Reviewed-by:Ian Romanick <ian.d.romanick@intel.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Part-of: <mesa/mesa!14209>