libclc: Fix amdgpu sub_group_broadcast for double (#188594)

GitOrigin-RevId: e46a3299ac455f6c445c48db0674e464b93e69c5
diff --git a/clc/lib/amdgpu/subgroup/clc_sub_group_broadcast.cl b/clc/lib/amdgpu/subgroup/clc_sub_group_broadcast.cl
index 969833b..51c6dc8 100644
--- a/clc/lib/amdgpu/subgroup/clc_sub_group_broadcast.cl
+++ b/clc/lib/amdgpu/subgroup/clc_sub_group_broadcast.cl
@@ -73,9 +73,9 @@
 
 _CLC_DEF _CLC_OVERLOAD _CLC_CONST double
 __clc_sub_group_broadcast(double x, uint sub_group_local_id) {
-  uint bitcast = __builtin_astype(x, double);
+  ulong bitcast = __clc_as_ulong(x);
   ulong broadcast = __clc_sub_group_broadcast(bitcast, sub_group_local_id);
-  return __builtin_astype(broadcast, double);
+  return __clc_as_double(broadcast);
 }
 
 #define __CLC_BODY "clc/subgroup/clc_subgroup_broadcast_scalarize.inc"