[llvm] r312724 - [ARM] Remove redundant vcvt patterns.
Friedman, Eli via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 7 12:20:43 PDT 2017
On 9/7/2017 7:52 AM, Benjamin Kramer via llvm-commits wrote:
> Author: d0k
> Date: Thu Sep 7 07:52:26 2017
> New Revision: 312724
>
> URL: http://llvm.org/viewvc/llvm-project?rev=312724&view=rev
> Log:
> [ARM] Remove redundant vcvt patterns.
>
> These don't add any value as they're just compositions of existing
> patterns.
This is not true. These patterns exist to eliminate a "vmov" from the
floating-point register file to the integer register file.
Consider the following simple function:
void a(double c, int *x) { *x = c; }
Before this patch, we would generate the following:
vmov d16, r0, r1
vcvt.s32.f64 s0, d16
vstr s0, [r2]
bx lr
With this patch, we generate the following instead:
vmov d16, r0, r1
vcvt.s32.f64 s0, d16
vmov r0, s0
str r0, [r2]
bx lr
This is clearly a substantial regression.
---
Please don't commit non-trivial patches to the ARM backend without review.
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-commits
mailing list