blob: c9975047e0a0e68b34f11941ccdb7956cf0c61d5 [file] [edit]
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 6
// REQUIRES: amdgpu-registered-target
// RUN: %clang --target=%target -mcpu=%cpu %libclc_lib -x cl -cl-std=CL3.0 -O2 -emit-llvm -S -o - %s | FileCheck %s --check-prefix=%check_prefix
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
// AMDGCN-LABEL: define hidden noundef half @test_half(
// AMDGCN-SAME: half noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
// AMDGCN-NEXT: [[ENTRY:.*:]]
// AMDGCN-NEXT: [[TMP0:%.*]] = tail call contract half @llvm.sqrt.f16(half [[X]]), !fpmath [[META13:![0-9]+]]
// AMDGCN-NEXT: [[TMP1:%.*]] = fdiv contract half 1.000000e+00, [[TMP0]], !fpmath [[META14:![0-9]+]]
// AMDGCN-NEXT: ret half [[TMP1]]
//
half test_half(half x) {
return rsqrt(x);
}
// AMDGCN-LABEL: define hidden noundef float @test_float(
// AMDGCN-SAME: float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0]] {
// AMDGCN-NEXT: [[ENTRY:.*:]]
// AMDGCN-NEXT: [[TMP0:%.*]] = tail call contract float @llvm.sqrt.f32(float [[X]]), !fpmath [[META15:![0-9]+]]
// AMDGCN-NEXT: [[TMP1:%.*]] = fdiv contract float 1.000000e+00, [[TMP0]], !fpmath [[META16:![0-9]+]]
// AMDGCN-NEXT: ret float [[TMP1]]
//
float test_float(float x) {
return rsqrt(x);
}
// AMDGCN-LABEL: define hidden noundef double @test_double(
// AMDGCN-SAME: double noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0]] {
// AMDGCN-NEXT: [[ENTRY:.*:]]
// AMDGCN-NEXT: [[TMP0:%.*]] = tail call contract double @llvm.sqrt.f64(double [[X]])
// AMDGCN-NEXT: [[TMP1:%.*]] = fdiv contract double 1.000000e+00, [[TMP0]]
// AMDGCN-NEXT: ret double [[TMP1]]
//
double test_double(double x) {
return rsqrt(x);
}
//.
// AMDGCN: [[META13]] = !{float 1.500000e+00}
// AMDGCN: [[META14]] = !{float 1.000000e+00}
// AMDGCN: [[META15]] = !{float 3.000000e+00}
// AMDGCN: [[META16]] = !{float 2.500000e+00}
//.