[HSA-Fix 668] Fix Various i386-only bugs

1. Apply attributes to SRet functions correctly.
2. Workaround bitfield compiler bugs in old versions of gcc.
3. Obey FTZ mode for floating point rounding instructions.
4. Work around a lack of std::abs(int) in old versions of libstdc++