Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [RISCV64] Emit correct lib call for fp(float/double) to ui/si | Kamlesh Kumar | 2020-06-25 | 1 | -2/+122 |
| | | | | | | | | | | | Since i32 is not legal in riscv64, it always promoted to i64 before emitting lib call and for conversions like float/double to int and float/double to unsigned int wrong lib call was emitted. This commit fix it using custom lowering. Differential Revision: https://reviews.llvm.org/D80526 (cherry picked from commit 7622ea5835f0381a426e504f4c03f11733732b83) | ||||
* | [RISCV] Avoid generating AssertZext for LP64 ABI when lowering floating LibCall | Shiva Chen | 2019-08-28 | 1 | -0/+712 |
The patch fixed the issue that RV64 didn't clear the upper bits when return complex floating value with lp64 ABI. float _Complex complex_add(float _Complex a, float _Complex b) { return a + b; } RealResult = zero_extend(RealA + RealB) ImageResult = ImageA + ImageB Return (RealResult | (ImageResult << 32)) The patch introduces shouldExtendTypeInLibCall target hook to suppress the AssertZext generation when lowering floating LibCall. Thanks to Eli's comments from the Bugzilla https://bugs.llvm.org/show_bug.cgi?id=42820 Differential Revision: https://reviews.llvm.org/D65497 llvm-svn: 370275 |