I am surprised that this does not happen already at PRE :) Without volatile attribute there is really nothing that prevents GCC from doing this optimization and unfortunately I don't think we provide way to prevent it without this big hammer.
We have fpcr register defined for the control word that is accepted in clobber list, but there is no way to express use of this I think. Honza