cbuffer CB {
    float4 foo;
};

static const float4 bar = foo; // test const (in the immutable sense) initializer from non-const.

static const float2 a1[2] = { { 1, 2 }, { foo.x, 4 } }; // not entirely constant
static const float2 a2[2] = { { 5, 6 }, { 7, 8 } };     // entirely constant

float4 main() : SV_Target0
{
    return bar;
}