aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/contracts.cc
diff options
context:
space:
mode:
authorCarl Love <cel@linux.ibm.com>2024-07-09 13:17:44 -0400
committerCarl Love <cel@linux.ibm.com>2024-07-09 13:34:41 -0400
commitb620845fff7d38bca3b79ca9f5a5d049eba9e7f8 (patch)
tree8fb0c6292dbc190167315ba1e922059b1df97f2a /gcc/cp/contracts.cc
parent6031e34af130d114a7a3de0108fdb39360e8b1b3 (diff)
downloadgcc-b620845fff7d38bca3b79ca9f5a5d049eba9e7f8.zip
gcc-b620845fff7d38bca3b79ca9f5a5d049eba9e7f8.tar.gz
gcc-b620845fff7d38bca3b79ca9f5a5d049eba9e7f8.tar.bz2
rs6000, extend the current vec_{un,}signed{e,o} built-ins
The built-ins __builtin_vsx_xvcvspsxds and __builtin_vsx_xvcvspuxds convert a vector of floats to a vector of signed/unsigned long long ints. Extend the existing vec_{un,}signed{e,o} built-ins to handle the argument vector of floats to return a vector of even/odd signed/unsigned integers. The define expands vsignede_v4sf, vsignedo_v4sf, vunsignede_v4sf, vunsignedo_v4sf are added to support the new vec_{un,}signed{e,o} built-ins. The built-ins __builtin_vsx_xvcvspsxds and __builtin_vsx_xvcvspuxds are now for internal use only. They are not documented and they do not have test cases. Add testcases and update documentation. gcc/ChangeLog: * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxds, __builtin_vsx_xvcvspuxds): Rename to __builtin_vsignede_v4sf, __builtin_vunsignede_v4sf respectively. (XVCVSPSXDS, XVCVSPUXDS): Rename to VEC_VSIGNEDE_V4SF, VEC_VUNSIGNEDE_V4SF respectively. (__builtin_vsignedo_v4sf, __builtin_vunsignedo_v4sf): New built-in definitions. * config/rs6000/rs6000-overload.def (vec_signede, vec_signedo, vec_unsignede, vec_unsignedo): Add new overloaded specifications. * config/rs6000/vsx.md (vsignede_v4sf, vsignedo_v4sf, vunsignede_v4sf, vunsignedo_v4sf): New define_expands. * doc/extend.texi (vec_signedo, vec_signede, vec_unsignedo, vec_unsignede): Add documentation for new overloaded built-ins to convert vector float to vector {un,}signed long long. gcc/testsuite/ChangeLog: * gcc.target/powerpc/builtins-3-runnable.c (test_unsigned_int_result, test_ll_unsigned_int_result): Add new argument. (vec_signede, vec_signedo, vec_unsignede, vec_unsignedo): New tests for the overloaded built-ins.
Diffstat (limited to 'gcc/cp/contracts.cc')
0 files changed, 0 insertions, 0 deletions