github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/compile/ssa/rewriteAMD64latelower.go (about)

     1  // Code generated from _gen/AMD64latelower.rules using 'go generate'; DO NOT EDIT.
     2  
     3  package ssa
     4  
     5  import "github.com/go-asm/go/buildcfg"
     6  
     7  func rewriteValueAMD64latelower(v *Value) bool {
     8  	switch v.Op {
     9  	case OpAMD64SARL:
    10  		return rewriteValueAMD64latelower_OpAMD64SARL(v)
    11  	case OpAMD64SARQ:
    12  		return rewriteValueAMD64latelower_OpAMD64SARQ(v)
    13  	case OpAMD64SHLL:
    14  		return rewriteValueAMD64latelower_OpAMD64SHLL(v)
    15  	case OpAMD64SHLQ:
    16  		return rewriteValueAMD64latelower_OpAMD64SHLQ(v)
    17  	case OpAMD64SHRL:
    18  		return rewriteValueAMD64latelower_OpAMD64SHRL(v)
    19  	case OpAMD64SHRQ:
    20  		return rewriteValueAMD64latelower_OpAMD64SHRQ(v)
    21  	}
    22  	return false
    23  }
    24  func rewriteValueAMD64latelower_OpAMD64SARL(v *Value) bool {
    25  	v_1 := v.Args[1]
    26  	v_0 := v.Args[0]
    27  	// match: (SARL x y)
    28  	// cond: buildcfg.GOAMD64 >= 3
    29  	// result: (SARXL x y)
    30  	for {
    31  		x := v_0
    32  		y := v_1
    33  		if !(buildcfg.GOAMD64 >= 3) {
    34  			break
    35  		}
    36  		v.reset(OpAMD64SARXL)
    37  		v.AddArg2(x, y)
    38  		return true
    39  	}
    40  	return false
    41  }
    42  func rewriteValueAMD64latelower_OpAMD64SARQ(v *Value) bool {
    43  	v_1 := v.Args[1]
    44  	v_0 := v.Args[0]
    45  	// match: (SARQ x y)
    46  	// cond: buildcfg.GOAMD64 >= 3
    47  	// result: (SARXQ x y)
    48  	for {
    49  		x := v_0
    50  		y := v_1
    51  		if !(buildcfg.GOAMD64 >= 3) {
    52  			break
    53  		}
    54  		v.reset(OpAMD64SARXQ)
    55  		v.AddArg2(x, y)
    56  		return true
    57  	}
    58  	return false
    59  }
    60  func rewriteValueAMD64latelower_OpAMD64SHLL(v *Value) bool {
    61  	v_1 := v.Args[1]
    62  	v_0 := v.Args[0]
    63  	// match: (SHLL x y)
    64  	// cond: buildcfg.GOAMD64 >= 3
    65  	// result: (SHLXL x y)
    66  	for {
    67  		x := v_0
    68  		y := v_1
    69  		if !(buildcfg.GOAMD64 >= 3) {
    70  			break
    71  		}
    72  		v.reset(OpAMD64SHLXL)
    73  		v.AddArg2(x, y)
    74  		return true
    75  	}
    76  	return false
    77  }
    78  func rewriteValueAMD64latelower_OpAMD64SHLQ(v *Value) bool {
    79  	v_1 := v.Args[1]
    80  	v_0 := v.Args[0]
    81  	// match: (SHLQ x y)
    82  	// cond: buildcfg.GOAMD64 >= 3
    83  	// result: (SHLXQ x y)
    84  	for {
    85  		x := v_0
    86  		y := v_1
    87  		if !(buildcfg.GOAMD64 >= 3) {
    88  			break
    89  		}
    90  		v.reset(OpAMD64SHLXQ)
    91  		v.AddArg2(x, y)
    92  		return true
    93  	}
    94  	return false
    95  }
    96  func rewriteValueAMD64latelower_OpAMD64SHRL(v *Value) bool {
    97  	v_1 := v.Args[1]
    98  	v_0 := v.Args[0]
    99  	// match: (SHRL x y)
   100  	// cond: buildcfg.GOAMD64 >= 3
   101  	// result: (SHRXL x y)
   102  	for {
   103  		x := v_0
   104  		y := v_1
   105  		if !(buildcfg.GOAMD64 >= 3) {
   106  			break
   107  		}
   108  		v.reset(OpAMD64SHRXL)
   109  		v.AddArg2(x, y)
   110  		return true
   111  	}
   112  	return false
   113  }
   114  func rewriteValueAMD64latelower_OpAMD64SHRQ(v *Value) bool {
   115  	v_1 := v.Args[1]
   116  	v_0 := v.Args[0]
   117  	// match: (SHRQ x y)
   118  	// cond: buildcfg.GOAMD64 >= 3
   119  	// result: (SHRXQ x y)
   120  	for {
   121  		x := v_0
   122  		y := v_1
   123  		if !(buildcfg.GOAMD64 >= 3) {
   124  			break
   125  		}
   126  		v.reset(OpAMD64SHRXQ)
   127  		v.AddArg2(x, y)
   128  		return true
   129  	}
   130  	return false
   131  }
   132  func rewriteBlockAMD64latelower(b *Block) bool {
   133  	return false
   134  }