The serialize (srlz) and memory synchronization (sync) instructions have the following constraints regarding instruction groups:
The serialize instruction (srlz.i or srlz.d) must be located in the instruction group following the operation to be serialized.
Operations dependent on the serialization must be in an instruction group after the srlz.i.
Operations dependent on the serialization must follow the srlz.d, but they can be in the same instruction group as the srlz.d.
The sync.i instruction and previous Flush Cash operation must be in separate instruction groups.
For safety’s sake, IAS in automatic mode inserts stops before srlz.d and sync.i instructions, and both before and after the srlz.i instruction. In explicit mode IAS does not indicate errors when stops are missing.