diff options
author | Than McIntosh <thanm@google.com> | 2020-04-20 21:45:01 +0000 |
---|---|---|
committer | Than McIntosh <thanm@google.com> | 2020-04-20 22:38:59 +0000 |
commit | 0cffc95109966c91852ff7f2b183a7f929de189b (patch) | |
tree | aeb2e3a5bcbde378ffb5b1101d6bcfedb07adc51 /src/cmd/compile/internal/ssa/rewriteRISCV64.go | |
parent | 75e79adaf94a3f883bd2d88467ee7c72ea18c0a3 (diff) | |
download | go-0cffc95109966c91852ff7f2b183a7f929de189b.tar.gz go-0cffc95109966c91852ff7f2b183a7f929de189b.zip |
Revert "cmd/compile: adjust RISCV64 rewrite rules to use typed aux fields"
This reverts commit 7004be998ba708f027c95615d7885efeb9f73e75.
Reason for revert: causing failures on many builders
Change-Id: I9216bd5409bb6814bac18a6a13ef5115db01b5fe
Reviewed-on: https://go-review.googlesource.com/c/go/+/229120
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteRISCV64.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewriteRISCV64.go | 1293 |
1 files changed, 634 insertions, 659 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go index bfc00309fe..5b2746a514 100644 --- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go +++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go @@ -4,6 +4,7 @@ package ssa import "math" +import "cmd/compile/internal/types" func rewriteValueRISCV64(v *Value) bool { switch v.Op { @@ -121,7 +122,8 @@ func rewriteValueRISCV64(v *Value) bool { v.Op = OpRISCV64MOVBconst return true case OpConstBool: - return rewriteValueRISCV64_OpConstBool(v) + v.Op = OpRISCV64MOVBconst + return true case OpConstNil: return rewriteValueRISCV64_OpConstNil(v) case OpConvert: @@ -165,7 +167,8 @@ func rewriteValueRISCV64(v *Value) bool { case OpDiv16u: return rewriteValueRISCV64_OpDiv16u(v) case OpDiv32: - return rewriteValueRISCV64_OpDiv32(v) + v.Op = OpRISCV64DIVW + return true case OpDiv32F: v.Op = OpRISCV64FDIVS return true @@ -173,7 +176,8 @@ func rewriteValueRISCV64(v *Value) bool { v.Op = OpRISCV64DIVUW return true case OpDiv64: - return rewriteValueRISCV64_OpDiv64(v) + v.Op = OpRISCV64DIV + return true case OpDiv64F: v.Op = OpRISCV64FDIVD return true @@ -319,12 +323,14 @@ func rewriteValueRISCV64(v *Value) bool { case OpMod16u: return rewriteValueRISCV64_OpMod16u(v) case OpMod32: - return rewriteValueRISCV64_OpMod32(v) + v.Op = OpRISCV64REMW + return true case OpMod32u: v.Op = OpRISCV64REMUW return true case OpMod64: - return rewriteValueRISCV64_OpMod64(v) + v.Op = OpRISCV64REM + return true case OpMod64u: v.Op = OpRISCV64REMU return true @@ -661,14 +667,14 @@ func rewriteValueRISCV64_OpAvg64u(v *Value) bool { v.reset(OpRISCV64ADD) v0 := b.NewValue0(v.Pos, OpRISCV64ADD, t) v1 := b.NewValue0(v.Pos, OpRISCV64SRLI, t) - v1.AuxInt = int64ToAuxInt(1) + v1.AuxInt = 1 v1.AddArg(x) v2 := b.NewValue0(v.Pos, OpRISCV64SRLI, t) - v2.AuxInt = int64ToAuxInt(1) + v2.AuxInt = 1 v2.AddArg(y) v0.AddArg2(v1, v2) v3 := b.NewValue0(v.Pos, OpRISCV64ANDI, t) - v3.AuxInt = int64ToAuxInt(1) + v3.AuxInt = 1 v4 := b.NewValue0(v.Pos, OpRISCV64AND, t) v4.AddArg2(x, y) v3.AddArg(v4) @@ -680,12 +686,12 @@ func rewriteValueRISCV64_OpConst32F(v *Value) bool { b := v.Block typ := &b.Func.Config.Types // match: (Const32F [val]) - // result: (FMVSX (MOVWconst [int32(math.Float32bits(val))])) + // result: (FMVSX (MOVWconst [int64(int32(math.Float32bits(float32(math.Float64frombits(uint64(val))))))])) for { - val := auxIntToFloat32(v.AuxInt) + val := v.AuxInt v.reset(OpRISCV64FMVSX) v0 := b.NewValue0(v.Pos, OpRISCV64MOVWconst, typ.UInt32) - v0.AuxInt = int32ToAuxInt(int32(math.Float32bits(val))) + v0.AuxInt = int64(int32(math.Float32bits(float32(math.Float64frombits(uint64(val)))))) v.AddArg(v0) return true } @@ -694,32 +700,22 @@ func rewriteValueRISCV64_OpConst64F(v *Value) bool { b := v.Block typ := &b.Func.Config.Types // match: (Const64F [val]) - // result: (FMVDX (MOVDconst [int64(math.Float64bits(val))])) + // result: (FMVDX (MOVDconst [val])) for { - val := auxIntToFloat64(v.AuxInt) + val := v.AuxInt v.reset(OpRISCV64FMVDX) v0 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v0.AuxInt = int64ToAuxInt(int64(math.Float64bits(val))) + v0.AuxInt = val v.AddArg(v0) return true } } -func rewriteValueRISCV64_OpConstBool(v *Value) bool { - // match: (ConstBool [val]) - // result: (MOVBconst [int8(b2i(val))]) - for { - val := auxIntToBool(v.AuxInt) - v.reset(OpRISCV64MOVBconst) - v.AuxInt = int8ToAuxInt(int8(b2i(val))) - return true - } -} func rewriteValueRISCV64_OpConstNil(v *Value) bool { // match: (ConstNil) // result: (MOVDconst [0]) for { v.reset(OpRISCV64MOVDconst) - v.AuxInt = int64ToAuxInt(0) + v.AuxInt = 0 return true } } @@ -728,12 +724,9 @@ func rewriteValueRISCV64_OpDiv16(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types - // match: (Div16 x y [false]) + // match: (Div16 x y) // result: (DIVW (SignExt16to32 x) (SignExt16to32 y)) for { - if auxIntToBool(v.AuxInt) != false { - break - } x := v_0 y := v_1 v.reset(OpRISCV64DIVW) @@ -744,7 +737,6 @@ func rewriteValueRISCV64_OpDiv16(v *Value) bool { v.AddArg2(v0, v1) return true } - return false } func rewriteValueRISCV64_OpDiv16u(v *Value) bool { v_1 := v.Args[1] @@ -765,40 +757,6 @@ func rewriteValueRISCV64_OpDiv16u(v *Value) bool { return true } } -func rewriteValueRISCV64_OpDiv32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Div32 x y [false]) - // result: (DIVW x y) - for { - if auxIntToBool(v.AuxInt) != false { - break - } - x := v_0 - y := v_1 - v.reset(OpRISCV64DIVW) - v.AddArg2(x, y) - return true - } - return false -} -func rewriteValueRISCV64_OpDiv64(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Div64 x y [false]) - // result: (DIV x y) - for { - if auxIntToBool(v.AuxInt) != false { - break - } - x := v_0 - y := v_1 - v.reset(OpRISCV64DIV) - v.AddArg2(x, y) - return true - } - return false -} func rewriteValueRISCV64_OpDiv8(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -918,7 +876,7 @@ func rewriteValueRISCV64_OpEqB(v *Value) bool { x := v_0 y := v_1 v.reset(OpRISCV64XORI) - v.AuxInt = int64ToAuxInt(1) + v.AuxInt = 1 v0 := b.NewValue0(v.Pos, OpRISCV64XOR, typ.Bool) v0.AddArg2(x, y) v.AddArg(v0) @@ -952,7 +910,7 @@ func rewriteValueRISCV64_OpHmul32(v *Value) bool { x := v_0 y := v_1 v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(32) + v.AuxInt = 32 v0 := b.NewValue0(v.Pos, OpRISCV64MUL, typ.Int64) v1 := b.NewValue0(v.Pos, OpSignExt32to64, typ.Int64) v1.AddArg(x) @@ -974,7 +932,7 @@ func rewriteValueRISCV64_OpHmul32u(v *Value) bool { x := v_0 y := v_1 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(32) + v.AuxInt = 32 v0 := b.NewValue0(v.Pos, OpRISCV64MUL, typ.Int64) v1 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v1.AddArg(x) @@ -1399,10 +1357,10 @@ func rewriteValueRISCV64_OpLocalAddr(v *Value) bool { // match: (LocalAddr {sym} base _) // result: (MOVaddr {sym} base) for { - sym := auxToSym(v.Aux) + sym := v.Aux base := v_0 v.reset(OpRISCV64MOVaddr) - v.Aux = symToAux(sym) + v.Aux = sym v.AddArg(base) return true } @@ -1423,7 +1381,7 @@ func rewriteValueRISCV64_OpLsh16x16(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg16, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1448,7 +1406,7 @@ func rewriteValueRISCV64_OpLsh16x32(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg16, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1472,7 +1430,7 @@ func rewriteValueRISCV64_OpLsh16x64(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg16, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v2.AddArg(y) v1.AddArg(v2) v.AddArg2(v0, v1) @@ -1495,7 +1453,7 @@ func rewriteValueRISCV64_OpLsh16x8(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg16, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1520,7 +1478,7 @@ func rewriteValueRISCV64_OpLsh32x16(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg32, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1545,7 +1503,7 @@ func rewriteValueRISCV64_OpLsh32x32(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg32, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1569,7 +1527,7 @@ func rewriteValueRISCV64_OpLsh32x64(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg32, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v2.AddArg(y) v1.AddArg(v2) v.AddArg2(v0, v1) @@ -1592,7 +1550,7 @@ func rewriteValueRISCV64_OpLsh32x8(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg32, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1617,7 +1575,7 @@ func rewriteValueRISCV64_OpLsh64x16(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1642,7 +1600,7 @@ func rewriteValueRISCV64_OpLsh64x32(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1666,7 +1624,7 @@ func rewriteValueRISCV64_OpLsh64x64(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v2.AddArg(y) v1.AddArg(v2) v.AddArg2(v0, v1) @@ -1689,7 +1647,7 @@ func rewriteValueRISCV64_OpLsh64x8(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1714,7 +1672,7 @@ func rewriteValueRISCV64_OpLsh8x16(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg8, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1739,7 +1697,7 @@ func rewriteValueRISCV64_OpLsh8x32(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg8, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1763,7 +1721,7 @@ func rewriteValueRISCV64_OpLsh8x64(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg8, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v2.AddArg(y) v1.AddArg(v2) v.AddArg2(v0, v1) @@ -1786,7 +1744,7 @@ func rewriteValueRISCV64_OpLsh8x8(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg8, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -1800,12 +1758,9 @@ func rewriteValueRISCV64_OpMod16(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types - // match: (Mod16 x y [false]) + // match: (Mod16 x y) // result: (REMW (SignExt16to32 x) (SignExt16to32 y)) for { - if auxIntToBool(v.AuxInt) != false { - break - } x := v_0 y := v_1 v.reset(OpRISCV64REMW) @@ -1816,7 +1771,6 @@ func rewriteValueRISCV64_OpMod16(v *Value) bool { v.AddArg2(v0, v1) return true } - return false } func rewriteValueRISCV64_OpMod16u(v *Value) bool { v_1 := v.Args[1] @@ -1837,40 +1791,6 @@ func rewriteValueRISCV64_OpMod16u(v *Value) bool { return true } } -func rewriteValueRISCV64_OpMod32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mod32 x y [false]) - // result: (REMW x y) - for { - if auxIntToBool(v.AuxInt) != false { - break - } - x := v_0 - y := v_1 - v.reset(OpRISCV64REMW) - v.AddArg2(x, y) - return true - } - return false -} -func rewriteValueRISCV64_OpMod64(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Mod64 x y [false]) - // result: (REM x y) - for { - if auxIntToBool(v.AuxInt) != false { - break - } - x := v_0 - y := v_1 - v.reset(OpRISCV64REM) - v.AddArg2(x, y) - return true - } - return false -} func rewriteValueRISCV64_OpMod8(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -1919,7 +1839,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { // match: (Move [0] _ _ mem) // result: mem for { - if auxIntToInt64(v.AuxInt) != 0 { + if v.AuxInt != 0 { break } mem := v_2 @@ -1929,7 +1849,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { // match: (Move [1] dst src mem) // result: (MOVBstore dst (MOVBload src mem) mem) for { - if auxIntToInt64(v.AuxInt) != 1 { + if v.AuxInt != 1 { break } dst := v_0 @@ -1944,7 +1864,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { // match: (Move [2] dst src mem) // result: (MOVHstore dst (MOVHload src mem) mem) for { - if auxIntToInt64(v.AuxInt) != 2 { + if v.AuxInt != 2 { break } dst := v_0 @@ -1959,7 +1879,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { // match: (Move [4] dst src mem) // result: (MOVWstore dst (MOVWload src mem) mem) for { - if auxIntToInt64(v.AuxInt) != 4 { + if v.AuxInt != 4 { break } dst := v_0 @@ -1974,7 +1894,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { // match: (Move [8] dst src mem) // result: (MOVDstore dst (MOVDload src mem) mem) for { - if auxIntToInt64(v.AuxInt) != 8 { + if v.AuxInt != 8 { break } dst := v_0 @@ -1988,10 +1908,10 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { } // match: (Move [s] {t} dst src mem) // cond: (s <= 16 || logLargeCopy(v, s)) - // result: (LoweredMove [t.Alignment()] dst src (ADDI <src.Type> [s-moveSize(t.Alignment(), config)] src) mem) + // result: (LoweredMove [t.(*types.Type).Alignment()] dst src (ADDI <src.Type> [s-moveSize(t.(*types.Type).Alignment(), config)] src) mem) for { - s := auxIntToInt64(v.AuxInt) - t := auxToType(v.Aux) + s := v.AuxInt + t := v.Aux dst := v_0 src := v_1 mem := v_2 @@ -1999,9 +1919,9 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { break } v.reset(OpRISCV64LoweredMove) - v.AuxInt = int64ToAuxInt(t.Alignment()) + v.AuxInt = t.(*types.Type).Alignment() v0 := b.NewValue0(v.Pos, OpRISCV64ADDI, src.Type) - v0.AuxInt = int64ToAuxInt(s - moveSize(t.Alignment(), config)) + v0.AuxInt = s - moveSize(t.(*types.Type).Alignment(), config) v0.AddArg(src) v.AddArg4(dst, src, v0, mem) return true @@ -2139,7 +2059,7 @@ func rewriteValueRISCV64_OpNot(v *Value) bool { for { x := v_0 v.reset(OpRISCV64XORI) - v.AuxInt = int64ToAuxInt(1) + v.AuxInt = 1 v.AddArg(x) return true } @@ -2149,16 +2069,15 @@ func rewriteValueRISCV64_OpOffPtr(v *Value) bool { b := v.Block typ := &b.Func.Config.Types // match: (OffPtr [off] ptr:(SP)) - // cond: is32Bit(off) - // result: (MOVaddr [int32(off)] ptr) + // result: (MOVaddr [off] ptr) for { - off := auxIntToInt64(v.AuxInt) + off := v.AuxInt ptr := v_0 - if ptr.Op != OpSP || !(is32Bit(off)) { + if ptr.Op != OpSP { break } v.reset(OpRISCV64MOVaddr) - v.AuxInt = int32ToAuxInt(int32(off)) + v.AuxInt = off v.AddArg(ptr) return true } @@ -2166,24 +2085,24 @@ func rewriteValueRISCV64_OpOffPtr(v *Value) bool { // cond: is32Bit(off) // result: (ADDI [off] ptr) for { - off := auxIntToInt64(v.AuxInt) + off := v.AuxInt ptr := v_0 if !(is32Bit(off)) { break } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(off) + v.AuxInt = off v.AddArg(ptr) return true } // match: (OffPtr [off] ptr) // result: (ADD (MOVDconst [off]) ptr) for { - off := auxIntToInt64(v.AuxInt) + off := v.AuxInt ptr := v_0 v.reset(OpRISCV64ADD) v0 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v0.AuxInt = int64ToAuxInt(off) + v0.AuxInt = off v.AddArg2(v0, ptr) return true } @@ -2196,7 +2115,7 @@ func rewriteValueRISCV64_OpPanicBounds(v *Value) bool { // cond: boundsABI(kind) == 0 // result: (LoweredPanicBoundsA [kind] x y mem) for { - kind := auxIntToInt64(v.AuxInt) + kind := v.AuxInt x := v_0 y := v_1 mem := v_2 @@ -2204,7 +2123,7 @@ func rewriteValueRISCV64_OpPanicBounds(v *Value) bool { break } v.reset(OpRISCV64LoweredPanicBoundsA) - v.AuxInt = int64ToAuxInt(kind) + v.AuxInt = kind v.AddArg3(x, y, mem) return true } @@ -2212,7 +2131,7 @@ func rewriteValueRISCV64_OpPanicBounds(v *Value) bool { // cond: boundsABI(kind) == 1 // result: (LoweredPanicBoundsB [kind] x y mem) for { - kind := auxIntToInt64(v.AuxInt) + kind := v.AuxInt x := v_0 y := v_1 mem := v_2 @@ -2220,7 +2139,7 @@ func rewriteValueRISCV64_OpPanicBounds(v *Value) bool { break } v.reset(OpRISCV64LoweredPanicBoundsB) - v.AuxInt = int64ToAuxInt(kind) + v.AuxInt = kind v.AddArg3(x, y, mem) return true } @@ -2228,7 +2147,7 @@ func rewriteValueRISCV64_OpPanicBounds(v *Value) bool { // cond: boundsABI(kind) == 2 // result: (LoweredPanicBoundsC [kind] x y mem) for { - kind := auxIntToInt64(v.AuxInt) + kind := v.AuxInt x := v_0 y := v_1 mem := v_2 @@ -2236,7 +2155,7 @@ func rewriteValueRISCV64_OpPanicBounds(v *Value) bool { break } v.reset(OpRISCV64LoweredPanicBoundsC) - v.AuxInt = int64ToAuxInt(kind) + v.AuxInt = kind v.AddArg3(x, y, mem) return true } @@ -2246,48 +2165,60 @@ func rewriteValueRISCV64_OpRISCV64ADD(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (ADD (MOVBconst [val]) x) - // result: (ADDI [int64(val)] x) + // cond: is32Bit(val) + // result: (ADDI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVBconst { continue } - val := auxIntToInt8(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (ADD (MOVHconst [val]) x) - // result: (ADDI [int64(val)] x) + // cond: is32Bit(val) + // result: (ADDI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVHconst { continue } - val := auxIntToInt16(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (ADD (MOVWconst [val]) x) - // result: (ADDI [int64(val)] x) + // cond: is32Bit(val) + // result: (ADDI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVWconst { continue } - val := auxIntToInt32(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } @@ -2301,13 +2232,13 @@ func rewriteValueRISCV64_OpRISCV64ADD(v *Value) bool { if v_0.Op != OpRISCV64MOVDconst { continue } - val := auxIntToInt64(v_0.AuxInt) + val := v_0.AuxInt x := v_1 if !(is32Bit(val)) { continue } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(val) + v.AuxInt = val v.AddArg(x) return true } @@ -2318,29 +2249,29 @@ func rewriteValueRISCV64_OpRISCV64ADD(v *Value) bool { func rewriteValueRISCV64_OpRISCV64ADDI(v *Value) bool { v_0 := v.Args[0] // match: (ADDI [c] (MOVaddr [d] {s} x)) - // cond: is32Bit(c+int64(d)) - // result: (MOVaddr [int32(c)+d] {s} x) + // cond: is32Bit(c+d) + // result: (MOVaddr [c+d] {s} x) for { - c := auxIntToInt64(v.AuxInt) + c := v.AuxInt if v_0.Op != OpRISCV64MOVaddr { break } - d := auxIntToInt32(v_0.AuxInt) - s := auxToSym(v_0.Aux) + d := v_0.AuxInt + s := v_0.Aux x := v_0.Args[0] - if !(is32Bit(c + int64(d))) { + if !(is32Bit(c + d)) { break } v.reset(OpRISCV64MOVaddr) - v.AuxInt = int32ToAuxInt(int32(c) + d) - v.Aux = symToAux(s) + v.AuxInt = c + d + v.Aux = s v.AddArg(x) return true } // match: (ADDI [0] x) // result: x for { - if auxIntToInt64(v.AuxInt) != 0 { + if v.AuxInt != 0 { break } x := v_0 @@ -2353,48 +2284,60 @@ func rewriteValueRISCV64_OpRISCV64AND(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (AND (MOVBconst [val]) x) - // result: (ANDI [int64(val)] x) + // cond: is32Bit(val) + // result: (ANDI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVBconst { continue } - val := auxIntToInt8(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ANDI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (AND (MOVHconst [val]) x) - // result: (ANDI [int64(val)] x) + // cond: is32Bit(val) + // result: (ANDI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVHconst { continue } - val := auxIntToInt16(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ANDI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (AND (MOVWconst [val]) x) - // result: (ANDI [int64(val)] x) + // cond: is32Bit(val) + // result: (ANDI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVWconst { continue } - val := auxIntToInt32(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ANDI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } @@ -2408,13 +2351,13 @@ func rewriteValueRISCV64_OpRISCV64AND(v *Value) bool { if v_0.Op != OpRISCV64MOVDconst { continue } - val := auxIntToInt64(v_0.AuxInt) + val := v_0.AuxInt x := v_1 if !(is32Bit(val)) { continue } v.reset(OpRISCV64ANDI) - v.AuxInt = int64ToAuxInt(val) + v.AuxInt = val v.AddArg(x) return true } @@ -2426,45 +2369,45 @@ func rewriteValueRISCV64_OpRISCV64MOVBUload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVBUload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVBUload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVBUload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVBUload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVBUload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVBUload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVBUload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVBUload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -2474,45 +2417,45 @@ func rewriteValueRISCV64_OpRISCV64MOVBload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVBload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVBload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVBload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVBload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVBload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVBload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVBload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVBload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -2523,63 +2466,63 @@ func rewriteValueRISCV64_OpRISCV64MOVBstore(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVBstore [off1] {sym1} (MOVaddr [off2] {sym2} base) val mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVBstore [off1+off2] {mergeSymTyped(sym1,sym2)} base val mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVBstore [off1+off2] {mergeSym(sym1,sym2)} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVBstore) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg3(base, val, mem) return true } // match: (MOVBstore [off1] {sym} (ADDI [off2] base) val mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVBstore [off1+int32(off2)] {sym} base val mem) + // cond: is32Bit(off1+off2) + // result: (MOVBstore [off1+off2] {sym} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVBstore) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg3(base, val, mem) return true } // match: (MOVBstore [off] {sym} ptr (MOVBconst [0]) mem) // result: (MOVBstorezero [off] {sym} ptr mem) for { - off := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off := v.AuxInt + sym := v.Aux ptr := v_0 - if v_1.Op != OpRISCV64MOVBconst || auxIntToInt8(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVBconst || v_1.AuxInt != 0 { break } mem := v_2 v.reset(OpRISCV64MOVBstorezero) - v.AuxInt = int32ToAuxInt(off) - v.Aux = symToAux(sym) + v.AuxInt = off + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -2589,45 +2532,45 @@ func rewriteValueRISCV64_OpRISCV64MOVBstorezero(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVBstorezero [off1] {sym1} (MOVaddr [off2] {sym2} ptr) mem) - // cond: canMergeSym(sym1,sym2) && is32Bit(int64(off1)+int64(off2)) - // result: (MOVBstorezero [off1+off2] {mergeSymTyped(sym1,sym2)} ptr mem) + // cond: canMergeSym(sym1,sym2) && is32Bit(off1+off2) + // result: (MOVBstorezero [off1+off2] {mergeSym(sym1,sym2)} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux ptr := v_0.Args[0] mem := v_1 - if !(canMergeSym(sym1, sym2) && is32Bit(int64(off1)+int64(off2))) { + if !(canMergeSym(sym1, sym2) && is32Bit(off1+off2)) { break } v.reset(OpRISCV64MOVBstorezero) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(ptr, mem) return true } // match: (MOVBstorezero [off1] {sym} (ADDI [off2] ptr) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVBstorezero [off1+int32(off2)] {sym} ptr mem) + // cond: is32Bit(off1+off2) + // result: (MOVBstorezero [off1+off2] {sym} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt ptr := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVBstorezero) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -2641,18 +2584,18 @@ func rewriteValueRISCV64_OpRISCV64MOVDconst(v *Value) bool { // result: (ADD (SLLI <t> [32] (MOVDconst [c>>32+1])) (MOVDconst [int64(int32(c))])) for { t := v.Type - c := auxIntToInt64(v.AuxInt) + c := v.AuxInt if !(!is32Bit(c) && int32(c) < 0) { break } v.reset(OpRISCV64ADD) v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(32) + v0.AuxInt = 32 v1 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v1.AuxInt = int64ToAuxInt(c>>32 + 1) + v1.AuxInt = c>>32 + 1 v0.AddArg(v1) v2 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v2.AuxInt = int64ToAuxInt(int64(int32(c))) + v2.AuxInt = int64(int32(c)) v.AddArg2(v0, v2) return true } @@ -2661,18 +2604,18 @@ func rewriteValueRISCV64_OpRISCV64MOVDconst(v *Value) bool { // result: (ADD (SLLI <t> [32] (MOVDconst [c>>32+0])) (MOVDconst [int64(int32(c))])) for { t := v.Type - c := auxIntToInt64(v.AuxInt) + c := v.AuxInt if !(!is32Bit(c) && int32(c) >= 0) { break } v.reset(OpRISCV64ADD) v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(32) + v0.AuxInt = 32 v1 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v1.AuxInt = int64ToAuxInt(c>>32 + 0) + v1.AuxInt = c>>32 + 0 v0.AddArg(v1) v2 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v2.AuxInt = int64ToAuxInt(int64(int32(c))) + v2.AuxInt = int64(int32(c)) v.AddArg2(v0, v2) return true } @@ -2682,45 +2625,45 @@ func rewriteValueRISCV64_OpRISCV64MOVDload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVDload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVDload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVDload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVDload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVDload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVDload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVDload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVDload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -2731,63 +2674,63 @@ func rewriteValueRISCV64_OpRISCV64MOVDstore(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVDstore [off1] {sym1} (MOVaddr [off2] {sym2} base) val mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVDstore [off1+off2] {mergeSymTyped(sym1,sym2)} base val mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVDstore [off1+off2] {mergeSym(sym1,sym2)} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVDstore) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg3(base, val, mem) return true } // match: (MOVDstore [off1] {sym} (ADDI [off2] base) val mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVDstore [off1+int32(off2)] {sym} base val mem) + // cond: is32Bit(off1+off2) + // result: (MOVDstore [off1+off2] {sym} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVDstore) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg3(base, val, mem) return true } // match: (MOVDstore [off] {sym} ptr (MOVDconst [0]) mem) // result: (MOVDstorezero [off] {sym} ptr mem) for { - off := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off := v.AuxInt + sym := v.Aux ptr := v_0 - if v_1.Op != OpRISCV64MOVDconst || auxIntToInt64(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVDconst || v_1.AuxInt != 0 { break } mem := v_2 v.reset(OpRISCV64MOVDstorezero) - v.AuxInt = int32ToAuxInt(off) - v.Aux = symToAux(sym) + v.AuxInt = off + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -2797,45 +2740,45 @@ func rewriteValueRISCV64_OpRISCV64MOVDstorezero(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVDstorezero [off1] {sym1} (MOVaddr [off2] {sym2} ptr) mem) - // cond: canMergeSym(sym1,sym2) && is32Bit(int64(off1)+int64(off2)) - // result: (MOVDstorezero [off1+off2] {mergeSymTyped(sym1,sym2)} ptr mem) + // cond: canMergeSym(sym1,sym2) && is32Bit(off1+off2) + // result: (MOVDstorezero [off1+off2] {mergeSym(sym1,sym2)} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux ptr := v_0.Args[0] mem := v_1 - if !(canMergeSym(sym1, sym2) && is32Bit(int64(off1)+int64(off2))) { + if !(canMergeSym(sym1, sym2) && is32Bit(off1+off2)) { break } v.reset(OpRISCV64MOVDstorezero) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(ptr, mem) return true } // match: (MOVDstorezero [off1] {sym} (ADDI [off2] ptr) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVDstorezero [off1+int32(off2)] {sym} ptr mem) + // cond: is32Bit(off1+off2) + // result: (MOVDstorezero [off1+off2] {sym} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt ptr := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVDstorezero) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -2845,45 +2788,45 @@ func rewriteValueRISCV64_OpRISCV64MOVHUload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVHUload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVHUload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVHUload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVHUload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVHUload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVHUload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVHUload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVHUload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -2893,45 +2836,45 @@ func rewriteValueRISCV64_OpRISCV64MOVHload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVHload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVHload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVHload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVHload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVHload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVHload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVHload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVHload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -2942,63 +2885,63 @@ func rewriteValueRISCV64_OpRISCV64MOVHstore(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVHstore [off1] {sym1} (MOVaddr [off2] {sym2} base) val mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVHstore [off1+off2] {mergeSymTyped(sym1,sym2)} base val mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVHstore [off1+off2] {mergeSym(sym1,sym2)} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVHstore) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg3(base, val, mem) return true } // match: (MOVHstore [off1] {sym} (ADDI [off2] base) val mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVHstore [off1+int32(off2)] {sym} base val mem) + // cond: is32Bit(off1+off2) + // result: (MOVHstore [off1+off2] {sym} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVHstore) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg3(base, val, mem) return true } // match: (MOVHstore [off] {sym} ptr (MOVHconst [0]) mem) // result: (MOVHstorezero [off] {sym} ptr mem) for { - off := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off := v.AuxInt + sym := v.Aux ptr := v_0 - if v_1.Op != OpRISCV64MOVHconst || auxIntToInt16(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVHconst || v_1.AuxInt != 0 { break } mem := v_2 v.reset(OpRISCV64MOVHstorezero) - v.AuxInt = int32ToAuxInt(off) - v.Aux = symToAux(sym) + v.AuxInt = off + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -3008,45 +2951,45 @@ func rewriteValueRISCV64_OpRISCV64MOVHstorezero(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVHstorezero [off1] {sym1} (MOVaddr [off2] {sym2} ptr) mem) - // cond: canMergeSym(sym1,sym2) && is32Bit(int64(off1)+int64(off2)) - // result: (MOVHstorezero [off1+off2] {mergeSymTyped(sym1,sym2)} ptr mem) + // cond: canMergeSym(sym1,sym2) && is32Bit(off1+off2) + // result: (MOVHstorezero [off1+off2] {mergeSym(sym1,sym2)} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux ptr := v_0.Args[0] mem := v_1 - if !(canMergeSym(sym1, sym2) && is32Bit(int64(off1)+int64(off2))) { + if !(canMergeSym(sym1, sym2) && is32Bit(off1+off2)) { break } v.reset(OpRISCV64MOVHstorezero) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(ptr, mem) return true } // match: (MOVHstorezero [off1] {sym} (ADDI [off2] ptr) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVHstorezero [off1+int32(off2)] {sym} ptr mem) + // cond: is32Bit(off1+off2) + // result: (MOVHstorezero [off1+off2] {sym} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt ptr := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVHstorezero) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -3056,45 +2999,45 @@ func rewriteValueRISCV64_OpRISCV64MOVWUload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVWUload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVWUload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVWUload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVWUload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVWUload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVWUload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVWUload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVWUload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -3104,45 +3047,45 @@ func rewriteValueRISCV64_OpRISCV64MOVWload(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVWload [off1] {sym1} (MOVaddr [off2] {sym2} base) mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVWload [off1+off2] {mergeSymTyped(sym1,sym2)} base mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVWload [off1+off2] {mergeSym(sym1,sym2)} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVWload) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(base, mem) return true } // match: (MOVWload [off1] {sym} (ADDI [off2] base) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVWload [off1+int32(off2)] {sym} base mem) + // cond: is32Bit(off1+off2) + // result: (MOVWload [off1+off2] {sym} base mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVWload) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(base, mem) return true } @@ -3153,63 +3096,63 @@ func rewriteValueRISCV64_OpRISCV64MOVWstore(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVWstore [off1] {sym1} (MOVaddr [off2] {sym2} base) val mem) - // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2) - // result: (MOVWstore [off1+off2] {mergeSymTyped(sym1,sym2)} base val mem) + // cond: is32Bit(off1+off2) && canMergeSym(sym1, sym2) + // result: (MOVWstore [off1+off2] {mergeSym(sym1,sym2)} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) { + if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) { break } v.reset(OpRISCV64MOVWstore) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg3(base, val, mem) return true } // match: (MOVWstore [off1] {sym} (ADDI [off2] base) val mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVWstore [off1+int32(off2)] {sym} base val mem) + // cond: is32Bit(off1+off2) + // result: (MOVWstore [off1+off2] {sym} base val mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt base := v_0.Args[0] val := v_1 mem := v_2 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVWstore) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg3(base, val, mem) return true } // match: (MOVWstore [off] {sym} ptr (MOVWconst [0]) mem) // result: (MOVWstorezero [off] {sym} ptr mem) for { - off := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off := v.AuxInt + sym := v.Aux ptr := v_0 - if v_1.Op != OpRISCV64MOVWconst || auxIntToInt32(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVWconst || v_1.AuxInt != 0 { break } mem := v_2 v.reset(OpRISCV64MOVWstorezero) - v.AuxInt = int32ToAuxInt(off) - v.Aux = symToAux(sym) + v.AuxInt = off + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -3219,45 +3162,45 @@ func rewriteValueRISCV64_OpRISCV64MOVWstorezero(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (MOVWstorezero [off1] {sym1} (MOVaddr [off2] {sym2} ptr) mem) - // cond: canMergeSym(sym1,sym2) && is32Bit(int64(off1)+int64(off2)) - // result: (MOVWstorezero [off1+off2] {mergeSymTyped(sym1,sym2)} ptr mem) + // cond: canMergeSym(sym1,sym2) && is32Bit(off1+off2) + // result: (MOVWstorezero [off1+off2] {mergeSym(sym1,sym2)} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym1 := auxToSym(v.Aux) + off1 := v.AuxInt + sym1 := v.Aux if v_0.Op != OpRISCV64MOVaddr { break } - off2 := auxIntToInt32(v_0.AuxInt) - sym2 := auxToSym(v_0.Aux) + off2 := v_0.AuxInt + sym2 := v_0.Aux ptr := v_0.Args[0] mem := v_1 - if !(canMergeSym(sym1, sym2) && is32Bit(int64(off1)+int64(off2))) { + if !(canMergeSym(sym1, sym2) && is32Bit(off1+off2)) { break } v.reset(OpRISCV64MOVWstorezero) - v.AuxInt = int32ToAuxInt(off1 + off2) - v.Aux = symToAux(mergeSymTyped(sym1, sym2)) + v.AuxInt = off1 + off2 + v.Aux = mergeSym(sym1, sym2) v.AddArg2(ptr, mem) return true } // match: (MOVWstorezero [off1] {sym} (ADDI [off2] ptr) mem) - // cond: is32Bit(int64(off1)+off2) - // result: (MOVWstorezero [off1+int32(off2)] {sym} ptr mem) + // cond: is32Bit(off1+off2) + // result: (MOVWstorezero [off1+off2] {sym} ptr mem) for { - off1 := auxIntToInt32(v.AuxInt) - sym := auxToSym(v.Aux) + off1 := v.AuxInt + sym := v.Aux if v_0.Op != OpRISCV64ADDI { break } - off2 := auxIntToInt64(v_0.AuxInt) + off2 := v_0.AuxInt ptr := v_0.Args[0] mem := v_1 - if !(is32Bit(int64(off1) + off2)) { + if !(is32Bit(off1 + off2)) { break } v.reset(OpRISCV64MOVWstorezero) - v.AuxInt = int32ToAuxInt(off1 + int32(off2)) - v.Aux = symToAux(sym) + v.AuxInt = off1 + off2 + v.Aux = sym v.AddArg2(ptr, mem) return true } @@ -3267,48 +3210,60 @@ func rewriteValueRISCV64_OpRISCV64OR(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (OR (MOVBconst [val]) x) - // result: (ORI [int64(val)] x) + // cond: is32Bit(val) + // result: (ORI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVBconst { continue } - val := auxIntToInt8(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ORI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (OR (MOVHconst [val]) x) - // result: (ORI [int64(val)] x) + // cond: is32Bit(val) + // result: (ORI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVHconst { continue } - val := auxIntToInt16(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ORI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (OR (MOVWconst [val]) x) - // result: (ORI [int64(val)] x) + // cond: is32Bit(val) + // result: (ORI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVWconst { continue } - val := auxIntToInt32(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64ORI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } @@ -3322,13 +3277,13 @@ func rewriteValueRISCV64_OpRISCV64OR(v *Value) bool { if v_0.Op != OpRISCV64MOVDconst { continue } - val := auxIntToInt64(v_0.AuxInt) + val := v_0.AuxInt x := v_1 if !(is32Bit(val)) { continue } v.reset(OpRISCV64ORI) - v.AuxInt = int64ToAuxInt(val) + v.AuxInt = val v.AddArg(x) return true } @@ -3340,54 +3295,54 @@ func rewriteValueRISCV64_OpRISCV64SLL(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SLL x (MOVBconst [val])) - // result: (SLLI [int64(val&63)] x) + // result: (SLLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVBconst { break } - val := auxIntToInt8(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SLLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SLL x (MOVHconst [val])) - // result: (SLLI [int64(val&63)] x) + // result: (SLLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVHconst { break } - val := auxIntToInt16(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SLLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SLL x (MOVWconst [val])) - // result: (SLLI [int64(val&63)] x) + // result: (SLLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVWconst { break } - val := auxIntToInt32(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SLLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SLL x (MOVDconst [val])) - // result: (SLLI [int64(val&63)] x) + // result: (SLLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVDconst { break } - val := auxIntToInt64(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SLLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } @@ -3397,54 +3352,54 @@ func rewriteValueRISCV64_OpRISCV64SRA(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SRA x (MOVBconst [val])) - // result: (SRAI [int64(val&63)] x) + // result: (SRAI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVBconst { break } - val := auxIntToInt8(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SRA x (MOVHconst [val])) - // result: (SRAI [int64(val&63)] x) + // result: (SRAI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVHconst { break } - val := auxIntToInt16(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SRA x (MOVWconst [val])) - // result: (SRAI [int64(val&63)] x) + // result: (SRAI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVWconst { break } - val := auxIntToInt32(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SRA x (MOVDconst [val])) - // result: (SRAI [int64(val&63)] x) + // result: (SRAI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVDconst { break } - val := auxIntToInt64(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } @@ -3454,54 +3409,54 @@ func rewriteValueRISCV64_OpRISCV64SRL(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SRL x (MOVBconst [val])) - // result: (SRLI [int64(val&63)] x) + // result: (SRLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVBconst { break } - val := auxIntToInt8(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SRL x (MOVHconst [val])) - // result: (SRLI [int64(val&63)] x) + // result: (SRLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVHconst { break } - val := auxIntToInt16(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SRL x (MOVWconst [val])) - // result: (SRLI [int64(val&63)] x) + // result: (SRLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVWconst { break } - val := auxIntToInt32(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } // match: (SRL x (MOVDconst [val])) - // result: (SRLI [int64(val&63)] x) + // result: (SRLI [val&63] x) for { x := v_0 if v_1.Op != OpRISCV64MOVDconst { break } - val := auxIntToInt64(v_1.AuxInt) + val := v_1.AuxInt v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(int64(val & 63)) + v.AuxInt = val & 63 v.AddArg(x) return true } @@ -3511,45 +3466,53 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SUB x (MOVBconst [val])) - // result: (ADDI [-int64(val)] x) + // cond: is32Bit(-val) + // result: (ADDI [-val] x) for { x := v_0 if v_1.Op != OpRISCV64MOVBconst { break } - val := auxIntToInt8(v_1.AuxInt) + val := v_1.AuxInt + if !(is32Bit(-val)) { + break + } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(-int64(val)) + v.AuxInt = -val v.AddArg(x) return true } // match: (SUB x (MOVHconst [val])) - // result: (ADDI [-int64(val)] x) + // cond: is32Bit(-val) + // result: (ADDI [-val] x) for { x := v_0 if v_1.Op != OpRISCV64MOVHconst { break } - val := auxIntToInt16(v_1.AuxInt) + val := v_1.AuxInt + if !(is32Bit(-val)) { + break + } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(-int64(val)) + v.AuxInt = -val v.AddArg(x) return true } // match: (SUB x (MOVWconst [val])) - // cond: is32Bit(-int64(val)) - // result: (ADDI [-int64(val)] x) + // cond: is32Bit(-val) + // result: (ADDI [-val] x) for { x := v_0 if v_1.Op != OpRISCV64MOVWconst { break } - val := auxIntToInt32(v_1.AuxInt) - if !(is32Bit(-int64(val))) { + val := v_1.AuxInt + if !(is32Bit(-val)) { break } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(-int64(val)) + v.AuxInt = -val v.AddArg(x) return true } @@ -3561,12 +3524,12 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { if v_1.Op != OpRISCV64MOVDconst { break } - val := auxIntToInt64(v_1.AuxInt) + val := v_1.AuxInt if !(is32Bit(-val)) { break } v.reset(OpRISCV64ADDI) - v.AuxInt = int64ToAuxInt(-val) + v.AuxInt = -val v.AddArg(x) return true } @@ -3574,7 +3537,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // result: x for { x := v_0 - if v_1.Op != OpRISCV64MOVBconst || auxIntToInt8(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVBconst || v_1.AuxInt != 0 { break } v.copyOf(x) @@ -3584,7 +3547,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // result: x for { x := v_0 - if v_1.Op != OpRISCV64MOVHconst || auxIntToInt16(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVHconst || v_1.AuxInt != 0 { break } v.copyOf(x) @@ -3594,7 +3557,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // result: x for { x := v_0 - if v_1.Op != OpRISCV64MOVWconst || auxIntToInt32(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVWconst || v_1.AuxInt != 0 { break } v.copyOf(x) @@ -3604,7 +3567,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // result: x for { x := v_0 - if v_1.Op != OpRISCV64MOVDconst || auxIntToInt64(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVDconst || v_1.AuxInt != 0 { break } v.copyOf(x) @@ -3613,7 +3576,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // match: (SUB (MOVBconst [0]) x) // result: (NEG x) for { - if v_0.Op != OpRISCV64MOVBconst || auxIntToInt8(v_0.AuxInt) != 0 { + if v_0.Op != OpRISCV64MOVBconst || v_0.AuxInt != 0 { break } x := v_1 @@ -3624,7 +3587,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // match: (SUB (MOVHconst [0]) x) // result: (NEG x) for { - if v_0.Op != OpRISCV64MOVHconst || auxIntToInt16(v_0.AuxInt) != 0 { + if v_0.Op != OpRISCV64MOVHconst || v_0.AuxInt != 0 { break } x := v_1 @@ -3635,7 +3598,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // match: (SUB (MOVWconst [0]) x) // result: (NEG x) for { - if v_0.Op != OpRISCV64MOVWconst || auxIntToInt32(v_0.AuxInt) != 0 { + if v_0.Op != OpRISCV64MOVWconst || v_0.AuxInt != 0 { break } x := v_1 @@ -3646,7 +3609,7 @@ func rewriteValueRISCV64_OpRISCV64SUB(v *Value) bool { // match: (SUB (MOVDconst [0]) x) // result: (NEG x) for { - if v_0.Op != OpRISCV64MOVDconst || auxIntToInt64(v_0.AuxInt) != 0 { + if v_0.Op != OpRISCV64MOVDconst || v_0.AuxInt != 0 { break } x := v_1 @@ -3663,18 +3626,18 @@ func rewriteValueRISCV64_OpRISCV64SUBW(v *Value) bool { // result: (ADDIW [0] x) for { x := v_0 - if v_1.Op != OpRISCV64MOVWconst || auxIntToInt32(v_1.AuxInt) != 0 { + if v_1.Op != OpRISCV64MOVWconst || v_1.AuxInt != 0 { break } v.reset(OpRISCV64ADDIW) - v.AuxInt = int64ToAuxInt(0) + v.AuxInt = 0 v.AddArg(x) return true } // match: (SUBW (MOVDconst [0]) x) // result: (NEGW x) for { - if v_0.Op != OpRISCV64MOVDconst || auxIntToInt64(v_0.AuxInt) != 0 { + if v_0.Op != OpRISCV64MOVDconst || v_0.AuxInt != 0 { break } x := v_1 @@ -3688,48 +3651,60 @@ func rewriteValueRISCV64_OpRISCV64XOR(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (XOR (MOVBconst [val]) x) - // result: (XORI [int64(val)] x) + // cond: is32Bit(val) + // result: (XORI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVBconst { continue } - val := auxIntToInt8(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64XORI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (XOR (MOVHconst [val]) x) - // result: (XORI [int64(val)] x) + // cond: is32Bit(val) + // result: (XORI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVHconst { continue } - val := auxIntToInt16(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64XORI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } break } // match: (XOR (MOVWconst [val]) x) - // result: (XORI [int64(val)] x) + // cond: is32Bit(val) + // result: (XORI [val] x) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { if v_0.Op != OpRISCV64MOVWconst { continue } - val := auxIntToInt32(v_0.AuxInt) + val := v_0.AuxInt x := v_1 + if !(is32Bit(val)) { + continue + } v.reset(OpRISCV64XORI) - v.AuxInt = int64ToAuxInt(int64(val)) + v.AuxInt = val v.AddArg(x) return true } @@ -3743,13 +3718,13 @@ func rewriteValueRISCV64_OpRISCV64XOR(v *Value) bool { if v_0.Op != OpRISCV64MOVDconst { continue } - val := auxIntToInt64(v_0.AuxInt) + val := v_0.AuxInt x := v_1 if !(is32Bit(val)) { continue } v.reset(OpRISCV64XORI) - v.AuxInt = int64ToAuxInt(val) + v.AuxInt = val v.AddArg(x) return true } @@ -3770,15 +3745,15 @@ func rewriteValueRISCV64_OpRotateLeft16(v *Value) bool { if v_1.Op != OpRISCV64MOVHconst { break } - c := auxIntToInt16(v_1.AuxInt) + c := v_1.AuxInt v.reset(OpOr16) v0 := b.NewValue0(v.Pos, OpLsh16x64, t) v1 := b.NewValue0(v.Pos, OpRISCV64MOVHconst, typ.UInt16) - v1.AuxInt = int16ToAuxInt(c & 15) + v1.AuxInt = c & 15 v0.AddArg2(x, v1) v2 := b.NewValue0(v.Pos, OpRsh16Ux64, t) v3 := b.NewValue0(v.Pos, OpRISCV64MOVHconst, typ.UInt16) - v3.AuxInt = int16ToAuxInt(-c & 15) + v3.AuxInt = -c & 15 v2.AddArg2(x, v3) v.AddArg2(v0, v2) return true @@ -3798,15 +3773,15 @@ func rewriteValueRISCV64_OpRotateLeft32(v *Value) bool { if v_1.Op != OpRISCV64MOVWconst { break } - c := auxIntToInt32(v_1.AuxInt) + c := v_1.AuxInt v.reset(OpOr32) v0 := b.NewValue0(v.Pos, OpLsh32x64, t) v1 := b.NewValue0(v.Pos, OpRISCV64MOVWconst, typ.UInt32) - v1.AuxInt = int32ToAuxInt(c & 31) + v1.AuxInt = c & 31 v0.AddArg2(x, v1) v2 := b.NewValue0(v.Pos, OpRsh32Ux64, t) v3 := b.NewValue0(v.Pos, OpRISCV64MOVWconst, typ.UInt32) - v3.AuxInt = int32ToAuxInt(-c & 31) + v3.AuxInt = -c & 31 v2.AddArg2(x, v3) v.AddArg2(v0, v2) return true @@ -3826,15 +3801,15 @@ func rewriteValueRISCV64_OpRotateLeft64(v *Value) bool { if v_1.Op != OpRISCV64MOVDconst { break } - c := auxIntToInt64(v_1.AuxInt) + c := v_1.AuxInt v.reset(OpOr64) v0 := b.NewValue0(v.Pos, OpLsh64x64, t) v1 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v1.AuxInt = int64ToAuxInt(c & 63) + v1.AuxInt = c & 63 v0.AddArg2(x, v1) v2 := b.NewValue0(v.Pos, OpRsh64Ux64, t) v3 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v3.AuxInt = int64ToAuxInt(-c & 63) + v3.AuxInt = -c & 63 v2.AddArg2(x, v3) v.AddArg2(v0, v2) return true @@ -3854,15 +3829,15 @@ func rewriteValueRISCV64_OpRotateLeft8(v *Value) bool { if v_1.Op != OpRISCV64MOVBconst { break } - c := auxIntToInt8(v_1.AuxInt) + c := v_1.AuxInt v.reset(OpOr8) v0 := b.NewValue0(v.Pos, OpLsh8x64, t) v1 := b.NewValue0(v.Pos, OpRISCV64MOVBconst, typ.UInt8) - v1.AuxInt = int8ToAuxInt(c & 7) + v1.AuxInt = c & 7 v0.AddArg2(x, v1) v2 := b.NewValue0(v.Pos, OpRsh8Ux64, t) v3 := b.NewValue0(v.Pos, OpRISCV64MOVBconst, typ.UInt8) - v3.AuxInt = int8ToAuxInt(-c & 7) + v3.AuxInt = -c & 7 v2.AddArg2(x, v3) v.AddArg2(v0, v2) return true @@ -3887,7 +3862,7 @@ func rewriteValueRISCV64_OpRsh16Ux16(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg16, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -3914,7 +3889,7 @@ func rewriteValueRISCV64_OpRsh16Ux32(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg16, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -3941,7 +3916,7 @@ func rewriteValueRISCV64_OpRsh16Ux64(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg16, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v3.AddArg(y) v2.AddArg(v3) v.AddArg2(v0, v2) @@ -3966,7 +3941,7 @@ func rewriteValueRISCV64_OpRsh16Ux8(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg16, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -3992,9 +3967,9 @@ func rewriteValueRISCV64_OpRsh16x16(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4021,9 +3996,9 @@ func rewriteValueRISCV64_OpRsh16x32(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4050,9 +4025,9 @@ func rewriteValueRISCV64_OpRsh16x64(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v3.AddArg(y) v2.AddArg(v3) v1.AddArg2(y, v2) @@ -4077,9 +4052,9 @@ func rewriteValueRISCV64_OpRsh16x8(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4107,7 +4082,7 @@ func rewriteValueRISCV64_OpRsh32Ux16(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg32, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4134,7 +4109,7 @@ func rewriteValueRISCV64_OpRsh32Ux32(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg32, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4161,7 +4136,7 @@ func rewriteValueRISCV64_OpRsh32Ux64(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg32, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v3.AddArg(y) v2.AddArg(v3) v.AddArg2(v0, v2) @@ -4186,7 +4161,7 @@ func rewriteValueRISCV64_OpRsh32Ux8(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg32, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4212,9 +4187,9 @@ func rewriteValueRISCV64_OpRsh32x16(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4241,9 +4216,9 @@ func rewriteValueRISCV64_OpRsh32x32(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4270,9 +4245,9 @@ func rewriteValueRISCV64_OpRsh32x64(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v3.AddArg(y) v2.AddArg(v3) v1.AddArg2(y, v2) @@ -4297,9 +4272,9 @@ func rewriteValueRISCV64_OpRsh32x8(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4325,7 +4300,7 @@ func rewriteValueRISCV64_OpRsh64Ux16(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -4350,7 +4325,7 @@ func rewriteValueRISCV64_OpRsh64Ux32(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -4374,7 +4349,7 @@ func rewriteValueRISCV64_OpRsh64Ux64(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v2.AddArg(y) v1.AddArg(v2) v.AddArg2(v0, v1) @@ -4397,7 +4372,7 @@ func rewriteValueRISCV64_OpRsh64Ux8(v *Value) bool { v0.AddArg2(x, y) v1 := b.NewValue0(v.Pos, OpNeg64, t) v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -4421,9 +4396,9 @@ func rewriteValueRISCV64_OpRsh64x16(v *Value) bool { v.Type = t v0 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v1 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v1.AuxInt = int64ToAuxInt(-1) + v1.AuxInt = -1 v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -4448,9 +4423,9 @@ func rewriteValueRISCV64_OpRsh64x32(v *Value) bool { v.Type = t v0 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v1 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v1.AuxInt = int64ToAuxInt(-1) + v1.AuxInt = -1 v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -4474,9 +4449,9 @@ func rewriteValueRISCV64_OpRsh64x64(v *Value) bool { v.Type = t v0 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v1 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v1.AuxInt = int64ToAuxInt(-1) + v1.AuxInt = -1 v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v2.AddArg(y) v1.AddArg(v2) v0.AddArg2(y, v1) @@ -4499,9 +4474,9 @@ func rewriteValueRISCV64_OpRsh64x8(v *Value) bool { v.Type = t v0 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v1 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v1.AuxInt = int64ToAuxInt(-1) + v1.AuxInt = -1 v2 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v2.AuxInt = int64ToAuxInt(64) + v2.AuxInt = 64 v3 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v3.AddArg(y) v2.AddArg(v3) @@ -4529,7 +4504,7 @@ func rewriteValueRISCV64_OpRsh8Ux16(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg8, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4556,7 +4531,7 @@ func rewriteValueRISCV64_OpRsh8Ux32(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg8, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4583,7 +4558,7 @@ func rewriteValueRISCV64_OpRsh8Ux64(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg8, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v3.AddArg(y) v2.AddArg(v3) v.AddArg2(v0, v2) @@ -4608,7 +4583,7 @@ func rewriteValueRISCV64_OpRsh8Ux8(v *Value) bool { v0.AddArg2(v1, y) v2 := b.NewValue0(v.Pos, OpNeg8, t) v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, t) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4634,9 +4609,9 @@ func rewriteValueRISCV64_OpRsh8x16(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt16to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4663,9 +4638,9 @@ func rewriteValueRISCV64_OpRsh8x32(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt32to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4692,9 +4667,9 @@ func rewriteValueRISCV64_OpRsh8x64(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v3.AddArg(y) v2.AddArg(v3) v1.AddArg2(y, v2) @@ -4719,9 +4694,9 @@ func rewriteValueRISCV64_OpRsh8x8(v *Value) bool { v0.AddArg(x) v1 := b.NewValue0(v.Pos, OpRISCV64OR, y.Type) v2 := b.NewValue0(v.Pos, OpRISCV64ADDI, y.Type) - v2.AuxInt = int64ToAuxInt(-1) + v2.AuxInt = -1 v3 := b.NewValue0(v.Pos, OpRISCV64SLTIU, y.Type) - v3.AuxInt = int64ToAuxInt(64) + v3.AuxInt = 64 v4 := b.NewValue0(v.Pos, OpZeroExt8to64, typ.UInt64) v4.AddArg(y) v3.AddArg(v4) @@ -4740,9 +4715,9 @@ func rewriteValueRISCV64_OpSignExt16to32(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(48) + v.AuxInt = 48 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(48) + v0.AuxInt = 48 v0.AddArg(x) v.AddArg(v0) return true @@ -4757,9 +4732,9 @@ func rewriteValueRISCV64_OpSignExt16to64(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(48) + v.AuxInt = 48 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(48) + v0.AuxInt = 48 v0.AddArg(x) v.AddArg(v0) return true @@ -4772,7 +4747,7 @@ func rewriteValueRISCV64_OpSignExt32to64(v *Value) bool { for { x := v_0 v.reset(OpRISCV64ADDIW) - v.AuxInt = int64ToAuxInt(0) + v.AuxInt = 0 v.AddArg(x) return true } @@ -4786,9 +4761,9 @@ func rewriteValueRISCV64_OpSignExt8to16(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(56) + v.AuxInt = 56 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(56) + v0.AuxInt = 56 v0.AddArg(x) v.AddArg(v0) return true @@ -4803,9 +4778,9 @@ func rewriteValueRISCV64_OpSignExt8to32(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(56) + v.AuxInt = 56 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(56) + v0.AuxInt = 56 v0.AddArg(x) v.AddArg(v0) return true @@ -4820,9 +4795,9 @@ func rewriteValueRISCV64_OpSignExt8to64(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRAI) - v.AuxInt = int64ToAuxInt(56) + v.AuxInt = 56 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(56) + v0.AuxInt = 56 v0.AddArg(x) v.AddArg(v0) return true @@ -4838,9 +4813,9 @@ func rewriteValueRISCV64_OpSlicemask(v *Value) bool { x := v_0 v.reset(OpRISCV64NOT) v0 := b.NewValue0(v.Pos, OpRISCV64SRAI, t) - v0.AuxInt = int64ToAuxInt(63) + v0.AuxInt = 63 v1 := b.NewValue0(v.Pos, OpRISCV64ADDI, t) - v1.AuxInt = int64ToAuxInt(-1) + v1.AuxInt = -1 v1.AddArg(x) v0.AddArg(v1) v.AddArg(v0) @@ -4852,14 +4827,14 @@ func rewriteValueRISCV64_OpStore(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (Store {t} ptr val mem) - // cond: t.Size() == 1 + // cond: t.(*types.Type).Size() == 1 // result: (MOVBstore ptr val mem) for { - t := auxToType(v.Aux) + t := v.Aux ptr := v_0 val := v_1 mem := v_2 - if !(t.Size() == 1) { + if !(t.(*types.Type).Size() == 1) { break } v.reset(OpRISCV64MOVBstore) @@ -4867,14 +4842,14 @@ func rewriteValueRISCV64_OpStore(v *Value) bool { return true } // match: (Store {t} ptr val mem) - // cond: t.Size() == 2 + // cond: t.(*types.Type).Size() == 2 // result: (MOVHstore ptr val mem) for { - t := auxToType(v.Aux) + t := v.Aux ptr := v_0 val := v_1 mem := v_2 - if !(t.Size() == 2) { + if !(t.(*types.Type).Size() == 2) { break } v.reset(OpRISCV64MOVHstore) @@ -4882,14 +4857,14 @@ func rewriteValueRISCV64_OpStore(v *Value) bool { return true } // match: (Store {t} ptr val mem) - // cond: t.Size() == 4 && !is32BitFloat(val.Type) + // cond: t.(*types.Type).Size() == 4 && !is32BitFloat(val.Type) // result: (MOVWstore ptr val mem) for { - t := auxToType(v.Aux) + t := v.Aux ptr := v_0 val := v_1 mem := v_2 - if !(t.Size() == 4 && !is32BitFloat(val.Type)) { + if !(t.(*types.Type).Size() == 4 && !is32BitFloat(val.Type)) { break } v.reset(OpRISCV64MOVWstore) @@ -4897,14 +4872,14 @@ func rewriteValueRISCV64_OpStore(v *Value) bool { return true } // match: (Store {t} ptr val mem) - // cond: t.Size() == 8 && !is64BitFloat(val.Type) + // cond: t.(*types.Type).Size() == 8 && !is64BitFloat(val.Type) // result: (MOVDstore ptr val mem) for { - t := auxToType(v.Aux) + t := v.Aux ptr := v_0 val := v_1 mem := v_2 - if !(t.Size() == 8 && !is64BitFloat(val.Type)) { + if !(t.(*types.Type).Size() == 8 && !is64BitFloat(val.Type)) { break } v.reset(OpRISCV64MOVDstore) @@ -4912,14 +4887,14 @@ func rewriteValueRISCV64_OpStore(v *Value) bool { return true } // match: (Store {t} ptr val mem) - // cond: t.Size() == 4 && is32BitFloat(val.Type) + // cond: t.(*types.Type).Size() == 4 && is32BitFloat(val.Type) // result: (FMOVWstore ptr val mem) for { - t := auxToType(v.Aux) + t := v.Aux ptr := v_0 val := v_1 mem := v_2 - if !(t.Size() == 4 && is32BitFloat(val.Type)) { + if !(t.(*types.Type).Size() == 4 && is32BitFloat(val.Type)) { break } v.reset(OpRISCV64FMOVWstore) @@ -4927,14 +4902,14 @@ func rewriteValueRISCV64_OpStore(v *Value) bool { return true } // match: (Store {t} ptr val mem) - // cond: t.Size() == 8 && is64BitFloat(val.Type) + // cond: t.(*types.Type).Size() == 8 && is64BitFloat(val.Type) // result: (FMOVDstore ptr val mem) for { - t := auxToType(v.Aux) + t := v.Aux ptr := v_0 val := v_1 mem := v_2 - if !(t.Size() == 8 && is64BitFloat(val.Type)) { + if !(t.(*types.Type).Size() == 8 && is64BitFloat(val.Type)) { break } v.reset(OpRISCV64FMOVDstore) @@ -4952,7 +4927,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { // match: (Zero [0] _ mem) // result: mem for { - if auxIntToInt64(v.AuxInt) != 0 { + if v.AuxInt != 0 { break } mem := v_1 @@ -4962,7 +4937,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { // match: (Zero [1] ptr mem) // result: (MOVBstore ptr (MOVBconst) mem) for { - if auxIntToInt64(v.AuxInt) != 1 { + if v.AuxInt != 1 { break } ptr := v_0 @@ -4975,7 +4950,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { // match: (Zero [2] ptr mem) // result: (MOVHstore ptr (MOVHconst) mem) for { - if auxIntToInt64(v.AuxInt) != 2 { + if v.AuxInt != 2 { break } ptr := v_0 @@ -4988,7 +4963,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { // match: (Zero [4] ptr mem) // result: (MOVWstore ptr (MOVWconst) mem) for { - if auxIntToInt64(v.AuxInt) != 4 { + if v.AuxInt != 4 { break } ptr := v_0 @@ -5001,7 +4976,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { // match: (Zero [8] ptr mem) // result: (MOVDstore ptr (MOVDconst) mem) for { - if auxIntToInt64(v.AuxInt) != 8 { + if v.AuxInt != 8 { break } ptr := v_0 @@ -5012,17 +4987,17 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { return true } // match: (Zero [s] {t} ptr mem) - // result: (LoweredZero [t.Alignment()] ptr (ADD <ptr.Type> ptr (MOVDconst [s-moveSize(t.Alignment(), config)])) mem) + // result: (LoweredZero [t.(*types.Type).Alignment()] ptr (ADD <ptr.Type> ptr (MOVDconst [s-moveSize(t.(*types.Type).Alignment(), config)])) mem) for { - s := auxIntToInt64(v.AuxInt) - t := auxToType(v.Aux) + s := v.AuxInt + t := v.Aux ptr := v_0 mem := v_1 v.reset(OpRISCV64LoweredZero) - v.AuxInt = int64ToAuxInt(t.Alignment()) + v.AuxInt = t.(*types.Type).Alignment() v0 := b.NewValue0(v.Pos, OpRISCV64ADD, ptr.Type) v1 := b.NewValue0(v.Pos, OpRISCV64MOVDconst, typ.UInt64) - v1.AuxInt = int64ToAuxInt(s - moveSize(t.Alignment(), config)) + v1.AuxInt = s - moveSize(t.(*types.Type).Alignment(), config) v0.AddArg2(ptr, v1) v.AddArg3(ptr, v0, mem) return true @@ -5037,9 +5012,9 @@ func rewriteValueRISCV64_OpZeroExt16to32(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(48) + v.AuxInt = 48 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(48) + v0.AuxInt = 48 v0.AddArg(x) v.AddArg(v0) return true @@ -5054,9 +5029,9 @@ func rewriteValueRISCV64_OpZeroExt16to64(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(48) + v.AuxInt = 48 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(48) + v0.AuxInt = 48 v0.AddArg(x) v.AddArg(v0) return true @@ -5071,9 +5046,9 @@ func rewriteValueRISCV64_OpZeroExt32to64(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(32) + v.AuxInt = 32 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(32) + v0.AuxInt = 32 v0.AddArg(x) v.AddArg(v0) return true @@ -5088,9 +5063,9 @@ func rewriteValueRISCV64_OpZeroExt8to16(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(56) + v.AuxInt = 56 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(56) + v0.AuxInt = 56 v0.AddArg(x) v.AddArg(v0) return true @@ -5105,9 +5080,9 @@ func rewriteValueRISCV64_OpZeroExt8to32(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(56) + v.AuxInt = 56 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(56) + v0.AuxInt = 56 v0.AddArg(x) v.AddArg(v0) return true @@ -5122,9 +5097,9 @@ func rewriteValueRISCV64_OpZeroExt8to64(v *Value) bool { t := v.Type x := v_0 v.reset(OpRISCV64SRLI) - v.AuxInt = int64ToAuxInt(56) + v.AuxInt = 56 v0 := b.NewValue0(v.Pos, OpRISCV64SLLI, t) - v0.AuxInt = int64ToAuxInt(56) + v0.AuxInt = 56 v0.AddArg(x) v.AddArg(v0) return true |