Under certain circumstances, GCC may duplicate (or remove duplicates of) your assembly code when optimizing. This can lead to unexpected duplicate symbol errors during compilation if your asm code defines symbols or labels. Using ‘%=’ (see AssemblerTemplate) may help resolve this problem.
Outputs a number that is unique to each instance of the asm statement in the entire compilation. This option is useful when creating local labels and referring to them multiple times in a single template that generates multiple assembler instructions.
I tried to implement %= in my front-end but I ran into this problem with the optimizer. So in order to have this feature, LLVM would need to support it in the IR language.
As far as I can tell, Clang does not support this feature. Is it a reasonable feature request?