Jim Keller has remarked that there are about 25 instructions in common use that all instruction sets need. Let’s talk about them.
mov
was about 40%push
was about 10%pop
was about 4%call
was about 7%ret
was about 7%je/jne
was about 3%jmp
was also 3%cmp
was 5%add/sub
was 10%and/or/xor
was 5%lea
was 3%nop
was about 3%This is about the same for ARM and RISC-V, where moving instructions were most dominant.