//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type //TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cpu -shaderobj -output-using-type //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer RWStructuredBuffer outputBuffer; struct S { T v; __init(T x) { v = x; } } S makeS(T x) { return S(x); } void accept(expand each T value) {} void writeSingle(T value) { static int counter = 0; outputBuffer[counter++] = __realCast(value); //return value; } void write(expand S value) { accept(expand writeSingle((each value).v)); } [numthreads(1,1,1)] void computeMain() { // CHECK: 1.0 // CHECK: 2.0 // CHECK: 3.0 // CHECK: 4.0 write(makeS(1.0), makeS(2.0), makeS(3.0), makeS(4.0)); write(); }