Repository: numba/numba

Issue:
CUDA: 6 atomics tests fail with CUDA 12.2 due to invalid test expectations
6 tests that check for a specific pattern of generated code fail with CUDA 12.2 as the code generation has changed. When running with:

```
$ python runtests.py numba.cuda.tests.cudapy.test_atomics
```

the fails are:

<details>
<summary>Test failure output</summary>

```
======================================================================
FAIL: test_atomic_add_double (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 590, in test_atomic_add_double
    self.assertCorrectFloat64Atomics(cuda_fn)
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 563, in assertCorrectFloat64Atomics
    self.assertIn('atom.shared.add.f64', asm)
AssertionError: 'atom.shared.add.f64' not found in '//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32926369\n// Cuda compilation tools, release 12.2, V12.2.81\n// Based on NVVM 7.0.1\n//\n\n.version 8.2\n.target sm_75\n.address_size 64\n\n\t// .globl\t_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__errcode__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__tidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__ctaidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__tidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__ctaidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__tidz__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__ctaidz__;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics25atomic_binary_1dim_sharedB3v15B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dE5ArrayIdLi1E1A7mutable7alignedE5ArrayIxLi1E1A7mutable7alignedEd18class_28float64_2924Literal_5bint_5d_2832_29N30Function_28_3cclass_20_27numba4cuda5stubs6atomic12add_27_3e_29E85type_28CUDADispatcher_28_3cfunction_20atomic_cast_none_20at_200x7fb1644a3490_3e_29_29d28Literal_5bbool_5d_28False_29;\n.visible .shared .align 8 .b8 _cudapy_smem_6[256];\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics16atomic_cast_noneB2v3B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dEx;\n\n.visible .entry _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE(\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_0,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_1,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_2,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_3,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_4,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_5,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_6,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_7,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_8,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_9,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_10,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_11,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_12,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_13\n)\n{\n\t.reg .pred \t%p<3>;\n\t.reg .b32 \t%r<4>;\n\t.reg .f64 \t%fd<3>;\n\t.reg .b64 \t%rd<35>;\n\n\n\tld.param.u64 \t%rd1, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_4];\n\tld.param.u64 \t%rd2, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_5];\n\tld.param.u64 \t%rd3, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_6];\n\tld.param.u64 \t%rd4, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_11];\n\tld.param.u64 \t%rd5, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_12];\n\tld.param.u64 \t%rd6, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics17atomic_add_doubleB3v14B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_13];\n\tmov.u32 \t%r1, %tid.x;\n\tcvt.s64.s32 \t%rd7, %r1;\n\tand.b32  \t%r2, %r1, -2147483648;\n\tshr.u32 \t%r3, %r2, 26;\n\tcvt.u64.u32 \t%rd8, %r3;\n\tadd.s64 \t%rd9, %rd8, %rd7;\n\tshl.b64 \t%rd10, %rd9, 3;\n\tmov.u64 \t%rd11, _cudapy_smem_6;\n\tadd.s64 \t%rd12, %rd11, %rd10;\n\tmov.u64 \t%rd13, 0;\n\tst.shared.u64 \t[%rd12], %rd13;\n\tbar.sync \t0;\n\tsetp.lt.s32 \t%p1, %r1, 0;\n\tselp.b64 \t%rd14, %rd2, 0, %p1;\n\tadd.s64 \t%rd15, %rd14, %rd7;\n\tmul.lo.s64 \t%rd16, %rd15, %rd3;\n\tadd.s64 \t%rd17, %rd16, %rd1;\n\tld.u64 \t%rd18, [%rd17];\n\tshr.s64 \t%rd19, %rd18, 63;\n\tshr.u64 \t%rd20, %rd19, 59;\n\tadd.s64 \t%rd21, %rd18, %rd20;\n\tand.b64  \t%rd22, %rd21, -32;\n\tsub.s64 \t%rd23, %rd18, %rd22;\n\tsetp.lt.s64 \t%p2, %rd23, 0;\n\tadd.s64 \t%rd24, %rd23, 32;\n\tselp.b64 \t%rd25, %rd24, %rd23, %p2;\n\tand.b64  \t%rd26, %rd25, -9223372036854775808;\n\tshr.u64 \t%rd27, %rd26, 58;\n\tadd.s64 \t%rd28, %rd27, %rd25;\n\tshl.b64 \t%rd29, %rd28, 3;\n\tadd.s64 \t%rd30, %rd11, %rd29;\n\tred.shared.add.f64 \t[%rd30], 0d3FF0000000000000;\n\tbar.sync \t0;\n\tld.shared.f64 \t%fd2, [%rd12];\n\tselp.b64 \t%rd31, %rd5, 0, %p1;\n\tadd.s64 \t%rd32, %rd31, %rd7;\n\tmul.lo.s64 \t%rd33, %rd32, %rd6;\n\tadd.s64 \t%rd34, %rd33, %rd4;\n\tst.f64 \t[%rd34], %fd2;\n\tret;\n\n}'

======================================================================
FAIL: test_atomic_add_double_2 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 606, in test_atomic_add_double_2
    self.assertCorrectFloat64Atomics(cuda_fn)
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 563, in assertCorrectFloat64Atomics
    self.assertIn('atom.shared.add.f64', asm)
AssertionError: 'atom.shared.add.f64' not found in '//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32926369\n// Cuda compilation tools, release 12.2, V12.2.81\n// Based on NVVM 7.0.1\n//\n\n.version 8.2\n.target sm_75\n.address_size 64\n\n\t// .globl\t_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__errcode__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidz__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidz__;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics25atomic_binary_2dim_sharedB3v19B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dE5ArrayIdLi2E1A7mutable7alignedEd18class_28float64_295TupleI23Literal_5bint_5d_284_2923Literal_5bint_5d_288_29EN30Function_28_3cclass_20_27numba4cuda5stubs6atomic12add_27_3e_29E85type_28CUDADispatcher_28_3cfunction_20atomic_cast_none_20at_200x7fb1644a3490_3e_29_2928Literal_5bbool_5d_28False_29;\n.visible .shared .align 8 .b8 _cudapy_smem_8[256];\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics16atomic_cast_noneB2v8B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dEi;\n\n.visible .entry _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE(\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_0,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_1,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_2,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_3,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8\n)\n{\n\t.reg .pred \t%p<3>;\n\t.reg .b32 \t%r<7>;\n\t.reg .f64 \t%fd<4>;\n\t.reg .b64 \t%rd<25>;\n\n\n\tld.param.u64 \t%rd1, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4];\n\tld.param.u64 \t%rd2, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5];\n\tld.param.u64 \t%rd3, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6];\n\tld.param.u64 \t%rd4, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7];\n\tld.param.u64 \t%rd5, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_2B3v18B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8];\n\tmov.u32 \t%r1, %tid.x;\n\tmov.u32 \t%r2, %tid.y;\n\tcvt.s64.s32 \t%rd6, %r1;\n\tcvt.s64.s32 \t%rd7, %r2;\n\tsetp.lt.s32 \t%p1, %r1, 0;\n\tselp.b64 \t%rd8, %rd2, 0, %p1;\n\tadd.s64 \t%rd9, %rd8, %rd6;\n\tsetp.lt.s32 \t%p2, %r2, 0;\n\tselp.b64 \t%rd10, %rd3, 0, %p2;\n\tadd.s64 \t%rd11, %rd10, %rd7;\n\tmul.lo.s64 \t%rd12, %rd9, %rd4;\n\tmul.lo.s64 \t%rd13, %rd11, %rd5;\n\tadd.s64 \t%rd14, %rd12, %rd1;\n\tadd.s64 \t%rd15, %rd14, %rd13;\n\tld.f64 \t%fd1, [%rd15];\n\tand.b32  \t%r3, %r1, -2147483648;\n\tshr.u32 \t%r4, %r3, 29;\n\tcvt.u64.u32 \t%rd16, %r4;\n\tadd.s64 \t%rd17, %rd16, %rd6;\n\tand.b32  \t%r5, %r2, -2147483648;\n\tshr.u32 \t%r6, %r5, 28;\n\tcvt.u64.u32 \t%rd18, %r6;\n\tadd.s64 \t%rd19, %rd18, %rd7;\n\tshl.b64 \t%rd20, %rd17, 3;\n\tadd.s64 \t%rd21, %rd19, %rd20;\n\tshl.b64 \t%rd22, %rd21, 3;\n\tmov.u64 \t%rd23, _cudapy_smem_8;\n\tadd.s64 \t%rd24, %rd23, %rd22;\n\tst.shared.f64 \t[%rd24], %fd1;\n\tbar.sync \t0;\n\tred.shared.add.f64 \t[%rd24], 0d3FF0000000000000;\n\tbar.sync \t0;\n\tld.shared.f64 \t%fd3, [%rd24];\n\tst.f64 \t[%rd15], %fd3;\n\tret;\n\n}'

======================================================================
FAIL: test_atomic_add_double_3 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 616, in test_atomic_add_double_3
    self.assertCorrectFloat64Atomics(cuda_func)
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 563, in assertCorrectFloat64Atomics
    self.assertIn('atom.shared.add.f64', asm)
AssertionError: 'atom.shared.add.f64' not found in '//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32926369\n// Cuda compilation tools, release 12.2, V12.2.81\n// Based on NVVM 7.0.1\n//\n\n.version 8.2\n.target sm_75\n.address_size 64\n\n\t// .globl\t_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__errcode__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidz__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidz__;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics25atomic_binary_2dim_sharedB3v23B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dE5ArrayIdLi2E1A7mutable7alignedEd18class_28float64_295TupleI23Literal_5bint_5d_284_2923Literal_5bint_5d_288_29EN30Function_28_3cclass_20_27numba4cuda5stubs6atomic12add_27_3e_29E90type_28CUDADispatcher_28_3cfunction_20atomic_cast_to_uint64_20at_200x7fb1644a3130_3e_29_2928Literal_5bbool_5d_28False_29;\n.visible .shared .align 8 .b8 _cudapy_smem_10[256];\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics21atomic_cast_to_uint64B3v13B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dEi;\n\n.visible .entry _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE(\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_0,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_1,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_2,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_3,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8\n)\n{\n\t.reg .pred \t%p<3>;\n\t.reg .b32 \t%r<7>;\n\t.reg .f64 \t%fd<5>;\n\t.reg .b64 \t%rd<32>;\n\n\n\tld.param.u64 \t%rd1, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4];\n\tld.param.u64 \t%rd2, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5];\n\tld.param.u64 \t%rd3, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6];\n\tld.param.u64 \t%rd4, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7];\n\tld.param.u64 \t%rd5, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics19atomic_add_double_3B3v22B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8];\n\tmov.u32 \t%r1, %tid.x;\n\tmov.u32 \t%r2, %tid.y;\n\tcvt.s64.s32 \t%rd6, %r1;\n\tcvt.s64.s32 \t%rd7, %r2;\n\tsetp.lt.s32 \t%p1, %r1, 0;\n\tselp.b64 \t%rd8, %rd2, 0, %p1;\n\tadd.s64 \t%rd9, %rd8, %rd6;\n\tsetp.lt.s32 \t%p2, %r2, 0;\n\tselp.b64 \t%rd10, %rd3, 0, %p2;\n\tadd.s64 \t%rd11, %rd10, %rd7;\n\tmul.lo.s64 \t%rd12, %rd9, %rd4;\n\tmul.lo.s64 \t%rd13, %rd11, %rd5;\n\tadd.s64 \t%rd14, %rd12, %rd1;\n\tadd.s64 \t%rd15, %rd14, %rd13;\n\tld.f64 \t%fd1, [%rd15];\n\tand.b32  \t%r3, %r1, -2147483648;\n\tshr.u32 \t%r4, %r3, 29;\n\tcvt.u64.u32 \t%rd16, %r4;\n\tadd.s64 \t%rd17, %rd16, %rd6;\n\tand.b32  \t%r5, %r2, -2147483648;\n\tshr.u32 \t%r6, %r5, 28;\n\tcvt.u64.u32 \t%rd18, %r6;\n\tadd.s64 \t%rd19, %rd18, %rd7;\n\tshl.b64 \t%rd20, %rd17, 3;\n\tadd.s64 \t%rd21, %rd19, %rd20;\n\tshl.b64 \t%rd22, %rd21, 3;\n\tmov.u64 \t%rd23, _cudapy_smem_10;\n\tadd.s64 \t%rd24, %rd23, %rd22;\n\tst.shared.f64 \t[%rd24], %fd1;\n\tbar.sync \t0;\n\tcvt.rn.f64.u64 \t%fd2, %rd7;\n\tcvt.rzi.s64.f64 \t%rd25, %fd2;\n\tand.b64  \t%rd26, %rd25, -9223372036854775808;\n\tshr.u64 \t%rd27, %rd26, 60;\n\tadd.s64 \t%rd28, %rd27, %rd25;\n\tadd.s64 \t%rd29, %rd28, %rd20;\n\tshl.b64 \t%rd30, %rd29, 3;\n\tadd.s64 \t%rd31, %rd23, %rd30;\n\tred.shared.add.f64 \t[%rd31], 0d3FF0000000000000;\n\tbar.sync \t0;\n\tld.shared.f64 \t%fd4, [%rd24];\n\tst.f64 \t[%rd15], %fd4;\n\tret;\n\n}'

======================================================================
FAIL: test_atomic_add_double_global (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 637, in test_atomic_add_double_global
    self.assertCorrectFloat64Atomics(cuda_func, shared=False)
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 565, in assertCorrectFloat64Atomics
    self.assertIn('atom.add.f64', asm)
AssertionError: 'atom.add.f64' not found in '//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32926369\n// Cuda compilation tools, release 12.2, V12.2.81\n// Based on NVVM 7.0.1\n//\n\n.version 8.2\n.target sm_75\n.address_size 64\n\n\t// .globl\t_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__errcode__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__tidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__ctaidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__tidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__ctaidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__tidz__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE__ctaidz__;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics25atomic_binary_1dim_globalB3v25B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dE5ArrayIdLi1E1A7mutable7alignedE5ArrayIxLi1E1A7mutable7alignedE24Literal_5bint_5d_2832_29dN30Function_28_3cclass_20_27numba4cuda5stubs6atomic12add_27_3e_29E28Literal_5bbool_5d_28False_29;\n\n.visible .entry _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE(\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_0,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_1,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_2,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_3,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_4,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_5,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_6,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_7,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_8,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_9,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_10,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_11,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_12,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_13\n)\n{\n\t.reg .pred \t%p<3>;\n\t.reg .b32 \t%r<2>;\n\t.reg .f64 \t%fd<2>;\n\t.reg .b64 \t%rd<25>;\n\n\n\tld.param.u64 \t%rd1, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_4];\n\tld.param.u64 \t%rd2, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_5];\n\tld.param.u64 \t%rd3, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_6];\n\tld.param.u64 \t%rd4, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_11];\n\tld.param.u64 \t%rd5, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_12];\n\tld.param.u64 \t%rd6, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics24atomic_add_double_globalB3v24B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIxLi1E1A7mutable7alignedE5ArrayIdLi1E1A7mutable7alignedE_param_13];\n\tmov.u32 \t%r1, %tid.x;\n\tcvt.s64.s32 \t%rd7, %r1;\n\tsetp.lt.s32 \t%p1, %r1, 0;\n\tselp.b64 \t%rd8, %rd2, 0, %p1;\n\tadd.s64 \t%rd9, %rd8, %rd7;\n\tmul.lo.s64 \t%rd10, %rd9, %rd3;\n\tadd.s64 \t%rd11, %rd10, %rd1;\n\tld.u64 \t%rd12, [%rd11];\n\tshr.s64 \t%rd13, %rd12, 63;\n\tshr.u64 \t%rd14, %rd13, 59;\n\tadd.s64 \t%rd15, %rd12, %rd14;\n\tand.b64  \t%rd16, %rd15, -32;\n\tsub.s64 \t%rd17, %rd12, %rd16;\n\tsetp.lt.s64 \t%p2, %rd17, 0;\n\tadd.s64 \t%rd18, %rd17, 32;\n\tselp.b64 \t%rd19, %rd18, %rd17, %p2;\n\tshr.s64 \t%rd20, %rd19, 63;\n\tand.b64  \t%rd21, %rd20, %rd5;\n\tadd.s64 \t%rd22, %rd21, %rd19;\n\tmul.lo.s64 \t%rd23, %rd22, %rd6;\n\tadd.s64 \t%rd24, %rd23, %rd4;\n\tred.add.f64 \t[%rd24], 0d3FF0000000000000;\n\tret;\n\n}'

======================================================================
FAIL: test_atomic_add_double_global_2 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 654, in test_atomic_add_double_global_2
    self.assertCorrectFloat64Atomics(cuda_func, shared=False)
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 565, in assertCorrectFloat64Atomics
    self.assertIn('atom.add.f64', asm)
AssertionError: 'atom.add.f64' not found in '//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32926369\n// Cuda compilation tools, release 12.2, V12.2.81\n// Based on NVVM 7.0.1\n//\n\n.version 8.2\n.target sm_75\n.address_size 64\n\n\t// .globl\t_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__errcode__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidz__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidz__;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics25atomic_binary_2dim_globalB3v29B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dE5ArrayIdLi2E1A7mutable7alignedE23Literal_5bint_5d_281_29N30Function_28_3cclass_20_27numba4cuda5stubs6atomic12add_27_3e_29E85type_28CUDADispatcher_28_3cfunction_20atomic_cast_none_20at_200x7fb1644a3490_3e_29_2928Literal_5bbool_5d_28False_29;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics16atomic_cast_noneB2v8B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dEi;\n\n.visible .entry _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE(\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_0,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_1,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_2,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_3,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8\n)\n{\n\t.reg .pred \t%p<3>;\n\t.reg .b32 \t%r<3>;\n\t.reg .f64 \t%fd<2>;\n\t.reg .b64 \t%rd<16>;\n\n\n\tld.param.u64 \t%rd1, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4];\n\tld.param.u64 \t%rd2, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5];\n\tld.param.u64 \t%rd3, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6];\n\tld.param.u64 \t%rd4, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7];\n\tld.param.u64 \t%rd5, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_2B3v28B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8];\n\tmov.u32 \t%r1, %tid.y;\n\tmov.u32 \t%r2, %tid.x;\n\tcvt.s64.s32 \t%rd6, %r2;\n\tcvt.s64.s32 \t%rd7, %r1;\n\tsetp.lt.s32 \t%p1, %r2, 0;\n\tselp.b64 \t%rd8, %rd2, 0, %p1;\n\tadd.s64 \t%rd9, %rd8, %rd6;\n\tsetp.lt.s32 \t%p2, %r1, 0;\n\tselp.b64 \t%rd10, %rd3, 0, %p2;\n\tadd.s64 \t%rd11, %rd10, %rd7;\n\tmul.lo.s64 \t%rd12, %rd9, %rd4;\n\tmul.lo.s64 \t%rd13, %rd11, %rd5;\n\tadd.s64 \t%rd14, %rd12, %rd1;\n\tadd.s64 \t%rd15, %rd14, %rd13;\n\tred.add.f64 \t[%rd15], 0d3FF0000000000000;\n\tret;\n\n}'

======================================================================
FAIL: test_atomic_add_double_global_3 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 664, in test_atomic_add_double_global_3
    self.assertCorrectFloat64Atomics(cuda_func, shared=False)
  File "/home/gmarkall/numbadev/numba/numba/cuda/tests/cudapy/test_atomics.py", line 565, in assertCorrectFloat64Atomics
    self.assertIn('atom.add.f64', asm)
AssertionError: 'atom.add.f64' not found in '//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32926369\n// Cuda compilation tools, release 12.2, V12.2.81\n// Based on NVVM 7.0.1\n//\n\n.version 8.2\n.target sm_75\n.address_size 64\n\n\t// .globl\t_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__errcode__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidx__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidy__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__tidz__;\n.visible .global .align 4 .u32 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE__ctaidz__;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics25atomic_binary_2dim_globalB3v33B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dE5ArrayIdLi2E1A7mutable7alignedE23Literal_5bint_5d_281_29N30Function_28_3cclass_20_27numba4cuda5stubs6atomic12add_27_3e_29E90type_28CUDADispatcher_28_3cfunction_20atomic_cast_to_uint64_20at_200x7fb1644a3130_3e_29_2928Literal_5bbool_5d_28False_29;\n.common .global .align 8 .u64 _ZN08NumbaEnv5numba4cuda5tests6cudapy12test_atomics21atomic_cast_to_uint64B3v13B100cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OpClbqVgrKOgDgtPIBfsj1pNAA_3d_3dEi;\n\n.visible .entry _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE(\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_0,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_1,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_2,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_3,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7,\n\t.param .u64 _ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8\n)\n{\n\t.reg .pred \t%p<2>;\n\t.reg .b32 \t%r<3>;\n\t.reg .f64 \t%fd<3>;\n\t.reg .b64 \t%rd<18>;\n\n\n\tld.param.u64 \t%rd1, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_4];\n\tld.param.u64 \t%rd2, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_5];\n\tld.param.u64 \t%rd3, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_6];\n\tld.param.u64 \t%rd4, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_7];\n\tld.param.u64 \t%rd5, [_ZN6cudapy5numba4cuda5tests6cudapy12test_atomics26atomic_add_double_global_3B3v32B94cw51cXTLSUwv1sCUt9Uw11Ew1dRRQPKzLTg4gaGKFsG2oMQGEYakJSQB1PQBk0Bynm21OiwU1a0UoLGhDpQE8oxrNQE_3dE5ArrayIdLi2E1A7mutable7alignedE_param_8];\n\tmov.u32 \t%r1, %tid.y;\n\tcvt.s64.s32 \t%rd6, %r1;\n\tmov.u32 \t%r2, %tid.x;\n\tcvt.s64.s32 \t%rd7, %r2;\n\tcvt.rn.f64.u64 \t%fd1, %rd6;\n\tcvt.rzi.s64.f64 \t%rd8, %fd1;\n\tsetp.lt.s32 \t%p1, %r2, 0;\n\tselp.b64 \t%rd9, %rd2, 0, %p1;\n\tadd.s64 \t%rd10, %rd9, %rd7;\n\tshr.s64 \t%rd11, %rd8, 63;\n\tand.b64  \t%rd12, %rd11, %rd3;\n\tadd.s64 \t%rd13, %rd12, %rd8;\n\tmul.lo.s64 \t%rd14, %rd10, %rd4;\n\tmul.lo.s64 \t%rd15, %rd13, %rd5;\n\tadd.s64 \t%rd16, %rd14, %rd1;\n\tadd.s64 \t%rd17, %rd16, %rd15;\n\tred.add.f64 \t[%rd17], 0d3FF0000000000000;\n\tret;\n\n}'

----------------------------------------------------------------------
Ran 128 tests in 10.254s

FAILED (failures=6)
```

</details>

This should be resolved for 0.58 by updating the test expectations (or perhaps by removing the check, it may be a bad test - some other code generation-checking tests have been bad ideas and removed in the past).


Discussion:

Resolving patch:
diff --git a/numba/cuda/nvvmutils.py b/numba/cuda/nvvmutils.py
--- a/numba/cuda/nvvmutils.py
+++ b/numba/cuda/nvvmutils.py
@@ -1,8 +1,7 @@
 import itertools
 from llvmlite import ir
-from numba.core import cgutils
+from numba.core import cgutils, targetconfig
 from .cudadrv import nvvm
-from .api import current_context
 
 
 def declare_atomic_cas_int(lmod, isize):
@@ -31,7 +30,8 @@ def declare_atomic_add_float32(lmod):
 
 
 def declare_atomic_add_float64(lmod):
-    if current_context().device.compute_capability >= (6, 0):
+    flags = targetconfig.ConfigStack().top()
+    if flags.compute_capability >= (6, 0):
         fname = 'llvm.nvvm.atomic.load.add.f64.p0f64'
     else:
         fname = '___numba_atomic_double_add'


Test patch:
diff --git a/numba/cuda/tests/cudapy/test_atomics.py b/numba/cuda/tests/cudapy/test_atomics.py
--- a/numba/cuda/tests/cudapy/test_atomics.py
+++ b/numba/cuda/tests/cudapy/test_atomics.py
@@ -2,8 +2,7 @@
 from textwrap import dedent
 
 from numba import cuda, uint32, uint64, float32, float64
-from numba.cuda.testing import (unittest, CUDATestCase, skip_unless_cc_50,
-                                cc_X_or_above)
+from numba.cuda.testing import unittest, CUDATestCase, cc_X_or_above
 from numba.core import config
 
 
@@ -559,17 +558,24 @@ def assertCorrectFloat64Atomics(self, kernel, shared=True):
         # Use the first (and only) definition
         asm = next(iter(kernel.inspect_asm().values()))
         if cc_X_or_above(6, 0):
-            if shared:
-                self.assertIn('atom.shared.add.f64', asm)
+            if cuda.runtime.get_version() > (12, 1):
+                # CUDA 12.2 and above generate a more optimized reduction
+                # instruction, because the result does not need to be
+                # placed in a register.
+                inst = 'red'
             else:
-                self.assertIn('atom.add.f64', asm)
+                inst = 'atom'
+
+            if shared:
+                inst = f'{inst}.shared'
+
+            self.assertIn(f'{inst}.add.f64', asm)
         else:
             if shared:
                 self.assertIn('atom.shared.cas.b64', asm)
             else:
                 self.assertIn('atom.cas.b64', asm)
 
-    @skip_unless_cc_50
     def test_atomic_add_double(self):
         idx = np.random.randint(0, 32, size=32, dtype=np.int64)
         ary = np.zeros(32, np.float64)
@@ -615,7 +621,6 @@ def test_atomic_add_double_3(self):
         np.testing.assert_equal(ary, orig + 1)
         self.assertCorrectFloat64Atomics(cuda_func)
 
-    @skip_unless_cc_50
     def test_atomic_add_double_global(self):
         idx = np.random.randint(0, 32, size=32, dtype=np.int64)
         ary = np.zeros(32, np.float64)