You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[AArch64] Remove redundant instructions in int-to-fp of lowest vector… (#98602)
Summary:
… element.
When converting the lowest element (that in lane 0) of a vector from an
integer to a floating-point value, LLVM should select the SIMD scalar
variant of CVTF
(https://developer.arm.com/documentation/dui0801/g/A64-SIMD-Scalar-Instructions/SCVTF--scalar--integer-)
to avoid the FPR to GPR register transfers that are required to use the
general floating-point variant
(https://developer.arm.com/documentation/dui0801/g/A64-Floating-point-Instructions/SCVTF--scalar--integer-).
This is possible as the lowest element can be referred to by the
corresponding scalar sub-register with the width of the vector's
constituent elements.
This patch adds new TableGen patterns to remove these redundant
instructions for AArch64, as well as back-end tests to ensure the new
preferred instruction selection result is produced. Existing tests that
relied on the previous selection result have also been updated.
Test Plan:
Reviewers:
Subscribers:
Tasks:
Tags:
Differential Revision: https://phabricator.intern.facebook.com/D60251345
0 commit comments