Most functions in the math package operate on float64s. For users who work with float32s this leads to a lot of code like float32(math.Floor(float64(v)) where var v float32 (where Floor could be any one of the many math functions). On amd64 with GOAMD64=v2, that example compiles to
CVTSS2SD  X0, X1
ROUNDSD   $1, X1, X1
CVTSD2SS  X1, X1
which is the literal interpretation of the code. I suggest that this sequence gets optimized to a use of ROUNDSS instead. The example uses ROUNDSD, but of course I'd like this to work for all relevant instructions.
Comment From: mrkfrmn
@golang/compiler
Comment From: adonovan
Just curious: what are you using float32 for?
Comment From: dominikh
@adonovan 2D vector graphics renderer. Among other things, colors are represented as [4]float32.