5.26 · exercise
Double, double, double
Multiplying by a power of two never needs a multiply: shifting left by one bit doubles a value, and doing it three times multiplies by eight.
The starter reads a and b. Compute 8 * (a + b) using shifts instead of a multiply instruction: put the sum in the total register and scale it with lsl.
What is checked
- the scaled sum is printed on its own line
- the program exits cleanly
- the scaling is done with a left shift, and no multiply instruction appears (
mul,maddand their relatives) - the same holds for other pairs you do not see, zero and negative sums among them
specification
stdin5 7
stdoutprints the right output
exitexits with the right code
sourceuses
lslsourcedoes not hardcode the answer
sourcedoes not use
mul, madd, msub, mneg, smull, umull, smaddl, umaddl, smsubl, umsubl, smnegl or umneglhiddenright output and exit code on 4 more inputs you do not see
We run your program on the input above and on the hidden ones, and compare what it does. Nothing is matched against a stored solution.