// run // Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main // This checks for incorrect application of CMP(-x,y) -> CMN(x,y) in arm and arm64 //go:noinline func f(p int64, x, y int64) bool { return -x <= p && p <= y } //go:noinline func g(p int32, x, y int32) bool { return -x <= p && p <= y } // There are some more complicated patterns involving compares and shifts, try to trigger those. //go:noinline func h(p int64, x, y int64) bool { return -(x<<1) <= p && p <= y } //go:noinline func k(p int32, x, y int32) bool { return -(1<