typ := &b.Func.Config.Types
switch b.Kind {
case BlockPPC64EQ:
- // match: (EQ (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (EQ (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
- for b.Controls[0].Op == OpPPC64CMPconst {
- v_0 := b.Controls[0]
- if auxIntToInt64(v_0.AuxInt) != 0 {
- break
- }
- v_0_0 := v_0.Args[0]
- if v_0_0.Op != OpSelect0 {
- break
- }
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
- break
- }
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
- v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
- b.resetWithControl(BlockPPC64EQ, v0)
- return true
- }
- // match: (EQ (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (EQ (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
- for b.Controls[0].Op == OpPPC64CMPWconst {
- v_0 := b.Controls[0]
- if auxIntToInt32(v_0.AuxInt) != 0 {
- break
- }
- v_0_0 := v_0.Args[0]
- if v_0_0.Op != OpSelect0 {
- break
- }
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
- break
- }
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
- v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
- b.resetWithControl(BlockPPC64EQ, v0)
- return true
- }
// match: (EQ (FlagEQ) yes no)
// result: (First yes no)
for b.Controls[0].Op == OpPPC64FlagEQ {
b.resetWithControl(BlockPPC64EQ, cmp)
return true
}
- // match: (EQ (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (EQ (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (EQ (CMPconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (EQ (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPconst {
v_0 := b.Controls[0]
if auxIntToInt64(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64EQ, v0)
return true
}
- // match: (EQ (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (EQ (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (EQ (CMPWconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (EQ (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPWconst {
v_0 := b.Controls[0]
if auxIntToInt32(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64EQ, v0)
return true
}
b.resetWithControl(BlockPPC64LE, cmp)
return true
}
- // match: (GE (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (GE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (GE (CMPconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (GE (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPconst {
v_0 := b.Controls[0]
if auxIntToInt64(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64GE, v0)
return true
}
- // match: (GE (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (GE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (GE (CMPWconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (GE (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPWconst {
v_0 := b.Controls[0]
if auxIntToInt32(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64GE, v0)
return true
}
b.resetWithControl(BlockPPC64LT, cmp)
return true
}
- // match: (GT (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (GT (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (GT (CMPconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (GT (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPconst {
v_0 := b.Controls[0]
if auxIntToInt64(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64GT, v0)
return true
}
- // match: (GT (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (GT (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (GT (CMPWconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (GT (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPWconst {
v_0 := b.Controls[0]
if auxIntToInt32(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64GT, v0)
return true
}
b.resetWithControl(BlockPPC64GE, cmp)
return true
}
- // match: (LE (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (LE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (LE (CMPconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (LE (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPconst {
v_0 := b.Controls[0]
if auxIntToInt64(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64LE, v0)
return true
}
- // match: (LE (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (LE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (LE (CMPWconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (LE (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPWconst {
v_0 := b.Controls[0]
if auxIntToInt32(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64LE, v0)
return true
}
b.resetWithControl(BlockPPC64GT, cmp)
return true
}
- // match: (LT (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (LT (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (LT (CMPconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (LT (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPconst {
v_0 := b.Controls[0]
if auxIntToInt64(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64LT, v0)
return true
}
- // match: (LT (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (LT (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (LT (CMPWconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (LT (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPWconst {
v_0 := b.Controls[0]
if auxIntToInt32(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64LT, v0)
return true
}
b.resetWithControl(BlockPPC64FGE, cc)
return true
}
- // match: (NE (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (NE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
- for b.Controls[0].Op == OpPPC64CMPconst {
- v_0 := b.Controls[0]
- if auxIntToInt64(v_0.AuxInt) != 0 {
- break
- }
- v_0_0 := v_0.Args[0]
- if v_0_0.Op != OpSelect0 {
- break
- }
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
- break
- }
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
- v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
- b.resetWithControl(BlockPPC64NE, v0)
- return true
- }
- // match: (NE (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (NE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
- for b.Controls[0].Op == OpPPC64CMPWconst {
- v_0 := b.Controls[0]
- if auxIntToInt32(v_0.AuxInt) != 0 {
- break
- }
- v_0_0 := v_0.Args[0]
- if v_0_0.Op != OpSelect0 {
- break
- }
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
- break
- }
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
- v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
- b.resetWithControl(BlockPPC64NE, v0)
- return true
- }
// match: (NE (FlagEQ) yes no)
// result: (First no yes)
for b.Controls[0].Op == OpPPC64FlagEQ {
b.resetWithControl(BlockPPC64NE, cmp)
return true
}
- // match: (NE (CMPconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (NE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (NE (CMPconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (NE (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPconst {
v_0 := b.Controls[0]
if auxIntToInt64(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64NE, v0)
return true
}
- // match: (NE (CMPWconst [0] (Select0 (ANDCCconst [c] x))) yes no)
- // result: (NE (Select1 <types.TypeFlags> (ANDCCconst [c] x)) yes no)
+ // match: (NE (CMPWconst [0] (Select0 z:(ANDCCconst [c] x))) yes no)
+ // result: (NE (Select1 <types.TypeFlags> z) yes no)
for b.Controls[0].Op == OpPPC64CMPWconst {
v_0 := b.Controls[0]
if auxIntToInt32(v_0.AuxInt) != 0 {
if v_0_0.Op != OpSelect0 {
break
}
- v_0_0_0 := v_0_0.Args[0]
- if v_0_0_0.Op != OpPPC64ANDCCconst {
+ z := v_0_0.Args[0]
+ if z.Op != OpPPC64ANDCCconst {
break
}
- c := auxIntToInt64(v_0_0_0.AuxInt)
- x := v_0_0_0.Args[0]
v0 := b.NewValue0(v_0.Pos, OpSelect1, types.TypeFlags)
- v1 := b.NewValue0(v_0.Pos, OpPPC64ANDCCconst, types.NewTuple(typ.Int, types.TypeFlags))
- v1.AuxInt = int64ToAuxInt(c)
- v1.AddArg(x)
- v0.AddArg(v1)
+ v0.AddArg(z)
b.resetWithControl(BlockPPC64NE, v0)
return true
}
func lshMask64x64(v int64, s uint64) int64 {
// arm64:"LSL",-"AND"
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SLL",-"AND\t",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v << (s & 63)
func rshMask64Ux64(v uint64, s uint64) uint64 {
// arm64:"LSR",-"AND",-"CSEL"
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SRL\t",-"AND\t",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v >> (s & 63)
func rshMask64x64(v int64, s uint64) int64 {
// arm64:"ASR",-"AND",-"CSEL"
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SRA",-"OR",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v >> (s & 63)
func lshMask64x32(v int64, s uint32) int64 {
// arm64:"LSL",-"AND"
- // ppc64x:"ANDCC",-"ORN"
+ // ppc64x:"RLDICL",-"ORN"
// riscv64:"SLL",-"AND\t",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v << (s & 63)
func rshMask64Ux32(v uint64, s uint32) uint64 {
// arm64:"LSR",-"AND",-"CSEL"
- // ppc64x:"ANDCC",-"ORN"
+ // ppc64x:"RLDICL",-"ORN"
// riscv64:"SRL\t",-"AND\t",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v >> (s & 63)
func rshMask64x32(v int64, s uint32) int64 {
// arm64:"ASR",-"AND",-"CSEL"
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SRA",-"OR",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v >> (s & 63)
}
func lshMask64x32Ext(v int64, s int32) int64 {
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SLL",-"AND\t",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v << uint(s&63)
}
func rshMask64Ux32Ext(v uint64, s int32) uint64 {
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SRL\t",-"AND\t",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v >> uint(s&63)
}
func rshMask64x32Ext(v int64, s int32) int64 {
- // ppc64x:"ANDCC",-"ORN",-"ISEL"
+ // ppc64x:"RLDICL",-"ORN",-"ISEL"
// riscv64:"SRA",-"OR",-"SLTIU"
// s390x:-"RISBGZ",-"AND",-"LOCGR"
return v >> uint(s&63)