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

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