1# See LICENSE for license details.
2
3#*****************************************************************************
4# amoand_d.S
5#-----------------------------------------------------------------------------
6#
7# Test amoand.d instruction.
8#
9
10#include "riscv_test.h"
11#include "test_macros.h"
12
13RVTEST_RV64U
14RVTEST_CODE_BEGIN
15
16  TEST_CASE(2, a4, 0xffffffff80000000, \
17    li a0, 0xffffffff80000000; \
18    li a1, 0xfffffffffffff800; \
19    la a3, amo_operand; \
20    sd a0, 0(a3); \
21    amoand.d	a4, a1, 0(a3); \
22  )
23
24  TEST_CASE(3, a5, 0xffffffff80000000, ld a5, 0(a3))
25
26  # try again after a cache miss
27  TEST_CASE(4, a4, 0xffffffff80000000, \
28    li  a1, 0x0000000080000000; \
29    amoand.d a4, a1, 0(a3); \
30  )
31
32  TEST_CASE(5, a5, 0x0000000080000000, ld a5, 0(a3))
33
34  TEST_PASSFAIL
35
36RVTEST_CODE_END
37
38  .data
39RVTEST_DATA_BEGIN
40
41  TEST_DATA
42
43RVTEST_DATA_END
44
45  .bss
46  .align 3
47amo_operand:
48  .dword 0
49