github.com/bir3/gocompiler@v0.3.205/src/cmd/compile/internal/ssa/rewritePPC64latelower.go (about)

     1  // Code generated from _gen/PPC64latelower.rules; DO NOT EDIT.
     2  // generated with: cd _gen; go run .
     3  
     4  package ssa
     5  
     6  func rewriteValuePPC64latelower(v *Value) bool {
     7  	switch v.Op {
     8  	case OpPPC64ISEL:
     9  		return rewriteValuePPC64latelower_OpPPC64ISEL(v)
    10  	}
    11  	return false
    12  }
    13  func rewriteValuePPC64latelower_OpPPC64ISEL(v *Value) bool {
    14  	v_2 := v.Args[2]
    15  	v_1 := v.Args[1]
    16  	v_0 := v.Args[0]
    17  	// match: (ISEL [a] x (MOVDconst [0]) z)
    18  	// result: (ISELZ [a] x z)
    19  	for {
    20  		a := auxIntToInt32(v.AuxInt)
    21  		x := v_0
    22  		if v_1.Op != OpPPC64MOVDconst || auxIntToInt64(v_1.AuxInt) != 0 {
    23  			break
    24  		}
    25  		z := v_2
    26  		v.reset(OpPPC64ISELZ)
    27  		v.AuxInt = int32ToAuxInt(a)
    28  		v.AddArg2(x, z)
    29  		return true
    30  	}
    31  	// match: (ISEL [a] (MOVDconst [0]) y z)
    32  	// result: (ISELZ [a^0x4] y z)
    33  	for {
    34  		a := auxIntToInt32(v.AuxInt)
    35  		if v_0.Op != OpPPC64MOVDconst || auxIntToInt64(v_0.AuxInt) != 0 {
    36  			break
    37  		}
    38  		y := v_1
    39  		z := v_2
    40  		v.reset(OpPPC64ISELZ)
    41  		v.AuxInt = int32ToAuxInt(a ^ 0x4)
    42  		v.AddArg2(y, z)
    43  		return true
    44  	}
    45  	return false
    46  }
    47  func rewriteBlockPPC64latelower(b *Block) bool {
    48  	return false
    49  }