libclc_add_sources(${LIBCLC_OPENCL_TARGET} FILES
  address_space/qualifier.cl
  async/async_work_group_copy.cl
  async/async_work_group_strided_copy.cl
  async/prefetch.cl
  async/wait_group_events.cl
  atomic/atom_add.cl
  atomic/atom_and.cl
  atomic/atom_cmpxchg.cl
  atomic/atom_dec.cl
  atomic/atom_inc.cl
  atomic/atom_max.cl
  atomic/atom_min.cl
  atomic/atom_or.cl
  atomic/atom_sub.cl
  atomic/atom_xchg.cl
  atomic/atom_xor.cl
  atomic/atomic_add.cl
  atomic/atomic_and.cl
  atomic/atomic_cmpxchg.cl
  atomic/atomic_compare_exchange_strong.cl
  atomic/atomic_compare_exchange_weak.cl
  atomic/atomic_dec.cl
  atomic/atomic_exchange.cl
  atomic/atomic_fetch_add.cl
  atomic/atomic_fetch_and.cl
  atomic/atomic_fetch_max.cl
  atomic/atomic_fetch_min.cl
  atomic/atomic_fetch_or.cl
  atomic/atomic_fetch_sub.cl
  atomic/atomic_fetch_xor.cl
  atomic/atomic_flag_clear.cl
  atomic/atomic_flag_test_and_set.cl
  atomic/atomic_inc.cl
  atomic/atomic_init.cl
  atomic/atomic_load.cl
  atomic/atomic_max.cl
  atomic/atomic_min.cl
  atomic/atomic_or.cl
  atomic/atomic_store.cl
  atomic/atomic_sub.cl
  atomic/atomic_xchg.cl
  atomic/atomic_xor.cl
  atomic/atomic_work_item_fence.cl
  collective/work_group_any_all.cl
  collective/work_group_broadcast.cl
  collective/work_group_reduce.cl
  collective/work_group_scan.cl
  common/degrees.cl
  common/mix.cl
  common/radians.cl
  common/sign.cl
  common/smoothstep.cl
  common/step.cl
  conversion/convert_float2float.cl
  conversion/convert_float2int.cl
  conversion/convert_int2float.cl
  conversion/convert_integer.cl
  geometric/cross.cl
  geometric/distance.cl
  geometric/dot.cl
  geometric/fast_distance.cl
  geometric/fast_length.cl
  geometric/fast_normalize.cl
  geometric/length.cl
  geometric/normalize.cl
  integer/abs.cl
  integer/abs_diff.cl
  integer/add_sat.cl
  integer/bit_reverse.cl
  integer/bitfield_extract_signed.cl
  integer/bitfield_extract_unsigned.cl
  integer/bitfield_insert.cl
  integer/clz.cl
  integer/ctz.cl
  integer/hadd.cl
  integer/mad24.cl
  integer/mad_hi.cl
  integer/mad_sat.cl
  integer/mul24.cl
  integer/mul_hi.cl
  integer/popcount.cl
  integer/rhadd.cl
  integer/rotate.cl
  integer/sub_sat.cl
  integer/upsample.cl
  math/acos.cl
  math/acosh.cl
  math/acospi.cl
  math/asin.cl
  math/asinh.cl
  math/asinpi.cl
  math/atan.cl
  math/atan2.cl
  math/atan2pi.cl
  math/atanh.cl
  math/atanpi.cl
  math/cbrt.cl
  math/ceil.cl
  math/copysign.cl
  math/cos.cl
  math/cosh.cl
  math/cospi.cl
  math/erf.cl
  math/erfc.cl
  math/exp.cl
  math/exp2.cl
  math/exp10.cl
  math/expm1.cl
  math/fabs.cl
  math/fdim.cl
  math/floor.cl
  math/fma.cl
  math/fmax.cl
  math/fmin.cl
  math/fmod.cl
  math/fract.cl
  math/frexp.cl
  math/half_cos.cl
  math/half_divide.cl
  math/half_exp.cl
  math/half_exp2.cl
  math/half_exp10.cl
  math/half_log.cl
  math/half_log2.cl
  math/half_log10.cl
  math/half_powr.cl
  math/half_recip.cl
  math/half_rsqrt.cl
  math/half_sin.cl
  math/half_sqrt.cl
  math/half_tan.cl
  math/hypot.cl
  math/ilogb.cl
  math/ldexp.cl
  math/lgamma.cl
  math/lgamma_r.cl
  math/log.cl
  math/log2.cl
  math/log10.cl
  math/log1p.cl
  math/logb.cl
  math/mad.cl
  math/maxmag.cl
  math/minmag.cl
  math/modf.cl
  math/nan.cl
  math/native_cos.cl
  math/native_divide.cl
  math/native_exp.cl
  math/native_exp2.cl
  math/native_exp10.cl
  math/native_log.cl
  math/native_log2.cl
  math/native_log10.cl
  math/native_powr.cl
  math/native_recip.cl
  math/native_rsqrt.cl
  math/native_sin.cl
  math/native_sqrt.cl
  math/native_tan.cl
  math/nextafter.cl
  math/pow.cl
  math/pown.cl
  math/powr.cl
  math/remainder.cl
  math/remquo.cl
  math/rint.cl
  math/rootn.cl
  math/round.cl
  math/rsqrt.cl
  math/sin.cl
  math/sincos.cl
  math/sinh.cl
  math/sinpi.cl
  math/sqrt.cl
  math/tan.cl
  math/tanh.cl
  math/tanpi.cl
  math/tgamma.cl
  math/trunc.cl
  mem_fence/fence.cl
  misc/shuffle.cl
  misc/shuffle2.cl
  relational/all.cl
  relational/any.cl
  relational/bitselect.cl
  relational/isequal.cl
  relational/isfinite.cl
  relational/isgreater.cl
  relational/isgreaterequal.cl
  relational/isinf.cl
  relational/isless.cl
  relational/islessequal.cl
  relational/islessgreater.cl
  relational/isnan.cl
  relational/isnormal.cl
  relational/isnotequal.cl
  relational/isordered.cl
  relational/isunordered.cl
  relational/select.cl
  relational/signbit.cl
  shared/clamp.cl
  shared/max.cl
  shared/min.cl
  shared/vload.cl
  shared/vstore.cl
  subgroup/sub_group_broadcast.cl
  subgroup/sub_group_reduce.cl
  subgroup/sub_group_non_uniform_reduce.cl
  subgroup/sub_group_scan_exclusive.cl
  subgroup/sub_group_scan_inclusive.cl
  subgroup/subgroup.cl
  synchronization/sub_group_barrier.cl
  synchronization/work_group_barrier.cl
  workitem/get_enqueued_local_size.cl
  workitem/get_global_id.cl
  workitem/get_global_linear_id.cl
  workitem/get_global_offset.cl
  workitem/get_global_size.cl
  workitem/get_group_id.cl
  workitem/get_local_id.cl
  workitem/get_local_linear_id.cl
  workitem/get_local_size.cl
  workitem/get_num_groups.cl
  workitem/get_work_dim.cl
)

libclc_set_source_options(-fapprox-func
  math/native_cos.cl
  math/native_divide.cl
  math/native_exp.cl
  math/native_exp2.cl
  math/native_exp10.cl
  math/native_log.cl
  math/native_log2.cl
  math/native_log10.cl
  math/native_powr.cl
  math/native_recip.cl
  math/native_rsqrt.cl
  math/native_sin.cl
  math/native_sqrt.cl
  math/native_tan.cl
)
