URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [c4/] [c45502b.dep] - Rev 720
Compare with Previous | Blame | View Log
-- C45502B.DEP-- Grant of Unlimited Rights---- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained-- unlimited rights in the software and documentation contained herein.-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making-- this public release, the Government intends to confer upon all-- recipients unlimited rights equal to those held by the Government.-- These rights include rights to use, duplicate, release or disclose the-- released technical data and computer software in whole or in part, in-- any manner and for any purpose whatsoever, and to have or permit others-- to do so.---- DISCLAIMER---- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A-- PARTICULAR PURPOSE OF SAID MATERIAL.--*-- OBJECTIVE:-- CHECK THAT MULTIPLICATION AND DIVISION YIELD CORRECT RESULTS WHEN-- THE OPERANDS ARE OF PREDEFINED TYPE SHORT_INTEGER.-- APPLICABILITY CRITERIA:-- THIS TEST IS APPLICABLE TO THOSE IMPLEMENTATIONS WHICH SUPPORT-- SHORT_INTEGER.-- IF "SHORT_INTEGER" IS NOT SUPPORTED, THEN THE DECLARATION OF-- "CHECK_SHORT" MUST BE REJECTED.-- HISTORY:-- RJW 09/01/86 CREATED ORIGINAL TEST.-- DHH 01/13/88 ADDED APPLICABILITY CRITERIA AND STANDARD HEADER.WITH REPORT; USE REPORT;PROCEDURE C45502B ISCHECK_SHORT : SHORT_INTEGER; -- N/A => ERROR.FUNCTION IDENT (S : SHORT_INTEGER) RETURN SHORT_INTEGER ISBEGINRETURN SHORT_INTEGER (IDENT_INT (INTEGER (S)));END IDENT;BEGINTEST ( "C45502B", "CHECK THAT MULTIPLICATION AND DIVISION " &"YIELD CORRECT RESULTS WHEN THE OPERANDS " &"ARE OF PREDEFINED TYPE SHORT_INTEGER" );DECLAREI0 : SHORT_INTEGER := 0;I1 : SHORT_INTEGER := 1;I2 : SHORT_INTEGER := 2;I3 : SHORT_INTEGER := 3;I5 : SHORT_INTEGER := 5;I10 : SHORT_INTEGER := 10;I11 : SHORT_INTEGER := 11;I12 : SHORT_INTEGER := 12;I13 : SHORT_INTEGER := 13;I14 : SHORT_INTEGER := 14;N1 : SHORT_INTEGER := -1;N2 : SHORT_INTEGER := -2;N5 : SHORT_INTEGER := -5;N10 : SHORT_INTEGER := -10;N11 : SHORT_INTEGER := -11;N12 : SHORT_INTEGER := -12;N13 : SHORT_INTEGER := -13;N14 : SHORT_INTEGER := -14;N50 : SHORT_INTEGER := -50;BEGINIF I0 * SHORT_INTEGER'FIRST /= 0 THENFAILED ( "INCORRECT RESULT FOR I0 * " &"SHORT_INTEGER'FIRST" );END IF;IF I0 * SHORT_INTEGER'LAST /= 0 THENFAILED ( "INCORRECT RESULT FOR I0 * " &"SHORT_INTEGER'LAST" );END IF;IF N1 * SHORT_INTEGER'LAST + SHORT_INTEGER'LAST /= 0 THENFAILED ( "INCORRECT RESULT FOR N1 * " &"SHORT_INTEGER'LAST" );END IF;IF I3 * I1 /= I3 THENFAILED ( "INCORRECT RESULT FOR I3 * I1" );END IF;IF IDENT (I3) * IDENT (I1) /= I3 THENFAILED ( "INCORRECT RESULT FOR IDENT (I3) * " &"IDENT (I1)" );END IF;IF I2 * N1 /= N2 THENFAILED ( "INCORRECT RESULT FOR I2 * N1" );END IF;IF "*" (LEFT => I2, RIGHT => N1) /= N2 THENFAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => I2, " &"RIGHT => N1)" );END IF;IF IDENT (I2) * IDENT (N1) /= N2 THENFAILED ( "INCORRECT RESULT FOR IDENT (I2) * " &"IDENT (N1)" );END IF;IF I5 * I2 * N5 /= N50 THENFAILED ( "INCORRECT RESULT FOR I5 * I2 * N5" );END IF;IF IDENT (N1) * IDENT (N5) /= I5 THENFAILED ( "INCORRECT RESULT FOR IDENT (N1) * " &"IDENT (N5)" );END IF;IF "*" (LEFT => IDENT (N1), RIGHT => IDENT (N5)) /=I5 THENFAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => " &"IDENT (N1), RIGHT => IDENT (N5))" );END IF;IF IDENT (N1) * IDENT (I2) * IDENT (N5) /= I10THENFAILED ( "INCORRECT RESULT FOR IDENT (N1) * " &"IDENT (I2) * IDENT (N5)" );END IF;IF (-IDENT (I0)) * IDENT (I10) /= I0 THENFAILED ( "INCORRECT RESULT FOR (-IDENT (I0)) * " &"IDENT (I10)" );END IF;IF I0 * I10 /= (-I0) THENFAILED ( "INCORRECT RESULT FOR I0 * I10" );END IF;IF "*" (LEFT => I0, RIGHT => I10) /= (-I0) THENFAILED ( "INCORRECT RESULT FOR ""*"" (LEFT => I0, " &"RIGHT => I10)" );END IF;IF IDENT (I10) / IDENT (I5) /= I2 THENFAILED ( "INCORRECT RESULT FOR IDENT (I10) " &"/ IDENT (I5)" );END IF;IF I11 / I5 /= I2 THENFAILED ( "INCORRECT RESULT FOR I11 / I5" );END IF;IF IDENT (I12) / IDENT (I5) /= I2 THENFAILED ( "INCORRECT RESULT FOR IDENT (I12) " &"/ IDENT (I5)" );END IF;IF "/" (LEFT => IDENT (I12), RIGHT => IDENT (I5)) /=I2 THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &"IDENT (I12), RIGHT => IDENT (I5))" );END IF;IF I13 / I5 /= I2 THENFAILED ( "INCORRECT RESULT FOR I13 / I5" );END IF;IF IDENT (I14) / IDENT (I5) /= I2 THENFAILED ( "INCORRECT RESULT FOR IDENT (I14) " &"/ IDENT (I5)" );END IF;IF I10 / N5 /= N2 THENFAILED ( "INCORRECT RESULT FOR I10 / N5" );END IF;IF "/" (LEFT => I10, RIGHT => N5) /= N2 THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => I10, " &"RIGHT => N5)" );END IF;IF IDENT (I11) / IDENT (N5) /= N2 THENFAILED ( "INCORRECT RESULT FOR IDENT (I11) " &"/ IDENT (N5)" );END IF;IF I12 / N5 /= N2 THENFAILED ( "INCORRECT RESULT FOR I12 / N5" );END IF;IF IDENT (I13) / IDENT (N5) /= N2 THENFAILED ( "INCORRECT RESULT FOR IDENT (I13) " &"/ IDENT (N5)" );END IF;IF I14 / N5 /= N2 THENFAILED ( "INCORRECT RESULT FOR I14 / N5" );END IF;IF IDENT (N10) / IDENT (I5) /= N2 THENFAILED ( "INCORRECT RESULT FOR IDENT (N10) " &"/ IDENT (I5)" );END IF;IF "/" (LEFT => IDENT (N10), RIGHT => IDENT (I5)) /=N2 THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &"IDENT (N10), RIGHT => IDENT (I5))" );END IF;IF N11 / I5 /= N2 THENFAILED ( "INCORRECT RESULT FOR N11 / I5" );END IF;IF IDENT (N12) / IDENT (I5) /= N2 THENFAILED ( "INCORRECT RESULT FOR IDENT (N12) " &"/ IDENT (I5)" );END IF;IF N13 / I5 /= N2 THENFAILED ( "INCORRECT RESULT FOR N13 / I5" );END IF;IF "/" (LEFT => N13, RIGHT => I5) /= N2 THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => N13, " &"RIGHT => I5)" );END IF;IF IDENT (N14) / IDENT (I5) /= N2 THENFAILED ( "INCORRECT RESULT FOR IDENT (N14) " &"/ IDENT (I5)" );END IF;IF N10 / N5 /= I2 THENFAILED ( "INCORRECT RESULT FOR N10 / N5" );END IF;IF IDENT (N11) / IDENT (N5) /= I2 THENFAILED ( "INCORRECT RESULT FOR IDENT (N11) " &"/ IDENT (N5)" );END IF;IF "/" (LEFT => IDENT (N11), RIGHT => IDENT (N5)) /=I2 THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => " &"IDENT (N11), RIGHT => IDENT (N5))" );END IF;IF N12 / N5 /= I2 THENFAILED ( "INCORRECT RESULT FOR N12 / N5" );END IF;IF IDENT (N13) / IDENT (N5) /= I2 THENFAILED ( "INCORRECT RESULT FOR IDENT (N13) " &"/ IDENT (N5)" );END IF;IF N14 / N5 /= I2 THENFAILED ( "INCORRECT RESULT FOR N14 / N5" );END IF;IF "/" (LEFT => N14, RIGHT => N5) /= I2 THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => N14, " &"RIGHT => N5)" );END IF;IF I0 / I5 /= (-I0) THENFAILED ( "INCORRECT RESULT FOR I0 / I5" );END IF;IF "/" (LEFT => I0, RIGHT => I5) /= (-I0) THENFAILED ( "INCORRECT RESULT FOR ""/"" (LEFT => I0, " &"RIGHT => I5)" );END IF;IF (-IDENT (I0)) / IDENT (I5) /= I0 THENFAILED ( "INCORRECT RESULT FOR (-IDENT (I0)) / " &"IDENT (I5)" );END IF;END;RESULT;END C45502B;
