Unless I missed something, it seems to me that metadata can not be carried by target specific intrinsics when moving in and out of selectionDAG. The attached patch add support for this.
The only point worth noticing is about the selectionDAGBuilder part : the regular getValue() path is not used, as its intended — and enforced — usage is for ‘real’ values, with a register associated to them.
This patch applies fine, breaks no regresion tests on top of tree and we are using it here with our own backends.
metadata-target-instrinsics.patch (1.59 KB)