// Code generated from _gen/AMD64latelower.rules using 'go generate'; DO NOT EDIT. package rewriteamd64latelower import "internal/buildcfg" import "cmd/compile/internal/ssa/ssaop" import "cmd/compile/internal/ssa" func RewriteValue(v *ssa.Value) bool { switch v.Op { case ssaop.OpAMD64MOVBQZX: return rewriteValue_OpAMD64MOVBQZX(v) case ssaop.OpAMD64MOVLQZX: return rewriteValue_OpAMD64MOVLQZX(v) case ssaop.OpAMD64MOVWQZX: return rewriteValue_OpAMD64MOVWQZX(v) case ssaop.OpAMD64SARL: return rewriteValue_OpAMD64SARL(v) case ssaop.OpAMD64SARQ: return rewriteValue_OpAMD64SARQ(v) case ssaop.OpAMD64SHLL: return rewriteValue_OpAMD64SHLL(v) case ssaop.OpAMD64SHLQ: return rewriteValue_OpAMD64SHLQ(v) case ssaop.OpAMD64SHRL: return rewriteValue_OpAMD64SHRL(v) case ssaop.OpAMD64SHRQ: return rewriteValue_OpAMD64SHRQ(v) } return false } func rewriteValue_OpAMD64MOVBQZX(v *ssa.Value) bool { v_0 := v.Args[0] // match: (MOVBQZX x) // cond: ssa.ZeroUpper56Bits(x) // result: x for { x := v_0 if !(ssa.ZeroUpper56Bits(x)) { break } v.CopyOf(x) return true } return false } func rewriteValue_OpAMD64MOVLQZX(v *ssa.Value) bool { v_0 := v.Args[0] // match: (MOVLQZX x) // cond: ssa.ZeroUpper32Bits(x) // result: x for { x := v_0 if !(ssa.ZeroUpper32Bits(x)) { break } v.CopyOf(x) return true } return false } func rewriteValue_OpAMD64MOVWQZX(v *ssa.Value) bool { v_0 := v.Args[0] // match: (MOVWQZX x) // cond: ssa.ZeroUpper48Bits(x) // result: x for { x := v_0 if !(ssa.ZeroUpper48Bits(x)) { break } v.CopyOf(x) return true } return false } func rewriteValue_OpAMD64SARL(v *ssa.Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SARL x y) // cond: buildcfg.GOAMD64 >= 3 // result: (SARXL x y) for { x := v_0 y := v_1 if !(buildcfg.GOAMD64 >= 3) { break } v.Reset(ssaop.OpAMD64SARXL) v.AddArg2(x, y) return true } return false } func rewriteValue_OpAMD64SARQ(v *ssa.Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SARQ x y) // cond: buildcfg.GOAMD64 >= 3 // result: (SARXQ x y) for { x := v_0 y := v_1 if !(buildcfg.GOAMD64 >= 3) { break } v.Reset(ssaop.OpAMD64SARXQ) v.AddArg2(x, y) return true } return false } func rewriteValue_OpAMD64SHLL(v *ssa.Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SHLL x y) // cond: buildcfg.GOAMD64 >= 3 // result: (SHLXL x y) for { x := v_0 y := v_1 if !(buildcfg.GOAMD64 >= 3) { break } v.Reset(ssaop.OpAMD64SHLXL) v.AddArg2(x, y) return true } return false } func rewriteValue_OpAMD64SHLQ(v *ssa.Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SHLQ x y) // cond: buildcfg.GOAMD64 >= 3 // result: (SHLXQ x y) for { x := v_0 y := v_1 if !(buildcfg.GOAMD64 >= 3) { break } v.Reset(ssaop.OpAMD64SHLXQ) v.AddArg2(x, y) return true } return false } func rewriteValue_OpAMD64SHRL(v *ssa.Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SHRL x y) // cond: buildcfg.GOAMD64 >= 3 // result: (SHRXL x y) for { x := v_0 y := v_1 if !(buildcfg.GOAMD64 >= 3) { break } v.Reset(ssaop.OpAMD64SHRXL) v.AddArg2(x, y) return true } return false } func rewriteValue_OpAMD64SHRQ(v *ssa.Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] // match: (SHRQ x y) // cond: buildcfg.GOAMD64 >= 3 // result: (SHRXQ x y) for { x := v_0 y := v_1 if !(buildcfg.GOAMD64 >= 3) { break } v.Reset(ssaop.OpAMD64SHRXQ) v.AddArg2(x, y) return true } return false } func RewriteBlock(b *ssa.Block) bool { return false }