aboutsummaryrefslogtreecommitdiffhomepage
path: root/ptx/src/test/spirv_run/atom_add.ptx
blob: 5d1f6678ce9590c0d4403cfa6642d83997109f8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.version 6.5
.target sm_30
.address_size 64

.visible .entry atom_add(
	.param .u64 input,
	.param .u64 output
)
{
	.shared .align 4 .b8 shared_mem[1024];

	.reg .u64 	        in_addr;
    .reg .u64 	        out_addr;
    .reg .u32 	        temp1;
    .reg .u32 	        temp2;

	ld.param.u64 	    in_addr, [input];
    ld.param.u64 	    out_addr, [output];

    ld.u32              temp1, [in_addr];
    ld.u32              temp2, [in_addr+4];
    st.shared.u32       [shared_mem], temp1;
    atom.shared.add.u32 temp1, [shared_mem], temp2;
    ld.shared.u32       temp2, [shared_mem];
    st.u32              [out_addr], temp1;
    st.u32              [out_addr+4], temp2;
	ret;
}