HomePhabricator

[X86] LowerRotate - improve vXi8 rotate-by-scalar lowering with direct use of…

Authored by RKSimon on Wed, Nov 17, 10:06 AM.

Description

[X86] LowerRotate - improve vXi8 rotate-by-scalar lowering with direct use of (extended) shift-by-scalar helpers.

If we're rotating vXi8 by a splatted amount, then unpack to vXi16, perform a SHL by the (extended) scalar, and then pack the results.

This is a vector equivalent to the "rotl(x,y) -> (((aext(x) << bw) | zext(x)) << (y & (bw-1))) >> bw" style expansion we do for scalars in LowerFunnelShift.

I think we can usefully use this for other vector types and vector funnel-shifts in the future, depending how we expand beyond D113192 for matching rotations/funnel-shifts for more type/ops.

Details

Committed
RKSimonWed, Nov 17, 10:59 AM
Parents
rG69f35f896912: [OpenMP] Add version macro support for 5.1 and 5.2
Branches
Unknown
Tags
Unknown