Describe the bug
The icpx compiler as of 2026.0 maps float overload of std::frexp to double on CUDA backend.
Observed in an attempt to update the version used in the Kokkos CI from 2025.2 to 2026.0:
To reproduce
Dockerfile
FROM nvcr.io/nvidia/cuda:12.8.1-devel-ubuntu24.04
ARG COMPILER_VERSION
RUN <<EOF
set -ex
apt update && apt install -y gpg-agent wget gnupg
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" \
| tee /etc/apt/sources.list.d/oneAPI.list
apt update && apt install -y intel-oneapi-compiler-dpcpp-cpp-${COMPILER_VERSION}
apt clean && rm -rf /var/lib/apt/lists/*
EOF
ENV PATH=/opt/intel/oneapi/compiler/latest/bin/:$PATH
ENV LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib:/opt/intel/oneapi/umf/latest/lib:$LD_LIBRARY_PATH
# This is the test file.
COPY <<EOF test.cpp
#include <cmath>
#include <type_traits>
int main() {
static_assert(std::is_same_v<decltype(std::frexp((float)0, (int*)0)), float>);
}
EOF
RUN <<EOF
set -ex
icpx -fsycl -fsycl-targets=nvptx64-nvidia-cuda -Xsycl-target-backend=nvptx64-nvidia-cuda --cuda-gpu-arch=sm_70 test.cpp
EOF
Passes:
docker buildx build -f Dockerfile -t reproducer --build-arg COMPILER_VERSION=2025.3 --progress plain .
Fails:
docker buildx build -f Dockerfile -t reproducer --build-arg COMPILER_VERSION=2026.0 --progress plain .
docker buildx build -f Dockerfile -t reproducer --build-arg COMPILER_VERSION=2026.1 --progress plain .
Environment
Additional context
No response
Describe the bug
The
icpxcompiler as of 2026.0 mapsfloatoverload ofstd::frexptodoubleon CUDA backend.Observed in an attempt to update the version used in the Kokkos CI from 2025.2 to 2026.0:
UR_ADAPTERS_SEARCH_PATHinDockerfile.syclkokkos/kokkos#9462To reproduce
Dockerfile
Passes:
Fails:
Environment
Additional context
No response