added support for native and double precision trigonometry/transendentals
This commit is contained in:
@@ -694,3 +694,5 @@ define <16 x double> @__max_varying_double(<16 x double>, <16 x double>) nounwin
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -564,3 +564,6 @@ gen_scatter(double)
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -513,3 +513,6 @@ define <4 x double> @__max_varying_double(<4 x double>, <4 x double>) nounwind r
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -997,3 +997,6 @@ define_avgs()
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -191,13 +191,9 @@ declare <WIDTH x double> @__max_varying_double(<WIDTH x double>,
|
||||
|
||||
declare float @__rsqrt_uniform_float(float) nounwind readnone
|
||||
declare float @__rcp_uniform_float(float) nounwind readnone
|
||||
declare double @__rsqrt_uniform_double(double) nounwind readnone
|
||||
declare double @__rcp_uniform_double(double) nounwind readnone
|
||||
declare float @__sqrt_uniform_float(float) nounwind readnone
|
||||
declare <WIDTH x float> @__rcp_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x float> @__rsqrt_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x double> @__rcp_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare <WIDTH x double> @__rsqrt_varying_double(<WIDTH x double>) nounwind readnone
|
||||
|
||||
declare <WIDTH x float> @__sqrt_varying_float(<WIDTH x float>) nounwind readnone
|
||||
|
||||
@@ -393,3 +389,11 @@ declare void @__prefetch_read_uniform_nt(i8 * nocapture) nounwind
|
||||
|
||||
define_avgs()
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; reciprocals in double precision, if supported
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -521,3 +521,6 @@ define <8 x i16> @__avg_down_int16(<8 x i16>, <8 x i16>) nounwind readnone {
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -491,3 +491,6 @@ define <4 x i16> @__avg_down_int16(<4 x i16>, <4 x i16>) nounwind readnone {
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -587,3 +587,6 @@ define <16 x i16> @__avg_down_int16(<16 x i16>, <16 x i16>) nounwind readnone {
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -658,3 +658,6 @@ define <8 x double> @__max_varying_double(<8 x double>, <8 x double>) nounwind r
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -593,3 +593,6 @@ gen_scatter(double)
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -494,3 +494,6 @@ define_down_avgs()
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -496,3 +496,6 @@ define_down_avgs()
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -597,3 +597,6 @@ define_avgs()
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -520,3 +520,6 @@ define_avgs()
|
||||
|
||||
rsqrtd_decl()
|
||||
rcpd_decl()
|
||||
|
||||
transcendetals_decl()
|
||||
trigonometry_decl()
|
||||
|
||||
@@ -2106,13 +2106,6 @@ declare void
|
||||
@__pseudo_scatter_base_offsets64_double(i8 * nocapture, i32, <WIDTH x i64>,
|
||||
<WIDTH x double>, <WIDTH x MASK>) nounwind
|
||||
|
||||
declare float @__log_uniform_float(float) nounwind readnone
|
||||
declare <WIDTH x float> @__log_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare float @__exp_uniform_float(float) nounwind readnone
|
||||
declare <WIDTH x float> @__exp_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare float @__pow_uniform_float(float, float) nounwind readnone
|
||||
declare <WIDTH x float> @__pow_varying_float(<WIDTH x float>, <WIDTH x float>) nounwind readnone
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
declare void @__use8(<WIDTH x i8>)
|
||||
@@ -4541,3 +4534,58 @@ define(`rcpd_decl', `
|
||||
declare double @__rcp_uniform_double(double)
|
||||
declare <WIDTH x double> @__rcp_varying_double(<WIDTH x double>)
|
||||
')
|
||||
|
||||
|
||||
define(`transcendetals_decl',`
|
||||
declare float @__log_uniform_float(float) nounwind readnone
|
||||
declare <WIDTH x float> @__log_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare float @__exp_uniform_float(float) nounwind readnone
|
||||
declare <WIDTH x float> @__exp_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare float @__pow_uniform_float(float, float) nounwind readnone
|
||||
declare <WIDTH x float> @__pow_varying_float(<WIDTH x float>, <WIDTH x float>) nounwind readnone
|
||||
|
||||
declare double @__log_uniform_double(double) nounwind readnone
|
||||
declare <WIDTH x double> @__log_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare double @__exp_uniform_double(double) nounwind readnone
|
||||
declare <WIDTH x double> @__exp_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare double @__pow_uniform_double(double, double) nounwind readnone
|
||||
declare <WIDTH x double> @__pow_varying_double(<WIDTH x double>, <WIDTH x double>) nounwind readnone
|
||||
')
|
||||
|
||||
define(`trigonometry_decl',`
|
||||
declare <WIDTH x float> @__sin_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x float> @__asin_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x float> @__cos_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x float> @__acos_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare void @__sincos_varying_float(<WIDTH x float>, <WIDTH x float>*, <WIDTH x float>*) nounwind readnone
|
||||
declare <WIDTH x float> @__tan_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x float> @__atan_varying_float(<WIDTH x float>) nounwind readnone
|
||||
declare <WIDTH x float> @__atan2_varying_float(<WIDTH x float>,<WIDTH x float>) nounwind readnone
|
||||
|
||||
declare float @__sin_uniform_float(float) nounwind readnone
|
||||
declare float @__asin_uniform_float(float) nounwind readnone
|
||||
declare float @__cos_uniform_float(float) nounwind readnone
|
||||
declare float @__acos_uniform_float(float) nounwind readnone
|
||||
declare void @__sincos_uniform_float(float, float*, float*) nounwind readnone
|
||||
declare float @__tan_uniform_float(float) nounwind readnone
|
||||
declare float @__atan_uniform_float(float) nounwind readnone
|
||||
declare float @__atan2_uniform_float(float,float) nounwind readnone
|
||||
|
||||
declare <WIDTH x double> @__sin_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare <WIDTH x double> @__asin_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare <WIDTH x double> @__cos_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare <WIDTH x double> @__acos_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare void @__sincos_varying_double(<WIDTH x double>, <WIDTH x double>*, <WIDTH x double>*) nounwind readnone
|
||||
declare <WIDTH x double> @__tan_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare <WIDTH x double> @__atan_varying_double(<WIDTH x double>) nounwind readnone
|
||||
declare <WIDTH x double> @__atan2_varying_double(<WIDTH x double>,<WIDTH x double>) nounwind readnone
|
||||
|
||||
declare double @__sin_uniform_double(double) nounwind readnone
|
||||
declare double @__asin_uniform_double(double) nounwind readnone
|
||||
declare double @__cos_uniform_double(double) nounwind readnone
|
||||
declare double @__acos_uniform_double(double) nounwind readnone
|
||||
declare void @__sincos_uniform_double(double, double*, double*) nounwind readnone
|
||||
declare double @__tan_uniform_double(double) nounwind readnone
|
||||
declare double @__atan_uniform_double(double) nounwind readnone
|
||||
declare double @__atan2_uniform_double(double,double) nounwind readnone
|
||||
')
|
||||
|
||||
Reference in New Issue
Block a user