test: add index bounds check elided with "&^"

For follow up CL, which will defer lowering OANDNOT until SSA.

Change-Id: I5a988d0b8f0ae664580f08b123811b2a31ef55c6
Reviewed-on: https://go-review.googlesource.com/c/go/+/265040
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
Cuong Manh Le 2020-10-26 11:28:02 +07:00
parent 76bce1dd52
commit fb7134e4e3

View File

@ -201,6 +201,15 @@ func main() {
use(p1k[ui&1000])
use(p100k[ui&1000]) // ERROR "index bounds check elided"
use(a1[i&^-1]) // ERROR "index bounds check elided"
use(a1[i&^0])
use(a1[i&^-2])
use(a1[i&^1])
use(a1k[i&^-1]) // ERROR "index bounds check elided"
use(a1k[i&^0])
use(a1k[i&^-2]) // ERROR "index bounds check elided"
use(a1k[i&^1])
// Right shift cuts the effective number of bits in the index,
// but only for unsigned (signed stays negative).
use(s[i32>>22])