Fix __builtin_prefetch

The prefetch pattern had never been tested and did not work.  The
instruction takes its operand as for a load or store, but the
operand at the RTL level is an address value rather than a memory
reference.  The sandboxing machinery used at instruction emission
time wants to see a MEM expression and making it cope with a
(possibly nontrivial) address expression as well just complicates
life.  So when emitting the instruction we just mutate the operand
RTX to wrap it in a MEM.  Then the existing machinery does its thing.


(cherry picked from commit b155e41c4984c3a7716829251226a41091072c4a)
1 file changed