[clang] Fixed vec_pack_to_short_fp32 in Clang altivec.h (PR #129923)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 5 11:56:40 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: John Platts (johnplatts)
<details>
<summary>Changes</summary>
Fixes bug in vec_pack_to_short_fp32 in clang/lib/Headers/altivec.h.
Resolves issue #<!-- -->60822
Reviewer: @<!-- -->lei137
---
Full diff: https://github.com/llvm/llvm-project/pull/129923.diff
1 Files Affected:
- (modified) clang/lib/Headers/altivec.h (+3-7)
``````````diff
diff --git a/clang/lib/Headers/altivec.h b/clang/lib/Headers/altivec.h
index 8da65055012f1..45d557238e3d9 100644
--- a/clang/lib/Headers/altivec.h
+++ b/clang/lib/Headers/altivec.h
@@ -7529,13 +7529,9 @@ vec_pack(vector double __a, vector double __b) {
#ifdef __POWER9_VECTOR__
static __inline__ vector unsigned short __ATTRS_o_ai
vec_pack_to_short_fp32(vector float __a, vector float __b) {
- vector float __resa = __builtin_vsx_xvcvsphp(__a);
- vector float __resb = __builtin_vsx_xvcvsphp(__b);
-#ifdef __LITTLE_ENDIAN__
- return (vector unsigned short)vec_mergee(__resa, __resb);
-#else
- return (vector unsigned short)vec_mergeo(__resa, __resb);
-#endif
+ vector unsigned int __resa = (vector unsigned int)__builtin_vsx_xvcvsphp(__a);
+ vector unsigned int __resb = (vector unsigned int)__builtin_vsx_xvcvsphp(__b);
+ return vec_pack(__resa, __resb);
}
#endif
``````````
</details>
https://github.com/llvm/llvm-project/pull/129923
More information about the cfe-commits
mailing list