llvm/clang/test/CodeGenCUDA/long-double.cu

// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -target-cpu gfx906 \
// RUN:   -aux-triple x86_64-unknown-gnu-linux -fcuda-is-device \
// RUN:   -emit-llvm -o - -x hip %s 2>&1 | FileCheck %s

// RUN: %clang_cc1 -triple spirv64-amd-amdhsa \
// RUN:   -aux-triple x86_64-unknown-gnu-linux -fcuda-is-device \
// RUN:   -emit-llvm -o - -x hip %s 2>&1 | FileCheck %s

// RUN: %clang_cc1 -triple nvptx \
// RUN:   -aux-triple x86_64-unknown-gnu-linux -fcuda-is-device \
// RUN:   -emit-llvm -o - %s 2>&1 | FileCheck %s

// CHECK: @_ZN15infinity_helperIeE5valueE = {{.*}} double 0x47EFFFFFD586B834,{{.*}} align 8
// CHECK: @size = {{.*}} i32 8

#include "Inputs/cuda.h"

template <class> struct infinity_helper {};
template <> struct infinity_helper<long double> { static constexpr long double value = 3.4028234e38L; };
constexpr long double infinity_helper<long double>::value;
__device__ int size = sizeof(long double);