Code was reflecting an old historical use of sampled as a SPIR-V 2-valued operand, instead of its current 3 values.
Byte address buffers were failing to detect that they were byte address buffers when used as fn parameters. Note: this detection is a little awkward, and could be simplified if it was easy to obtain the declared builtin type for an object.