Skip to content

icpx as of 2026.0 maps float overload of std::frexp to double on CUDA backend #23041

Description

@maartenarnst

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingcudaCUDA back-end

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions