---
id: pr-cccl-cub-8708
repo: NVIDIA/cccl
pr: 8708
title: Unify always_true and always_false into libcu++
author: rmalani-nv
date: '2026-05-07'
url: https://github.com/NVIDIA/cccl/pull/8708
source_category: upstream-code
architectures:
- sm100
tags:
- cuda kernel
techniques: []
hardware_features: []
kernel_types: []
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: 8f6806df78354c2a6d76f768d183f22db4158415
inclusion_reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.
changed_paths:
- c/parallel/src/transform.cu
- cub/cub/device/device_find.cuh
- cub/cub/device/device_transform.cuh
- cub/cub/device/dispatch/dispatch_copy_mdspan.cuh
- cub/cub/device/dispatch/kernels/kernel_transform.cuh
- cub/cub/device/dispatch/tuning/tuning_transform.cuh
- cub/test/catch2_test_device_partition_if.cu
- cub/test/catch2_test_device_select_flagged_if.cu
- cub/test/catch2_test_device_select_if.cu
- cudax/include/cuda/experimental/__stf/internal/data_interface.cuh
- docs/libcudacxx/extended_api/functional.rst
- docs/libcudacxx/extended_api/functional/always_true_false.rst
- libcudacxx/include/cuda/__functional/address_stability.h
- libcudacxx/include/cuda/__functional/always_true_false.h
- libcudacxx/include/cuda/functional
- libcudacxx/include/cuda/std/__pstl/cuda/copy_n.h
- libcudacxx/include/cuda/std/__pstl/cuda/partition.h
- libcudacxx/include/cuda/std/__pstl/cuda/rotate.h
- libcudacxx/include/cuda/std/__pstl/cuda/stable_partition.h
- libcudacxx/include/cuda/std/__pstl/cuda/transform.h
- libcudacxx/test/libcudacxx/cuda/functional/always_true_false.pass.cpp
- thrust/thrust/system/cuda/detail/copy.h
- thrust/thrust/system/cuda/detail/transform.h
artifact_dir: evidence/pull-bundles/cccl-cub/gh-8708
head_ref_oid: 8c4642d555a629ee4deb533bd3ba45c877cdd776
---
# Unify always_true and always_false into libcu++

- Repository: `NVIDIA/cccl`
- PR: [8708](https://github.com/NVIDIA/cccl/pull/8708)
- 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

- `c/parallel/src/transform.cu`
- `cub/cub/device/device_find.cuh`
- `cub/cub/device/device_transform.cuh`
- `cub/cub/device/dispatch/dispatch_copy_mdspan.cuh`
- `cub/cub/device/dispatch/kernels/kernel_transform.cuh`
- `cub/cub/device/dispatch/tuning/tuning_transform.cuh`
- `cub/test/catch2_test_device_partition_if.cu`
- `cub/test/catch2_test_device_select_flagged_if.cu`
- `cub/test/catch2_test_device_select_if.cu`
- `cudax/include/cuda/experimental/__stf/internal/data_interface.cuh`
- `docs/libcudacxx/extended_api/functional.rst`
- `docs/libcudacxx/extended_api/functional/always_true_false.rst`
- `libcudacxx/include/cuda/__functional/address_stability.h`
- `libcudacxx/include/cuda/__functional/always_true_false.h`
- `libcudacxx/include/cuda/functional`
- `libcudacxx/include/cuda/std/__pstl/cuda/copy_n.h`
- `libcudacxx/include/cuda/std/__pstl/cuda/partition.h`
- `libcudacxx/include/cuda/std/__pstl/cuda/rotate.h`
- `libcudacxx/include/cuda/std/__pstl/cuda/stable_partition.h`
- `libcudacxx/include/cuda/std/__pstl/cuda/transform.h`
- `libcudacxx/test/libcudacxx/cuda/functional/always_true_false.pass.cpp`
- `thrust/thrust/system/cuda/detail/copy.h`
- `thrust/thrust/system/cuda/detail/transform.h`

## Evidence Bundle

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