cmd/compile: fix uint<->float conversion on 386

The frontend rewriting lowers them to runtime calls on 386. It
matches explicitly uint32, but missed uint.

Fixes #16738.

Change-Id: Iece7a45edf74615baca052a53273c208f057636d
Reviewed-on: https://go-review.googlesource.com/27085
Run-TryBot: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go
index 4e6647c..601e3c3 100644
--- a/src/cmd/compile/internal/gc/walk.go
+++ b/src/cmd/compile/internal/gc/walk.go
@@ -1126,7 +1126,7 @@
 					n = mkcall("float64touint64", n.Type, init, conv(n.Left, Types[TFLOAT64]))
 					break
 				}
-				if n.Type.Etype == TUINT32 || n.Type.Etype == TUINTPTR {
+				if n.Type.Etype == TUINT32 || n.Type.Etype == TUINT || n.Type.Etype == TUINTPTR {
 					n = mkcall("float64touint32", n.Type, init, conv(n.Left, Types[TFLOAT64]))
 					break
 				}
@@ -1141,7 +1141,7 @@
 					n = conv(mkcall("uint64tofloat64", Types[TFLOAT64], init, conv(n.Left, Types[TUINT64])), n.Type)
 					break
 				}
-				if n.Left.Type.Etype == TUINT32 || n.Left.Type.Etype == TUINTPTR {
+				if n.Left.Type.Etype == TUINT32 || n.Left.Type.Etype == TUINT || n.Left.Type.Etype == TUINTPTR {
 					n = conv(mkcall("uint32tofloat64", Types[TFLOAT64], init, conv(n.Left, Types[TUINT32])), n.Type)
 					break
 				}