URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [ken/] [divconst.go] - Rev 700
Compare with Previous | Blame | View Log
// $G $D/$F.go && $L $F.$A && ./$A.out// Copyright 2009 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 mainimport "math/rand"const Count = 1e5func i64rand() int64 {for {a := int64(rand.Uint32())a = (a << 32) | int64(rand.Uint32())a >>= uint(rand.Intn(64))if -a != a {return a}}return 0 // impossible}func i64test(a, b, c int64) {d := a / cif d != b {println("i64", a, b, c, d)panic("fail")}}func i64run() {var a, b int64for i := 0; i < Count; i++ {a = i64rand()b = a / 1i64test(a, b, 1)b = a / 2i64test(a, b, 2)b = a / 3i64test(a, b, 3)b = a / 4i64test(a, b, 4)b = a / 5i64test(a, b, 5)b = a / 6i64test(a, b, 6)b = a / 7i64test(a, b, 7)b = a / 8i64test(a, b, 8)b = a / 10i64test(a, b, 10)b = a / 16i64test(a, b, 16)b = a / 20i64test(a, b, 20)b = a / 32i64test(a, b, 32)b = a / 60i64test(a, b, 60)b = a / 64i64test(a, b, 64)b = a / 128i64test(a, b, 128)b = a / 256i64test(a, b, 256)b = a / 16384i64test(a, b, 16384)b = a / -1i64test(a, b, -1)b = a / -2i64test(a, b, -2)b = a / -3i64test(a, b, -3)b = a / -4i64test(a, b, -4)b = a / -5i64test(a, b, -5)b = a / -6i64test(a, b, -6)b = a / -7i64test(a, b, -7)b = a / -8i64test(a, b, -8)b = a / -10i64test(a, b, -10)b = a / -16i64test(a, b, -16)b = a / -20i64test(a, b, -20)b = a / -32i64test(a, b, -32)b = a / -60i64test(a, b, -60)b = a / -64i64test(a, b, -64)b = a / -128i64test(a, b, -128)b = a / -256i64test(a, b, -256)b = a / -16384i64test(a, b, -16384)}}func u64rand() uint64 {a := uint64(rand.Uint32())a = (a << 32) | uint64(rand.Uint32())a >>= uint(rand.Intn(64))return a}func u64test(a, b, c uint64) {d := a / cif d != b {println("u64", a, b, c, d)panic("fail")}}func u64run() {var a, b uint64for i := 0; i < Count; i++ {a = u64rand()b = a / 1u64test(a, b, 1)b = a / 2u64test(a, b, 2)b = a / 3u64test(a, b, 3)b = a / 4u64test(a, b, 4)b = a / 5u64test(a, b, 5)b = a / 6u64test(a, b, 6)b = a / 7u64test(a, b, 7)b = a / 8u64test(a, b, 8)b = a / 10u64test(a, b, 10)b = a / 16u64test(a, b, 16)b = a / 20u64test(a, b, 20)b = a / 32u64test(a, b, 32)b = a / 60u64test(a, b, 60)b = a / 64u64test(a, b, 64)b = a / 128u64test(a, b, 128)b = a / 256u64test(a, b, 256)b = a / 16384u64test(a, b, 16384)}}func i32rand() int32 {for {a := int32(rand.Uint32())a >>= uint(rand.Intn(32))if -a != a {return a}}return 0 // impossible}func i32test(a, b, c int32) {d := a / cif d != b {println("i32", a, b, c, d)panic("fail")}}func i32run() {var a, b int32for i := 0; i < Count; i++ {a = i32rand()b = a / 1i32test(a, b, 1)b = a / 2i32test(a, b, 2)b = a / 3i32test(a, b, 3)b = a / 4i32test(a, b, 4)b = a / 5i32test(a, b, 5)b = a / 6i32test(a, b, 6)b = a / 7i32test(a, b, 7)b = a / 8i32test(a, b, 8)b = a / 10i32test(a, b, 10)b = a / 16i32test(a, b, 16)b = a / 20i32test(a, b, 20)b = a / 32i32test(a, b, 32)b = a / 60i32test(a, b, 60)b = a / 64i32test(a, b, 64)b = a / 128i32test(a, b, 128)b = a / 256i32test(a, b, 256)b = a / 16384i32test(a, b, 16384)b = a / -1i32test(a, b, -1)b = a / -2i32test(a, b, -2)b = a / -3i32test(a, b, -3)b = a / -4i32test(a, b, -4)b = a / -5i32test(a, b, -5)b = a / -6i32test(a, b, -6)b = a / -7i32test(a, b, -7)b = a / -8i32test(a, b, -8)b = a / -10i32test(a, b, -10)b = a / -16i32test(a, b, -16)b = a / -20i32test(a, b, -20)b = a / -32i32test(a, b, -32)b = a / -60i32test(a, b, -60)b = a / -64i32test(a, b, -64)b = a / -128i32test(a, b, -128)b = a / -256i32test(a, b, -256)}}func u32rand() uint32 {a := uint32(rand.Uint32())a >>= uint(rand.Intn(32))return a}func u32test(a, b, c uint32) {d := a / cif d != b {println("u32", a, b, c, d)panic("fail")}}func u32run() {var a, b uint32for i := 0; i < Count; i++ {a = u32rand()b = a / 1u32test(a, b, 1)b = a / 2u32test(a, b, 2)b = a / 3u32test(a, b, 3)b = a / 4u32test(a, b, 4)b = a / 5u32test(a, b, 5)b = a / 6u32test(a, b, 6)b = a / 7u32test(a, b, 7)b = a / 8u32test(a, b, 8)b = a / 10u32test(a, b, 10)b = a / 16u32test(a, b, 16)b = a / 20u32test(a, b, 20)b = a / 32u32test(a, b, 32)b = a / 60u32test(a, b, 60)b = a / 64u32test(a, b, 64)b = a / 128u32test(a, b, 128)b = a / 256u32test(a, b, 256)b = a / 16384u32test(a, b, 16384)}}func i16rand() int16 {for {a := int16(rand.Uint32())a >>= uint(rand.Intn(16))if -a != a {return a}}return 0 // impossible}func i16test(a, b, c int16) {d := a / cif d != b {println("i16", a, b, c, d)panic("fail")}}func i16run() {var a, b int16for i := 0; i < Count; i++ {a = i16rand()b = a / 1i16test(a, b, 1)b = a / 2i16test(a, b, 2)b = a / 3i16test(a, b, 3)b = a / 4i16test(a, b, 4)b = a / 5i16test(a, b, 5)b = a / 6i16test(a, b, 6)b = a / 7i16test(a, b, 7)b = a / 8i16test(a, b, 8)b = a / 10i16test(a, b, 10)b = a / 16i16test(a, b, 16)b = a / 20i16test(a, b, 20)b = a / 32i16test(a, b, 32)b = a / 60i16test(a, b, 60)b = a / 64i16test(a, b, 64)b = a / 128i16test(a, b, 128)b = a / 256i16test(a, b, 256)b = a / 16384i16test(a, b, 16384)b = a / -1i16test(a, b, -1)b = a / -2i16test(a, b, -2)b = a / -3i16test(a, b, -3)b = a / -4i16test(a, b, -4)b = a / -5i16test(a, b, -5)b = a / -6i16test(a, b, -6)b = a / -7i16test(a, b, -7)b = a / -8i16test(a, b, -8)b = a / -10i16test(a, b, -10)b = a / -16i16test(a, b, -16)b = a / -20i16test(a, b, -20)b = a / -32i16test(a, b, -32)b = a / -60i16test(a, b, -60)b = a / -64i16test(a, b, -64)b = a / -128i16test(a, b, -128)b = a / -256i16test(a, b, -256)b = a / -16384i16test(a, b, -16384)}}func u16rand() uint16 {a := uint16(rand.Uint32())a >>= uint(rand.Intn(16))return a}func u16test(a, b, c uint16) {d := a / cif d != b {println("u16", a, b, c, d)panic("fail")}}func u16run() {var a, b uint16for i := 0; i < Count; i++ {a = u16rand()b = a / 1u16test(a, b, 1)b = a / 2u16test(a, b, 2)b = a / 3u16test(a, b, 3)b = a / 4u16test(a, b, 4)b = a / 5u16test(a, b, 5)b = a / 6u16test(a, b, 6)b = a / 7u16test(a, b, 7)b = a / 8u16test(a, b, 8)b = a / 10u16test(a, b, 10)b = a / 16u16test(a, b, 16)b = a / 20u16test(a, b, 20)b = a / 32u16test(a, b, 32)b = a / 60u16test(a, b, 60)b = a / 64u16test(a, b, 64)b = a / 128u16test(a, b, 128)b = a / 256u16test(a, b, 256)b = a / 16384u16test(a, b, 16384)}}func i8rand() int8 {for {a := int8(rand.Uint32())a >>= uint(rand.Intn(8))if -a != a {return a}}return 0 // impossible}func i8test(a, b, c int8) {d := a / cif d != b {println("i8", a, b, c, d)panic("fail")}}func i8run() {var a, b int8for i := 0; i < Count; i++ {a = i8rand()b = a / 1i8test(a, b, 1)b = a / 2i8test(a, b, 2)b = a / 3i8test(a, b, 3)b = a / 4i8test(a, b, 4)b = a / 5i8test(a, b, 5)b = a / 6i8test(a, b, 6)b = a / 7i8test(a, b, 7)b = a / 8i8test(a, b, 8)b = a / 10i8test(a, b, 10)b = a / 8i8test(a, b, 8)b = a / 20i8test(a, b, 20)b = a / 32i8test(a, b, 32)b = a / 60i8test(a, b, 60)b = a / 64i8test(a, b, 64)b = a / 127i8test(a, b, 127)b = a / -1i8test(a, b, -1)b = a / -2i8test(a, b, -2)b = a / -3i8test(a, b, -3)b = a / -4i8test(a, b, -4)b = a / -5i8test(a, b, -5)b = a / -6i8test(a, b, -6)b = a / -7i8test(a, b, -7)b = a / -8i8test(a, b, -8)b = a / -10i8test(a, b, -10)b = a / -8i8test(a, b, -8)b = a / -20i8test(a, b, -20)b = a / -32i8test(a, b, -32)b = a / -60i8test(a, b, -60)b = a / -64i8test(a, b, -64)b = a / -128i8test(a, b, -128)}}func u8rand() uint8 {a := uint8(rand.Uint32())a >>= uint(rand.Intn(8))return a}func u8test(a, b, c uint8) {d := a / cif d != b {println("u8", a, b, c, d)panic("fail")}}func u8run() {var a, b uint8for i := 0; i < Count; i++ {a = u8rand()b = a / 1u8test(a, b, 1)b = a / 2u8test(a, b, 2)b = a / 3u8test(a, b, 3)b = a / 4u8test(a, b, 4)b = a / 5u8test(a, b, 5)b = a / 6u8test(a, b, 6)b = a / 7u8test(a, b, 7)b = a / 8u8test(a, b, 8)b = a / 10u8test(a, b, 10)b = a / 8u8test(a, b, 8)b = a / 20u8test(a, b, 20)b = a / 32u8test(a, b, 32)b = a / 60u8test(a, b, 60)b = a / 64u8test(a, b, 64)b = a / 128u8test(a, b, 128)b = a / 184u8test(a, b, 184)}}func main() {xtest()i64run()u64run()i32run()u32run()i16run()u16run()i8run()u8run()}func xtest() {}
