We need LLVM intrinsics for bufferUpdateCounter which will be lowered to the op.dx.bufferUpdateCounter dxil operations. These will be used on structured buffers.
struct MyStruct {
float4 a;
};
AppendStructuredBuffer<MyStruct> AB;
ConsumeStructuredBuffer<MyStruct> CB;
[numthreads(4,1,1)]
void main() {
MyStruct val = CB.Consume();
AB.Append(val);
}