buld_vector and shuffle_vector DAG nodes

I’m not quite clear what BUILD_VECTOR and SHUFFLE_VECTOR instructions do. I understand that they somehow build a vector and shuffle a vector, but how exactly it translates into a given target, that I can not figure out. I also tried reading code for other targets but I really lack experience. Would anyone be able to give a clear explanation, maybe even an example if possible?

Any help is appreciated.