If particular target supports volatile memory access operations, we can
avoid casting to generic AS. Currently it's only enabled in NVPTX for
loads and stores that access global & shared AS.
This improves performance in situations when we need to exchange data via shared memory
and need to preserve memory access order using 'volatile'.