aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewritedec64.go
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2017-04-28 14:12:28 -0700
committerJosh Bleecher Snyder <josharian@gmail.com>2017-05-09 23:01:51 +0000
commit46b88c9fbccad489aed53a77afa680792fff6eaa (patch)
treea1fcd0d8b8134f4be9eaf2a3bb16e8cc813d8724 /src/cmd/compile/internal/ssa/rewritedec64.go
parent6a24b2d0c1f5a8e2fa5ddb56db5a207671e8beb8 (diff)
downloadgo-46b88c9fbccad489aed53a77afa680792fff6eaa.tar.gz
go-46b88c9fbccad489aed53a77afa680792fff6eaa.zip
cmd/compile: change ssa.Type into *types.Type
When package ssa was created, Type was in package gc. To avoid circular dependencies, we used an interface (ssa.Type) to represent type information in SSA. In the Go 1.9 cycle, gri extricated the Type type from package gc. As a result, we can now use it in package ssa. Now, instead of package types depending on package ssa, it is the other way. This is a more sensible dependency tree, and helps compiler performance a bit. Though this is a big CL, most of the changes are mechanical and uninteresting. Interesting bits: * Add new singleton globals to package types for the special SSA types Memory, Void, Invalid, Flags, and Int128. * Add two new Types, TSSA for the special types, and TTUPLE, for SSA tuple types. ssa.MakeTuple is now types.NewTuple. * Move type comparison result constants CMPlt, CMPeq, and CMPgt to package types. * We had picked the name "types" in our rules for the handy list of types provided by ssa.Config. That conflicted with the types package name, so change it to "typ". * Update the type comparison routine to handle tuples and special types inline. * Teach gc/fmt.go how to print special types. * We can now eliminate ElemTypes in favor of just Elem, and probably also some other duplicated Type methods designed to return ssa.Type instead of *types.Type. * The ssa tests were using their own dummy types, and they were not particularly careful about types in general. Of necessity, this CL switches them to use *types.Type; it does not make them more type-accurate. Unfortunately, using types.Type means initializing a bit of the types universe. This is prime for refactoring and improvement. This shrinks ssa.Value; it now fits in a smaller size class on 64 bit systems. This doesn't have a giant impact, though, since most Values are preallocated in a chunk. name old alloc/op new alloc/op delta Template 37.9MB ± 0% 37.7MB ± 0% -0.57% (p=0.000 n=10+8) Unicode 28.9MB ± 0% 28.7MB ± 0% -0.52% (p=0.000 n=10+10) GoTypes 110MB ± 0% 109MB ± 0% -0.88% (p=0.000 n=10+10) Flate 24.7MB ± 0% 24.6MB ± 0% -0.66% (p=0.000 n=10+10) GoParser 31.1MB ± 0% 30.9MB ± 0% -0.61% (p=0.000 n=10+9) Reflect 73.9MB ± 0% 73.4MB ± 0% -0.62% (p=0.000 n=10+8) Tar 25.8MB ± 0% 25.6MB ± 0% -0.77% (p=0.000 n=9+10) XML 41.2MB ± 0% 40.9MB ± 0% -0.80% (p=0.000 n=10+10) [Geo mean] 40.5MB 40.3MB -0.68% name old allocs/op new allocs/op delta Template 385k ± 0% 386k ± 0% ~ (p=0.356 n=10+9) Unicode 343k ± 1% 344k ± 0% ~ (p=0.481 n=10+10) GoTypes 1.16M ± 0% 1.16M ± 0% -0.16% (p=0.004 n=10+10) Flate 238k ± 1% 238k ± 1% ~ (p=0.853 n=10+10) GoParser 320k ± 0% 320k ± 0% ~ (p=0.720 n=10+9) Reflect 957k ± 0% 957k ± 0% ~ (p=0.460 n=10+8) Tar 252k ± 0% 252k ± 0% ~ (p=0.133 n=9+10) XML 400k ± 0% 400k ± 0% ~ (p=0.796 n=10+10) [Geo mean] 428k 428k -0.01% Removing all the interface calls helps non-trivially with CPU, though. name old time/op new time/op delta Template 178ms ± 4% 173ms ± 3% -2.90% (p=0.000 n=94+96) Unicode 85.0ms ± 4% 83.9ms ± 4% -1.23% (p=0.000 n=96+96) GoTypes 543ms ± 3% 528ms ± 3% -2.73% (p=0.000 n=98+96) Flate 116ms ± 3% 113ms ± 4% -2.34% (p=0.000 n=96+99) GoParser 144ms ± 3% 140ms ± 4% -2.80% (p=0.000 n=99+97) Reflect 344ms ± 3% 334ms ± 4% -3.02% (p=0.000 n=100+99) Tar 106ms ± 5% 103ms ± 4% -3.30% (p=0.000 n=98+94) XML 198ms ± 5% 192ms ± 4% -2.88% (p=0.000 n=92+95) [Geo mean] 178ms 173ms -2.65% name old user-time/op new user-time/op delta Template 229ms ± 5% 224ms ± 5% -2.36% (p=0.000 n=95+99) Unicode 107ms ± 6% 106ms ± 5% -1.13% (p=0.001 n=93+95) GoTypes 696ms ± 4% 679ms ± 4% -2.45% (p=0.000 n=97+99) Flate 137ms ± 4% 134ms ± 5% -2.66% (p=0.000 n=99+96) GoParser 176ms ± 5% 172ms ± 8% -2.27% (p=0.000 n=98+100) Reflect 430ms ± 6% 411ms ± 5% -4.46% (p=0.000 n=100+92) Tar 128ms ±13% 123ms ±13% -4.21% (p=0.000 n=100+100) XML 239ms ± 6% 233ms ± 6% -2.50% (p=0.000 n=95+97) [Geo mean] 220ms 213ms -2.76% Change-Id: I15c7d6268347f8358e75066dfdbd77db24e8d0c1 Reviewed-on: https://go-review.googlesource.com/42145 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewritedec64.go')
-rw-r--r--src/cmd/compile/internal/ssa/rewritedec64.go976
1 files changed, 489 insertions, 487 deletions
diff --git a/src/cmd/compile/internal/ssa/rewritedec64.go b/src/cmd/compile/internal/ssa/rewritedec64.go
index 0fe0d2197e..c0f54597f3 100644
--- a/src/cmd/compile/internal/ssa/rewritedec64.go
+++ b/src/cmd/compile/internal/ssa/rewritedec64.go
@@ -6,10 +6,12 @@ package ssa
import "math"
import "cmd/internal/obj"
import "cmd/internal/objabi"
+import "cmd/compile/internal/types"
var _ = math.MinInt8 // in case not otherwise used
var _ = obj.ANOP // in case not otherwise used
var _ = objabi.GOROOT // in case not otherwise used
+var _ = types.TypeMem // in case not otherwise used
func rewriteValuedec64(v *Value) bool {
switch v.Op {
@@ -133,39 +135,39 @@ func rewriteValuedec64(v *Value) bool {
func rewriteValuedec64_OpAdd64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Add64 x y)
// cond:
- // result: (Int64Make (Add32withcarry <types.Int32> (Int64Hi x) (Int64Hi y) (Select1 <TypeFlags> (Add32carry (Int64Lo x) (Int64Lo y)))) (Select0 <types.UInt32> (Add32carry (Int64Lo x) (Int64Lo y))))
+ // result: (Int64Make (Add32withcarry <typ.Int32> (Int64Hi x) (Int64Hi y) (Select1 <types.TypeFlags> (Add32carry (Int64Lo x) (Int64Lo y)))) (Select0 <typ.UInt32> (Add32carry (Int64Lo x) (Int64Lo y))))
for {
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpAdd32withcarry, types.Int32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpAdd32withcarry, typ.Int32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
- v3 := b.NewValue0(v.Pos, OpSelect1, TypeFlags)
- v4 := b.NewValue0(v.Pos, OpAdd32carry, MakeTuple(types.UInt32, TypeFlags))
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpSelect1, types.TypeFlags)
+ v4 := b.NewValue0(v.Pos, OpAdd32carry, types.NewTuple(typ.UInt32, types.TypeFlags))
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
v0.AddArg(v3)
v.AddArg(v0)
- v7 := b.NewValue0(v.Pos, OpSelect0, types.UInt32)
- v8 := b.NewValue0(v.Pos, OpAdd32carry, MakeTuple(types.UInt32, TypeFlags))
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpSelect0, typ.UInt32)
+ v8 := b.NewValue0(v.Pos, OpAdd32carry, types.NewTuple(typ.UInt32, types.TypeFlags))
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(x)
v8.AddArg(v9)
- v10 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v10 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v10.AddArg(y)
v8.AddArg(v10)
v7.AddArg(v8)
@@ -176,28 +178,28 @@ func rewriteValuedec64_OpAdd64_0(v *Value) bool {
func rewriteValuedec64_OpAnd64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (And64 x y)
// cond:
- // result: (Int64Make (And32 <types.UInt32> (Int64Hi x) (Int64Hi y)) (And32 <types.UInt32> (Int64Lo x) (Int64Lo y)))
+ // result: (Int64Make (And32 <typ.UInt32> (Int64Hi x) (Int64Hi y)) (And32 <typ.UInt32> (Int64Lo x) (Int64Lo y)))
for {
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpAnd32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpAnd32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAnd32, types.UInt32)
- v4 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAnd32, typ.UInt32)
+ v4 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v4.AddArg(x)
v3.AddArg(v4)
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(y)
v3.AddArg(v5)
v.AddArg(v3)
@@ -209,11 +211,11 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
_ = b
config := b.Func.Config
_ = config
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Arg {n} [off])
// cond: is64BitInt(v.Type) && !config.BigEndian && v.Type.IsSigned()
- // result: (Int64Make (Arg <types.Int32> {n} [off+4]) (Arg <types.UInt32> {n} [off]))
+ // result: (Int64Make (Arg <typ.Int32> {n} [off+4]) (Arg <typ.UInt32> {n} [off]))
for {
off := v.AuxInt
n := v.Aux
@@ -221,11 +223,11 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpArg, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpArg, typ.Int32)
v0.AuxInt = off + 4
v0.Aux = n
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpArg, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpArg, typ.UInt32)
v1.AuxInt = off
v1.Aux = n
v.AddArg(v1)
@@ -233,7 +235,7 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
}
// match: (Arg {n} [off])
// cond: is64BitInt(v.Type) && !config.BigEndian && !v.Type.IsSigned()
- // result: (Int64Make (Arg <types.UInt32> {n} [off+4]) (Arg <types.UInt32> {n} [off]))
+ // result: (Int64Make (Arg <typ.UInt32> {n} [off+4]) (Arg <typ.UInt32> {n} [off]))
for {
off := v.AuxInt
n := v.Aux
@@ -241,11 +243,11 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpArg, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpArg, typ.UInt32)
v0.AuxInt = off + 4
v0.Aux = n
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpArg, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpArg, typ.UInt32)
v1.AuxInt = off
v1.Aux = n
v.AddArg(v1)
@@ -253,7 +255,7 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
}
// match: (Arg {n} [off])
// cond: is64BitInt(v.Type) && config.BigEndian && v.Type.IsSigned()
- // result: (Int64Make (Arg <types.Int32> {n} [off]) (Arg <types.UInt32> {n} [off+4]))
+ // result: (Int64Make (Arg <typ.Int32> {n} [off]) (Arg <typ.UInt32> {n} [off+4]))
for {
off := v.AuxInt
n := v.Aux
@@ -261,11 +263,11 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpArg, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpArg, typ.Int32)
v0.AuxInt = off
v0.Aux = n
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpArg, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpArg, typ.UInt32)
v1.AuxInt = off + 4
v1.Aux = n
v.AddArg(v1)
@@ -273,7 +275,7 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
}
// match: (Arg {n} [off])
// cond: is64BitInt(v.Type) && config.BigEndian && !v.Type.IsSigned()
- // result: (Int64Make (Arg <types.UInt32> {n} [off]) (Arg <types.UInt32> {n} [off+4]))
+ // result: (Int64Make (Arg <typ.UInt32> {n} [off]) (Arg <typ.UInt32> {n} [off+4]))
for {
off := v.AuxInt
n := v.Aux
@@ -281,11 +283,11 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpArg, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpArg, typ.UInt32)
v0.AuxInt = off
v0.Aux = n
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpArg, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpArg, typ.UInt32)
v1.AuxInt = off + 4
v1.Aux = n
v.AddArg(v1)
@@ -296,27 +298,27 @@ func rewriteValuedec64_OpArg_0(v *Value) bool {
func rewriteValuedec64_OpBitLen64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (BitLen64 x)
// cond:
- // result: (Add32 <types.Int> (BitLen32 <types.Int> (Int64Hi x)) (BitLen32 <types.Int> (Or32 <types.UInt32> (Int64Lo x) (Zeromask (Int64Hi x)))))
+ // result: (Add32 <typ.Int> (BitLen32 <typ.Int> (Int64Hi x)) (BitLen32 <typ.Int> (Or32 <typ.UInt32> (Int64Lo x) (Zeromask (Int64Hi x)))))
for {
x := v.Args[0]
v.reset(OpAdd32)
- v.Type = types.Int
- v0 := b.NewValue0(v.Pos, OpBitLen32, types.Int)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v.Type = typ.Int
+ v0 := b.NewValue0(v.Pos, OpBitLen32, typ.Int)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpBitLen32, types.Int)
- v3 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v4 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpBitLen32, typ.Int)
+ v3 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v4 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v4.AddArg(x)
v3.AddArg(v4)
- v5 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(x)
v5.AddArg(v6)
v3.AddArg(v5)
@@ -328,21 +330,21 @@ func rewriteValuedec64_OpBitLen64_0(v *Value) bool {
func rewriteValuedec64_OpBswap64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Bswap64 x)
// cond:
- // result: (Int64Make (Bswap32 <types.UInt32> (Int64Lo x)) (Bswap32 <types.UInt32> (Int64Hi x)))
+ // result: (Int64Make (Bswap32 <typ.UInt32> (Int64Lo x)) (Bswap32 <typ.UInt32> (Int64Hi x)))
for {
x := v.Args[0]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpBswap32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpBswap32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpBswap32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpBswap32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v3.AddArg(x)
v2.AddArg(v3)
v.AddArg(v2)
@@ -352,21 +354,21 @@ func rewriteValuedec64_OpBswap64_0(v *Value) bool {
func rewriteValuedec64_OpCom64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Com64 x)
// cond:
- // result: (Int64Make (Com32 <types.UInt32> (Int64Hi x)) (Com32 <types.UInt32> (Int64Lo x)))
+ // result: (Int64Make (Com32 <typ.UInt32> (Int64Hi x)) (Com32 <typ.UInt32> (Int64Lo x)))
for {
x := v.Args[0]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpCom32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpCom32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpCom32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpCom32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v3.AddArg(x)
v2.AddArg(v3)
v.AddArg(v2)
@@ -376,11 +378,11 @@ func rewriteValuedec64_OpCom64_0(v *Value) bool {
func rewriteValuedec64_OpConst64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Const64 <t> [c])
// cond: t.IsSigned()
- // result: (Int64Make (Const32 <types.Int32> [c>>32]) (Const32 <types.UInt32> [int64(int32(c))]))
+ // result: (Int64Make (Const32 <typ.Int32> [c>>32]) (Const32 <typ.UInt32> [int64(int32(c))]))
for {
t := v.Type
c := v.AuxInt
@@ -388,17 +390,17 @@ func rewriteValuedec64_OpConst64_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpConst32, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpConst32, typ.Int32)
v0.AuxInt = c >> 32
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v1.AuxInt = int64(int32(c))
v.AddArg(v1)
return true
}
// match: (Const64 <t> [c])
// cond: !t.IsSigned()
- // result: (Int64Make (Const32 <types.UInt32> [c>>32]) (Const32 <types.UInt32> [int64(int32(c))]))
+ // result: (Int64Make (Const32 <typ.UInt32> [c>>32]) (Const32 <typ.UInt32> [int64(int32(c))]))
for {
t := v.Type
c := v.AuxInt
@@ -406,10 +408,10 @@ func rewriteValuedec64_OpConst64_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v0.AuxInt = c >> 32
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v1.AuxInt = int64(int32(c))
v.AddArg(v1)
return true
@@ -419,30 +421,30 @@ func rewriteValuedec64_OpConst64_0(v *Value) bool {
func rewriteValuedec64_OpCtz64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Ctz64 x)
// cond:
- // result: (Add32 <types.UInt32> (Ctz32 <types.UInt32> (Int64Lo x)) (And32 <types.UInt32> (Com32 <types.UInt32> (Zeromask (Int64Lo x))) (Ctz32 <types.UInt32> (Int64Hi x))))
+ // result: (Add32 <typ.UInt32> (Ctz32 <typ.UInt32> (Int64Lo x)) (And32 <typ.UInt32> (Com32 <typ.UInt32> (Zeromask (Int64Lo x))) (Ctz32 <typ.UInt32> (Int64Hi x))))
for {
x := v.Args[0]
v.reset(OpAdd32)
- v.Type = types.UInt32
- v0 := b.NewValue0(v.Pos, OpCtz32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v.Type = typ.UInt32
+ v0 := b.NewValue0(v.Pos, OpCtz32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpAnd32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpCom32, types.UInt32)
- v4 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpAnd32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpCom32, typ.UInt32)
+ v4 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
v3.AddArg(v4)
v2.AddArg(v3)
- v6 := b.NewValue0(v.Pos, OpCtz32, types.UInt32)
- v7 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpCtz32, typ.UInt32)
+ v7 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v7.AddArg(x)
v6.AddArg(v7)
v2.AddArg(v6)
@@ -453,8 +455,8 @@ func rewriteValuedec64_OpCtz64_0(v *Value) bool {
func rewriteValuedec64_OpEq64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Eq64 x y)
// cond:
// result: (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Eq32 (Int64Lo x) (Int64Lo y)))
@@ -462,19 +464,19 @@ func rewriteValuedec64_OpEq64_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpAndB)
- v0 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v4 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v4.AddArg(x)
v3.AddArg(v4)
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(y)
v3.AddArg(v5)
v.AddArg(v3)
@@ -484,8 +486,8 @@ func rewriteValuedec64_OpEq64_0(v *Value) bool {
func rewriteValuedec64_OpGeq64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Geq64 x y)
// cond:
// result: (OrB (Greater32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Geq32U (Int64Lo x) (Int64Lo y))))
@@ -493,28 +495,28 @@ func rewriteValuedec64_OpGeq64_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpGreater32, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpGreater32, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpGeq32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpGeq32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -525,8 +527,8 @@ func rewriteValuedec64_OpGeq64_0(v *Value) bool {
func rewriteValuedec64_OpGeq64U_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Geq64U x y)
// cond:
// result: (OrB (Greater32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Geq32U (Int64Lo x) (Int64Lo y))))
@@ -534,28 +536,28 @@ func rewriteValuedec64_OpGeq64U_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpGreater32U, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpGreater32U, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpGeq32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpGeq32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -566,8 +568,8 @@ func rewriteValuedec64_OpGeq64U_0(v *Value) bool {
func rewriteValuedec64_OpGreater64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Greater64 x y)
// cond:
// result: (OrB (Greater32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Greater32U (Int64Lo x) (Int64Lo y))))
@@ -575,28 +577,28 @@ func rewriteValuedec64_OpGreater64_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpGreater32, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpGreater32, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpGreater32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpGreater32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -607,8 +609,8 @@ func rewriteValuedec64_OpGreater64_0(v *Value) bool {
func rewriteValuedec64_OpGreater64U_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Greater64U x y)
// cond:
// result: (OrB (Greater32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Greater32U (Int64Lo x) (Int64Lo y))))
@@ -616,28 +618,28 @@ func rewriteValuedec64_OpGreater64U_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpGreater32U, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpGreater32U, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpGreater32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpGreater32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -682,8 +684,8 @@ func rewriteValuedec64_OpInt64Lo_0(v *Value) bool {
func rewriteValuedec64_OpLeq64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Leq64 x y)
// cond:
// result: (OrB (Less32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Leq32U (Int64Lo x) (Int64Lo y))))
@@ -691,28 +693,28 @@ func rewriteValuedec64_OpLeq64_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpLess32, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpLess32, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpLeq32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpLeq32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -723,8 +725,8 @@ func rewriteValuedec64_OpLeq64_0(v *Value) bool {
func rewriteValuedec64_OpLeq64U_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Leq64U x y)
// cond:
// result: (OrB (Less32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Leq32U (Int64Lo x) (Int64Lo y))))
@@ -732,28 +734,28 @@ func rewriteValuedec64_OpLeq64U_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpLess32U, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpLess32U, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpLeq32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpLeq32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -764,8 +766,8 @@ func rewriteValuedec64_OpLeq64U_0(v *Value) bool {
func rewriteValuedec64_OpLess64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Less64 x y)
// cond:
// result: (OrB (Less32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Less32U (Int64Lo x) (Int64Lo y))))
@@ -773,28 +775,28 @@ func rewriteValuedec64_OpLess64_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpLess32, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpLess32, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpLess32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpLess32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -805,8 +807,8 @@ func rewriteValuedec64_OpLess64_0(v *Value) bool {
func rewriteValuedec64_OpLess64U_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Less64U x y)
// cond:
// result: (OrB (Less32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Less32U (Int64Lo x) (Int64Lo y))))
@@ -814,28 +816,28 @@ func rewriteValuedec64_OpLess64U_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpLess32U, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpLess32U, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpAndB, types.Bool)
- v4 := b.NewValue0(v.Pos, OpEq32, types.Bool)
- v5 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpAndB, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpEq32, typ.Bool)
+ v5 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
- v7 := b.NewValue0(v.Pos, OpLess32U, types.Bool)
- v8 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpLess32U, typ.Bool)
+ v8 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v8.AddArg(x)
v7.AddArg(v8)
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(y)
v7.AddArg(v9)
v3.AddArg(v7)
@@ -848,11 +850,11 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
_ = b
config := b.Func.Config
_ = config
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Load <t> ptr mem)
// cond: is64BitInt(t) && !config.BigEndian && t.IsSigned()
- // result: (Int64Make (Load <types.Int32> (OffPtr <types.Int32Ptr> [4] ptr) mem) (Load <types.UInt32> ptr mem))
+ // result: (Int64Make (Load <typ.Int32> (OffPtr <typ.Int32Ptr> [4] ptr) mem) (Load <typ.UInt32> ptr mem))
for {
t := v.Type
ptr := v.Args[0]
@@ -861,14 +863,14 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpLoad, types.Int32)
- v1 := b.NewValue0(v.Pos, OpOffPtr, types.Int32Ptr)
+ v0 := b.NewValue0(v.Pos, OpLoad, typ.Int32)
+ v1 := b.NewValue0(v.Pos, OpOffPtr, typ.Int32Ptr)
v1.AuxInt = 4
v1.AddArg(ptr)
v0.AddArg(v1)
v0.AddArg(mem)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpLoad, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpLoad, typ.UInt32)
v2.AddArg(ptr)
v2.AddArg(mem)
v.AddArg(v2)
@@ -876,7 +878,7 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
}
// match: (Load <t> ptr mem)
// cond: is64BitInt(t) && !config.BigEndian && !t.IsSigned()
- // result: (Int64Make (Load <types.UInt32> (OffPtr <types.UInt32Ptr> [4] ptr) mem) (Load <types.UInt32> ptr mem))
+ // result: (Int64Make (Load <typ.UInt32> (OffPtr <typ.UInt32Ptr> [4] ptr) mem) (Load <typ.UInt32> ptr mem))
for {
t := v.Type
ptr := v.Args[0]
@@ -885,14 +887,14 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpLoad, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpOffPtr, types.UInt32Ptr)
+ v0 := b.NewValue0(v.Pos, OpLoad, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOffPtr, typ.UInt32Ptr)
v1.AuxInt = 4
v1.AddArg(ptr)
v0.AddArg(v1)
v0.AddArg(mem)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpLoad, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpLoad, typ.UInt32)
v2.AddArg(ptr)
v2.AddArg(mem)
v.AddArg(v2)
@@ -900,7 +902,7 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
}
// match: (Load <t> ptr mem)
// cond: is64BitInt(t) && config.BigEndian && t.IsSigned()
- // result: (Int64Make (Load <types.Int32> ptr mem) (Load <types.UInt32> (OffPtr <types.UInt32Ptr> [4] ptr) mem))
+ // result: (Int64Make (Load <typ.Int32> ptr mem) (Load <typ.UInt32> (OffPtr <typ.UInt32Ptr> [4] ptr) mem))
for {
t := v.Type
ptr := v.Args[0]
@@ -909,12 +911,12 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpLoad, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpLoad, typ.Int32)
v0.AddArg(ptr)
v0.AddArg(mem)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpLoad, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOffPtr, types.UInt32Ptr)
+ v1 := b.NewValue0(v.Pos, OpLoad, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOffPtr, typ.UInt32Ptr)
v2.AuxInt = 4
v2.AddArg(ptr)
v1.AddArg(v2)
@@ -924,7 +926,7 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
}
// match: (Load <t> ptr mem)
// cond: is64BitInt(t) && config.BigEndian && !t.IsSigned()
- // result: (Int64Make (Load <types.UInt32> ptr mem) (Load <types.UInt32> (OffPtr <types.UInt32Ptr> [4] ptr) mem))
+ // result: (Int64Make (Load <typ.UInt32> ptr mem) (Load <typ.UInt32> (OffPtr <typ.UInt32Ptr> [4] ptr) mem))
for {
t := v.Type
ptr := v.Args[0]
@@ -933,12 +935,12 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpLoad, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpLoad, typ.UInt32)
v0.AddArg(ptr)
v0.AddArg(mem)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpLoad, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOffPtr, types.UInt32Ptr)
+ v1 := b.NewValue0(v.Pos, OpLoad, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOffPtr, typ.UInt32Ptr)
v2.AuxInt = 4
v2.AddArg(ptr)
v1.AddArg(v2)
@@ -951,8 +953,8 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool {
func rewriteValuedec64_OpLsh16x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh16x64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const32 [0])
@@ -997,7 +999,7 @@ func rewriteValuedec64_OpLsh16x64_0(v *Value) bool {
}
// match: (Lsh16x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Lsh16x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Lsh16x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1011,8 +1013,8 @@ func rewriteValuedec64_OpLsh16x64_0(v *Value) bool {
}
v.reset(OpLsh16x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1024,8 +1026,8 @@ func rewriteValuedec64_OpLsh16x64_0(v *Value) bool {
func rewriteValuedec64_OpLsh32x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh32x64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const32 [0])
@@ -1070,7 +1072,7 @@ func rewriteValuedec64_OpLsh32x64_0(v *Value) bool {
}
// match: (Lsh32x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Lsh32x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Lsh32x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1084,8 +1086,8 @@ func rewriteValuedec64_OpLsh32x64_0(v *Value) bool {
}
v.reset(OpLsh32x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1097,11 +1099,11 @@ func rewriteValuedec64_OpLsh32x64_0(v *Value) bool {
func rewriteValuedec64_OpLsh64x16_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh64x16 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Or32 <types.UInt32> (Or32 <types.UInt32> (Lsh32x16 <types.UInt32> hi s) (Rsh32Ux16 <types.UInt32> lo (Sub16 <types.UInt16> (Const16 <types.UInt16> [32]) s))) (Lsh32x16 <types.UInt32> lo (Sub16 <types.UInt16> s (Const16 <types.UInt16> [32])))) (Lsh32x16 <types.UInt32> lo s))
+ // result: (Int64Make (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Lsh32x16 <typ.UInt32> hi s) (Rsh32Ux16 <typ.UInt32> lo (Sub16 <typ.UInt16> (Const16 <typ.UInt16> [32]) s))) (Lsh32x16 <typ.UInt32> lo (Sub16 <typ.UInt16> s (Const16 <typ.UInt16> [32])))) (Lsh32x16 <typ.UInt32> lo s))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -1111,33 +1113,33 @@ func rewriteValuedec64_OpLsh64x16_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpLsh32x16, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpLsh32x16, typ.UInt32)
v2.AddArg(hi)
v2.AddArg(s)
v1.AddArg(v2)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux16, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux16, typ.UInt32)
v3.AddArg(lo)
- v4 := b.NewValue0(v.Pos, OpSub16, types.UInt16)
- v5 := b.NewValue0(v.Pos, OpConst16, types.UInt16)
+ v4 := b.NewValue0(v.Pos, OpSub16, typ.UInt16)
+ v5 := b.NewValue0(v.Pos, OpConst16, typ.UInt16)
v5.AuxInt = 32
v4.AddArg(v5)
v4.AddArg(s)
v3.AddArg(v4)
v1.AddArg(v3)
v0.AddArg(v1)
- v6 := b.NewValue0(v.Pos, OpLsh32x16, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpLsh32x16, typ.UInt32)
v6.AddArg(lo)
- v7 := b.NewValue0(v.Pos, OpSub16, types.UInt16)
+ v7 := b.NewValue0(v.Pos, OpSub16, typ.UInt16)
v7.AddArg(s)
- v8 := b.NewValue0(v.Pos, OpConst16, types.UInt16)
+ v8 := b.NewValue0(v.Pos, OpConst16, typ.UInt16)
v8.AuxInt = 32
v7.AddArg(v8)
v6.AddArg(v7)
v0.AddArg(v6)
v.AddArg(v0)
- v9 := b.NewValue0(v.Pos, OpLsh32x16, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpLsh32x16, typ.UInt32)
v9.AddArg(lo)
v9.AddArg(s)
v.AddArg(v9)
@@ -1148,11 +1150,11 @@ func rewriteValuedec64_OpLsh64x16_0(v *Value) bool {
func rewriteValuedec64_OpLsh64x32_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh64x32 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Or32 <types.UInt32> (Or32 <types.UInt32> (Lsh32x32 <types.UInt32> hi s) (Rsh32Ux32 <types.UInt32> lo (Sub32 <types.UInt32> (Const32 <types.UInt32> [32]) s))) (Lsh32x32 <types.UInt32> lo (Sub32 <types.UInt32> s (Const32 <types.UInt32> [32])))) (Lsh32x32 <types.UInt32> lo s))
+ // result: (Int64Make (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Lsh32x32 <typ.UInt32> hi s) (Rsh32Ux32 <typ.UInt32> lo (Sub32 <typ.UInt32> (Const32 <typ.UInt32> [32]) s))) (Lsh32x32 <typ.UInt32> lo (Sub32 <typ.UInt32> s (Const32 <typ.UInt32> [32])))) (Lsh32x32 <typ.UInt32> lo s))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -1162,33 +1164,33 @@ func rewriteValuedec64_OpLsh64x32_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpLsh32x32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpLsh32x32, typ.UInt32)
v2.AddArg(hi)
v2.AddArg(s)
v1.AddArg(v2)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux32, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux32, typ.UInt32)
v3.AddArg(lo)
- v4 := b.NewValue0(v.Pos, OpSub32, types.UInt32)
- v5 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpSub32, typ.UInt32)
+ v5 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v5.AuxInt = 32
v4.AddArg(v5)
v4.AddArg(s)
v3.AddArg(v4)
v1.AddArg(v3)
v0.AddArg(v1)
- v6 := b.NewValue0(v.Pos, OpLsh32x32, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpLsh32x32, typ.UInt32)
v6.AddArg(lo)
- v7 := b.NewValue0(v.Pos, OpSub32, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpSub32, typ.UInt32)
v7.AddArg(s)
- v8 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v8 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v8.AuxInt = 32
v7.AddArg(v8)
v6.AddArg(v7)
v0.AddArg(v6)
v.AddArg(v0)
- v9 := b.NewValue0(v.Pos, OpLsh32x32, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpLsh32x32, typ.UInt32)
v9.AddArg(lo)
v9.AddArg(s)
v.AddArg(v9)
@@ -1199,8 +1201,8 @@ func rewriteValuedec64_OpLsh64x32_0(v *Value) bool {
func rewriteValuedec64_OpLsh64x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh64x64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const64 [0])
@@ -1245,7 +1247,7 @@ func rewriteValuedec64_OpLsh64x64_0(v *Value) bool {
}
// match: (Lsh64x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Lsh64x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Lsh64x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1259,8 +1261,8 @@ func rewriteValuedec64_OpLsh64x64_0(v *Value) bool {
}
v.reset(OpLsh64x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1272,11 +1274,11 @@ func rewriteValuedec64_OpLsh64x64_0(v *Value) bool {
func rewriteValuedec64_OpLsh64x8_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh64x8 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Or32 <types.UInt32> (Or32 <types.UInt32> (Lsh32x8 <types.UInt32> hi s) (Rsh32Ux8 <types.UInt32> lo (Sub8 <types.UInt8> (Const8 <types.UInt8> [32]) s))) (Lsh32x8 <types.UInt32> lo (Sub8 <types.UInt8> s (Const8 <types.UInt8> [32])))) (Lsh32x8 <types.UInt32> lo s))
+ // result: (Int64Make (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Lsh32x8 <typ.UInt32> hi s) (Rsh32Ux8 <typ.UInt32> lo (Sub8 <typ.UInt8> (Const8 <typ.UInt8> [32]) s))) (Lsh32x8 <typ.UInt32> lo (Sub8 <typ.UInt8> s (Const8 <typ.UInt8> [32])))) (Lsh32x8 <typ.UInt32> lo s))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -1286,33 +1288,33 @@ func rewriteValuedec64_OpLsh64x8_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpLsh32x8, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpLsh32x8, typ.UInt32)
v2.AddArg(hi)
v2.AddArg(s)
v1.AddArg(v2)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux8, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux8, typ.UInt32)
v3.AddArg(lo)
- v4 := b.NewValue0(v.Pos, OpSub8, types.UInt8)
- v5 := b.NewValue0(v.Pos, OpConst8, types.UInt8)
+ v4 := b.NewValue0(v.Pos, OpSub8, typ.UInt8)
+ v5 := b.NewValue0(v.Pos, OpConst8, typ.UInt8)
v5.AuxInt = 32
v4.AddArg(v5)
v4.AddArg(s)
v3.AddArg(v4)
v1.AddArg(v3)
v0.AddArg(v1)
- v6 := b.NewValue0(v.Pos, OpLsh32x8, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpLsh32x8, typ.UInt32)
v6.AddArg(lo)
- v7 := b.NewValue0(v.Pos, OpSub8, types.UInt8)
+ v7 := b.NewValue0(v.Pos, OpSub8, typ.UInt8)
v7.AddArg(s)
- v8 := b.NewValue0(v.Pos, OpConst8, types.UInt8)
+ v8 := b.NewValue0(v.Pos, OpConst8, typ.UInt8)
v8.AuxInt = 32
v7.AddArg(v8)
v6.AddArg(v7)
v0.AddArg(v6)
v.AddArg(v0)
- v9 := b.NewValue0(v.Pos, OpLsh32x8, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpLsh32x8, typ.UInt32)
v9.AddArg(lo)
v9.AddArg(s)
v.AddArg(v9)
@@ -1323,8 +1325,8 @@ func rewriteValuedec64_OpLsh64x8_0(v *Value) bool {
func rewriteValuedec64_OpLsh8x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Lsh8x64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const32 [0])
@@ -1369,7 +1371,7 @@ func rewriteValuedec64_OpLsh8x64_0(v *Value) bool {
}
// match: (Lsh8x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Lsh8x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Lsh8x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1383,8 +1385,8 @@ func rewriteValuedec64_OpLsh8x64_0(v *Value) bool {
}
v.reset(OpLsh8x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1396,51 +1398,51 @@ func rewriteValuedec64_OpLsh8x64_0(v *Value) bool {
func rewriteValuedec64_OpMul64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Mul64 x y)
// cond:
- // result: (Int64Make (Add32 <types.UInt32> (Mul32 <types.UInt32> (Int64Lo x) (Int64Hi y)) (Add32 <types.UInt32> (Mul32 <types.UInt32> (Int64Hi x) (Int64Lo y)) (Select0 <types.UInt32> (Mul32uhilo (Int64Lo x) (Int64Lo y))))) (Select1 <types.UInt32> (Mul32uhilo (Int64Lo x) (Int64Lo y))))
+ // result: (Int64Make (Add32 <typ.UInt32> (Mul32 <typ.UInt32> (Int64Lo x) (Int64Hi y)) (Add32 <typ.UInt32> (Mul32 <typ.UInt32> (Int64Hi x) (Int64Lo y)) (Select0 <typ.UInt32> (Mul32uhilo (Int64Lo x) (Int64Lo y))))) (Select1 <typ.UInt32> (Mul32uhilo (Int64Lo x) (Int64Lo y))))
for {
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpAdd32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpMul32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpAdd32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpMul32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v2.AddArg(x)
v1.AddArg(v2)
- v3 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v3.AddArg(y)
v1.AddArg(v3)
v0.AddArg(v1)
- v4 := b.NewValue0(v.Pos, OpAdd32, types.UInt32)
- v5 := b.NewValue0(v.Pos, OpMul32, types.UInt32)
- v6 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpAdd32, typ.UInt32)
+ v5 := b.NewValue0(v.Pos, OpMul32, typ.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v6.AddArg(x)
v5.AddArg(v6)
- v7 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v7.AddArg(y)
v5.AddArg(v7)
v4.AddArg(v5)
- v8 := b.NewValue0(v.Pos, OpSelect0, types.UInt32)
- v9 := b.NewValue0(v.Pos, OpMul32uhilo, MakeTuple(types.UInt32, types.UInt32))
- v10 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v8 := b.NewValue0(v.Pos, OpSelect0, typ.UInt32)
+ v9 := b.NewValue0(v.Pos, OpMul32uhilo, types.NewTuple(typ.UInt32, typ.UInt32))
+ v10 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v10.AddArg(x)
v9.AddArg(v10)
- v11 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v11 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v11.AddArg(y)
v9.AddArg(v11)
v8.AddArg(v9)
v4.AddArg(v8)
v0.AddArg(v4)
v.AddArg(v0)
- v12 := b.NewValue0(v.Pos, OpSelect1, types.UInt32)
- v13 := b.NewValue0(v.Pos, OpMul32uhilo, MakeTuple(types.UInt32, types.UInt32))
- v14 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v12 := b.NewValue0(v.Pos, OpSelect1, typ.UInt32)
+ v13 := b.NewValue0(v.Pos, OpMul32uhilo, types.NewTuple(typ.UInt32, typ.UInt32))
+ v14 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v14.AddArg(x)
v13.AddArg(v14)
- v15 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v15 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v15.AddArg(y)
v13.AddArg(v15)
v12.AddArg(v13)
@@ -1468,8 +1470,8 @@ func rewriteValuedec64_OpNeg64_0(v *Value) bool {
func rewriteValuedec64_OpNeq64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Neq64 x y)
// cond:
// result: (OrB (Neq32 (Int64Hi x) (Int64Hi y)) (Neq32 (Int64Lo x) (Int64Lo y)))
@@ -1477,19 +1479,19 @@ func rewriteValuedec64_OpNeq64_0(v *Value) bool {
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
- v0 := b.NewValue0(v.Pos, OpNeq32, types.Bool)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpNeq32, typ.Bool)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpNeq32, types.Bool)
- v4 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpNeq32, typ.Bool)
+ v4 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v4.AddArg(x)
v3.AddArg(v4)
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(y)
v3.AddArg(v5)
v.AddArg(v3)
@@ -1499,28 +1501,28 @@ func rewriteValuedec64_OpNeq64_0(v *Value) bool {
func rewriteValuedec64_OpOr64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Or64 x y)
// cond:
- // result: (Int64Make (Or32 <types.UInt32> (Int64Hi x) (Int64Hi y)) (Or32 <types.UInt32> (Int64Lo x) (Int64Lo y)))
+ // result: (Int64Make (Or32 <typ.UInt32> (Int64Hi x) (Int64Hi y)) (Or32 <typ.UInt32> (Int64Lo x) (Int64Lo y)))
for {
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v4 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v4 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v4.AddArg(x)
v3.AddArg(v4)
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(y)
v3.AddArg(v5)
v.AddArg(v3)
@@ -1530,8 +1532,8 @@ func rewriteValuedec64_OpOr64_0(v *Value) bool {
func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh16Ux64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const32 [0])
@@ -1576,7 +1578,7 @@ func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool {
}
// match: (Rsh16Ux64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh16Ux32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh16Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1590,8 +1592,8 @@ func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool {
}
v.reset(OpRsh16Ux32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1603,8 +1605,8 @@ func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool {
func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh16x64 x (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Signmask (SignExt16to32 x))
@@ -1623,7 +1625,7 @@ func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
break
}
v.reset(OpSignmask)
- v0 := b.NewValue0(v.Pos, OpSignExt16to32, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpSignExt16to32, typ.Int32)
v0.AddArg(x)
v.AddArg(v0)
return true
@@ -1652,7 +1654,7 @@ func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
}
// match: (Rsh16x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh16x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh16x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1666,8 +1668,8 @@ func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
}
v.reset(OpRsh16x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1679,8 +1681,8 @@ func rewriteValuedec64_OpRsh16x64_0(v *Value) bool {
func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh32Ux64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const32 [0])
@@ -1725,7 +1727,7 @@ func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool {
}
// match: (Rsh32Ux64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh32Ux32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh32Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1739,8 +1741,8 @@ func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool {
}
v.reset(OpRsh32Ux32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1752,8 +1754,8 @@ func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool {
func rewriteValuedec64_OpRsh32x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh32x64 x (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Signmask x)
@@ -1799,7 +1801,7 @@ func rewriteValuedec64_OpRsh32x64_0(v *Value) bool {
}
// match: (Rsh32x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh32x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh32x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1813,8 +1815,8 @@ func rewriteValuedec64_OpRsh32x64_0(v *Value) bool {
}
v.reset(OpRsh32x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -1826,11 +1828,11 @@ func rewriteValuedec64_OpRsh32x64_0(v *Value) bool {
func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64Ux16 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Rsh32Ux16 <types.UInt32> hi s) (Or32 <types.UInt32> (Or32 <types.UInt32> (Rsh32Ux16 <types.UInt32> lo s) (Lsh32x16 <types.UInt32> hi (Sub16 <types.UInt16> (Const16 <types.UInt16> [32]) s))) (Rsh32Ux16 <types.UInt32> hi (Sub16 <types.UInt16> s (Const16 <types.UInt16> [32])))))
+ // result: (Int64Make (Rsh32Ux16 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux16 <typ.UInt32> lo s) (Lsh32x16 <typ.UInt32> hi (Sub16 <typ.UInt16> (Const16 <typ.UInt16> [32]) s))) (Rsh32Ux16 <typ.UInt32> hi (Sub16 <typ.UInt16> s (Const16 <typ.UInt16> [32])))))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -1840,31 +1842,31 @@ func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpRsh32Ux16, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpRsh32Ux16, typ.UInt32)
v0.AddArg(hi)
v0.AddArg(s)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux16, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux16, typ.UInt32)
v3.AddArg(lo)
v3.AddArg(s)
v2.AddArg(v3)
- v4 := b.NewValue0(v.Pos, OpLsh32x16, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpLsh32x16, typ.UInt32)
v4.AddArg(hi)
- v5 := b.NewValue0(v.Pos, OpSub16, types.UInt16)
- v6 := b.NewValue0(v.Pos, OpConst16, types.UInt16)
+ v5 := b.NewValue0(v.Pos, OpSub16, typ.UInt16)
+ v6 := b.NewValue0(v.Pos, OpConst16, typ.UInt16)
v6.AuxInt = 32
v5.AddArg(v6)
v5.AddArg(s)
v4.AddArg(v5)
v2.AddArg(v4)
v1.AddArg(v2)
- v7 := b.NewValue0(v.Pos, OpRsh32Ux16, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpRsh32Ux16, typ.UInt32)
v7.AddArg(hi)
- v8 := b.NewValue0(v.Pos, OpSub16, types.UInt16)
+ v8 := b.NewValue0(v.Pos, OpSub16, typ.UInt16)
v8.AddArg(s)
- v9 := b.NewValue0(v.Pos, OpConst16, types.UInt16)
+ v9 := b.NewValue0(v.Pos, OpConst16, typ.UInt16)
v9.AuxInt = 32
v8.AddArg(v9)
v7.AddArg(v8)
@@ -1877,11 +1879,11 @@ func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool {
func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64Ux32 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Rsh32Ux32 <types.UInt32> hi s) (Or32 <types.UInt32> (Or32 <types.UInt32> (Rsh32Ux32 <types.UInt32> lo s) (Lsh32x32 <types.UInt32> hi (Sub32 <types.UInt32> (Const32 <types.UInt32> [32]) s))) (Rsh32Ux32 <types.UInt32> hi (Sub32 <types.UInt32> s (Const32 <types.UInt32> [32])))))
+ // result: (Int64Make (Rsh32Ux32 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux32 <typ.UInt32> lo s) (Lsh32x32 <typ.UInt32> hi (Sub32 <typ.UInt32> (Const32 <typ.UInt32> [32]) s))) (Rsh32Ux32 <typ.UInt32> hi (Sub32 <typ.UInt32> s (Const32 <typ.UInt32> [32])))))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -1891,31 +1893,31 @@ func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpRsh32Ux32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpRsh32Ux32, typ.UInt32)
v0.AddArg(hi)
v0.AddArg(s)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux32, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux32, typ.UInt32)
v3.AddArg(lo)
v3.AddArg(s)
v2.AddArg(v3)
- v4 := b.NewValue0(v.Pos, OpLsh32x32, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpLsh32x32, typ.UInt32)
v4.AddArg(hi)
- v5 := b.NewValue0(v.Pos, OpSub32, types.UInt32)
- v6 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpSub32, typ.UInt32)
+ v6 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v6.AuxInt = 32
v5.AddArg(v6)
v5.AddArg(s)
v4.AddArg(v5)
v2.AddArg(v4)
v1.AddArg(v2)
- v7 := b.NewValue0(v.Pos, OpRsh32Ux32, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpRsh32Ux32, typ.UInt32)
v7.AddArg(hi)
- v8 := b.NewValue0(v.Pos, OpSub32, types.UInt32)
+ v8 := b.NewValue0(v.Pos, OpSub32, typ.UInt32)
v8.AddArg(s)
- v9 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v9.AuxInt = 32
v8.AddArg(v9)
v7.AddArg(v8)
@@ -1928,8 +1930,8 @@ func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool {
func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64Ux64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const64 [0])
@@ -1974,7 +1976,7 @@ func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool {
}
// match: (Rsh64Ux64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh64Ux32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh64Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -1988,8 +1990,8 @@ func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool {
}
v.reset(OpRsh64Ux32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -2001,11 +2003,11 @@ func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool {
func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64Ux8 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Rsh32Ux8 <types.UInt32> hi s) (Or32 <types.UInt32> (Or32 <types.UInt32> (Rsh32Ux8 <types.UInt32> lo s) (Lsh32x8 <types.UInt32> hi (Sub8 <types.UInt8> (Const8 <types.UInt8> [32]) s))) (Rsh32Ux8 <types.UInt32> hi (Sub8 <types.UInt8> s (Const8 <types.UInt8> [32])))))
+ // result: (Int64Make (Rsh32Ux8 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux8 <typ.UInt32> lo s) (Lsh32x8 <typ.UInt32> hi (Sub8 <typ.UInt8> (Const8 <typ.UInt8> [32]) s))) (Rsh32Ux8 <typ.UInt32> hi (Sub8 <typ.UInt8> s (Const8 <typ.UInt8> [32])))))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -2015,31 +2017,31 @@ func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpRsh32Ux8, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpRsh32Ux8, typ.UInt32)
v0.AddArg(hi)
v0.AddArg(s)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux8, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux8, typ.UInt32)
v3.AddArg(lo)
v3.AddArg(s)
v2.AddArg(v3)
- v4 := b.NewValue0(v.Pos, OpLsh32x8, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpLsh32x8, typ.UInt32)
v4.AddArg(hi)
- v5 := b.NewValue0(v.Pos, OpSub8, types.UInt8)
- v6 := b.NewValue0(v.Pos, OpConst8, types.UInt8)
+ v5 := b.NewValue0(v.Pos, OpSub8, typ.UInt8)
+ v6 := b.NewValue0(v.Pos, OpConst8, typ.UInt8)
v6.AuxInt = 32
v5.AddArg(v6)
v5.AddArg(s)
v4.AddArg(v5)
v2.AddArg(v4)
v1.AddArg(v2)
- v7 := b.NewValue0(v.Pos, OpRsh32Ux8, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpRsh32Ux8, typ.UInt32)
v7.AddArg(hi)
- v8 := b.NewValue0(v.Pos, OpSub8, types.UInt8)
+ v8 := b.NewValue0(v.Pos, OpSub8, typ.UInt8)
v8.AddArg(s)
- v9 := b.NewValue0(v.Pos, OpConst8, types.UInt8)
+ v9 := b.NewValue0(v.Pos, OpConst8, typ.UInt8)
v9.AuxInt = 32
v8.AddArg(v9)
v7.AddArg(v8)
@@ -2052,11 +2054,11 @@ func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool {
func rewriteValuedec64_OpRsh64x16_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64x16 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Rsh32x16 <types.UInt32> hi s) (Or32 <types.UInt32> (Or32 <types.UInt32> (Rsh32Ux16 <types.UInt32> lo s) (Lsh32x16 <types.UInt32> hi (Sub16 <types.UInt16> (Const16 <types.UInt16> [32]) s))) (And32 <types.UInt32> (Rsh32x16 <types.UInt32> hi (Sub16 <types.UInt16> s (Const16 <types.UInt16> [32]))) (Zeromask (ZeroExt16to32 (Rsh16Ux32 <types.UInt16> s (Const32 <types.UInt32> [5])))))))
+ // result: (Int64Make (Rsh32x16 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux16 <typ.UInt32> lo s) (Lsh32x16 <typ.UInt32> hi (Sub16 <typ.UInt16> (Const16 <typ.UInt16> [32]) s))) (And32 <typ.UInt32> (Rsh32x16 <typ.UInt32> hi (Sub16 <typ.UInt16> s (Const16 <typ.UInt16> [32]))) (Zeromask (ZeroExt16to32 (Rsh16Ux32 <typ.UInt16> s (Const32 <typ.UInt32> [5])))))))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -2066,41 +2068,41 @@ func rewriteValuedec64_OpRsh64x16_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpRsh32x16, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpRsh32x16, typ.UInt32)
v0.AddArg(hi)
v0.AddArg(s)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux16, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux16, typ.UInt32)
v3.AddArg(lo)
v3.AddArg(s)
v2.AddArg(v3)
- v4 := b.NewValue0(v.Pos, OpLsh32x16, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpLsh32x16, typ.UInt32)
v4.AddArg(hi)
- v5 := b.NewValue0(v.Pos, OpSub16, types.UInt16)
- v6 := b.NewValue0(v.Pos, OpConst16, types.UInt16)
+ v5 := b.NewValue0(v.Pos, OpSub16, typ.UInt16)
+ v6 := b.NewValue0(v.Pos, OpConst16, typ.UInt16)
v6.AuxInt = 32
v5.AddArg(v6)
v5.AddArg(s)
v4.AddArg(v5)
v2.AddArg(v4)
v1.AddArg(v2)
- v7 := b.NewValue0(v.Pos, OpAnd32, types.UInt32)
- v8 := b.NewValue0(v.Pos, OpRsh32x16, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpAnd32, typ.UInt32)
+ v8 := b.NewValue0(v.Pos, OpRsh32x16, typ.UInt32)
v8.AddArg(hi)
- v9 := b.NewValue0(v.Pos, OpSub16, types.UInt16)
+ v9 := b.NewValue0(v.Pos, OpSub16, typ.UInt16)
v9.AddArg(s)
- v10 := b.NewValue0(v.Pos, OpConst16, types.UInt16)
+ v10 := b.NewValue0(v.Pos, OpConst16, typ.UInt16)
v10.AuxInt = 32
v9.AddArg(v10)
v8.AddArg(v9)
v7.AddArg(v8)
- v11 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
- v12 := b.NewValue0(v.Pos, OpZeroExt16to32, types.UInt32)
- v13 := b.NewValue0(v.Pos, OpRsh16Ux32, types.UInt16)
+ v11 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
+ v12 := b.NewValue0(v.Pos, OpZeroExt16to32, typ.UInt32)
+ v13 := b.NewValue0(v.Pos, OpRsh16Ux32, typ.UInt16)
v13.AddArg(s)
- v14 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v14 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v14.AuxInt = 5
v13.AddArg(v14)
v12.AddArg(v13)
@@ -2115,11 +2117,11 @@ func rewriteValuedec64_OpRsh64x16_0(v *Value) bool {
func rewriteValuedec64_OpRsh64x32_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64x32 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Rsh32x32 <types.UInt32> hi s) (Or32 <types.UInt32> (Or32 <types.UInt32> (Rsh32Ux32 <types.UInt32> lo s) (Lsh32x32 <types.UInt32> hi (Sub32 <types.UInt32> (Const32 <types.UInt32> [32]) s))) (And32 <types.UInt32> (Rsh32x32 <types.UInt32> hi (Sub32 <types.UInt32> s (Const32 <types.UInt32> [32]))) (Zeromask (Rsh32Ux32 <types.UInt32> s (Const32 <types.UInt32> [5]))))))
+ // result: (Int64Make (Rsh32x32 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux32 <typ.UInt32> lo s) (Lsh32x32 <typ.UInt32> hi (Sub32 <typ.UInt32> (Const32 <typ.UInt32> [32]) s))) (And32 <typ.UInt32> (Rsh32x32 <typ.UInt32> hi (Sub32 <typ.UInt32> s (Const32 <typ.UInt32> [32]))) (Zeromask (Rsh32Ux32 <typ.UInt32> s (Const32 <typ.UInt32> [5]))))))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -2129,40 +2131,40 @@ func rewriteValuedec64_OpRsh64x32_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpRsh32x32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpRsh32x32, typ.UInt32)
v0.AddArg(hi)
v0.AddArg(s)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux32, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux32, typ.UInt32)
v3.AddArg(lo)
v3.AddArg(s)
v2.AddArg(v3)
- v4 := b.NewValue0(v.Pos, OpLsh32x32, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpLsh32x32, typ.UInt32)
v4.AddArg(hi)
- v5 := b.NewValue0(v.Pos, OpSub32, types.UInt32)
- v6 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpSub32, typ.UInt32)
+ v6 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v6.AuxInt = 32
v5.AddArg(v6)
v5.AddArg(s)
v4.AddArg(v5)
v2.AddArg(v4)
v1.AddArg(v2)
- v7 := b.NewValue0(v.Pos, OpAnd32, types.UInt32)
- v8 := b.NewValue0(v.Pos, OpRsh32x32, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpAnd32, typ.UInt32)
+ v8 := b.NewValue0(v.Pos, OpRsh32x32, typ.UInt32)
v8.AddArg(hi)
- v9 := b.NewValue0(v.Pos, OpSub32, types.UInt32)
+ v9 := b.NewValue0(v.Pos, OpSub32, typ.UInt32)
v9.AddArg(s)
- v10 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v10 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v10.AuxInt = 32
v9.AddArg(v10)
v8.AddArg(v9)
v7.AddArg(v8)
- v11 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
- v12 := b.NewValue0(v.Pos, OpRsh32Ux32, types.UInt32)
+ v11 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
+ v12 := b.NewValue0(v.Pos, OpRsh32Ux32, typ.UInt32)
v12.AddArg(s)
- v13 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v13 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v13.AuxInt = 5
v12.AddArg(v13)
v11.AddArg(v12)
@@ -2176,8 +2178,8 @@ func rewriteValuedec64_OpRsh64x32_0(v *Value) bool {
func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64x64 x (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Int64Make (Signmask (Int64Hi x)) (Signmask (Int64Hi x)))
@@ -2196,13 +2198,13 @@ func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
break
}
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpSignmask, types.Int32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpSignmask, typ.Int32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
v.AddArg(v0)
- v2 := b.NewValue0(v.Pos, OpSignmask, types.Int32)
- v3 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpSignmask, typ.Int32)
+ v3 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v3.AddArg(x)
v2.AddArg(v3)
v.AddArg(v2)
@@ -2232,7 +2234,7 @@ func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
}
// match: (Rsh64x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh64x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh64x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -2246,8 +2248,8 @@ func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
}
v.reset(OpRsh64x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -2259,11 +2261,11 @@ func rewriteValuedec64_OpRsh64x64_0(v *Value) bool {
func rewriteValuedec64_OpRsh64x8_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh64x8 (Int64Make hi lo) s)
// cond:
- // result: (Int64Make (Rsh32x8 <types.UInt32> hi s) (Or32 <types.UInt32> (Or32 <types.UInt32> (Rsh32Ux8 <types.UInt32> lo s) (Lsh32x8 <types.UInt32> hi (Sub8 <types.UInt8> (Const8 <types.UInt8> [32]) s))) (And32 <types.UInt32> (Rsh32x8 <types.UInt32> hi (Sub8 <types.UInt8> s (Const8 <types.UInt8> [32]))) (Zeromask (ZeroExt8to32 (Rsh8Ux32 <types.UInt8> s (Const32 <types.UInt32> [5])))))))
+ // result: (Int64Make (Rsh32x8 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux8 <typ.UInt32> lo s) (Lsh32x8 <typ.UInt32> hi (Sub8 <typ.UInt8> (Const8 <typ.UInt8> [32]) s))) (And32 <typ.UInt32> (Rsh32x8 <typ.UInt32> hi (Sub8 <typ.UInt8> s (Const8 <typ.UInt8> [32]))) (Zeromask (ZeroExt8to32 (Rsh8Ux32 <typ.UInt8> s (Const32 <typ.UInt32> [5])))))))
for {
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
@@ -2273,41 +2275,41 @@ func rewriteValuedec64_OpRsh64x8_0(v *Value) bool {
lo := v_0.Args[1]
s := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpRsh32x8, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpRsh32x8, typ.UInt32)
v0.AddArg(hi)
v0.AddArg(s)
v.AddArg(v0)
- v1 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v2 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v3 := b.NewValue0(v.Pos, OpRsh32Ux8, types.UInt32)
+ v1 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v2 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v3 := b.NewValue0(v.Pos, OpRsh32Ux8, typ.UInt32)
v3.AddArg(lo)
v3.AddArg(s)
v2.AddArg(v3)
- v4 := b.NewValue0(v.Pos, OpLsh32x8, types.UInt32)
+ v4 := b.NewValue0(v.Pos, OpLsh32x8, typ.UInt32)
v4.AddArg(hi)
- v5 := b.NewValue0(v.Pos, OpSub8, types.UInt8)
- v6 := b.NewValue0(v.Pos, OpConst8, types.UInt8)
+ v5 := b.NewValue0(v.Pos, OpSub8, typ.UInt8)
+ v6 := b.NewValue0(v.Pos, OpConst8, typ.UInt8)
v6.AuxInt = 32
v5.AddArg(v6)
v5.AddArg(s)
v4.AddArg(v5)
v2.AddArg(v4)
v1.AddArg(v2)
- v7 := b.NewValue0(v.Pos, OpAnd32, types.UInt32)
- v8 := b.NewValue0(v.Pos, OpRsh32x8, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpAnd32, typ.UInt32)
+ v8 := b.NewValue0(v.Pos, OpRsh32x8, typ.UInt32)
v8.AddArg(hi)
- v9 := b.NewValue0(v.Pos, OpSub8, types.UInt8)
+ v9 := b.NewValue0(v.Pos, OpSub8, typ.UInt8)
v9.AddArg(s)
- v10 := b.NewValue0(v.Pos, OpConst8, types.UInt8)
+ v10 := b.NewValue0(v.Pos, OpConst8, typ.UInt8)
v10.AuxInt = 32
v9.AddArg(v10)
v8.AddArg(v9)
v7.AddArg(v8)
- v11 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
- v12 := b.NewValue0(v.Pos, OpZeroExt8to32, types.UInt32)
- v13 := b.NewValue0(v.Pos, OpRsh8Ux32, types.UInt8)
+ v11 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
+ v12 := b.NewValue0(v.Pos, OpZeroExt8to32, typ.UInt32)
+ v13 := b.NewValue0(v.Pos, OpRsh8Ux32, typ.UInt8)
v13.AddArg(s)
- v14 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v14 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v14.AuxInt = 5
v13.AddArg(v14)
v12.AddArg(v13)
@@ -2322,8 +2324,8 @@ func rewriteValuedec64_OpRsh64x8_0(v *Value) bool {
func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh8Ux64 _ (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Const32 [0])
@@ -2368,7 +2370,7 @@ func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool {
}
// match: (Rsh8Ux64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh8Ux32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh8Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -2382,8 +2384,8 @@ func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool {
}
v.reset(OpRsh8Ux32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -2395,8 +2397,8 @@ func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool {
func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Rsh8x64 x (Int64Make (Const32 [c]) _))
// cond: c != 0
// result: (Signmask (SignExt8to32 x))
@@ -2415,7 +2417,7 @@ func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
break
}
v.reset(OpSignmask)
- v0 := b.NewValue0(v.Pos, OpSignExt8to32, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpSignExt8to32, typ.Int32)
v0.AddArg(x)
v.AddArg(v0)
return true
@@ -2444,7 +2446,7 @@ func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
}
// match: (Rsh8x64 x (Int64Make hi lo))
// cond: hi.Op != OpConst32
- // result: (Rsh8x32 x (Or32 <types.UInt32> (Zeromask hi) lo))
+ // result: (Rsh8x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
x := v.Args[0]
v_1 := v.Args[1]
@@ -2458,8 +2460,8 @@ func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
}
v.reset(OpRsh8x32)
v.AddArg(x)
- v0 := b.NewValue0(v.Pos, OpOr32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpZeromask, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpOr32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpZeromask, typ.UInt32)
v1.AddArg(hi)
v0.AddArg(v1)
v0.AddArg(lo)
@@ -2471,15 +2473,15 @@ func rewriteValuedec64_OpRsh8x64_0(v *Value) bool {
func rewriteValuedec64_OpSignExt16to64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (SignExt16to64 x)
// cond:
// result: (SignExt32to64 (SignExt16to32 x))
for {
x := v.Args[0]
v.reset(OpSignExt32to64)
- v0 := b.NewValue0(v.Pos, OpSignExt16to32, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpSignExt16to32, typ.Int32)
v0.AddArg(x)
v.AddArg(v0)
return true
@@ -2488,15 +2490,15 @@ func rewriteValuedec64_OpSignExt16to64_0(v *Value) bool {
func rewriteValuedec64_OpSignExt32to64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (SignExt32to64 x)
// cond:
// result: (Int64Make (Signmask x) x)
for {
x := v.Args[0]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpSignmask, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpSignmask, typ.Int32)
v0.AddArg(x)
v.AddArg(v0)
v.AddArg(x)
@@ -2506,15 +2508,15 @@ func rewriteValuedec64_OpSignExt32to64_0(v *Value) bool {
func rewriteValuedec64_OpSignExt8to64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (SignExt8to64 x)
// cond:
// result: (SignExt32to64 (SignExt8to32 x))
for {
x := v.Args[0]
v.reset(OpSignExt32to64)
- v0 := b.NewValue0(v.Pos, OpSignExt8to32, types.Int32)
+ v0 := b.NewValue0(v.Pos, OpSignExt8to32, typ.Int32)
v0.AddArg(x)
v.AddArg(v0)
return true
@@ -2526,7 +2528,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
config := b.Func.Config
_ = config
// match: (Store {t} dst (Int64Make hi lo) mem)
- // cond: t.(Type).Size() == 8 && !config.BigEndian
+ // cond: t.(*types.Type).Size() == 8 && !config.BigEndian
// result: (Store {hi.Type} (OffPtr <hi.Type.PtrTo()> [4] dst) hi (Store {lo.Type} dst lo mem))
for {
t := v.Aux
@@ -2538,7 +2540,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
hi := v_1.Args[0]
lo := v_1.Args[1]
mem := v.Args[2]
- if !(t.(Type).Size() == 8 && !config.BigEndian) {
+ if !(t.(*types.Type).Size() == 8 && !config.BigEndian) {
break
}
v.reset(OpStore)
@@ -2548,7 +2550,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
v0.AddArg(dst)
v.AddArg(v0)
v.AddArg(hi)
- v1 := b.NewValue0(v.Pos, OpStore, TypeMem)
+ v1 := b.NewValue0(v.Pos, OpStore, types.TypeMem)
v1.Aux = lo.Type
v1.AddArg(dst)
v1.AddArg(lo)
@@ -2557,7 +2559,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
return true
}
// match: (Store {t} dst (Int64Make hi lo) mem)
- // cond: t.(Type).Size() == 8 && config.BigEndian
+ // cond: t.(*types.Type).Size() == 8 && config.BigEndian
// result: (Store {lo.Type} (OffPtr <lo.Type.PtrTo()> [4] dst) lo (Store {hi.Type} dst hi mem))
for {
t := v.Aux
@@ -2569,7 +2571,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
hi := v_1.Args[0]
lo := v_1.Args[1]
mem := v.Args[2]
- if !(t.(Type).Size() == 8 && config.BigEndian) {
+ if !(t.(*types.Type).Size() == 8 && config.BigEndian) {
break
}
v.reset(OpStore)
@@ -2579,7 +2581,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
v0.AddArg(dst)
v.AddArg(v0)
v.AddArg(lo)
- v1 := b.NewValue0(v.Pos, OpStore, TypeMem)
+ v1 := b.NewValue0(v.Pos, OpStore, types.TypeMem)
v1.Aux = hi.Type
v1.AddArg(dst)
v1.AddArg(hi)
@@ -2592,39 +2594,39 @@ func rewriteValuedec64_OpStore_0(v *Value) bool {
func rewriteValuedec64_OpSub64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Sub64 x y)
// cond:
- // result: (Int64Make (Sub32withcarry <types.Int32> (Int64Hi x) (Int64Hi y) (Select1 <TypeFlags> (Sub32carry (Int64Lo x) (Int64Lo y)))) (Select0 <types.UInt32> (Sub32carry (Int64Lo x) (Int64Lo y))))
+ // result: (Int64Make (Sub32withcarry <typ.Int32> (Int64Hi x) (Int64Hi y) (Select1 <types.TypeFlags> (Sub32carry (Int64Lo x) (Int64Lo y)))) (Select0 <typ.UInt32> (Sub32carry (Int64Lo x) (Int64Lo y))))
for {
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpSub32withcarry, types.Int32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpSub32withcarry, typ.Int32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
- v3 := b.NewValue0(v.Pos, OpSelect1, TypeFlags)
- v4 := b.NewValue0(v.Pos, OpSub32carry, MakeTuple(types.UInt32, TypeFlags))
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpSelect1, types.TypeFlags)
+ v4 := b.NewValue0(v.Pos, OpSub32carry, types.NewTuple(typ.UInt32, types.TypeFlags))
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(x)
v4.AddArg(v5)
- v6 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v6 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v6.AddArg(y)
v4.AddArg(v6)
v3.AddArg(v4)
v0.AddArg(v3)
v.AddArg(v0)
- v7 := b.NewValue0(v.Pos, OpSelect0, types.UInt32)
- v8 := b.NewValue0(v.Pos, OpSub32carry, MakeTuple(types.UInt32, TypeFlags))
- v9 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v7 := b.NewValue0(v.Pos, OpSelect0, typ.UInt32)
+ v8 := b.NewValue0(v.Pos, OpSub32carry, types.NewTuple(typ.UInt32, types.TypeFlags))
+ v9 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v9.AddArg(x)
v8.AddArg(v9)
- v10 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v10 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v10.AddArg(y)
v8.AddArg(v10)
v7.AddArg(v8)
@@ -2684,28 +2686,28 @@ func rewriteValuedec64_OpTrunc64to8_0(v *Value) bool {
func rewriteValuedec64_OpXor64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (Xor64 x y)
// cond:
- // result: (Int64Make (Xor32 <types.UInt32> (Int64Hi x) (Int64Hi y)) (Xor32 <types.UInt32> (Int64Lo x) (Int64Lo y)))
+ // result: (Int64Make (Xor32 <typ.UInt32> (Int64Hi x) (Int64Hi y)) (Xor32 <typ.UInt32> (Int64Lo x) (Int64Lo y)))
for {
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpXor32, types.UInt32)
- v1 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpXor32, typ.UInt32)
+ v1 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v1.AddArg(x)
v0.AddArg(v1)
- v2 := b.NewValue0(v.Pos, OpInt64Hi, types.UInt32)
+ v2 := b.NewValue0(v.Pos, OpInt64Hi, typ.UInt32)
v2.AddArg(y)
v0.AddArg(v2)
v.AddArg(v0)
- v3 := b.NewValue0(v.Pos, OpXor32, types.UInt32)
- v4 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v3 := b.NewValue0(v.Pos, OpXor32, typ.UInt32)
+ v4 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v4.AddArg(x)
v3.AddArg(v4)
- v5 := b.NewValue0(v.Pos, OpInt64Lo, types.UInt32)
+ v5 := b.NewValue0(v.Pos, OpInt64Lo, typ.UInt32)
v5.AddArg(y)
v3.AddArg(v5)
v.AddArg(v3)
@@ -2715,15 +2717,15 @@ func rewriteValuedec64_OpXor64_0(v *Value) bool {
func rewriteValuedec64_OpZeroExt16to64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (ZeroExt16to64 x)
// cond:
// result: (ZeroExt32to64 (ZeroExt16to32 x))
for {
x := v.Args[0]
v.reset(OpZeroExt32to64)
- v0 := b.NewValue0(v.Pos, OpZeroExt16to32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpZeroExt16to32, typ.UInt32)
v0.AddArg(x)
v.AddArg(v0)
return true
@@ -2732,15 +2734,15 @@ func rewriteValuedec64_OpZeroExt16to64_0(v *Value) bool {
func rewriteValuedec64_OpZeroExt32to64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (ZeroExt32to64 x)
// cond:
- // result: (Int64Make (Const32 <types.UInt32> [0]) x)
+ // result: (Int64Make (Const32 <typ.UInt32> [0]) x)
for {
x := v.Args[0]
v.reset(OpInt64Make)
- v0 := b.NewValue0(v.Pos, OpConst32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpConst32, typ.UInt32)
v0.AuxInt = 0
v.AddArg(v0)
v.AddArg(x)
@@ -2750,15 +2752,15 @@ func rewriteValuedec64_OpZeroExt32to64_0(v *Value) bool {
func rewriteValuedec64_OpZeroExt8to64_0(v *Value) bool {
b := v.Block
_ = b
- types := &b.Func.Config.Types
- _ = types
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (ZeroExt8to64 x)
// cond:
// result: (ZeroExt32to64 (ZeroExt8to32 x))
for {
x := v.Args[0]
v.reset(OpZeroExt32to64)
- v0 := b.NewValue0(v.Pos, OpZeroExt8to32, types.UInt32)
+ v0 := b.NewValue0(v.Pos, OpZeroExt8to32, typ.UInt32)
v0.AddArg(x)
v.AddArg(v0)
return true
@@ -2769,8 +2771,8 @@ func rewriteBlockdec64(b *Block) bool {
_ = config
fe := b.Func.fe
_ = fe
- types := &config.Types
- _ = types
+ typ := &config.Types
+ _ = typ
switch b.Kind {
}
return false