From 354686be7657d153808b63813ca54b47bd5e0ca0 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 21 Aug 2012 10:48:35 +0000 Subject: [PATCH] Add rsqrt builtin. Based on patch by Cassie Epps! llvm-svn: 162274 --- libclc/generic/include/clc/clc.h | 1 + libclc/generic/include/clc/math/rsqrt.h | 1 + libclc/test/rsqrt.cl | 6 ++++++ 3 files changed, 8 insertions(+) create mode 100644 libclc/generic/include/clc/math/rsqrt.h create mode 100644 libclc/test/rsqrt.cl diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index 4f497601b3d0..565b505add67 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -53,6 +53,7 @@ #include #include #include +#include /* 6.11.3 Integer Functions */ #include diff --git a/libclc/generic/include/clc/math/rsqrt.h b/libclc/generic/include/clc/math/rsqrt.h new file mode 100644 index 000000000000..8fd2cbff9cb3 --- /dev/null +++ b/libclc/generic/include/clc/math/rsqrt.h @@ -0,0 +1 @@ +#define rsqrt(x) (1.f/sqrt(x)) diff --git a/libclc/test/rsqrt.cl b/libclc/test/rsqrt.cl new file mode 100644 index 000000000000..13ad216b79f4 --- /dev/null +++ b/libclc/test/rsqrt.cl @@ -0,0 +1,6 @@ +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + +__kernel void foo(float4 *x, double4 *y) { + x[1] = rsqrt(x[0]); + y[1] = rsqrt(y[0]); +}