Skip to content

SYCL long double expression requires 128 bit size 'long double' type support #15852

@abagusetty

Description

@abagusetty

Describe the bug

Compilation flag (-mlong-double-64) doesnt seem to apply for the device-side, results in long double` error

error: expression requires 128 bit size 'long double' type support, but target 'nvptx64-nvidia-cuda' does not support it

Compiled via:
clang++ -fsycl -mlong-double-64 -fsycl-targets=nvptx64-nvidia-cuda -Xsycl-target-backend --cuda-gpu-arch=sm_80 sycl_long_double.cpp -o sycl_long_double.out

To reproduce

  1. Include code snippet as short as possible
  2. Specify the command which should be used to compile the program
  3. Specify the command which should be used to launch the program
  4. Indicate what is wrong and what was expected
#include <sycl/sycl.hpp>

int main(int argc, char **argv) {
  sycl::queue myQueue(sycl::gpu_selector_v);

  long double* ptr = sycl::malloc_device<long double>(512, myQueue);
  myQueue.parallel_for( sycl::range<1>(512), [=](sycl::id<1> idx) {
    ptr[idx] = 1.1;
  });

  return 0;
}

Environment

  • OS: [e.g Windows/Linux]
  • Target device and vendor: [e.g. Nvidia GPU]
  • DPC++ version: [e.g. commit hash or output of clang++ --version]
  • Dependencies version: [e.g. the output of nvidia-smi and sycl-ls --verbose]
clang version 19.0.0git (https://github.com/intel/llvm.git 99d3ce4093d0a9b697f7ce02fc4543dd059b6dc8)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /soft/compilers/oneapi/upstream/install-12.2.91_06112024/install/bin
Build config: +assertions

Additional context

Works fine on PVC with Compiler (2025.x.0.20240629)
Haven't got a chance to test it with HIP backend

Metadata

Metadata

Assignees

No one assigned

    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