aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2012-10-01 14:40:28 -0700
committerStephen Hines <srhines@google.com>2012-10-01 14:40:28 -0700
commit0d6d592c5c0d28331151e6c4b7fb7d0789b99974 (patch)
tree90ea05cbc7911865709c651bd57cc3f3f3d78568
parentceb4c0f5fc5f63c6e494fc2fda25e4461d27abb5 (diff)
downloadlibbcc-0d6d592c5c0d28331151e6c4b7fb7d0789b99974.tar.gz
Fix improper cast for pown on CPU/GPU.
Bug: 7256001 Change-Id: I5231c418e19dab6682a2afd806f5068a3eceb3f7
-rw-r--r--lib/Renderscript/runtime/rs_cl.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/Renderscript/runtime/rs_cl.c b/lib/Renderscript/runtime/rs_cl.c
index bf055b3..b6c2b6a 100644
--- a/lib/Renderscript/runtime/rs_cl.c
+++ b/lib/Renderscript/runtime/rs_cl.c
@@ -1,5 +1,9 @@
#include "rs_types.rsh"
+extern float2 __attribute__((overloadable)) convert_float2(int2 c);
+extern float3 __attribute__((overloadable)) convert_float3(int3 c);
+extern float4 __attribute__((overloadable)) convert_float4(int4 c);
+
// Float ops, 6.11.2
#define FN_FUNC_FN(fnc) \
@@ -492,13 +496,16 @@ extern float __attribute__((overloadable)) pown(float v, int p) {
return pow(v, (float)p);
}
extern float2 __attribute__((overloadable)) pown(float2 v, int2 p) {
- return pow(v, (float2)p);
+ float2 f2 = convert_float2(p);
+ return pow(v, f2);
}
extern float3 __attribute__((overloadable)) pown(float3 v, int3 p) {
- return pow(v, (float3)p);
+ float3 f3 = convert_float3(p);
+ return pow(v, f3);
}
extern float4 __attribute__((overloadable)) pown(float4 v, int4 p) {
- return pow(v, (float4)p);
+ float4 f4 = convert_float4(p);
+ return pow(v, f4);
}
extern float __attribute__((overloadable)) powr(float v, float p) {