Eric, could you please take a look again at your reload bug fix first posted at:
http://gcc.gnu.org/ml/gcc-patches/2009-11/msg01671.html It looks correct to me, and I can reproduce it with the VIS3 fp moves enabled by simply adjusting the costs and register class preferences such that IRA uses float regs more aggressively than it should. Then you can also get rid of that slp-multitypes-2.c execution test XFAIL on sparc32 which actually passes for me with VIS3 enabled. Thanks.