MLIR 22.0.0git
mlir::x86vector::avx2 Namespace Reference

Helpers extracted from: More...

Namespaces

namespace  inline_asm
namespace  intrin

Classes

struct  LoweringOptions
 Options for controlling specialized AVX2 lowerings. More...
struct  TransposeLoweringOptions
 Structure to control the behavior of specialized AVX2 transpose lowering. More...

Functions

void transpose4x8xf32 (ImplicitLocOpBuilder &ib, MutableArrayRef< Value > vs)
 Generic lowerings may either use intrin or inline_asm depending on needs.
void transpose8x8xf32 (ImplicitLocOpBuilder &ib, MutableArrayRef< Value > vs)
 8x8xf32-specific AVX2 transpose lowering.
void populateSpecializedTransposeLoweringPatterns (RewritePatternSet &patterns, LoweringOptions options=LoweringOptions(), int benefit=10)
 Insert specialized transpose lowering patterns.

Detailed Description

Helpers extracted from:

  • clang/lib/Headers/avxintrin.h
  • clang/test/CodeGen/X86/avx-builtins.c
  • clang/test/CodeGen/X86/avx2-builtins.c
  • clang/test/CodeGen/X86/avx-shuffle-builtins.c as well as the Intel Intrinsics Guide (https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html) make it easier to just implement known good lowerings. All intrinsics correspond 1-1 to the Intel definition.

Function Documentation

◆ populateSpecializedTransposeLoweringPatterns()

void mlir::x86vector::avx2::populateSpecializedTransposeLoweringPatterns ( RewritePatternSet & patterns,
LoweringOptions options = LoweringOptions(),
int benefit = 10 )

Insert specialized transpose lowering patterns.

Definition at line 287 of file AVXTranspose.cpp.

References options, and mlir::patterns.

◆ transpose4x8xf32()

void mlir::x86vector::avx2::transpose4x8xf32 ( ImplicitLocOpBuilder & ib,
MutableArrayRef< Value > vs )

◆ transpose8x8xf32()