addiw.S revision 12771
15633Sgblack@eecs.umich.edu# See LICENSE for license details.
25633Sgblack@eecs.umich.edu
35633Sgblack@eecs.umich.edu#*****************************************************************************
45633Sgblack@eecs.umich.edu# addiw.S
55633Sgblack@eecs.umich.edu#-----------------------------------------------------------------------------
65633Sgblack@eecs.umich.edu#
75633Sgblack@eecs.umich.edu# Test addiw instruction.
85633Sgblack@eecs.umich.edu#
95633Sgblack@eecs.umich.edu
105633Sgblack@eecs.umich.edu#include "riscv_test.h"
115633Sgblack@eecs.umich.edu#include "test_macros.h"
125633Sgblack@eecs.umich.edu
135633Sgblack@eecs.umich.eduRVTEST_RV64U
145633Sgblack@eecs.umich.eduRVTEST_CODE_BEGIN
155633Sgblack@eecs.umich.edu
165633Sgblack@eecs.umich.edu  #-------------------------------------------------------------
175633Sgblack@eecs.umich.edu  # Arithmetic tests
185633Sgblack@eecs.umich.edu  #-------------------------------------------------------------
195633Sgblack@eecs.umich.edu
205633Sgblack@eecs.umich.edu  TEST_IMM_OP( 2,  addiw, 0x00000000, 0x00000000, 0x000 );
215633Sgblack@eecs.umich.edu  TEST_IMM_OP( 3,  addiw, 0x00000002, 0x00000001, 0x001 );
225633Sgblack@eecs.umich.edu  TEST_IMM_OP( 4,  addiw, 0x0000000a, 0x00000003, 0x007 );
235633Sgblack@eecs.umich.edu
245633Sgblack@eecs.umich.edu  TEST_IMM_OP( 5,  addiw, 0xfffffffffffff800, 0x0000000000000000, 0x800 );
255633Sgblack@eecs.umich.edu  TEST_IMM_OP( 6,  addiw, 0xffffffff80000000, 0xffffffff80000000, 0x000 );
265633Sgblack@eecs.umich.edu  TEST_IMM_OP( 7,  addiw, 0x000000007ffff800, 0xffffffff80000000, 0x800 );
275633Sgblack@eecs.umich.edu
285633Sgblack@eecs.umich.edu  TEST_IMM_OP( 8,  addiw, 0x00000000000007ff, 0x00000000, 0x7ff );
295633Sgblack@eecs.umich.edu  TEST_IMM_OP( 9,  addiw, 0x000000007fffffff, 0x7fffffff, 0x000 );
305633Sgblack@eecs.umich.edu  TEST_IMM_OP( 10, addiw, 0xffffffff800007fe, 0x7fffffff, 0x7ff );
315633Sgblack@eecs.umich.edu
325633Sgblack@eecs.umich.edu  TEST_IMM_OP( 11, addiw, 0xffffffff800007ff, 0xffffffff80000000, 0x7ff );
335633Sgblack@eecs.umich.edu  TEST_IMM_OP( 12, addiw, 0x000000007ffff7ff, 0x000000007fffffff, 0x800 );
345633Sgblack@eecs.umich.edu
355651Sgblack@eecs.umich.edu  TEST_IMM_OP( 13, addiw, 0xffffffffffffffff, 0x0000000000000000, 0xfff );
365633Sgblack@eecs.umich.edu  TEST_IMM_OP( 14, addiw, 0x0000000000000000, 0xffffffffffffffff, 0x001 );
375651Sgblack@eecs.umich.edu  TEST_IMM_OP( 15, addiw, 0xfffffffffffffffe, 0xffffffffffffffff, 0xfff );
386045Sgblack@eecs.umich.edu
395651Sgblack@eecs.umich.edu  TEST_IMM_OP( 16, addiw, 0xffffffff80000000, 0x7fffffff, 0x001 );
405651Sgblack@eecs.umich.edu
415633Sgblack@eecs.umich.edu  #-------------------------------------------------------------
425827Sgblack@eecs.umich.edu  # Source/Destination tests
435827Sgblack@eecs.umich.edu  #-------------------------------------------------------------
445827Sgblack@eecs.umich.edu
455633Sgblack@eecs.umich.edu  TEST_IMM_SRC1_EQ_DEST( 17, addiw, 24, 13, 11 );
465633Sgblack@eecs.umich.edu
475633Sgblack@eecs.umich.edu  #-------------------------------------------------------------
485633Sgblack@eecs.umich.edu  # Bypassing tests
495633Sgblack@eecs.umich.edu  #-------------------------------------------------------------
505651Sgblack@eecs.umich.edu
515651Sgblack@eecs.umich.edu  TEST_IMM_DEST_BYPASS( 18, 0, addiw, 24, 13, 11 );
525651Sgblack@eecs.umich.edu  TEST_IMM_DEST_BYPASS( 19, 1, addiw, 23, 13, 10 );
535651Sgblack@eecs.umich.edu  TEST_IMM_DEST_BYPASS( 20, 2, addiw, 22, 13,  9 );
545651Sgblack@eecs.umich.edu
555651Sgblack@eecs.umich.edu  TEST_IMM_SRC1_BYPASS( 21, 0, addiw, 24, 13, 11 );
565651Sgblack@eecs.umich.edu  TEST_IMM_SRC1_BYPASS( 22, 1, addiw, 23, 13, 10 );
575651Sgblack@eecs.umich.edu  TEST_IMM_SRC1_BYPASS( 23, 2, addiw, 22, 13,  9 );
585651Sgblack@eecs.umich.edu
595651Sgblack@eecs.umich.edu  TEST_IMM_ZEROSRC1( 24, addiw, 32, 32 );
605651Sgblack@eecs.umich.edu  TEST_IMM_ZERODEST( 25, addiw, 33, 50 );
615651Sgblack@eecs.umich.edu
625651Sgblack@eecs.umich.edu  TEST_PASSFAIL
635651Sgblack@eecs.umich.edu
645651Sgblack@eecs.umich.eduRVTEST_CODE_END
655651Sgblack@eecs.umich.edu
665651Sgblack@eecs.umich.edu  .data
675651Sgblack@eecs.umich.eduRVTEST_DATA_BEGIN
685651Sgblack@eecs.umich.edu
695651Sgblack@eecs.umich.edu  TEST_DATA
705651Sgblack@eecs.umich.edu
715651Sgblack@eecs.umich.eduRVTEST_DATA_END
725651Sgblack@eecs.umich.edu