Source file src/cmd/compile/internal/ssa/rewriteLOONG64latelower.go

     1  // Code generated from _gen/LOONG64latelower.rules using 'go generate'; DO NOT EDIT.
     2  
     3  package ssa
     4  
     5  func rewriteValueLOONG64latelower(v *Value) bool {
     6  	switch v.Op {
     7  	case OpLOONG64SLLVconst:
     8  		return rewriteValueLOONG64latelower_OpLOONG64SLLVconst(v)
     9  	}
    10  	return false
    11  }
    12  func rewriteValueLOONG64latelower_OpLOONG64SLLVconst(v *Value) bool {
    13  	v_0 := v.Args[0]
    14  	// match: (SLLVconst [1] x)
    15  	// result: (ADDV x x)
    16  	for {
    17  		if auxIntToInt64(v.AuxInt) != 1 {
    18  			break
    19  		}
    20  		x := v_0
    21  		v.reset(OpLOONG64ADDV)
    22  		v.AddArg2(x, x)
    23  		return true
    24  	}
    25  	return false
    26  }
    27  func rewriteBlockLOONG64latelower(b *Block) bool {
    28  	switch b.Kind {
    29  	case BlockLOONG64EQZ:
    30  		// match: (EQZ (XOR x y) yes no)
    31  		// result: (BEQ x y yes no)
    32  		for b.Controls[0].Op == OpLOONG64XOR {
    33  			v_0 := b.Controls[0]
    34  			_ = v_0.Args[1]
    35  			v_0_0 := v_0.Args[0]
    36  			v_0_1 := v_0.Args[1]
    37  			for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 {
    38  				x := v_0_0
    39  				y := v_0_1
    40  				b.resetWithControl2(BlockLOONG64BEQ, x, y)
    41  				return true
    42  			}
    43  		}
    44  	case BlockLOONG64NEZ:
    45  		// match: (NEZ (XOR x y) yes no)
    46  		// result: (BNE x y yes no)
    47  		for b.Controls[0].Op == OpLOONG64XOR {
    48  			v_0 := b.Controls[0]
    49  			_ = v_0.Args[1]
    50  			v_0_0 := v_0.Args[0]
    51  			v_0_1 := v_0.Args[1]
    52  			for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 {
    53  				x := v_0_0
    54  				y := v_0_1
    55  				b.resetWithControl2(BlockLOONG64BNE, x, y)
    56  				return true
    57  			}
    58  		}
    59  	}
    60  	return false
    61  }
    62  

View as plain text