Patch forthcoming.
<rdar://problem/44403033>
This requires that address spaces get propagated to individual values. constant float[] a : register(b0) a[3] = 7; We need to realize that the type of a[3] is "constant float" This analysis is required for things like device atomic_uint[] x : register(u0); InterlockedAdd(&x[0], 1, null); Here, we have to realize that the type of &x[0] is type "device uint*"
*** This bug has been marked as a duplicate of bug 189210 ***
Migrated to https://github.com/gpuweb/WHLSL/issues/190