// Code generated from _gen/PPC64latelower.rules using 'go generate'; DO NOT EDIT. package ssa import "internal/buildcfg" func rewriteValuePPC64latelower(v *Value) bool { switch v.Op { case OpPPC64ISEL: return rewriteValuePPC64latelower_OpPPC64ISEL(v) case OpPPC64SETBC: return rewriteValuePPC64latelower_OpPPC64SETBC(v) case OpPPC64SETBCR: return rewriteValuePPC64latelower_OpPPC64SETBCR(v) } return false } func rewriteValuePPC64latelower_OpPPC64ISEL(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] v_0 := v.Args[0] // match: (ISEL [a] x (MOVDconst [0]) z) // result: (ISELZ [a] x z) for { a := auxIntToInt32(v.AuxInt) x := v_0 if v_1.Op != OpPPC64MOVDconst || auxIntToInt64(v_1.AuxInt) != 0 { break } z := v_2 v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(a) v.AddArg2(x, z) return true } // match: (ISEL [a] (MOVDconst [0]) y z) // result: (ISELZ [a^0x4] y z) for { a := auxIntToInt32(v.AuxInt) if v_0.Op != OpPPC64MOVDconst || auxIntToInt64(v_0.AuxInt) != 0 { break } y := v_1 z := v_2 v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(a ^ 0x4) v.AddArg2(y, z) return true } return false } func rewriteValuePPC64latelower_OpPPC64SETBC(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types // match: (SETBC [2] cmp) // cond: buildcfg.GOPPC64 <= 9 // result: (ISELZ [2] (MOVDconst [1]) cmp) for { if auxIntToInt32(v.AuxInt) != 2 { break } cmp := v_0 if !(buildcfg.GOPPC64 <= 9) { break } v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(2) v0 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) v0.AuxInt = int64ToAuxInt(1) v.AddArg2(v0, cmp) return true } // match: (SETBC [0] cmp) // cond: buildcfg.GOPPC64 <= 9 // result: (ISELZ [0] (MOVDconst [1]) cmp) for { if auxIntToInt32(v.AuxInt) != 0 { break } cmp := v_0 if !(buildcfg.GOPPC64 <= 9) { break } v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(0) v0 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) v0.AuxInt = int64ToAuxInt(1) v.AddArg2(v0, cmp) return true } // match: (SETBC [1] cmp) // cond: buildcfg.GOPPC64 <= 9 // result: (ISELZ [1] (MOVDconst [1]) cmp) for { if auxIntToInt32(v.AuxInt) != 1 { break } cmp := v_0 if !(buildcfg.GOPPC64 <= 9) { break } v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(1) v0 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) v0.AuxInt = int64ToAuxInt(1) v.AddArg2(v0, cmp) return true } return false } func rewriteValuePPC64latelower_OpPPC64SETBCR(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types // match: (SETBCR [2] cmp) // cond: buildcfg.GOPPC64 <= 9 // result: (ISELZ [6] (MOVDconst [1]) cmp) for { if auxIntToInt32(v.AuxInt) != 2 { break } cmp := v_0 if !(buildcfg.GOPPC64 <= 9) { break } v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(6) v0 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) v0.AuxInt = int64ToAuxInt(1) v.AddArg2(v0, cmp) return true } // match: (SETBCR [0] cmp) // cond: buildcfg.GOPPC64 <= 9 // result: (ISELZ [4] (MOVDconst [1]) cmp) for { if auxIntToInt32(v.AuxInt) != 0 { break } cmp := v_0 if !(buildcfg.GOPPC64 <= 9) { break } v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(4) v0 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) v0.AuxInt = int64ToAuxInt(1) v.AddArg2(v0, cmp) return true } // match: (SETBCR [1] cmp) // cond: buildcfg.GOPPC64 <= 9 // result: (ISELZ [5] (MOVDconst [1]) cmp) for { if auxIntToInt32(v.AuxInt) != 1 { break } cmp := v_0 if !(buildcfg.GOPPC64 <= 9) { break } v.reset(OpPPC64ISELZ) v.AuxInt = int32ToAuxInt(5) v0 := b.NewValue0(v.Pos, OpPPC64MOVDconst, typ.Int64) v0.AuxInt = int64ToAuxInt(1) v.AddArg2(v0, cmp) return true } return false } func rewriteBlockPPC64latelower(b *Block) bool { return false }