Are you a hacker? Are you not worried if your code looks like crazy old magic? Then you'll love this solution:
sub test0 {
return ((($_[0] & $_[1]) * 2113665) & 17895697) % 15;
}
(Go ahead! Check that it's correct for all input values!) Benchmarks on my computer, against your code and [id://hv]'s:
Rate Test4 Test5 Test7 Test6 Test0
Test4 64233/s -- -33% -33% -52% -72%
Test5 95523/s 49% -- -1% -29% -58%
Test7 96399/s 50% 1% -- -28% -58%
Test6 133602/s 108% 40% 39% -- -41%
Test0 227756/s 255% 138% 136% 70% --