---
id: pr-cccl-cub-8988
repo: NVIDIA/cccl
pr: 8988
title: '[infra] Add clang-cuda-21 in C++23 job for libcu++'
author: davebayer
date: '2026-05-15'
url: https://github.com/NVIDIA/cccl/pull/8988
source_category: upstream-code
architectures:
- sm100
tags:
- fp8
techniques: []
hardware_features:
- fp8
kernel_types: []
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: a0c36c8e89c1a7da957018f64046d16df8dc02c4
inclusion_reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.
changed_paths:
- CMakePresets.json
- c2h/include/c2h/catch2_test_helper.h
- c2h/include/c2h/catch2_test_macros.h
- ci/matrix.yaml
- libcudacxx/include/cuda/std/__cmath/fpclassify.h
- libcudacxx/test/libcudacxx/cuda/barrier/arrive_tx_cluster.runfail.cpp
- libcudacxx/test/libcudacxx/cuda/barrier/arrive_tx_device.runfail.cpp
- libcudacxx/test/libcudacxx/cuda/barrier/cp_async_bulk_tensor.pass.cpp
- libcudacxx/test/libcudacxx/cuda/barrier/expect_tx_device.runfail.cpp
- libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/device_mdspan/index_operator.pass.cpp
- libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/host_mdspan/index_operator.pass.cpp
- libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/managed_mdspan/index_operator.pass.cpp
- libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/restrict_mdspan/index_operator.pass.cpp
- libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/shared_mem_mdspan/index_operator.pass.cpp
- libcudacxx/test/libcudacxx/cuda/memcpy_async/memcpy_async_tx.pass.cpp
- libcudacxx/test/libcudacxx/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
- libcudacxx/test/libcudacxx/std/language.support/cstdlib/calloc.pass.cpp
- libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp
- libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
- libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
- libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits/default.pass.cpp
- libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/round.style/check_values.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_manip/copysign.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/fpclassify.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isfinite.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isinf.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isnan.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isnormal.pass.cpp
- libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/signbit.pass.cpp
artifact_dir: evidence/pull-bundles/cccl-cub/gh-8988
head_ref_oid: 37fa585a8bcff9391fcf567f76cecdb8c2080e1d
---
# [infra] Add clang-cuda-21 in C++23 job for libcu++

- Repository: `NVIDIA/cccl`
- PR: [8988](https://github.com/NVIDIA/cccl/pull/8988)
- Decision: `Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.`
- Reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.

## Changed Paths

- `CMakePresets.json`
- `c2h/include/c2h/catch2_test_helper.h`
- `c2h/include/c2h/catch2_test_macros.h`
- `ci/matrix.yaml`
- `libcudacxx/include/cuda/std/__cmath/fpclassify.h`
- `libcudacxx/test/libcudacxx/cuda/barrier/arrive_tx_cluster.runfail.cpp`
- `libcudacxx/test/libcudacxx/cuda/barrier/arrive_tx_device.runfail.cpp`
- `libcudacxx/test/libcudacxx/cuda/barrier/cp_async_bulk_tensor.pass.cpp`
- `libcudacxx/test/libcudacxx/cuda/barrier/expect_tx_device.runfail.cpp`
- `libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/device_mdspan/index_operator.pass.cpp`
- `libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/host_mdspan/index_operator.pass.cpp`
- `libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/managed_mdspan/index_operator.pass.cpp`
- `libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/restrict_mdspan/index_operator.pass.cpp`
- `libcudacxx/test/libcudacxx/cuda/containers/views/mdspan/shared_mem_mdspan/index_operator.pass.cpp`
- `libcudacxx/test/libcudacxx/cuda/memcpy_async/memcpy_async_tx.pass.cpp`
- `libcudacxx/test/libcudacxx/std/containers/views/mdspan/mdspan/index_operator.pass.cpp`
- `libcudacxx/test/libcudacxx/std/language.support/cstdlib/calloc.pass.cpp`
- `libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp`
- `libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp`
- `libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp`
- `libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/numeric.limits/default.pass.cpp`
- `libcudacxx/test/libcudacxx/std/language.support/support.limits/limits/round.style/check_values.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_manip/copysign.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/fpclassify.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isfinite.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isinf.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isnan.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/isnormal.pass.cpp`
- `libcudacxx/test/libcudacxx/std/numerics/c.math/fp_traits/signbit.pass.cpp`

## Evidence Bundle

`evidence/pull-bundles/cccl-cub/gh-8988`
