]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/ssa/rewritePPC64.go
cmd/compile/internal/ssa: optimize (AND (MOVDconst [-1] x)) on PPC64
[gostls13.git] / src / cmd / compile / internal / ssa / rewritePPC64.go
index d1c0c2b07f666eadd94e54012bf3b92bbed2a67a..2bcc27fbc83908c66c5faf6445f2d7bde2113b8c 100644 (file)
@@ -4226,6 +4226,19 @@ func rewriteValuePPC64_OpPPC64AND(v *Value) bool {
                }
                break
        }
+       // match: (AND x (MOVDconst [-1]))
+       // result: x
+       for {
+               for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
+                       x := v_0
+                       if v_1.Op != OpPPC64MOVDconst || auxIntToInt64(v_1.AuxInt) != -1 {
+                               continue
+                       }
+                       v.copyOf(x)
+                       return true
+               }
+               break
+       }
        // match: (AND x (MOVDconst [c]))
        // cond: isU16Bit(c)
        // result: (Select0 (ANDCCconst [c] x))