[dev.ssa] cmd/compile: implement the following for SSA on ARM

- generic Ops: Phi, CALL variants, NilCheck
- generic Blocks: Plain, Check
- 32-bit arithmetics
- CMP and conditional branches
- load/store
- zero/sign-extensions (8 to 16, 8 to 32, 16 to 32)

Progress on SSA backend for ARM. Still not complete. Now "errors"
package compiles and tests passed.

Updates #15365.

Change-Id: If126fd17f8695cbf55d64085bb3f1a4a53205701
Reviewed-on: https://go-review.googlesource.com/22856
Reviewed-by: Keith Randall <khr@golang.org>
diff --git a/src/cmd/compile/internal/ssa/gen/genericOps.go b/src/cmd/compile/internal/ssa/gen/genericOps.go
index 8ea04c4..8c40c77 100644
--- a/src/cmd/compile/internal/ssa/gen/genericOps.go
+++ b/src/cmd/compile/internal/ssa/gen/genericOps.go
@@ -326,15 +326,15 @@
 
 	// Conversions: signed extensions, zero (unsigned) extensions, truncations
 	{name: "SignExt8to16", argLength: 1, typ: "Int16"},
-	{name: "SignExt8to32", argLength: 1},
+	{name: "SignExt8to32", argLength: 1, typ: "Int32"},
 	{name: "SignExt8to64", argLength: 1},
-	{name: "SignExt16to32", argLength: 1},
+	{name: "SignExt16to32", argLength: 1, typ: "Int32"},
 	{name: "SignExt16to64", argLength: 1},
 	{name: "SignExt32to64", argLength: 1},
 	{name: "ZeroExt8to16", argLength: 1, typ: "UInt16"},
-	{name: "ZeroExt8to32", argLength: 1},
+	{name: "ZeroExt8to32", argLength: 1, typ: "UInt32"},
 	{name: "ZeroExt8to64", argLength: 1},
-	{name: "ZeroExt16to32", argLength: 1},
+	{name: "ZeroExt16to32", argLength: 1, typ: "UInt32"},
 	{name: "ZeroExt16to64", argLength: 1},
 	{name: "ZeroExt32to64", argLength: 1},
 	{name: "Trunc16to8", argLength: 1},