3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
7 // Test integer modulus by contstants.
15 func i64rand() int64 {
17 a := int64(rand.Uint32())
18 a = (a << 32) | int64(rand.Uint32())
19 a >>= uint(rand.Intn(64))
24 return 0 // impossible
27 func i64test(a, b, c int64) {
30 println("i64", a, b, c, d)
38 for i := 0; i < Count; i++ {
109 i64test(a, b, -16384)
113 func u64rand() uint64 {
114 a := uint64(rand.Uint32())
115 a = (a << 32) | uint64(rand.Uint32())
116 a >>= uint(rand.Intn(64))
120 func u64test(a, b, c uint64) {
123 println("u64", a, b, c, d)
131 for i := 0; i < Count; i++ {
171 func i32rand() int32 {
173 a := int32(rand.Uint32())
174 a >>= uint(rand.Intn(32))
179 return 0 // impossible
182 func i32test(a, b, c int32) {
185 println("i32", a, b, c, d)
193 for i := 0; i < Count; i++ {
266 func u32rand() uint32 {
267 a := uint32(rand.Uint32())
268 a >>= uint(rand.Intn(32))
272 func u32test(a, b, c uint32) {
275 println("u32", a, b, c, d)
283 for i := 0; i < Count; i++ {
323 func i16rand() int16 {
325 a := int16(rand.Uint32())
326 a >>= uint(rand.Intn(16))
331 return 0 // impossible
334 func i16test(a, b, c int16) {
337 println("i16", a, b, c, d)
345 for i := 0; i < Count; i++ {
416 i16test(a, b, -16384)
420 func u16rand() uint16 {
421 a := uint16(rand.Uint32())
422 a >>= uint(rand.Intn(16))
426 func u16test(a, b, c uint16) {
429 println("u16", a, b, c, d)
437 for i := 0; i < Count; i++ {
479 a := int8(rand.Uint32())
480 a >>= uint(rand.Intn(8))
485 return 0 // impossible
488 func i8test(a, b, c int8) {
491 println("i8", a, b, c, d)
499 for i := 0; i < Count; i++ {
568 func u8rand() uint8 {
569 a := uint8(rand.Uint32())
570 a >>= uint(rand.Intn(8))
574 func u8test(a, b, c uint8) {
577 println("u8", a, b, c, d)
585 for i := 0; i < Count; i++ {