64-bit, 32-bit and 16-bit move-immediate instructions are 7, 6, and 5 bytes, respectively, whereas 8-bit and/or is only three bytes.
Since these instructions imply an additional memory read (which the CPU could elide, but we don't think it does), restrict these patterns to minsize functions.
You might want to change the name of the test, since it is testing both 0 and -1.