powerpc
code generated for
void sub(codegendata *cd, int a, int b, int c)
{
M_IADD(a, b, c);
}
with | and <<
_sub:
slwi r6,r6,21
slwi r4,r4,16
or r6,r6,r4
slwi r5,r5,11
or r6,r6,r5
lwz r9,0(r3)
oris r6,r6,0x7c00
ori r6,r6,532
stw r6,0(r9)
lwz r2,0(r3)
addi r2,r2,4
stw r2,0(r3)
blr
with bitfields
_sub:
li r2,31
li r0,0
rlwimi r0,r2,26,0,5
rlwinm r6,r6,0,27,31
rlwinm r4,r4,0,27,31
rlwimi r0,r6,21,6,10
rlwinm r5,r5,0,27,31
rlwimi r0,r4,16,11,15
lwz r9,0(r3)
li r2,266
rlwimi r0,r5,11,16,21
rlwimi r0,r2,1,22,31
stw r0,0(r9)
lwz r2,0(r3)
addi r2,r2,4
stw r2,0(r3)
blr