Нискажыти... char f(char dat)
{
return !dat;
}
char f1(char dat)
{
return dat^=1;
}
для АВР превращаеца в
f:
.L__stack_usage = 0
mov r25,r24
ldi r24,lo8(1)
cpse r25,__zero_reg__
ldi r24,0
ret
f1:
.L__stack_usage = 0
ldi r25,lo8(1)
eor r24,r25
ret
или для АРМ
f:
clz r0, r0
lsr r0, r0, #5
bx lr
f1:
eor r0, r0, #1
bx lr
можэт и пох, но, тем не менее.
А вот riscv
f:
seqz a0,a0
ret
f1:
xori a0,a0,1
ret