switch back to inline assembly in compression::instructions
Summary:
D3278901 never worked, GCC (at least 4.9) failed to propagate
`FOLLY_TARGET_ATTRIBUTE("arch=haswell")` down, `blsr` and `select64`
weren't inlined in EF coding on Haswell, showing up in CPU profile.
This diff switches back to inline assembly, removing second dispatching
mechanism (IFUNC; in additional to caller-side `Default` / `Nehalem` / `Haswell`
dispatching) for `compression::instructions`, and disables functionality on
compilers not supporting AT&T syntax (MSVC++) for now.
Added `FOLLY_ALWAYS_INLINE` to make sure failure to inline results in
compilation failure.
Reviewed By: ot
Differential Revision:
D3959438
fbshipit-source-id:
e40573fbfbf38991caa2cd70293aeaeeec3afad7