rs_f16_util.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (C) 2016 The Android Open Source Project
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef RS_RUNTIME_RS_F16_UTIL
  17. #define RS_RUNTIME_RS_F16_UTIL
  18. typedef union {
  19. half hval;
  20. short sval;
  21. } fp16_shape_type;
  22. /* half h = unsigned short s; */
  23. #define SET_HALF_WORD(h, s) \
  24. do { \
  25. fp16_shape_type fp16_u; \
  26. fp16_u.sval = (s); \
  27. (h) = fp16_u.hval; \
  28. } while (0)
  29. /* unsigned short s = half h; */
  30. #define GET_HALF_WORD(s, h) \
  31. do { \
  32. fp16_shape_type fp16_u; \
  33. fp16_u.hval = (h); \
  34. (s) = fp16_u.sval; \
  35. } while (0)
  36. #endif // RS_RUNTIME_RS_F16_UTIL