def METHOD_NAME():
    """ 
    Tests "horizontal" summation (hadd) of vector types using 
    write-conflicted memlets.
    """
    sdfg = dace.SDFG('vectorhadd_gpu')
    sdfg.add_array('A', [1], float4)
    sdfg.add_transient('gA', [1], float4, storage=dace.StorageType.GPU_Global)
    sdfg.add_transient('gB', [1], dace.float32, storage=dace.StorageType.GPU_Global)
    sdfg.add_array('B', [1], dace.float32)
    state = sdfg.add_state()
    r = state.add_access('gA')
    me, mx = state.add_map('kernel', dict(i='0:1'), dace.ScheduleType.GPU_Device)
    t1 = state.add_tasklet('something', {'a'}, {'b': float4}, 'b = a')
    w = state.add_access('gB')
    state.add_memlet_path(r, me, t1, dst_conn='a', memlet=dace.Memlet('gA[0]'))
    state.add_memlet_path(t1, mx, w, src_conn='b', memlet=dace.Memlet('gB[0]', wcr='lambda x, y: x + y'))
    hr = state.add_read('A')
    hw = state.add_write('B')
    state.add_nedge(hr, r, dace.Memlet('gA'))
    state.add_nedge(w, hw, dace.Memlet('gB'))
    assert '_atomic' not in sdfg.generate_code()[0].clean_code
    A = np.random.rand(4).astype(np.float32)
    B = np.zeros([1], dtype=np.float32)
    sdfg(A=A, B=B)
    assert np.allclose(B, np.sum(A))