From 16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 24 May 2018 01:37:55 -0700 Subject: systemc: Import tests from the Accellera systemc distribution. Change-Id: Iad76b398949a55d768a34d027a2d8e3739953da6 Reviewed-on: https://gem5-review.googlesource.com/10845 Reviewed-by: Giacomo Travaglini Maintainer: Gabe Black --- .../int/sc_int_base/concat/signed/32bit/concat.cpp | 56 +++++++++++++++++++ .../concat/signed/32bit/golden/concat.log | 32 +++++++++++ .../int/sc_int_base/concat/signed/64bit/concat.cpp | 56 +++++++++++++++++++ .../concat/signed/64bit/golden/concat.log | 64 ++++++++++++++++++++++ .../sc_int_base/concat/unsigned/32bit/concat.cpp | 57 +++++++++++++++++++ .../concat/unsigned/32bit/golden/concat.log | 32 +++++++++++ .../sc_int_base/concat/unsigned/64bit/concat.cpp | 56 +++++++++++++++++++ .../concat/unsigned/64bit/golden/concat.log | 64 ++++++++++++++++++++++ 8 files changed, 417 insertions(+) create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/concat.cpp create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/golden/concat.log create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/concat.cpp create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/golden/concat.log create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/concat.cpp create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/golden/concat.log create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/concat.cpp create mode 100644 src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/golden/concat.log (limited to 'src/systemc/tests/systemc/datatypes/int/sc_int_base/concat') diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/concat.cpp b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/concat.cpp new file mode 100644 index 000000000..2dcee7146 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/concat.cpp @@ -0,0 +1,56 @@ +/***************************************************************************** + + Licensed to Accellera Systems Initiative Inc. (Accellera) under one or + more contributor license agreements. See the NOTICE file distributed + with this work for additional information regarding copyright ownership. + Accellera licenses this file to you under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. See the License for the specific language governing + permissions and limitations under the License. + + *****************************************************************************/ + +/***************************************************************************** + + concat.cpp -- + + Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 + + *****************************************************************************/ + +/***************************************************************************** + + MODIFICATION LOG - modifiers, enter your name, affiliation, date and + changes you are making here. + + Name, Affiliation, Date: + Description of Modification: + + *****************************************************************************/ + +#include "systemc.h" + +#define WIDTH 32 + +int sc_main(int ac, char* av[] ) +{ + + sc_int_base a_si32(WIDTH), b_si32(WIDTH); + + for(int i=0; i < WIDTH-1; i++ ){ + cout << "i = " << i << endl; + a_si32 = i; + b_si32 = (a_si32.range(WIDTH-1,i+1), a_si32.range(i,0)); + sc_assert( a_si32 == b_si32 ); + } + + return 0; +} + diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/golden/concat.log b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/golden/concat.log new file mode 100644 index 000000000..31bb32fc5 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/32bit/golden/concat.log @@ -0,0 +1,32 @@ +SystemC Simulation +i = 0 +i = 1 +i = 2 +i = 3 +i = 4 +i = 5 +i = 6 +i = 7 +i = 8 +i = 9 +i = 10 +i = 11 +i = 12 +i = 13 +i = 14 +i = 15 +i = 16 +i = 17 +i = 18 +i = 19 +i = 20 +i = 21 +i = 22 +i = 23 +i = 24 +i = 25 +i = 26 +i = 27 +i = 28 +i = 29 +i = 30 diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/concat.cpp b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/concat.cpp new file mode 100644 index 000000000..3fca84e38 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/concat.cpp @@ -0,0 +1,56 @@ +/***************************************************************************** + + Licensed to Accellera Systems Initiative Inc. (Accellera) under one or + more contributor license agreements. See the NOTICE file distributed + with this work for additional information regarding copyright ownership. + Accellera licenses this file to you under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. See the License for the specific language governing + permissions and limitations under the License. + + *****************************************************************************/ + +/***************************************************************************** + + concat.cpp -- + + Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 + + *****************************************************************************/ + +/***************************************************************************** + + MODIFICATION LOG - modifiers, enter your name, affiliation, date and + changes you are making here. + + Name, Affiliation, Date: + Description of Modification: + + *****************************************************************************/ + +#include "systemc.h" + +#define WIDTH 64 + +int sc_main(int ac, char* av[] ) +{ + + sc_int_base a_si64(WIDTH), b_si64(WIDTH); + + for(int i=0; i < WIDTH-1; i++ ){ + cout << "i = " << i << endl; + a_si64 = i; + b_si64 = (a_si64.range(WIDTH-1,i+1), a_si64.range(i,0)); + sc_assert( a_si64 == b_si64 ); + } + + return 0; +} + diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/golden/concat.log b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/golden/concat.log new file mode 100644 index 000000000..e47f7871b --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/signed/64bit/golden/concat.log @@ -0,0 +1,64 @@ +SystemC Simulation +i = 0 +i = 1 +i = 2 +i = 3 +i = 4 +i = 5 +i = 6 +i = 7 +i = 8 +i = 9 +i = 10 +i = 11 +i = 12 +i = 13 +i = 14 +i = 15 +i = 16 +i = 17 +i = 18 +i = 19 +i = 20 +i = 21 +i = 22 +i = 23 +i = 24 +i = 25 +i = 26 +i = 27 +i = 28 +i = 29 +i = 30 +i = 31 +i = 32 +i = 33 +i = 34 +i = 35 +i = 36 +i = 37 +i = 38 +i = 39 +i = 40 +i = 41 +i = 42 +i = 43 +i = 44 +i = 45 +i = 46 +i = 47 +i = 48 +i = 49 +i = 50 +i = 51 +i = 52 +i = 53 +i = 54 +i = 55 +i = 56 +i = 57 +i = 58 +i = 59 +i = 60 +i = 61 +i = 62 diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/concat.cpp b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/concat.cpp new file mode 100644 index 000000000..bc85168dc --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/concat.cpp @@ -0,0 +1,57 @@ +/***************************************************************************** + + Licensed to Accellera Systems Initiative Inc. (Accellera) under one or + more contributor license agreements. See the NOTICE file distributed + with this work for additional information regarding copyright ownership. + Accellera licenses this file to you under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. See the License for the specific language governing + permissions and limitations under the License. + + *****************************************************************************/ + +/***************************************************************************** + + concat.cpp -- + + Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 + + *****************************************************************************/ + +/***************************************************************************** + + MODIFICATION LOG - modifiers, enter your name, affiliation, date and + changes you are making here. + + Name, Affiliation, Date: + Description of Modification: + + *****************************************************************************/ + +#include "systemc.h" + +#define WIDTH 32 + +int sc_main(int ac, char* av[] ) +{ + + sc_uint_base a_su32(WIDTH), b_su32(WIDTH); + + for(int i=0; i < WIDTH-1; i++ ){ + cout << "i = " << i << ": "; + a_su32 = i; + b_su32 = (a_su32.range(WIDTH-1,i+1), a_su32.range(i,0)); + // Output variables to avoid erroneous optimization observed on RHEL6 with g++-4.4.6. + cout << a_su32 << (a_su32 == b_su32 ? " == " : " != ") << b_su32 << endl; + sc_assert( a_su32 == b_su32 ); + } + + return 0; +} diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/golden/concat.log b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/golden/concat.log new file mode 100644 index 000000000..bb0fe1a22 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/32bit/golden/concat.log @@ -0,0 +1,32 @@ +SystemC Simulation +i = 0: 0 == 0 +i = 1: 1 == 1 +i = 2: 2 == 2 +i = 3: 3 == 3 +i = 4: 4 == 4 +i = 5: 5 == 5 +i = 6: 6 == 6 +i = 7: 7 == 7 +i = 8: 8 == 8 +i = 9: 9 == 9 +i = 10: 10 == 10 +i = 11: 11 == 11 +i = 12: 12 == 12 +i = 13: 13 == 13 +i = 14: 14 == 14 +i = 15: 15 == 15 +i = 16: 16 == 16 +i = 17: 17 == 17 +i = 18: 18 == 18 +i = 19: 19 == 19 +i = 20: 20 == 20 +i = 21: 21 == 21 +i = 22: 22 == 22 +i = 23: 23 == 23 +i = 24: 24 == 24 +i = 25: 25 == 25 +i = 26: 26 == 26 +i = 27: 27 == 27 +i = 28: 28 == 28 +i = 29: 29 == 29 +i = 30: 30 == 30 diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/concat.cpp b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/concat.cpp new file mode 100644 index 000000000..897840b90 --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/concat.cpp @@ -0,0 +1,56 @@ +/***************************************************************************** + + Licensed to Accellera Systems Initiative Inc. (Accellera) under one or + more contributor license agreements. See the NOTICE file distributed + with this work for additional information regarding copyright ownership. + Accellera licenses this file to you under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. See the License for the specific language governing + permissions and limitations under the License. + + *****************************************************************************/ + +/***************************************************************************** + + concat.cpp -- + + Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15 + + *****************************************************************************/ + +/***************************************************************************** + + MODIFICATION LOG - modifiers, enter your name, affiliation, date and + changes you are making here. + + Name, Affiliation, Date: + Description of Modification: + + *****************************************************************************/ + +#include "systemc.h" + +#define WIDTH 64 + +int sc_main(int ac, char* av[] ) +{ + + sc_uint_base a_su64(WIDTH), b_su64(WIDTH); + + for(int i=0; i < WIDTH-1; i++ ){ + cout << "i = " << i << endl; + a_su64 = i; + b_su64 = (a_su64.range(WIDTH-1,i+1), a_su64.range(i,0)); + sc_assert( a_su64 == b_su64 ); + } + + return 0; +} + diff --git a/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/golden/concat.log b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/golden/concat.log new file mode 100644 index 000000000..e47f7871b --- /dev/null +++ b/src/systemc/tests/systemc/datatypes/int/sc_int_base/concat/unsigned/64bit/golden/concat.log @@ -0,0 +1,64 @@ +SystemC Simulation +i = 0 +i = 1 +i = 2 +i = 3 +i = 4 +i = 5 +i = 6 +i = 7 +i = 8 +i = 9 +i = 10 +i = 11 +i = 12 +i = 13 +i = 14 +i = 15 +i = 16 +i = 17 +i = 18 +i = 19 +i = 20 +i = 21 +i = 22 +i = 23 +i = 24 +i = 25 +i = 26 +i = 27 +i = 28 +i = 29 +i = 30 +i = 31 +i = 32 +i = 33 +i = 34 +i = 35 +i = 36 +i = 37 +i = 38 +i = 39 +i = 40 +i = 41 +i = 42 +i = 43 +i = 44 +i = 45 +i = 46 +i = 47 +i = 48 +i = 49 +i = 50 +i = 51 +i = 52 +i = 53 +i = 54 +i = 55 +i = 56 +i = 57 +i = 58 +i = 59 +i = 60 +i = 61 +i = 62 -- cgit v1.2.3