HomePhabricator

[X86][AVX] isHorizontalBinOp - relax lane-crossing limits for AVX1-only targets.

Authored by RKSimon on Aug 4 2020, 4:35 AM.

Description

[X86][AVX] isHorizontalBinOp - relax lane-crossing limits for AVX1-only targets.

Permit lane-crossing post shuffles on AVX1 targets as long as every element comes from the same source lane, which for v8f32/v4f64 cases can be efficiently lowered with the LowerShuffleAsLanePermuteAnd* style methods.

Details

Committed
RKSimonAug 4 2020, 6:27 AM
Parents
rG98827feddb90: [lit] Add --time-trace-output to lit
Branches
Unknown
Tags
Unknown

Event Timeline

nemanjai added inline comments.
/llvm/lib/Target/X86/X86ISelLowering.cpp
44606

This removes the only use of canScaleShuffleElements() and the -Werror build fails due to an unused static function.

Are you opposed to me committing a patch to remove the definition (or if you prefer, would you do it)?

RKSimon added inline comments.Aug 4 2020, 6:53 AM
/llvm/lib/Target/X86/X86ISelLowering.cpp
44606

Thanks for the headsup - I've pushed a fix

nemanjai added inline comments.Aug 4 2020, 6:53 AM
/llvm/lib/Target/X86/X86ISelLowering.cpp
44606

Awesome. Thank you.