On 05/04/2022 14:04, Mark Rutland wrote: > On Tue, Apr 05, 2022 at 01:51:30PM +0100, Mark Rutland wrote: > My x86_64 test case is: > > Per compiler explorer (https://godbolt.org/z/cveff9hq5) GCC trunk currently > compiles this as: > > | msr_rmw_set_bits: > | mov rcx, rdi > | rdmsr > | sal rdx, 32 > | mov eax, eax > | or rax, rsi > | or rax, rdx > | mov rdx, rax > | shr rdx, 32 > | wrmsr > | ret > | func_with_msr_side_effects: > | ret > Yeah... that code gen is very broken for func_with_msr_side_effects(). ~Andrew