// Code generated from _gen/AMD64latelower.rules using 'go generate'; DO NOT EDIT. package ssa import "internal/buildcfg" func rewriteValueAMD64latelower(v *Value) bool { switch v.Op { case OpAMD64MOVBQZX: return rewriteValueAMD64latelower_OpAMD64MOVBQZX(v) case OpAMD64MOVLQZX: return rewriteValueAMD64latelower_OpAMD64MOVLQZX(v) case OpAMD64MOVWQZX: return rewriteValueAMD64latelower_OpAMD64MOVWQZX(v) case OpAMD64SARL: return rewriteValueAMD64latelower_OpAMD64SARL(v) case OpAMD64SARQ: return rewriteValueAMD64latelower_OpAMD64SARQ(v) case OpAMD64SHLL: return rewriteValueAMD64latelower_OpAMD64SHLL(v) case OpAMD64SHLQ: return rewriteValueAMD64latelower_OpAMD64SHLQ(v) case OpAMD64SHRL: return rewriteValueAMD64latelower_OpAMD64SHRL(v) case OpAMD64SHRQ: return rewriteValueAMD64latelower_OpAMD64SHRQ(v) } return false } func rewriteValueAMD64latelower_OpAMD64MOVBQZX(v *Value) bool { v_0 := v.Args[0] // match: (MOVBQZX x) // cond: zeroUpper56Bits(x,3) // result: x for { x := v_0 if !(zeroUpper56Bits(x, 3)) { break } v.copyOf(x) return true } return false } func rewriteValueAMD64latelower_OpAMD64MOVLQZX(v *Value) bool { v_0 := v.Args[0] // match: (MOVLQZX x) // cond: zeroUpper32Bits(x,3) // result: x for { x := v_0 if !(zeroUpper32Bits(x, 3)) { break } v.copyOf(x) return true } return false } func rewriteValueAMD64latelower_OpAMD64MOVWQZX(v *Value) bool { v_0 := v.Args[0] // match: (MOVWQZX x) // cond: zeroUpper48Bits(x,3) // result: x for { x := v_0 if !(zeroUpper48Bits(x, 3)) { break } v.copyOf(x) return true } return false } func rewriteValueAMD64latelower_OpAMD64SARL(v *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(OpAMD64SARXL) v.AddArg2(x, y) return true } return false } func rewriteValueAMD64latelower_OpAMD64SARQ(v *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(OpAMD64SARXQ) v.AddArg2(x, y) return true } return false } func rewriteValueAMD64latelower_OpAMD64SHLL(v *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(OpAMD64SHLXL) v.AddArg2(x, y) return true } return false } func rewriteValueAMD64latelower_OpAMD64SHLQ(v *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(OpAMD64SHLXQ) v.AddArg2(x, y) return true } return false } func rewriteValueAMD64latelower_OpAMD64SHRL(v *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(OpAMD64SHRXL) v.AddArg2(x, y) return true } return false } func rewriteValueAMD64latelower_OpAMD64SHRQ(v *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(OpAMD64SHRXQ) v.AddArg2(x, y) return true } return false } func rewriteBlockAMD64latelower(b *Block) bool { return false }