Problem in create tvm const

Expr a = make_const(UInt(1,4), 1);
Expr b = a << 4;

a is x4((uint1)1)
Now b is shift_left(x4((uint1)1), x4((uint1)0))
So my question is that is there a way reinterpret b to x8(x4(uint1)1, x4((uint1)0)) ?

Basically I want to create a vector of 8 lanes, with upper 4 bits to be 1 and lower is 0.
Similar like make_const(Uint(1,8), “value=1111 0000”).
Is there a way to achieve that if not using vector shuffle ?

Thanks,
-W