diff options
| author | John Brawn <john.brawn@arm.com> | 2020-02-13 14:52:33 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@chromium.org> | 2020-02-18 16:46:43 +0100 |
| commit | cbac41966b8f9356a3e69c050b60770108550d1e (patch) | |
| tree | 5a42e0e882cfde1610118439ad745b13ca3d77f2 /llvm/test/CodeGen/ARM/aapcs-hfa-code.ll | |
| parent | cff417cffd61d2c4607eb142e272ec10ebec2c21 (diff) | |
| download | bcm5719-llvm-cbac41966b8f9356a3e69c050b60770108550d1e.tar.gz bcm5719-llvm-cbac41966b8f9356a3e69c050b60770108550d1e.zip | |
[ARM] Fix infinite loop when lowering STRICT_FP_EXTEND
If the target has FP64 but not FP16 then we have custom lowering for FP_EXTEND
and STRICT_FP_EXTEND with type f64. However if the extend is from f32 to f64 the
current implementation will cause in infinite loop for STRICT_FP_EXTEND due to
emitting a merge_values of the original node which after replacement becomes a
merge_values of itself.
Fix this by not doing anything for f32 to f64 extend when we have FP64, though
for STRICT_FP_EXTEND we have to do the strict-to-nonstrict mutation as that
doesn't happen automatically for opcodes with custom lowering.
Differential Revision: https://reviews.llvm.org/D74559
(cherry picked from commit 0ec57972967dfb43fc022c2e3788be041d1db730)
Diffstat (limited to 'llvm/test/CodeGen/ARM/aapcs-hfa-code.ll')
0 files changed, 0 insertions, 0 deletions

