Mohamed Shafi <shafitvm@xxxxxxxxx> writes: > When you say UNSPEC_VOLATILE doesn't prevent instructions from moving, > do you mean to say that such patterns will get reordered by the > scheduler? In general the instruction scheduler will not move instructions across UNSPEC_VOLATILE instructions. But the combiner will. And the scheduler implements scheduling barriers by inserting dependencies. An instruction which does not refer to registers or memory and is not itself UNSPEC_VOLATILe does not have any dependencies, and I'm not sure what the scheduler will do with it. Ian