aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewriteRISCV64.go
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2020-01-23 14:28:04 -0800
committerJosh Bleecher Snyder <josharian@gmail.com>2020-02-25 15:59:16 +0000
commit2ed96d0958a2efb0bb7a0b010fc152b557ce9844 (patch)
tree469ea2c0b314986ebf273f14683b02dad466e26d /src/cmd/compile/internal/ssa/rewriteRISCV64.go
parenta9f1ea4a83da919acc254107661b99d0d6f8c7ec (diff)
downloadgo-2ed96d0958a2efb0bb7a0b010fc152b557ce9844.tar.gz
go-2ed96d0958a2efb0bb7a0b010fc152b557ce9844.zip
cmd/compile: use ellipses in RISCV64 rules
Also, explicitly zero AuxInt in some ops (like Div), to make it clear why they do not use an ellipsis. Passes toolstash-check -all. Change-Id: Iefd8891fca5d7be8aa1bb91eb1fe2c99c8bf9c88 Reviewed-on: https://go-review.googlesource.com/c/go/+/217011 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteRISCV64.go')
-rw-r--r--src/cmd/compile/internal/ssa/rewriteRISCV64.go1440
1 files changed, 182 insertions, 1258 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
index d7b92c51b67..fd3e62b819f 100644
--- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go
+++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
@@ -9,35 +9,49 @@ import "cmd/compile/internal/types"
func rewriteValueRISCV64(v *Value) bool {
switch v.Op {
case OpAdd16:
- return rewriteValueRISCV64_OpAdd16(v)
+ v.Op = OpRISCV64ADD
+ return true
case OpAdd32:
- return rewriteValueRISCV64_OpAdd32(v)
+ v.Op = OpRISCV64ADD
+ return true
case OpAdd32F:
- return rewriteValueRISCV64_OpAdd32F(v)
+ v.Op = OpRISCV64FADDS
+ return true
case OpAdd64:
- return rewriteValueRISCV64_OpAdd64(v)
+ v.Op = OpRISCV64ADD
+ return true
case OpAdd64F:
- return rewriteValueRISCV64_OpAdd64F(v)
+ v.Op = OpRISCV64FADDD
+ return true
case OpAdd8:
- return rewriteValueRISCV64_OpAdd8(v)
+ v.Op = OpRISCV64ADD
+ return true
case OpAddPtr:
- return rewriteValueRISCV64_OpAddPtr(v)
+ v.Op = OpRISCV64ADD
+ return true
case OpAddr:
- return rewriteValueRISCV64_OpAddr(v)
+ v.Op = OpRISCV64MOVaddr
+ return true
case OpAnd16:
- return rewriteValueRISCV64_OpAnd16(v)
+ v.Op = OpRISCV64AND
+ return true
case OpAnd32:
- return rewriteValueRISCV64_OpAnd32(v)
+ v.Op = OpRISCV64AND
+ return true
case OpAnd64:
- return rewriteValueRISCV64_OpAnd64(v)
+ v.Op = OpRISCV64AND
+ return true
case OpAnd8:
- return rewriteValueRISCV64_OpAnd8(v)
+ v.Op = OpRISCV64AND
+ return true
case OpAndB:
- return rewriteValueRISCV64_OpAndB(v)
+ v.Op = OpRISCV64AND
+ return true
case OpAvg64u:
return rewriteValueRISCV64_OpAvg64u(v)
case OpClosureCall:
- return rewriteValueRISCV64_OpClosureCall(v)
+ v.Op = OpRISCV64CALLclosure
+ return true
case OpCom16:
return rewriteValueRISCV64_OpCom16(v)
case OpCom32:
@@ -47,43 +61,59 @@ func rewriteValueRISCV64(v *Value) bool {
case OpCom8:
return rewriteValueRISCV64_OpCom8(v)
case OpConst16:
- return rewriteValueRISCV64_OpConst16(v)
+ v.Op = OpRISCV64MOVHconst
+ return true
case OpConst32:
- return rewriteValueRISCV64_OpConst32(v)
+ v.Op = OpRISCV64MOVWconst
+ return true
case OpConst32F:
return rewriteValueRISCV64_OpConst32F(v)
case OpConst64:
- return rewriteValueRISCV64_OpConst64(v)
+ v.Op = OpRISCV64MOVDconst
+ return true
case OpConst64F:
return rewriteValueRISCV64_OpConst64F(v)
case OpConst8:
- return rewriteValueRISCV64_OpConst8(v)
+ v.Op = OpRISCV64MOVBconst
+ return true
case OpConstBool:
- return rewriteValueRISCV64_OpConstBool(v)
+ v.Op = OpRISCV64MOVBconst
+ return true
case OpConstNil:
return rewriteValueRISCV64_OpConstNil(v)
case OpConvert:
- return rewriteValueRISCV64_OpConvert(v)
+ v.Op = OpRISCV64MOVconvert
+ return true
case OpCvt32Fto32:
- return rewriteValueRISCV64_OpCvt32Fto32(v)
+ v.Op = OpRISCV64FCVTWS
+ return true
case OpCvt32Fto64:
- return rewriteValueRISCV64_OpCvt32Fto64(v)
+ v.Op = OpRISCV64FCVTLS
+ return true
case OpCvt32Fto64F:
- return rewriteValueRISCV64_OpCvt32Fto64F(v)
+ v.Op = OpRISCV64FCVTDS
+ return true
case OpCvt32to32F:
- return rewriteValueRISCV64_OpCvt32to32F(v)
+ v.Op = OpRISCV64FCVTSW
+ return true
case OpCvt32to64F:
- return rewriteValueRISCV64_OpCvt32to64F(v)
+ v.Op = OpRISCV64FCVTDW
+ return true
case OpCvt64Fto32:
- return rewriteValueRISCV64_OpCvt64Fto32(v)
+ v.Op = OpRISCV64FCVTWD
+ return true
case OpCvt64Fto32F:
- return rewriteValueRISCV64_OpCvt64Fto32F(v)
+ v.Op = OpRISCV64FCVTSD
+ return true
case OpCvt64Fto64:
- return rewriteValueRISCV64_OpCvt64Fto64(v)
+ v.Op = OpRISCV64FCVTLD
+ return true
case OpCvt64to32F:
- return rewriteValueRISCV64_OpCvt64to32F(v)
+ v.Op = OpRISCV64FCVTSL
+ return true
case OpCvt64to64F:
- return rewriteValueRISCV64_OpCvt64to64F(v)
+ v.Op = OpRISCV64FCVTDL
+ return true
case OpDiv16:
return rewriteValueRISCV64_OpDiv16(v)
case OpDiv16u:
@@ -91,15 +121,19 @@ func rewriteValueRISCV64(v *Value) bool {
case OpDiv32:
return rewriteValueRISCV64_OpDiv32(v)
case OpDiv32F:
- return rewriteValueRISCV64_OpDiv32F(v)
+ v.Op = OpRISCV64FDIVS
+ return true
case OpDiv32u:
- return rewriteValueRISCV64_OpDiv32u(v)
+ v.Op = OpRISCV64DIVUW
+ return true
case OpDiv64:
return rewriteValueRISCV64_OpDiv64(v)
case OpDiv64F:
- return rewriteValueRISCV64_OpDiv64F(v)
+ v.Op = OpRISCV64FDIVD
+ return true
case OpDiv64u:
- return rewriteValueRISCV64_OpDiv64u(v)
+ v.Op = OpRISCV64DIVU
+ return true
case OpDiv8:
return rewriteValueRISCV64_OpDiv8(v)
case OpDiv8u:
@@ -109,11 +143,13 @@ func rewriteValueRISCV64(v *Value) bool {
case OpEq32:
return rewriteValueRISCV64_OpEq32(v)
case OpEq32F:
- return rewriteValueRISCV64_OpEq32F(v)
+ v.Op = OpRISCV64FEQS
+ return true
case OpEq64:
return rewriteValueRISCV64_OpEq64(v)
case OpEq64F:
- return rewriteValueRISCV64_OpEq64F(v)
+ v.Op = OpRISCV64FEQD
+ return true
case OpEq8:
return rewriteValueRISCV64_OpEq8(v)
case OpEqB:
@@ -141,11 +177,14 @@ func rewriteValueRISCV64(v *Value) bool {
case OpGeq8U:
return rewriteValueRISCV64_OpGeq8U(v)
case OpGetCallerPC:
- return rewriteValueRISCV64_OpGetCallerPC(v)
+ v.Op = OpRISCV64LoweredGetCallerPC
+ return true
case OpGetCallerSP:
- return rewriteValueRISCV64_OpGetCallerSP(v)
+ v.Op = OpRISCV64LoweredGetCallerSP
+ return true
case OpGetClosurePtr:
- return rewriteValueRISCV64_OpGetClosurePtr(v)
+ v.Op = OpRISCV64LoweredGetClosurePtr
+ return true
case OpGreater16:
return rewriteValueRISCV64_OpGreater16(v)
case OpGreater16U:
@@ -171,17 +210,22 @@ func rewriteValueRISCV64(v *Value) bool {
case OpHmul32u:
return rewriteValueRISCV64_OpHmul32u(v)
case OpHmul64:
- return rewriteValueRISCV64_OpHmul64(v)
+ v.Op = OpRISCV64MULH
+ return true
case OpHmul64u:
- return rewriteValueRISCV64_OpHmul64u(v)
+ v.Op = OpRISCV64MULHU
+ return true
case OpInterCall:
- return rewriteValueRISCV64_OpInterCall(v)
+ v.Op = OpRISCV64CALLinter
+ return true
case OpIsInBounds:
- return rewriteValueRISCV64_OpIsInBounds(v)
+ v.Op = OpLess64U
+ return true
case OpIsNonNil:
return rewriteValueRISCV64_OpIsNonNil(v)
case OpIsSliceInBounds:
- return rewriteValueRISCV64_OpIsSliceInBounds(v)
+ v.Op = OpLeq64U
+ return true
case OpLeq16:
return rewriteValueRISCV64_OpLeq16(v)
case OpLeq16U:
@@ -189,13 +233,15 @@ func rewriteValueRISCV64(v *Value) bool {
case OpLeq32:
return rewriteValueRISCV64_OpLeq32(v)
case OpLeq32F:
- return rewriteValueRISCV64_OpLeq32F(v)
+ v.Op = OpRISCV64FLES
+ return true
case OpLeq32U:
return rewriteValueRISCV64_OpLeq32U(v)
case OpLeq64:
return rewriteValueRISCV64_OpLeq64(v)
case OpLeq64F:
- return rewriteValueRISCV64_OpLeq64F(v)
+ v.Op = OpRISCV64FLED
+ return true
case OpLeq64U:
return rewriteValueRISCV64_OpLeq64U(v)
case OpLeq8:
@@ -209,15 +255,19 @@ func rewriteValueRISCV64(v *Value) bool {
case OpLess32:
return rewriteValueRISCV64_OpLess32(v)
case OpLess32F:
- return rewriteValueRISCV64_OpLess32F(v)
+ v.Op = OpRISCV64FLTS
+ return true
case OpLess32U:
return rewriteValueRISCV64_OpLess32U(v)
case OpLess64:
- return rewriteValueRISCV64_OpLess64(v)
+ v.Op = OpRISCV64SLT
+ return true
case OpLess64F:
- return rewriteValueRISCV64_OpLess64F(v)
+ v.Op = OpRISCV64FLTD
+ return true
case OpLess64U:
- return rewriteValueRISCV64_OpLess64U(v)
+ v.Op = OpRISCV64SLTU
+ return true
case OpLess8:
return rewriteValueRISCV64_OpLess8(v)
case OpLess8U:
@@ -265,11 +315,13 @@ func rewriteValueRISCV64(v *Value) bool {
case OpMod32:
return rewriteValueRISCV64_OpMod32(v)
case OpMod32u:
- return rewriteValueRISCV64_OpMod32u(v)
+ v.Op = OpRISCV64REMUW
+ return true
case OpMod64:
return rewriteValueRISCV64_OpMod64(v)
case OpMod64u:
- return rewriteValueRISCV64_OpMod64u(v)
+ v.Op = OpRISCV64REMU
+ return true
case OpMod8:
return rewriteValueRISCV64_OpMod8(v)
case OpMod8u:
@@ -279,13 +331,17 @@ func rewriteValueRISCV64(v *Value) bool {
case OpMul16:
return rewriteValueRISCV64_OpMul16(v)
case OpMul32:
- return rewriteValueRISCV64_OpMul32(v)
+ v.Op = OpRISCV64MULW
+ return true
case OpMul32F:
- return rewriteValueRISCV64_OpMul32F(v)
+ v.Op = OpRISCV64FMULS
+ return true
case OpMul64:
- return rewriteValueRISCV64_OpMul64(v)
+ v.Op = OpRISCV64MUL
+ return true
case OpMul64F:
- return rewriteValueRISCV64_OpMul64F(v)
+ v.Op = OpRISCV64FMULD
+ return true
case OpMul8:
return rewriteValueRISCV64_OpMul8(v)
case OpNeg16:
@@ -293,11 +349,13 @@ func rewriteValueRISCV64(v *Value) bool {
case OpNeg32:
return rewriteValueRISCV64_OpNeg32(v)
case OpNeg32F:
- return rewriteValueRISCV64_OpNeg32F(v)
+ v.Op = OpRISCV64FNEGS
+ return true
case OpNeg64:
return rewriteValueRISCV64_OpNeg64(v)
case OpNeg64F:
- return rewriteValueRISCV64_OpNeg64F(v)
+ v.Op = OpRISCV64FNEGD
+ return true
case OpNeg8:
return rewriteValueRISCV64_OpNeg8(v)
case OpNeq16:
@@ -305,33 +363,42 @@ func rewriteValueRISCV64(v *Value) bool {
case OpNeq32:
return rewriteValueRISCV64_OpNeq32(v)
case OpNeq32F:
- return rewriteValueRISCV64_OpNeq32F(v)
+ v.Op = OpRISCV64FNES
+ return true
case OpNeq64:
return rewriteValueRISCV64_OpNeq64(v)
case OpNeq64F:
- return rewriteValueRISCV64_OpNeq64F(v)
+ v.Op = OpRISCV64FNED
+ return true
case OpNeq8:
return rewriteValueRISCV64_OpNeq8(v)
case OpNeqB:
- return rewriteValueRISCV64_OpNeqB(v)
+ v.Op = OpRISCV64XOR
+ return true
case OpNeqPtr:
return rewriteValueRISCV64_OpNeqPtr(v)
case OpNilCheck:
- return rewriteValueRISCV64_OpNilCheck(v)
+ v.Op = OpRISCV64LoweredNilCheck
+ return true
case OpNot:
return rewriteValueRISCV64_OpNot(v)
case OpOffPtr:
return rewriteValueRISCV64_OpOffPtr(v)
case OpOr16:
- return rewriteValueRISCV64_OpOr16(v)
+ v.Op = OpRISCV64OR
+ return true
case OpOr32:
- return rewriteValueRISCV64_OpOr32(v)
+ v.Op = OpRISCV64OR
+ return true
case OpOr64:
- return rewriteValueRISCV64_OpOr64(v)
+ v.Op = OpRISCV64OR
+ return true
case OpOr8:
- return rewriteValueRISCV64_OpOr8(v)
+ v.Op = OpRISCV64OR
+ return true
case OpOrB:
- return rewriteValueRISCV64_OpOrB(v)
+ v.Op = OpRISCV64OR
+ return true
case OpPanicBounds:
return rewriteValueRISCV64_OpPanicBounds(v)
case OpRISCV64ADD:
@@ -371,9 +438,11 @@ func rewriteValueRISCV64(v *Value) bool {
case OpRotateLeft8:
return rewriteValueRISCV64_OpRotateLeft8(v)
case OpRound32F:
- return rewriteValueRISCV64_OpRound32F(v)
+ v.Op = OpCopy
+ return true
case OpRound64F:
- return rewriteValueRISCV64_OpRound64F(v)
+ v.Op = OpCopy
+ return true
case OpRsh16Ux16:
return rewriteValueRISCV64_OpRsh16Ux16(v)
case OpRsh16Ux32:
@@ -453,47 +522,67 @@ func rewriteValueRISCV64(v *Value) bool {
case OpSlicemask:
return rewriteValueRISCV64_OpSlicemask(v)
case OpSqrt:
- return rewriteValueRISCV64_OpSqrt(v)
+ v.Op = OpRISCV64FSQRTD
+ return true
case OpStaticCall:
- return rewriteValueRISCV64_OpStaticCall(v)
+ v.Op = OpRISCV64CALLstatic
+ return true
case OpStore:
return rewriteValueRISCV64_OpStore(v)
case OpSub16:
- return rewriteValueRISCV64_OpSub16(v)
+ v.Op = OpRISCV64SUB
+ return true
case OpSub32:
- return rewriteValueRISCV64_OpSub32(v)
+ v.Op = OpRISCV64SUB
+ return true
case OpSub32F:
- return rewriteValueRISCV64_OpSub32F(v)
+ v.Op = OpRISCV64FSUBS
+ return true
case OpSub64:
- return rewriteValueRISCV64_OpSub64(v)
+ v.Op = OpRISCV64SUB
+ return true
case OpSub64F:
- return rewriteValueRISCV64_OpSub64F(v)
+ v.Op = OpRISCV64FSUBD
+ return true
case OpSub8:
- return rewriteValueRISCV64_OpSub8(v)
+ v.Op = OpRISCV64SUB
+ return true
case OpSubPtr:
- return rewriteValueRISCV64_OpSubPtr(v)
+ v.Op = OpRISCV64SUB
+ return true
case OpTrunc16to8:
- return rewriteValueRISCV64_OpTrunc16to8(v)
+ v.Op = OpCopy
+ return true
case OpTrunc32to16:
- return rewriteValueRISCV64_OpTrunc32to16(v)
+ v.Op = OpCopy
+ return true
case OpTrunc32to8:
- return rewriteValueRISCV64_OpTrunc32to8(v)
+ v.Op = OpCopy
+ return true
case OpTrunc64to16:
- return rewriteValueRISCV64_OpTrunc64to16(v)
+ v.Op = OpCopy
+ return true
case OpTrunc64to32:
- return rewriteValueRISCV64_OpTrunc64to32(v)
+ v.Op = OpCopy
+ return true
case OpTrunc64to8:
- return rewriteValueRISCV64_OpTrunc64to8(v)
+ v.Op = OpCopy
+ return true
case OpWB:
- return rewriteValueRISCV64_OpWB(v)
+ v.Op = OpRISCV64LoweredWB
+ return true
case OpXor16:
- return rewriteValueRISCV64_OpXor16(v)
+ v.Op = OpRISCV64XOR
+ return true
case OpXor32:
- return rewriteValueRISCV64_OpXor32(v)
+ v.Op = OpRISCV64XOR
+ return true
case OpXor64:
- return rewriteValueRISCV64_OpXor64(v)
+ v.Op = OpRISCV64XOR
+ return true
case OpXor8:
- return rewriteValueRISCV64_OpXor8(v)
+ v.Op = OpRISCV64XOR
+ return true
case OpZero:
return rewriteValueRISCV64_OpZero(v)
case OpZeroExt16to32:
@@ -511,187 +600,6 @@ func rewriteValueRISCV64(v *Value) bool {
}
return false
}
-func rewriteValueRISCV64_OpAdd16(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Add16 x y)
- // result: (ADD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64ADD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAdd32(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Add32 x y)
- // result: (ADD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64ADD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAdd32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Add32F x y)
- // result: (FADDS x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FADDS)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAdd64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Add64 x y)
- // result: (ADD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64ADD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAdd64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Add64F x y)
- // result: (FADDD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FADDD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAdd8(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Add8 x y)
- // result: (ADD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64ADD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAddPtr(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (AddPtr x y)
- // result: (ADD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64ADD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAddr(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Addr {sym} base)
- // result: (MOVaddr {sym} base)
- for {
- sym := v.Aux
- base := v_0
- v.reset(OpRISCV64MOVaddr)
- v.Aux = sym
- v.AddArg(base)
- return true
- }
-}
-func rewriteValueRISCV64_OpAnd16(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (And16 x y)
- // result: (AND x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64AND)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAnd32(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (And32 x y)
- // result: (AND x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64AND)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAnd64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (And64 x y)
- // result: (AND x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64AND)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAnd8(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (And8 x y)
- // result: (AND x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64AND)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpAndB(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (AndB x y)
- // result: (AND x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64AND)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpAvg64u(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -723,25 +631,6 @@ func rewriteValueRISCV64_OpAvg64u(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpClosureCall(v *Value) bool {
- v_2 := v.Args[2]
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (ClosureCall [argwid] entry closure mem)
- // result: (CALLclosure [argwid] entry closure mem)
- for {
- argwid := v.AuxInt
- entry := v_0
- closure := v_1
- mem := v_2
- v.reset(OpRISCV64CALLclosure)
- v.AuxInt = argwid
- v.AddArg(entry)
- v.AddArg(closure)
- v.AddArg(mem)
- return true
- }
-}
func rewriteValueRISCV64_OpCom16(v *Value) bool {
v_0 := v.Args[0]
// match: (Com16 x)
@@ -790,26 +679,6 @@ func rewriteValueRISCV64_OpCom8(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpConst16(v *Value) bool {
- // match: (Const16 [val])
- // result: (MOVHconst [val])
- for {
- val := v.AuxInt
- v.reset(OpRISCV64MOVHconst)
- v.AuxInt = val
- return true
- }
-}
-func rewriteValueRISCV64_OpConst32(v *Value) bool {
- // match: (Const32 [val])
- // result: (MOVWconst [val])
- for {
- val := v.AuxInt
- v.reset(OpRISCV64MOVWconst)
- v.AuxInt = val
- return true
- }
-}
func rewriteValueRISCV64_OpConst32F(v *Value) bool {
b := v.Block
typ := &b.Func.Config.Types
@@ -824,16 +693,6 @@ func rewriteValueRISCV64_OpConst32F(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpConst64(v *Value) bool {
- // match: (Const64 [val])
- // result: (MOVDconst [val])
- for {
- val := v.AuxInt
- v.reset(OpRISCV64MOVDconst)
- v.AuxInt = val
- return true
- }
-}
func rewriteValueRISCV64_OpConst64F(v *Value) bool {
b := v.Block
typ := &b.Func.Config.Types
@@ -848,26 +707,6 @@ func rewriteValueRISCV64_OpConst64F(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpConst8(v *Value) bool {
- // match: (Const8 [val])
- // result: (MOVBconst [val])
- for {
- val := v.AuxInt
- v.reset(OpRISCV64MOVBconst)
- v.AuxInt = val
- return true
- }
-}
-func rewriteValueRISCV64_OpConstBool(v *Value) bool {
- // match: (ConstBool [b])
- // result: (MOVBconst [b])
- for {
- b := v.AuxInt
- v.reset(OpRISCV64MOVBconst)
- v.AuxInt = b
- return true
- }
-}
func rewriteValueRISCV64_OpConstNil(v *Value) bool {
// match: (ConstNil)
// result: (MOVDconst [0])
@@ -877,130 +716,6 @@ func rewriteValueRISCV64_OpConstNil(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpConvert(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Convert x mem)
- // result: (MOVconvert x mem)
- for {
- x := v_0
- mem := v_1
- v.reset(OpRISCV64MOVconvert)
- v.AddArg(x)
- v.AddArg(mem)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt32Fto32(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt32Fto32 x)
- // result: (FCVTWS x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTWS)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt32Fto64(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt32Fto64 x)
- // result: (FCVTLS x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTLS)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt32Fto64F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt32Fto64F x)
- // result: (FCVTDS x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTDS)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt32to32F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt32to32F x)
- // result: (FCVTSW x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTSW)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt32to64F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt32to64F x)
- // result: (FCVTDW x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTDW)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt64Fto32(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt64Fto32 x)
- // result: (FCVTWD x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTWD)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt64Fto32F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt64Fto32F x)
- // result: (FCVTSD x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTSD)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt64Fto64(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt64Fto64 x)
- // result: (FCVTLD x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTLD)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt64to32F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt64to32F x)
- // result: (FCVTSL x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTSL)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpCvt64to64F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Cvt64to64F x)
- // result: (FCVTDL x)
- for {
- x := v_0
- v.reset(OpRISCV64FCVTDL)
- v.AddArg(x)
- return true
- }
-}
func rewriteValueRISCV64_OpDiv16(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1044,7 +759,7 @@ func rewriteValueRISCV64_OpDiv16u(v *Value) bool {
func rewriteValueRISCV64_OpDiv32(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
- // match: (Div32 x y)
+ // match: (Div32 [a] x y)
// result: (DIVW x y)
for {
x := v_0
@@ -1055,38 +770,10 @@ func rewriteValueRISCV64_OpDiv32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpDiv32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Div32F x y)
- // result: (FDIVS x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FDIVS)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpDiv32u(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Div32u x y)
- // result: (DIVUW x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64DIVUW)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpDiv64(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
- // match: (Div64 x y)
+ // match: (Div64 [a] x y)
// result: (DIV x y)
for {
x := v_0
@@ -1097,34 +784,6 @@ func rewriteValueRISCV64_OpDiv64(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpDiv64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Div64F x y)
- // result: (FDIVD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FDIVD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpDiv64u(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Div64u x y)
- // result: (DIVU x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64DIVU)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpDiv8(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1205,20 +864,6 @@ func rewriteValueRISCV64_OpEq32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpEq32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Eq32F x y)
- // result: (FEQS x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FEQS)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpEq64(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1236,20 +881,6 @@ func rewriteValueRISCV64_OpEq64(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpEq64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Eq64F x y)
- // result: (FEQD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FEQD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpEq8(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1478,30 +1109,6 @@ func rewriteValueRISCV64_OpGeq8U(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpGetCallerPC(v *Value) bool {
- // match: (GetCallerPC)
- // result: (LoweredGetCallerPC)
- for {
- v.reset(OpRISCV64LoweredGetCallerPC)
- return true
- }
-}
-func rewriteValueRISCV64_OpGetCallerSP(v *Value) bool {
- // match: (GetCallerSP)
- // result: (LoweredGetCallerSP)
- for {
- v.reset(OpRISCV64LoweredGetCallerSP)
- return true
- }
-}
-func rewriteValueRISCV64_OpGetClosurePtr(v *Value) bool {
- // match: (GetClosurePtr)
- // result: (LoweredGetClosurePtr)
- for {
- v.reset(OpRISCV64LoweredGetClosurePtr)
- return true
- }
-}
func rewriteValueRISCV64_OpGreater16(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1688,64 +1295,6 @@ func rewriteValueRISCV64_OpHmul32u(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpHmul64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Hmul64 x y)
- // result: (MULH x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64MULH)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpHmul64u(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Hmul64u x y)
- // result: (MULHU x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64MULHU)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpInterCall(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (InterCall [argwid] entry mem)
- // result: (CALLinter [argwid] entry mem)
- for {
- argwid := v.AuxInt
- entry := v_0
- mem := v_1
- v.reset(OpRISCV64CALLinter)
- v.AuxInt = argwid
- v.AddArg(entry)
- v.AddArg(mem)
- return true
- }
-}
-func rewriteValueRISCV64_OpIsInBounds(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (IsInBounds idx len)
- // result: (Less64U idx len)
- for {
- idx := v_0
- len := v_1
- v.reset(OpLess64U)
- v.AddArg(idx)
- v.AddArg(len)
- return true
- }
-}
func rewriteValueRISCV64_OpIsNonNil(v *Value) bool {
v_0 := v.Args[0]
b := v.Block
@@ -1761,20 +1310,6 @@ func rewriteValueRISCV64_OpIsNonNil(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpIsSliceInBounds(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (IsSliceInBounds idx len)
- // result: (Leq64U idx len)
- for {
- idx := v_0
- len := v_1
- v.reset(OpLeq64U)
- v.AddArg(idx)
- v.AddArg(len)
- return true
- }
-}
func rewriteValueRISCV64_OpLeq16(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1829,20 +1364,6 @@ func rewriteValueRISCV64_OpLeq32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpLeq32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Leq32F x y)
- // result: (FLES x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FLES)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpLeq32U(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -1879,20 +1400,6 @@ func rewriteValueRISCV64_OpLeq64(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpLeq64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Leq64F x y)
- // result: (FLED x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FLED)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpLeq64U(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -2007,20 +1514,6 @@ func rewriteValueRISCV64_OpLess32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpLess32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Less32F x y)
- // result: (FLTS x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FLTS)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpLess32U(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -2041,48 +1534,6 @@ func rewriteValueRISCV64_OpLess32U(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpLess64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Less64 x y)
- // result: (SLT x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SLT)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpLess64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Less64F x y)
- // result: (FLTD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FLTD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpLess64U(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Less64U x y)
- // result: (SLTU x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SLTU)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpLess8(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -2754,7 +2205,7 @@ func rewriteValueRISCV64_OpMod16u(v *Value) bool {
func rewriteValueRISCV64_OpMod32(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
- // match: (Mod32 x y)
+ // match: (Mod32 [a] x y)
// result: (REMW x y)
for {
x := v_0
@@ -2765,24 +2216,10 @@ func rewriteValueRISCV64_OpMod32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpMod32u(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Mod32u x y)
- // result: (REMUW x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64REMUW)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpMod64(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
- // match: (Mod64 x y)
+ // match: (Mod64 [a] x y)
// result: (REM x y)
for {
x := v_0
@@ -2793,20 +2230,6 @@ func rewriteValueRISCV64_OpMod64(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpMod64u(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Mod64u x y)
- // result: (REMU x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64REMU)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpMod8(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -2978,62 +2401,6 @@ func rewriteValueRISCV64_OpMul16(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpMul32(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Mul32 x y)
- // result: (MULW x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64MULW)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpMul32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Mul32F x y)
- // result: (FMULS x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FMULS)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpMul64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Mul64 x y)
- // result: (MUL x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64MUL)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpMul64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Mul64F x y)
- // result: (FMULD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FMULD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpMul8(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -3084,17 +2451,6 @@ func rewriteValueRISCV64_OpNeg32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpNeg32F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Neg32F x)
- // result: (FNEGS x)
- for {
- x := v_0
- v.reset(OpRISCV64FNEGS)
- v.AddArg(x)
- return true
- }
-}
func rewriteValueRISCV64_OpNeg64(v *Value) bool {
v_0 := v.Args[0]
b := v.Block
@@ -3110,17 +2466,6 @@ func rewriteValueRISCV64_OpNeg64(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpNeg64F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Neg64F x)
- // result: (FNEGD x)
- for {
- x := v_0
- v.reset(OpRISCV64FNEGD)
- v.AddArg(x)
- return true
- }
-}
func rewriteValueRISCV64_OpNeg8(v *Value) bool {
v_0 := v.Args[0]
b := v.Block
@@ -3176,20 +2521,6 @@ func rewriteValueRISCV64_OpNeq32(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpNeq32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Neq32F x y)
- // result: (FNES x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FNES)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpNeq64(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -3207,20 +2538,6 @@ func rewriteValueRISCV64_OpNeq64(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpNeq64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Neq64F x y)
- // result: (FNED x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FNED)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpNeq8(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -3241,20 +2558,6 @@ func rewriteValueRISCV64_OpNeq8(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpNeqB(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (NeqB x y)
- // result: (XOR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64XOR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpNeqPtr(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -3272,20 +2575,6 @@ func rewriteValueRISCV64_OpNeqPtr(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpNilCheck(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (NilCheck ptr mem)
- // result: (LoweredNilCheck ptr mem)
- for {
- ptr := v_0
- mem := v_1
- v.reset(OpRISCV64LoweredNilCheck)
- v.AddArg(ptr)
- v.AddArg(mem)
- return true
- }
-}
func rewriteValueRISCV64_OpNot(v *Value) bool {
v_0 := v.Args[0]
// match: (Not x)
@@ -3342,76 +2631,6 @@ func rewriteValueRISCV64_OpOffPtr(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpOr16(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Or16 x y)
- // result: (OR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64OR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpOr32(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Or32 x y)
- // result: (OR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64OR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpOr64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Or64 x y)
- // result: (OR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64OR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpOr8(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Or8 x y)
- // result: (OR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64OR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpOrB(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (OrB x y)
- // result: (OR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64OR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpPanicBounds(v *Value) bool {
v_2 := v.Args[2]
v_1 := v.Args[1]
@@ -4274,30 +3493,6 @@ func rewriteValueRISCV64_OpRotateLeft8(v *Value) bool {
}
return false
}
-func rewriteValueRISCV64_OpRound32F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Round32F x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpRound64F(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Round64F x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
func rewriteValueRISCV64_OpRsh16Ux16(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
@@ -5353,32 +4548,6 @@ func rewriteValueRISCV64_OpSlicemask(v *Value) bool {
return true
}
}
-func rewriteValueRISCV64_OpSqrt(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Sqrt x)
- // result: (FSQRTD x)
- for {
- x := v_0
- v.reset(OpRISCV64FSQRTD)
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpStaticCall(v *Value) bool {
- v_0 := v.Args[0]
- // match: (StaticCall [argwid] {target} mem)
- // result: (CALLstatic [argwid] {target} mem)
- for {
- argwid := v.AuxInt
- target := v.Aux
- mem := v_0
- v.reset(OpRISCV64CALLstatic)
- v.AuxInt = argwid
- v.Aux = target
- v.AddArg(mem)
- return true
- }
-}
func rewriteValueRISCV64_OpStore(v *Value) bool {
v_2 := v.Args[2]
v_1 := v.Args[1]
@@ -5487,251 +4656,6 @@ func rewriteValueRISCV64_OpStore(v *Value) bool {
}
return false
}
-func rewriteValueRISCV64_OpSub16(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Sub16 x y)
- // result: (SUB x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SUB)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpSub32(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Sub32 x y)
- // result: (SUB x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SUB)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpSub32F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Sub32F x y)
- // result: (FSUBS x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FSUBS)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpSub64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Sub64 x y)
- // result: (SUB x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SUB)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpSub64F(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Sub64F x y)
- // result: (FSUBD x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64FSUBD)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpSub8(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Sub8 x y)
- // result: (SUB x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SUB)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpSubPtr(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (SubPtr x y)
- // result: (SUB x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64SUB)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpTrunc16to8(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Trunc16to8 x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpTrunc32to16(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Trunc32to16 x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpTrunc32to8(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Trunc32to8 x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpTrunc64to16(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Trunc64to16 x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpTrunc64to32(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Trunc64to32 x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpTrunc64to8(v *Value) bool {
- v_0 := v.Args[0]
- // match: (Trunc64to8 x)
- // result: x
- for {
- x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
- return true
- }
-}
-func rewriteValueRISCV64_OpWB(v *Value) bool {
- v_2 := v.Args[2]
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (WB {fn} destptr srcptr mem)
- // result: (LoweredWB {fn} destptr srcptr mem)
- for {
- fn := v.Aux
- destptr := v_0
- srcptr := v_1
- mem := v_2
- v.reset(OpRISCV64LoweredWB)
- v.Aux = fn
- v.AddArg(destptr)
- v.AddArg(srcptr)
- v.AddArg(mem)
- return true
- }
-}
-func rewriteValueRISCV64_OpXor16(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Xor16 x y)
- // result: (XOR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64XOR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpXor32(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Xor32 x y)
- // result: (XOR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64XOR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpXor64(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Xor64 x y)
- // result: (XOR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64XOR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
-func rewriteValueRISCV64_OpXor8(v *Value) bool {
- v_1 := v.Args[1]
- v_0 := v.Args[0]
- // match: (Xor8 x y)
- // result: (XOR x y)
- for {
- x := v_0
- y := v_1
- v.reset(OpRISCV64XOR)
- v.AddArg(x)
- v.AddArg(y)
- return true
- }
-}
func rewriteValueRISCV64_OpZero(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]